CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
GEMDQMBase Class Reference

#include <GEMDQMBase.h>

Inheritance diagram for GEMDQMBase:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator > GEMDAQStatusSource GEMDigiSource GEMRecHitSource

Classes

class  BookingHelper
 
class  MEMapInfT
 
class  MEStationInfo
 

Public Types

typedef MEMapInfT< MEMap2Ids, ME2IdsKeyMEMap2Inf
 
typedef MEMapInfT< MEMap3Ids, ME3IdsKeyMEMap3Inf
 
typedef MEMapInfT< MEMap4Ids, ME4IdsKeyMEMap4Inf
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Public Member Functions

 GEMDQMBase (const edm::ParameterSet &cfg)
 
 ~GEMDQMBase () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Public Attributes

std::string log_category_
 

Protected Member Functions

template<typename T >
bool checkRefs (const std::vector< T * > &)
 
dqm::impl::MonitorElementCreateSummaryHist (DQMStore::IBooker &ibooker, TString strName)
 
int GenerateMEPerChamber (DQMStore::IBooker &ibooker)
 
int getDetOccXBin (const int, const int, const int)
 
int getIEtaFromVFAT (const int station, const int vfat)
 
int getIEtaFromVFATGE11 (const int vfat)
 
int getMaxVFAT (const int)
 
int getNumEtaPartitions (const GEMStation *)
 
int getVFATNumber (const int, const int, const int)
 
int getVFATNumberByDigi (const int, const int, const int)
 
int getVFATNumberGE11 (const int, const int, const int)
 
int initGeometry (edm::EventSetup const &iSetup)
 
ME2IdsKey key3Tokey2 (ME3IdsKey key)
 
ME3IdsKey key4Tokey3 (ME4IdsKey key)
 
int keyToChamber (ME4IdsKey key)
 
int keyToIEta (ME3IdsKey key)
 
int keyToIEta (ME4IdsKey key)
 
int keyToLayer (ME3IdsKey key)
 
int keyToLayer (ME4IdsKey key)
 
int keyToRegion (ME2IdsKey key)
 
int keyToRegion (ME3IdsKey key)
 
int keyToRegion (ME4IdsKey key)
 
int keyToStation (ME2IdsKey key)
 
int keyToStation (ME3IdsKey key)
 
int keyToStation (ME4IdsKey key)
 
int loadChambers ()
 
virtual int ProcessWithMEMap2 (BookingHelper &bh, ME2IdsKey key)
 
virtual int ProcessWithMEMap2AbsReWithEta (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap2WithEta (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap3 (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap3WithChamber (BookingHelper &bh, ME4IdsKey key)
 
virtual int ProcessWithMEMap4 (BookingHelper &bh, ME4IdsKey key)
 
int readRadiusEtaPartition (int nRegion, int nStation)
 
int SortingLayers (std::vector< ME3IdsKey > &listLayers)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Protected Attributes

std::vector< GEMChambergemChambers_
 
const GEMGeometryGEMGeometry_
 
std::map< ME3IdsKey, MEStationInfomapStationInfo_
 
std::map< ME3IdsKey, int > mapStationToIdx_
 
std::map< ME3IdsKey, bool > MEMap2AbsReWithEtaCheck_
 
std::map< ME2IdsKey, bool > MEMap2Check_
 
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
 
std::map< ME3IdsKey, bool > MEMap3Check_
 
std::map< ME4IdsKey, bool > MEMap3WithChCheck_
 
std::map< ME4IdsKey, bool > MEMap4Check_
 
int nMaxNumCh_
 
Int_t nNumEtaPartitionGE0_
 
Int_t nNumEtaPartitionGE11_
 
Int_t nNumEtaPartitionGE21_
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Detailed Description

Definition at line 29 of file GEMDQMBase.h.

Member Typedef Documentation

◆ MEMap2Inf

Definition at line 418 of file GEMDQMBase.h.

◆ MEMap3Inf

Definition at line 419 of file GEMDQMBase.h.

◆ MEMap4Inf

Definition at line 420 of file GEMDQMBase.h.

Constructor & Destructor Documentation

◆ GEMDQMBase()

GEMDQMBase::GEMDQMBase ( const edm::ParameterSet cfg)
explicit

Definition at line 7 of file GEMDQMBase.cc.

7  {
8  log_category_ = cfg.getUntrackedParameter<std::string>("logCategory");
9 
13 }

References looper::cfg, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~GEMDQMBase()

GEMDQMBase::~GEMDQMBase ( )
inlineoverride

Definition at line 457 of file GEMDQMBase.h.

457 {};

Member Function Documentation

◆ checkRefs()

template<typename T >
bool GEMDQMBase::checkRefs ( const std::vector< T * > &  refs)
inlineprotected

Definition at line 533 of file GEMDQMBase.h.

533  {
534  if (refs.empty())
535  return false;
536  if (refs.front() == nullptr)
537  return false;
538  return true;
539 }

◆ CreateSummaryHist()

dqm::impl::MonitorElement * GEMDQMBase::CreateSummaryHist ( DQMStore::IBooker ibooker,
TString  strName 
)
protected

Definition at line 122 of file GEMDQMBase.cc.

122  {
123  std::vector<ME3IdsKey> listLayers;
124  for (auto const& [key, stationInfo] : mapStationInfo_)
125  listLayers.push_back(key);
126  SortingLayers(listLayers);
127  for (Int_t i = 0; i < (Int_t)listLayers.size(); i++)
128  mapStationToIdx_[listLayers[i]] = i + 1;
129 
130  auto h2Res =
131  ibooker.book2D(strName, "", nMaxNumCh_, 0.5, nMaxNumCh_ + 0.5, listLayers.size(), 0.5, listLayers.size() + 0.5);
132  h2Res->setXTitle("Chamber");
133  h2Res->setYTitle("Layer");
134 
135  if (h2Res == nullptr)
136  return nullptr;
137 
138  for (Int_t i = 1; i <= nMaxNumCh_; i++)
139  h2Res->setBinLabel(i, Form("%i", i), 1);
140  for (Int_t i = 1; i <= (Int_t)listLayers.size(); i++) {
141  auto key = listLayers[i - 1];
142  auto strInfo = GEMUtils::getSuffixName(key); // NOTE: It starts with '_'
143  auto region = keyToRegion(key);
144  auto label = Form("GE%i%i-%cL%i;%s",
145  std::abs(region),
146  keyToStation(key),
147  (region > 0 ? 'P' : 'M'),
148  keyToLayer(key),
149  strInfo.Data());
150  h2Res->setBinLabel(i, label, 2);
151  Int_t nNumCh = mapStationInfo_[key].nNumChambers_;
152  h2Res->setBinContent(0, i, nNumCh);
153  }
154 
155  return h2Res;
156 }

References funct::abs(), dqm::implementation::IBooker::book2D(), GEMUtils::getSuffixName(), mps_fire::i, crabWrapper::key, label, HLT_FULL_cff::region, and dqm::impl::MonitorElement::setXTitle().

Referenced by GEMDigiSource::bookHistograms(), and GEMDAQStatusSource::bookHistograms().

◆ GenerateMEPerChamber()

int GEMDQMBase::GenerateMEPerChamber ( DQMStore::IBooker ibooker)
protected

Definition at line 158 of file GEMDQMBase.cc.

158  {
159  MEMap2Check_.clear();
160  MEMap2WithEtaCheck_.clear();
161  MEMap2AbsReWithEtaCheck_.clear();
162  MEMap3Check_.clear();
163  MEMap3WithChCheck_.clear();
164  MEMap4Check_.clear();
165  for (const auto& ch : gemChambers_) {
166  GEMDetId gid = ch.id();
167  ME2IdsKey key2{gid.region(), gid.station()};
168  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
169  ME4IdsKey key3WithChamber{gid.region(), gid.station(), gid.layer(), gid.chamber()};
170  if (!MEMap2Check_[key2]) {
171  auto strSuffixName = GEMUtils::getSuffixName(key2);
172  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2);
173  BookingHelper bh2(ibooker, strSuffixName, strSuffixTitle);
174  ProcessWithMEMap2(bh2, key2);
175  MEMap2Check_[key2] = true;
176  }
177  if (!MEMap3Check_[key3]) {
178  auto strSuffixName = GEMUtils::getSuffixName(key3);
179  auto strSuffixTitle = GEMUtils::getSuffixTitle(key3);
180  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
181  ProcessWithMEMap3(bh3, key3);
182  MEMap3Check_[key3] = true;
183  }
184  if (!MEMap3WithChCheck_[key3WithChamber]) {
185  Int_t nCh = gid.chamber();
186  Int_t nLa = gid.layer();
187  char cLS = (nCh % 2 == 0 ? 'L' : 'S'); // FIXME: Is it general enough?
188  auto strSuffixName = GEMUtils::getSuffixName(key2) + Form("-%02iL%i-%c", nCh, nLa, cLS);
189  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2) + Form("-%02iL%i-%c", nCh, nLa, cLS);
190  BookingHelper bh3Ch(ibooker, strSuffixName, strSuffixTitle);
191  ProcessWithMEMap3WithChamber(bh3Ch, key3WithChamber);
192  MEMap3WithChCheck_[key3WithChamber] = true;
193  }
194  for (auto iEta : ch.etaPartitions()) {
195  GEMDetId eId = iEta->id();
196  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), eId.ieta()};
197  ME3IdsKey key2WithEta{gid.region(), gid.station(), eId.ieta()};
198  ME3IdsKey key2AbsReWithEta{std::abs(gid.region()), gid.station(), eId.ieta()};
199  if (!MEMap4Check_[key4]) {
200  auto strSuffixName = GEMUtils::getSuffixName(key3) + Form("-E%02i", eId.ieta());
201  auto strSuffixTitle = GEMUtils::getSuffixTitle(key3) + Form("-E%02i", eId.ieta());
202  BookingHelper bh4(ibooker, strSuffixName, strSuffixTitle);
203  ProcessWithMEMap4(bh4, key4);
204  MEMap4Check_[key4] = true;
205  }
206  if (!MEMap2WithEtaCheck_[key2WithEta]) {
207  auto strSuffixName = GEMUtils::getSuffixName(key2) + Form("-E%02i", eId.ieta());
208  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2) + Form("-E%02i", eId.ieta());
209  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
210  ProcessWithMEMap2WithEta(bh3, key2WithEta);
211  MEMap2WithEtaCheck_[key2WithEta] = true;
212  }
213  if (!MEMap2AbsReWithEtaCheck_[key2AbsReWithEta]) {
214  auto strSuffixName = Form("_GE%i%i-E%02i", std::abs(gid.region()), gid.station(), eId.ieta());
215  auto strSuffixTitle = Form(" GE%i%i-E%02i", std::abs(gid.region()), gid.station(), eId.ieta());
216  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
217  ProcessWithMEMap2AbsReWithEta(bh3, key2AbsReWithEta);
218  MEMap2AbsReWithEtaCheck_[key2AbsReWithEta] = true;
219  }
220  }
221  }
222  return 0;
223 }

References funct::abs(), GEMDetId::chamber(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), L1TowerCalibrationProducer_cfi::iEta, GEMDetId::ieta(), GEMDetId::layer(), GEMDetId::region(), and GEMDetId::station().

Referenced by GEMRecHitSource::bookHistograms(), GEMDigiSource::bookHistograms(), and GEMDAQStatusSource::bookHistograms().

◆ getDetOccXBin()

int GEMDQMBase::getDetOccXBin ( const int  chamber,
const int  layer,
const int  n_chambers 
)
inlineprotected

Definition at line 574 of file GEMDQMBase.h.

574  {
575  return n_chambers * (chamber - 1) + layer;
576 }

References relativeConstraints::chamber, and phase1PixelTopology::layer.

◆ getIEtaFromVFAT()

int GEMDQMBase::getIEtaFromVFAT ( const int  station,
const int  vfat 
)
inlineprotected

Definition at line 566 of file GEMDQMBase.h.

566  {
567  if (station == 1)
568  return getIEtaFromVFATGE11(vfat);
569  return getIEtaFromVFATGE11(vfat); // FIXME: What about GE21 and GE0?
570 }

References getIEtaFromVFATGE11(), and relativeConstraints::station.

Referenced by GEMDQMBase::MEMapInfT< M, K >::SetLabelForVFATs().

◆ getIEtaFromVFATGE11()

int GEMDQMBase::getIEtaFromVFATGE11 ( const int  vfat)
inlineprotected

Definition at line 572 of file GEMDQMBase.h.

572 { return 8 - (vfat % nNumEtaPartitionGE11_); }

References nNumEtaPartitionGE11_.

Referenced by getIEtaFromVFAT().

◆ getMaxVFAT()

int GEMDQMBase::getMaxVFAT ( const int  station)
inlineprotected

Definition at line 542 of file GEMDQMBase.h.

542  {
543  if (station == 1)
544  return GEMeMap::maxVFatGE11_;
545  else if (station == 2)
546  return GEMeMap::maxVFatGE21_;
547  else
548  return -1;
549 }

References GEMeMap::maxVFatGE11_, GEMeMap::maxVFatGE21_, and relativeConstraints::station.

◆ getNumEtaPartitions()

int GEMDQMBase::getNumEtaPartitions ( const GEMStation station)
protected

Definition at line 30 of file GEMDQMBase.cc.

30  {
31  const auto&& superchambers = station->superChambers();
32  if (not checkRefs(superchambers)) {
33  edm::LogError(log_category_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
34  return 0;
35  }
36 
37  const auto& chambers = superchambers.front()->chambers();
38  if (not checkRefs(chambers)) {
39  edm::LogError(log_category_) << "failed to get a valid vector of GEMChamber ptrs" << std::endl;
40  return 0;
41  }
42 
43  return chambers.front()->nEtaPartitions();
44 }

References chambers, and relativeConstraints::station.

◆ getVFATNumber()

int GEMDQMBase::getVFATNumber ( const int  station,
const int  ieta,
const int  vfat_phi 
)
inlineprotected

Definition at line 551 of file GEMDQMBase.h.

551  {
552  if (station == 1)
553  return getVFATNumberGE11(station, ieta, vfat_phi);
554  return getVFATNumberGE11(station, ieta, vfat_phi); // FIXME: What about GE21 and GE0?
555 }

References getVFATNumberGE11(), LEDCalibrationChannels::ieta, and relativeConstraints::station.

Referenced by GEMDAQStatusSource::analyze(), and getVFATNumberByDigi().

◆ getVFATNumberByDigi()

int GEMDQMBase::getVFATNumberByDigi ( const int  station,
const int  ieta,
const int  digi 
)
inlineprotected

Definition at line 561 of file GEMDQMBase.h.

561  {
562  const int vfat_phi = digi / GEMeMap::maxChan_;
563  return getVFATNumber(station, ieta, vfat_phi);
564 }

References getVFATNumber(), LEDCalibrationChannels::ieta, GEMeMap::maxChan_, and relativeConstraints::station.

Referenced by GEMDigiSource::analyze().

◆ getVFATNumberGE11()

int GEMDQMBase::getVFATNumberGE11 ( const int  station,
const int  ieta,
const int  vfat_phi 
)
inlineprotected

Definition at line 557 of file GEMDQMBase.h.

557  {
558  return vfat_phi * nNumEtaPartitionGE11_ + (nNumEtaPartitionGE11_ - ieta);
559 }

References LEDCalibrationChannels::ieta, and nNumEtaPartitionGE11_.

Referenced by getVFATNumber().

◆ initGeometry()

int GEMDQMBase::initGeometry ( edm::EventSetup const &  iSetup)
protected

Definition at line 15 of file GEMDQMBase.cc.

15  {
16  GEMGeometry_ = nullptr;
17  try {
19  iSetup.get<MuonGeometryRecord>().get(hGeom);
20  GEMGeometry_ = &*hGeom;
22  edm::LogError(log_category_) << "+++ Error : GEM geometry is unavailable on event loop. +++\n";
23  return -1;
24  }
25 
26  return 0;
27 }

References MillePedeFileConverter_cfg::e, edm::EventSetup::get(), and get.

Referenced by GEMRecHitSource::bookHistograms(), GEMDigiSource::bookHistograms(), and GEMDAQStatusSource::bookHistograms().

◆ key3Tokey2()

ME2IdsKey GEMDQMBase::key3Tokey2 ( ME3IdsKey  key)
inlineprotected

Definition at line 486 of file GEMDQMBase.h.

486  {
487  auto keyNew = ME2IdsKey{keyToRegion(key), keyToStation(key)};
488  return keyNew;
489  };

References crabWrapper::key, keyToRegion(), and keyToStation().

◆ key4Tokey3()

ME3IdsKey GEMDQMBase::key4Tokey3 ( ME4IdsKey  key)
inlineprotected

◆ keyToChamber()

int GEMDQMBase::keyToChamber ( ME4IdsKey  key)
inlineprotected

Definition at line 482 of file GEMDQMBase.h.

482 { return std::get<3>(key); };

References crabWrapper::key.

Referenced by GEMDAQStatusSource::analyze().

◆ keyToIEta() [1/2]

int GEMDQMBase::keyToIEta ( ME3IdsKey  key)
inlineprotected

Definition at line 483 of file GEMDQMBase.h.

483 { return std::get<2>(key); };

References crabWrapper::key.

Referenced by GEMRecHitSource::analyze().

◆ keyToIEta() [2/2]

int GEMDQMBase::keyToIEta ( ME4IdsKey  key)
inlineprotected

Definition at line 484 of file GEMDQMBase.h.

484 { return std::get<3>(key); };

References crabWrapper::key.

◆ keyToLayer() [1/2]

int GEMDQMBase::keyToLayer ( ME3IdsKey  key)
inlineprotected

Definition at line 480 of file GEMDQMBase.h.

480 { return std::get<2>(key); };

References crabWrapper::key.

Referenced by key4Tokey3().

◆ keyToLayer() [2/2]

int GEMDQMBase::keyToLayer ( ME4IdsKey  key)
inlineprotected

Definition at line 481 of file GEMDQMBase.h.

481 { return std::get<2>(key); };

References crabWrapper::key.

◆ keyToRegion() [1/3]

int GEMDQMBase::keyToRegion ( ME2IdsKey  key)
inlineprotected

Definition at line 474 of file GEMDQMBase.h.

474 { return std::get<0>(key); };

References crabWrapper::key.

Referenced by key3Tokey2(), and key4Tokey3().

◆ keyToRegion() [2/3]

int GEMDQMBase::keyToRegion ( ME3IdsKey  key)
inlineprotected

Definition at line 475 of file GEMDQMBase.h.

475 { return std::get<0>(key); };

References crabWrapper::key.

◆ keyToRegion() [3/3]

int GEMDQMBase::keyToRegion ( ME4IdsKey  key)
inlineprotected

Definition at line 476 of file GEMDQMBase.h.

476 { return std::get<0>(key); };

References crabWrapper::key.

◆ keyToStation() [1/3]

int GEMDQMBase::keyToStation ( ME2IdsKey  key)
inlineprotected

Definition at line 477 of file GEMDQMBase.h.

477 { return std::get<1>(key); };

References crabWrapper::key.

Referenced by key3Tokey2(), and key4Tokey3().

◆ keyToStation() [2/3]

int GEMDQMBase::keyToStation ( ME3IdsKey  key)
inlineprotected

Definition at line 478 of file GEMDQMBase.h.

478 { return std::get<1>(key); };

References crabWrapper::key.

◆ keyToStation() [3/3]

int GEMDQMBase::keyToStation ( ME4IdsKey  key)
inlineprotected

Definition at line 479 of file GEMDQMBase.h.

479 { return std::get<1>(key); };

References crabWrapper::key.

◆ loadChambers()

int GEMDQMBase::loadChambers ( )
protected

Definition at line 46 of file GEMDQMBase.cc.

46  {
47  if (GEMGeometry_ == nullptr)
48  return -1;
49  gemChambers_.clear();
50  const std::vector<const GEMSuperChamber*>& superChambers_ = GEMGeometry_->superChambers();
51  for (auto sch : superChambers_) { // FIXME: This loop can be merged into the below loop
52  int n_lay = sch->nChambers();
53  for (int l = 0; l < n_lay; l++) {
54  Bool_t bExist = false;
55  for (const auto& ch : gemChambers_) {
56  if (ch.id() == sch->chamber(l + 1)->id()) {
57  bExist = true;
58  break;
59  }
60  }
61  if (bExist)
62  continue;
63  gemChambers_.push_back(*sch->chamber(l + 1));
64  }
65  }
66 
67  // Borrwed from DQMOffline/Muon/src/GEMOfflineMonitor.cc
68  nMaxNumCh_ = 0;
69  for (const GEMRegion* region : GEMGeometry_->regions()) {
70  const int region_number = region->region();
71 
72  for (const GEMStation* station : region->stations()) {
73  const auto&& superchambers = station->superChambers();
74 
75  const int station_number = station->station();
76  const int num_superchambers = superchambers.size();
77  const int num_layers = superchambers.front()->nChambers();
78  const int max_vfat = getMaxVFAT(station->station()); // the number of VFATs per GEMEtaPartition
79  const int num_etas = getNumEtaPartitions(station); // the number of eta partitions per GEMChamber
80  const int num_vfat = num_etas * max_vfat; // the number of VFATs per GEMChamber
81  const int num_digi = GEMeMap::maxChan_; // the number of digis (channels) per VFAT
82 
83  nMaxNumCh_ = std::max(nMaxNumCh_, num_superchambers);
84 
85  for (int layer_number = 1; layer_number <= num_layers; layer_number++) {
86  ME3IdsKey key3(region_number, station_number, layer_number);
87  mapStationInfo_[key3] =
88  MEStationInfo(region_number, station_number, layer_number, num_superchambers, num_etas, num_vfat, num_digi);
89  }
90  }
91  }
92 
93  if (mapStationInfo_.find(ME3IdsKey(-1, 0, 1)) != mapStationInfo_.end())
94  nNumEtaPartitionGE0_ = mapStationInfo_[ME3IdsKey(-1, 0, 1)].nNumEtaPartitions_;
95  if (mapStationInfo_.find(ME3IdsKey(-1, 1, 1)) != mapStationInfo_.end())
96  nNumEtaPartitionGE11_ = mapStationInfo_[ME3IdsKey(-1, 1, 1)].nNumEtaPartitions_;
97  if (mapStationInfo_.find(ME3IdsKey(-1, 2, 1)) != mapStationInfo_.end())
98  nNumEtaPartitionGE21_ = mapStationInfo_[ME3IdsKey(-1, 2, 1)].nNumEtaPartitions_;
99 
100  return 0;
101 }

References cmsLHEtoEOSManager::l, SiStripPI::max, GEMeMap::maxChan_, HLT_FULL_cff::region, and relativeConstraints::station.

Referenced by GEMRecHitSource::bookHistograms(), GEMDigiSource::bookHistograms(), and GEMDAQStatusSource::bookHistograms().

◆ ProcessWithMEMap2()

virtual int GEMDQMBase::ProcessWithMEMap2 ( BookingHelper bh,
ME2IdsKey  key 
)
inlineprotectedvirtual

Definition at line 467 of file GEMDQMBase.h.

467 { return 0; }; // must be overrided

◆ ProcessWithMEMap2AbsReWithEta()

virtual int GEMDQMBase::ProcessWithMEMap2AbsReWithEta ( BookingHelper bh,
ME3IdsKey  key 
)
inlineprotectedvirtual

Reimplemented in GEMRecHitSource.

Definition at line 469 of file GEMDQMBase.h.

469 { return 0; }; // must be overrided

◆ ProcessWithMEMap2WithEta()

virtual int GEMDQMBase::ProcessWithMEMap2WithEta ( BookingHelper bh,
ME3IdsKey  key 
)
inlineprotectedvirtual

Reimplemented in GEMDigiSource, and GEMRecHitSource.

Definition at line 468 of file GEMDQMBase.h.

468 { return 0; }; // must be overrided

◆ ProcessWithMEMap3()

virtual int GEMDQMBase::ProcessWithMEMap3 ( BookingHelper bh,
ME3IdsKey  key 
)
inlineprotectedvirtual

Reimplemented in GEMDAQStatusSource, GEMDigiSource, and GEMRecHitSource.

Definition at line 470 of file GEMDQMBase.h.

470 { return 0; }; // must be overrided

◆ ProcessWithMEMap3WithChamber()

virtual int GEMDQMBase::ProcessWithMEMap3WithChamber ( BookingHelper bh,
ME4IdsKey  key 
)
inlineprotectedvirtual

Reimplemented in GEMDAQStatusSource, GEMDigiSource, and GEMRecHitSource.

Definition at line 472 of file GEMDQMBase.h.

472 { return 0; }; // must be overrided

◆ ProcessWithMEMap4()

virtual int GEMDQMBase::ProcessWithMEMap4 ( BookingHelper bh,
ME4IdsKey  key 
)
inlineprotectedvirtual

Definition at line 471 of file GEMDQMBase.h.

471 { return 0; }; // must be overrided

◆ readRadiusEtaPartition()

int GEMDQMBase::readRadiusEtaPartition ( int  nRegion,
int  nStation 
)
protected

◆ SortingLayers()

int GEMDQMBase::SortingLayers ( std::vector< ME3IdsKey > &  listLayers)
protected

Definition at line 103 of file GEMDQMBase.cc.

103  {
104  std::sort(listLayers.begin(), listLayers.end(), [](ME3IdsKey key1, ME3IdsKey key2) {
105  Int_t re1 = std::get<0>(key1), st1 = std::get<1>(key1), la1 = std::get<2>(key1);
106  Int_t re2 = std::get<0>(key2), st2 = std::get<1>(key2), la2 = std::get<2>(key2);
107  if (re1 < 0 && re2 > 0)
108  return false;
109  if (re1 > 0 && re2 < 0)
110  return true;
111  Bool_t bRes = (re1 < 0); // == re2 < 0
112  Int_t sum1 = 256 * std::abs(re1) + 16 * st1 + 1 * la1;
113  Int_t sum2 = 256 * std::abs(re2) + 16 * st2 + 1 * la2;
114  if (sum1 <= sum2)
115  return bRes;
116  return !bRes;
117  });
118 
119  return 0;
120 }

References funct::abs(), jetUpdater_cfi::sort, and combinedConstraintHelpers::sum2().

Member Data Documentation

◆ gemChambers_

std::vector<GEMChamber> GEMDQMBase::gemChambers_
protected

Definition at line 513 of file GEMDQMBase.h.

Referenced by GEMRecHitSource::analyze(), and GEMDigiSource::analyze().

◆ GEMGeometry_

const GEMGeometry* GEMDQMBase::GEMGeometry_
protected

◆ log_category_

std::string GEMDQMBase::log_category_

Definition at line 457 of file GEMDQMBase.h.

Referenced by GEMRecHitSource::analyze(), and GEMDAQStatusSource::analyze().

◆ mapStationInfo_

std::map<ME3IdsKey, MEStationInfo> GEMDQMBase::mapStationInfo_
protected

◆ mapStationToIdx_

std::map<ME3IdsKey, int> GEMDQMBase::mapStationToIdx_
protected

Definition at line 523 of file GEMDQMBase.h.

Referenced by GEMDigiSource::analyze(), and GEMDAQStatusSource::analyze().

◆ MEMap2AbsReWithEtaCheck_

std::map<ME3IdsKey, bool> GEMDQMBase::MEMap2AbsReWithEtaCheck_
protected

Definition at line 517 of file GEMDQMBase.h.

◆ MEMap2Check_

std::map<ME2IdsKey, bool> GEMDQMBase::MEMap2Check_
protected

Definition at line 515 of file GEMDQMBase.h.

◆ MEMap2WithEtaCheck_

std::map<ME3IdsKey, bool> GEMDQMBase::MEMap2WithEtaCheck_
protected

Definition at line 516 of file GEMDQMBase.h.

◆ MEMap3Check_

std::map<ME3IdsKey, bool> GEMDQMBase::MEMap3Check_
protected

Definition at line 518 of file GEMDQMBase.h.

◆ MEMap3WithChCheck_

std::map<ME4IdsKey, bool> GEMDQMBase::MEMap3WithChCheck_
protected

Definition at line 519 of file GEMDQMBase.h.

◆ MEMap4Check_

std::map<ME4IdsKey, bool> GEMDQMBase::MEMap4Check_
protected

Definition at line 520 of file GEMDQMBase.h.

◆ nMaxNumCh_

int GEMDQMBase::nMaxNumCh_
protected

Definition at line 522 of file GEMDQMBase.h.

◆ nNumEtaPartitionGE0_

Int_t GEMDQMBase::nNumEtaPartitionGE0_
protected

Definition at line 526 of file GEMDQMBase.h.

◆ nNumEtaPartitionGE11_

Int_t GEMDQMBase::nNumEtaPartitionGE11_
protected

Definition at line 527 of file GEMDQMBase.h.

Referenced by getIEtaFromVFATGE11(), and getVFATNumberGE11().

◆ nNumEtaPartitionGE21_

Int_t GEMDQMBase::nNumEtaPartitionGE21_
protected

Definition at line 528 of file GEMDQMBase.h.

GEMDQMBase::MEMap3Check_
std::map< ME3IdsKey, bool > MEMap3Check_
Definition: GEMDQMBase.h:518
GEMDQMBase::MEMap2AbsReWithEtaCheck_
std::map< ME3IdsKey, bool > MEMap2AbsReWithEtaCheck_
Definition: GEMDQMBase.h:517
GEMDQMBase::gemChambers_
std::vector< GEMChamber > gemChambers_
Definition: GEMDQMBase.h:513
ME2IdsKey
std::tuple< Int_t, Int_t > ME2IdsKey
Definition: GEMValidationUtils.h:16
GEMDQMBase::MEMap4Check_
std::map< ME4IdsKey, bool > MEMap4Check_
Definition: GEMDQMBase.h:520
mps_fire.i
i
Definition: mps_fire.py:428
GEMDQMBase::keyToStation
int keyToStation(ME2IdsKey key)
Definition: GEMDQMBase.h:477
GEMDetId::layer
constexpr int layer() const
Definition: GEMDetId.h:190
GEMDetId::region
constexpr int region() const
Definition: GEMDetId.h:171
relativeConstraints.station
station
Definition: relativeConstraints.py:67
GEMDQMBase::GEMGeometry_
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:511
ME4IdsKey
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
Definition: GEMValidationUtils.h:20
GEMDQMBase::MEMap2WithEtaCheck_
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
Definition: GEMDQMBase.h:516
GEMDQMBase::SortingLayers
int SortingLayers(std::vector< ME3IdsKey > &listLayers)
Definition: GEMDQMBase.cc:103
GEMDQMBase::getMaxVFAT
int getMaxVFAT(const int)
Definition: GEMDQMBase.h:542
GEMDQMBase::nMaxNumCh_
int nMaxNumCh_
Definition: GEMDQMBase.h:522
GEMDQMBase::ProcessWithMEMap2WithEta
virtual int ProcessWithMEMap2WithEta(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:468
GEMUtils::getSuffixName
TString getSuffixName(Int_t region_id)
Definition: GEMValidationUtils.cc:5
GEMDQMBase::nNumEtaPartitionGE0_
Int_t nNumEtaPartitionGE0_
Definition: GEMDQMBase.h:526
GEMeMap::maxVFatGE21_
static const int maxVFatGE21_
Definition: GEMeMap.h:68
GEMDQMBase::getVFATNumberGE11
int getVFATNumberGE11(const int, const int, const int)
Definition: GEMDQMBase.h:557
GEMDQMBase::nNumEtaPartitionGE21_
Int_t nNumEtaPartitionGE21_
Definition: GEMDQMBase.h:528
GEMStation
Definition: GEMStation.h:19
edm::ESHandle< GEMGeometry >
dqm::impl::MonitorElement::setXTitle
virtual void setXTitle(std::string const &title)
Definition: MonitorElement.cc:861
GEMeMap::maxVFatGE11_
static const int maxVFatGE11_
Definition: GEMeMap.h:67
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
GEMDetId::chamber
constexpr int chamber() const
Definition: GEMDetId.h:183
GEMDQMBase::getVFATNumber
int getVFATNumber(const int, const int, const int)
Definition: GEMDQMBase.h:551
GEMDQMBase::MEMap3WithChCheck_
std::map< ME4IdsKey, bool > MEMap3WithChCheck_
Definition: GEMDQMBase.h:519
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GEMDQMBase::ProcessWithMEMap2AbsReWithEta
virtual int ProcessWithMEMap2AbsReWithEta(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:469
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
GEMDQMBase::ProcessWithMEMap2
virtual int ProcessWithMEMap2(BookingHelper &bh, ME2IdsKey key)
Definition: GEMDQMBase.h:467
GEMDetId
Definition: GEMDetId.h:18
GEMDQMBase::checkRefs
bool checkRefs(const std::vector< T * > &)
Definition: GEMDQMBase.h:533
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
chambers
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
GEMGeometry::regions
const std::vector< const GEMRegion * > & regions() const
Return a vector of all GEM regions.
Definition: GEMGeometry.cc:30
GEMDQMBase::nNumEtaPartitionGE11_
Int_t nNumEtaPartitionGE11_
Definition: GEMDQMBase.h:527
GEMDQMBase::ProcessWithMEMap4
virtual int ProcessWithMEMap4(BookingHelper &bh, ME4IdsKey key)
Definition: GEMDQMBase.h:471
combinedConstraintHelpers::sum2
void sum2(T &x, T y)
Definition: CombinedKinematicConstraintT.h:74
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:204
looper.cfg
cfg
Definition: looper.py:297
GEMDQMBase::keyToLayer
int keyToLayer(ME3IdsKey key)
Definition: GEMDQMBase.h:480
GEMDQMBase::log_category_
std::string log_category_
Definition: GEMDQMBase.h:457
GEMDQMBase::mapStationInfo_
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:524
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
GEMUtils::getSuffixTitle
TString getSuffixTitle(Int_t region_id)
Definition: GEMValidationUtils.cc:34
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
ME3IdsKey
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
Definition: GEMValidationUtils.h:19
GEMDQMBase::mapStationToIdx_
std::map< ME3IdsKey, int > mapStationToIdx_
Definition: GEMDQMBase.h:523
GEMDQMBase::keyToRegion
int keyToRegion(ME2IdsKey key)
Definition: GEMDQMBase.h:474
edm::eventsetup::NoProxyException
Definition: NoProxyException.h:31
L1TowerCalibrationProducer_cfi.iEta
iEta
Definition: L1TowerCalibrationProducer_cfi.py:60
GEMDetId::station
constexpr int station() const
Definition: GEMDetId.h:179
GEMDQMBase::MEMap2Check_
std::map< ME2IdsKey, bool > MEMap2Check_
Definition: GEMDQMBase.h:515
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GEMGeometry::superChambers
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
Definition: GEMGeometry.cc:36
GEMRegion
Definition: GEMRegion.h:19
GEMDetId::ieta
constexpr int ieta() const
Definition: GEMDetId.h:199
GEMDQMBase::ProcessWithMEMap3WithChamber
virtual int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key)
Definition: GEMDQMBase.h:472
GEMDQMBase::getNumEtaPartitions
int getNumEtaPartitions(const GEMStation *)
Definition: GEMDQMBase.cc:30
crabWrapper.key
key
Definition: crabWrapper.py:19
GEMDQMBase::getIEtaFromVFATGE11
int getIEtaFromVFATGE11(const int vfat)
Definition: GEMDQMBase.h:572
GEMDQMBase::ProcessWithMEMap3
virtual int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:470
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
label
const char * label
Definition: PFTauDecayModeTools.cc:11
GEMeMap::maxChan_
static const int maxChan_
Definition: GEMeMap.h:72
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37