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

enum  {
  GEMDQM_RUNTYPE_ONLINE, GEMDQM_RUNTYPE_OFFLINE, GEMDQM_RUNTYPE_RELVAL, GEMDQM_RUNTYPE_ALLPLOTS,
  GEMDQM_RUNTYPE_NONE = -1
}
 
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 >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

 GEMDQMBase (const edm::ParameterSet &cfg)
 
int readGeometryPhiInfoChamber (const GEMStation *station, MEStationInfo &stationInfo)
 
int readGeometryRadiusInfoChamber (const GEMStation *station, MEStationInfo &stationInfo)
 
 ~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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Public Attributes

std::string log_category_
 
Int_t nRunType_
 

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 getIdxModule (const int, const int)
 
int getIEtaFromVFAT (const int station, const int vfat)
 
int getIEtaFromVFATGE0 (const int vfat)
 
int getIEtaFromVFATGE11 (const int vfat)
 
int getIEtaFromVFATGE21 (const int vfat)
 
int getMaxVFAT (const int)
 
std::string getNameDirLayer (ME3IdsKey key3)
 
int getNumEtaPartitions (const GEMStation *)
 
int getNumModule (const int)
 
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)
 
Float_t restrictAngle (const Float_t fTheta, const Float_t fStart)
 
int SortingLayers (std::vector< ME3IdsKey > &listLayers)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Protected Attributes

const GEMGeometryGEMGeometry_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomToken_
 
std::vector< GEMDetIdlistChamberId_
 
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
 
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_
 
- 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 479 of file GEMDQMBase.h.

◆ MEMap3Inf

Definition at line 480 of file GEMDQMBase.h.

◆ MEMap4Inf

Definition at line 481 of file GEMDQMBase.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
GEMDQM_RUNTYPE_ONLINE 
GEMDQM_RUNTYPE_OFFLINE 
GEMDQM_RUNTYPE_RELVAL 
GEMDQM_RUNTYPE_ALLPLOTS 
GEMDQM_RUNTYPE_NONE 

Definition at line 542 of file GEMDQMBase.h.

Constructor & Destructor Documentation

◆ GEMDQMBase()

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

Definition at line 7 of file GEMDQMBase.cc.

References edm::BeginRun, looper::cfg, GEMDQM_RUNTYPE_ALLPLOTS, GEMDQM_RUNTYPE_OFFLINE, GEMDQM_RUNTYPE_ONLINE, GEMDQM_RUNTYPE_RELVAL, log_category_, nRunType_, and AlCaHLTBitMon_QueryRunRegistry::string.

7  : geomToken_(esConsumes<edm::Transition::BeginRun>()) {
8  std::string strRunType = cfg.getUntrackedParameter<std::string>("runType");
9 
11 
12  if (strRunType == "online") {
14  } else if (strRunType == "offline") {
16  } else if (strRunType == "relval") {
18  } else if (strRunType == "allplots") {
20  } else {
21  edm::LogError(log_category_) << "+++ Error : GEM geometry is unavailable on event loop. +++\n";
22  }
23 
24  log_category_ = cfg.getUntrackedParameter<std::string>("logCategory");
25 }
Int_t nRunType_
Definition: GEMDQMBase.h:550
Log< level::Error, false > LogError
std::string log_category_
Definition: GEMDQMBase.h:552
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
Definition: GEMDQMBase.h:610

◆ ~GEMDQMBase()

GEMDQMBase::~GEMDQMBase ( )
inlineoverride

Definition at line 540 of file GEMDQMBase.h.

540 {};

Member Function Documentation

◆ checkRefs()

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

Definition at line 629 of file GEMDQMBase.h.

Referenced by getNumEtaPartitions().

629  {
630  if (refs.empty())
631  return false;
632  if (refs.front() == nullptr)
633  return false;
634  return true;
635 }

◆ CreateSummaryHist()

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

Definition at line 148 of file GEMDQMBase.cc.

References dqm::implementation::IBooker::book2D(), GEMUtils::getSuffixName(), mps_fire::i, crabWrapper::key, keyToLayer(), keyToRegion(), keyToStation(), label, mapStationInfo_, mapStationToIdx_, nMaxNumCh_, nano_mu_digi_cff::region, dqm::impl::MonitorElement::setXTitle(), and SortingLayers().

Referenced by GEMDAQStatusSource::bookHistograms().

148  {
149  std::vector<ME3IdsKey> listLayers;
150  listLayers.reserve(mapStationInfo_.size());
151  for (auto const& [key, stationInfo] : mapStationInfo_)
152  listLayers.push_back(key);
153  SortingLayers(listLayers);
154  for (Int_t i = 0; i < (Int_t)listLayers.size(); i++)
155  mapStationToIdx_[listLayers[i]] = i + 1;
156 
157  auto h2Res =
158  ibooker.book2D(strName, "", nMaxNumCh_, 0.5, nMaxNumCh_ + 0.5, listLayers.size(), 0.5, listLayers.size() + 0.5);
159  h2Res->setXTitle("Chamber");
160  h2Res->setYTitle("Layer");
161 
162  if (h2Res == nullptr)
163  return nullptr;
164 
165  for (Int_t i = 1; i <= nMaxNumCh_; i++)
166  h2Res->setBinLabel(i, Form("%i", i), 1);
167  for (Int_t i = 1; i <= (Int_t)listLayers.size(); i++) {
168  auto key = listLayers[i - 1];
169  auto strInfo = GEMUtils::getSuffixName(key); // NOTE: It starts with '_'
170  auto region = keyToRegion(key);
171  auto label =
172  Form("GE%+i1-%cL%i;%s", region * keyToStation(key), (region > 0 ? 'P' : 'M'), keyToLayer(key), strInfo.Data());
173  h2Res->setBinLabel(i, label, 2);
174  Int_t nNumCh = mapStationInfo_[key].nNumChambers_ * mapStationInfo_[key].nNumModules_;
175  h2Res->setBinContent(0, i, nNumCh);
176  }
177 
178  return h2Res;
179 }
TString getSuffixName(Int_t region_id)
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:624
int keyToRegion(ME2IdsKey key)
Definition: GEMDQMBase.h:566
std::map< ME3IdsKey, int > mapStationToIdx_
Definition: GEMDQMBase.h:623
int keyToLayer(ME3IdsKey key)
Definition: GEMDQMBase.h:572
char const * label
virtual void setXTitle(std::string const &title)
int keyToStation(ME2IdsKey key)
Definition: GEMDQMBase.h:569
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:212
int SortingLayers(std::vector< ME3IdsKey > &listLayers)
Definition: GEMDQMBase.cc:129
int nMaxNumCh_
Definition: GEMDQMBase.h:622

◆ GenerateMEPerChamber()

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

Definition at line 181 of file GEMDQMBase.cc.

References funct::abs(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), l1tTowerCalibrationProducer_cfi::iEta, GEMDetId::ieta(), listChamberId_, mapEtaPartition_, MEMap2AbsReWithEtaCheck_, MEMap2Check_, MEMap2WithEtaCheck_, MEMap3Check_, MEMap3WithChCheck_, MEMap4Check_, ProcessWithMEMap2(), ProcessWithMEMap2AbsReWithEta(), ProcessWithMEMap2WithEta(), ProcessWithMEMap3(), ProcessWithMEMap3WithChamber(), and ProcessWithMEMap4().

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

181  {
182  MEMap2Check_.clear();
183  MEMap2WithEtaCheck_.clear();
184  MEMap2AbsReWithEtaCheck_.clear();
185  MEMap3Check_.clear();
186  MEMap3WithChCheck_.clear();
187  MEMap4Check_.clear();
188  for (auto gid : listChamberId_) {
189  ME2IdsKey key2{gid.region(), gid.station()};
190  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
191  ME4IdsKey key3WithChamber{gid.region(), gid.station(), gid.layer(), gid.chamber()};
192  if (!MEMap2Check_[key2]) {
193  auto strSuffixName = GEMUtils::getSuffixName(key2);
194  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2);
195  BookingHelper bh2(ibooker, strSuffixName, strSuffixTitle);
196  ProcessWithMEMap2(bh2, key2);
197  MEMap2Check_[key2] = true;
198  }
199  if (!MEMap3Check_[key3]) {
200  auto strSuffixName = GEMUtils::getSuffixName(key3);
201  auto strSuffixTitle = GEMUtils::getSuffixTitle(key3);
202  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
203  ProcessWithMEMap3(bh3, key3);
204  MEMap3Check_[key3] = true;
205  }
206  if (!MEMap3WithChCheck_[key3WithChamber]) {
207  Int_t nCh = gid.chamber();
208  Int_t nLa = gid.layer();
209  char cLS = (nCh % 2 == 0 ? 'L' : 'S'); // FIXME: Is it general enough?
210  auto strSuffixName = GEMUtils::getSuffixName(key2) + Form("-%02iL%i-%c", nCh, nLa, cLS);
211  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2) + Form("-%02iL%i-%c", nCh, nLa, cLS);
212  BookingHelper bh3Ch(ibooker, strSuffixName, strSuffixTitle);
213  ProcessWithMEMap3WithChamber(bh3Ch, key3WithChamber);
214  MEMap3WithChCheck_[key3WithChamber] = true;
215  }
216  for (auto iEta : mapEtaPartition_[gid]) {
217  GEMDetId eId = iEta->id();
218  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), eId.ieta()};
219  ME3IdsKey key2WithEta{gid.region(), gid.station(), eId.ieta()};
220  ME3IdsKey key2AbsReWithEta{std::abs(gid.region()), gid.station(), eId.ieta()};
221  if (!MEMap4Check_[key4]) {
222  auto strSuffixName = GEMUtils::getSuffixName(key3) + Form("-E%02i", eId.ieta());
223  auto strSuffixTitle = GEMUtils::getSuffixTitle(key3) + Form("-E%02i", eId.ieta());
224  BookingHelper bh4(ibooker, strSuffixName, strSuffixTitle);
225  ProcessWithMEMap4(bh4, key4);
226  MEMap4Check_[key4] = true;
227  }
228  if (!MEMap2WithEtaCheck_[key2WithEta]) {
229  auto strSuffixName = GEMUtils::getSuffixName(key2) + Form("-E%02i", eId.ieta());
230  auto strSuffixTitle = GEMUtils::getSuffixTitle(key2) + Form("-E%02i", eId.ieta());
231  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
232  ProcessWithMEMap2WithEta(bh3, key2WithEta);
233  MEMap2WithEtaCheck_[key2WithEta] = true;
234  }
235  if (!MEMap2AbsReWithEtaCheck_[key2AbsReWithEta]) {
236  auto strSuffixName = Form("_GE%d1-E%02i", gid.station(), eId.ieta());
237  auto strSuffixTitle = Form(" GE%d1-E%02i", gid.station(), eId.ieta());
238  BookingHelper bh3(ibooker, strSuffixName, strSuffixTitle);
239  ProcessWithMEMap2AbsReWithEta(bh3, key2AbsReWithEta);
240  MEMap2AbsReWithEtaCheck_[key2AbsReWithEta] = true;
241  }
242  }
243  }
244  return 0;
245 }
virtual int ProcessWithMEMap4(BookingHelper &bh, ME4IdsKey key)
Definition: GEMDQMBase.h:563
TString getSuffixName(Int_t region_id)
std::vector< GEMDetId > listChamberId_
Definition: GEMDQMBase.h:612
virtual int ProcessWithMEMap2AbsReWithEta(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:561
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
TString getSuffixTitle(Int_t region_id)
std::map< ME3IdsKey, bool > MEMap2AbsReWithEtaCheck_
Definition: GEMDQMBase.h:617
std::map< ME2IdsKey, bool > MEMap2Check_
Definition: GEMDQMBase.h:615
virtual int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:562
std::map< ME3IdsKey, bool > MEMap3Check_
Definition: GEMDQMBase.h:618
virtual int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key)
Definition: GEMDQMBase.h:564
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< ME4IdsKey, bool > MEMap4Check_
Definition: GEMDQMBase.h:620
constexpr int ieta() const
Definition: GEMDetId.h:199
virtual int ProcessWithMEMap2WithEta(BookingHelper &bh, ME3IdsKey key)
Definition: GEMDQMBase.h:560
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
Definition: GEMDQMBase.h:616
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
Definition: GEMDQMBase.h:613
std::tuple< Int_t, Int_t > ME2IdsKey
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
std::map< ME4IdsKey, bool > MEMap3WithChCheck_
Definition: GEMDQMBase.h:619
virtual int ProcessWithMEMap2(BookingHelper &bh, ME2IdsKey key)
Definition: GEMDQMBase.h:559

◆ getDetOccXBin()

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

Definition at line 708 of file GEMDQMBase.h.

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

708  {
709  return n_chambers * (chamber - 1) + layer;
710 }

◆ getIdxModule()

int GEMDQMBase::getIdxModule ( const int  station,
const int  chamberType 
)
inlineprotected

Definition at line 660 of file GEMDQMBase.h.

References nano_mu_digi_cff::chamberType, and relativeConstraints::station.

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

660  {
661  if (station == 0)
662  return 1;
663  if (station == 1)
664  return 1;
665  else if (station == 2)
666  return chamberType - 20;
667  else
668  return -1;
669 }

◆ getIEtaFromVFAT()

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

Definition at line 686 of file GEMDQMBase.h.

References getIEtaFromVFATGE0(), getIEtaFromVFATGE11(), getIEtaFromVFATGE21(), and relativeConstraints::station.

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

686  {
687  if (station == 0)
688  return getIEtaFromVFATGE0(vfat);
689  if (station == 1)
690  return getIEtaFromVFATGE11(vfat);
691  if (station == 2)
692  return getIEtaFromVFATGE21(vfat);
693  return getIEtaFromVFATGE11(vfat); // FIXME: What about GE21 and GE0?
694 }
int getIEtaFromVFATGE0(const int vfat)
Definition: GEMDQMBase.h:696
int getIEtaFromVFATGE21(const int vfat)
Definition: GEMDQMBase.h:704
int getIEtaFromVFATGE11(const int vfat)
Definition: GEMDQMBase.h:700

◆ getIEtaFromVFATGE0()

int GEMDQMBase::getIEtaFromVFATGE0 ( const int  vfat)
inlineprotected

Definition at line 696 of file GEMDQMBase.h.

References GEMeMap::maxiEtaIdGE0_.

Referenced by getIEtaFromVFAT().

696  {
698 }
static const int maxiEtaIdGE0_
Definition: GEMeMap.h:69

◆ getIEtaFromVFATGE11()

int GEMDQMBase::getIEtaFromVFATGE11 ( const int  vfat)
inlineprotected

Definition at line 700 of file GEMDQMBase.h.

References GEMeMap::maxiEtaIdGE11_.

Referenced by getIEtaFromVFAT().

700  {
702 }
static const int maxiEtaIdGE11_
Definition: GEMeMap.h:70

◆ getIEtaFromVFATGE21()

int GEMDQMBase::getIEtaFromVFATGE21 ( const int  vfat)
inlineprotected

Definition at line 704 of file GEMDQMBase.h.

References GEMeMap::maxiEtaIdGE21_.

Referenced by getIEtaFromVFAT().

704  {
706 }
static const int maxiEtaIdGE21_
Definition: GEMeMap.h:71

◆ getMaxVFAT()

int GEMDQMBase::getMaxVFAT ( const int  station)
inlineprotected

Definition at line 638 of file GEMDQMBase.h.

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

Referenced by loadChambers().

638  {
639  if (station == 0)
640  return GEMeMap::maxVFatGE0_;
641  if (station == 1)
642  return GEMeMap::maxVFatGE11_;
643  else if (station == 2)
644  return GEMeMap::maxVFatGE21_ / 2;
645  else
646  return -1;
647 }
static const int maxVFatGE0_
Definition: GEMeMap.h:66
static const int maxVFatGE21_
Definition: GEMeMap.h:68
static const int maxVFatGE11_
Definition: GEMeMap.h:67

◆ getNameDirLayer()

std::string GEMDQMBase::getNameDirLayer ( ME3IdsKey  key3)
inlineprotected

Definition at line 718 of file GEMDQMBase.h.

References keyToLayer(), keyToRegion(), keyToStation(), and AlCaHLTBitMon_QueryRunRegistry::string.

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

718  {
719  auto nStation = keyToStation(key3);
720  char cRegion = (keyToRegion(key3) > 0 ? 'P' : 'M');
721  auto nLayer = keyToLayer(key3);
722  return std::string(Form("GE%i1-%c-L%i", nStation, cRegion, nLayer));
723 }
int keyToRegion(ME2IdsKey key)
Definition: GEMDQMBase.h:566
int keyToLayer(ME3IdsKey key)
Definition: GEMDQMBase.h:572
int keyToStation(ME2IdsKey key)
Definition: GEMDQMBase.h:569

◆ getNumEtaPartitions()

int GEMDQMBase::getNumEtaPartitions ( const GEMStation station)
protected

Definition at line 40 of file GEMDQMBase.cc.

References chambers, checkRefs(), log_category_, and relativeConstraints::station.

Referenced by loadChambers().

40  {
41  const auto&& superchambers = station->superChambers();
42  if (not checkRefs(superchambers)) {
43  edm::LogError(log_category_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
44  return 0;
45  }
46 
47  const auto& chambers = superchambers.front()->chambers();
48  if (not checkRefs(chambers)) {
49  edm::LogError(log_category_) << "failed to get a valid vector of GEMChamber ptrs" << std::endl;
50  return 0;
51  }
52 
53  return chambers.front()->nEtaPartitions();
54 }
bool checkRefs(const std::vector< T *> &)
Definition: GEMDQMBase.h:629
Log< level::Error, false > LogError
std::string log_category_
Definition: GEMDQMBase.h:552
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ getNumModule()

int GEMDQMBase::getNumModule ( const int  station)
inlineprotected

Definition at line 649 of file GEMDQMBase.h.

References relativeConstraints::station.

Referenced by loadChambers().

649  {
650  if (station == 0)
651  return 1;
652  if (station == 1)
653  return 1;
654  else if (station == 2)
655  return 4;
656  else
657  return -1;
658 }

◆ getVFATNumber()

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

Definition at line 671 of file GEMDQMBase.h.

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

Referenced by getVFATNumberByDigi().

671  {
672  if (station == 1)
673  return getVFATNumberGE11(station, ieta, vfat_phi);
674  return getVFATNumberGE11(station, ieta, vfat_phi); // FIXME: What about GE21 and GE0?
675 }
int getVFATNumberGE11(const int, const int, const int)
Definition: GEMDQMBase.h:677

◆ getVFATNumberByDigi()

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

Definition at line 681 of file GEMDQMBase.h.

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

681  {
682  const int vfat_phi = digi / GEMeMap::maxChan_;
683  return getVFATNumber(station, ieta, vfat_phi);
684 }
int getVFATNumber(const int, const int, const int)
Definition: GEMDQMBase.h:671
static const int maxChan_
Definition: GEMeMap.h:72

◆ getVFATNumberGE11()

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

Definition at line 677 of file GEMDQMBase.h.

References hcalRecHitTable_cff::ieta, and GEMeMap::maxiEtaIdGE11_.

Referenced by getVFATNumber().

677  {
678  return vfat_phi * GEMeMap::maxiEtaIdGE11_ + (GEMeMap::maxiEtaIdGE11_ - ieta);
679 }
static const int maxiEtaIdGE11_
Definition: GEMeMap.h:70

◆ initGeometry()

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

Definition at line 27 of file GEMDQMBase.cc.

References GEMGeometry_, geomToken_, edm::EventSetup::getHandle(), patZpeak::handle, and log_category_.

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

27  {
28  GEMGeometry_ = nullptr;
29  if (auto handle = iSetup.getHandle(geomToken_)) {
30  GEMGeometry_ = handle.product();
31  } else {
32  edm::LogError(log_category_) << "+++ Error : GEM geometry is unavailable on event loop. +++\n";
33  return -1;
34  }
35 
36  return 0;
37 }
Log< level::Error, false > LogError
std::string log_category_
Definition: GEMDQMBase.h:552
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
Definition: GEMDQMBase.h:610
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:609

◆ key3Tokey2()

ME2IdsKey GEMDQMBase::key3Tokey2 ( ME3IdsKey  key)
inlineprotected

Definition at line 578 of file GEMDQMBase.h.

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

578  {
579  auto keyNew = ME2IdsKey{keyToRegion(key), keyToStation(key)};
580  return keyNew;
581  };
int keyToRegion(ME2IdsKey key)
Definition: GEMDQMBase.h:566
int keyToStation(ME2IdsKey key)
Definition: GEMDQMBase.h:569
std::tuple< Int_t, Int_t > ME2IdsKey

◆ key4Tokey3()

ME3IdsKey GEMDQMBase::key4Tokey3 ( ME4IdsKey  key)
inlineprotected

Definition at line 583 of file GEMDQMBase.h.

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

Referenced by GEMRecHitSource::analyze(), GEMDAQStatusSource::FillStatusSummaryPlot(), GEMRecHitSource::ProcessWithMEMap3WithChamber(), GEMDigiSource::ProcessWithMEMap3WithChamber(), and GEMDAQStatusSource::ProcessWithMEMap3WithChamber().

583  {
584  auto keyNew = ME3IdsKey{keyToRegion(key), keyToStation(key), keyToLayer(key)};
585  return keyNew;
586  };
int keyToRegion(ME2IdsKey key)
Definition: GEMDQMBase.h:566
int keyToLayer(ME3IdsKey key)
Definition: GEMDQMBase.h:572
int keyToStation(ME2IdsKey key)
Definition: GEMDQMBase.h:569
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey

◆ keyToChamber()

int GEMDQMBase::keyToChamber ( ME4IdsKey  key)
inlineprotected

Definition at line 574 of file GEMDQMBase.h.

References crabWrapper::key.

Referenced by GEMDAQStatusSource::FillStatusSummaryPlot().

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

◆ keyToIEta() [1/2]

int GEMDQMBase::keyToIEta ( ME3IdsKey  key)
inlineprotected

Definition at line 575 of file GEMDQMBase.h.

References crabWrapper::key.

Referenced by GEMRecHitSource::analyze().

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

◆ keyToIEta() [2/2]

int GEMDQMBase::keyToIEta ( ME4IdsKey  key)
inlineprotected

Definition at line 576 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ keyToLayer() [1/2]

int GEMDQMBase::keyToLayer ( ME3IdsKey  key)
inlineprotected

Definition at line 572 of file GEMDQMBase.h.

References crabWrapper::key.

Referenced by CreateSummaryHist(), getNameDirLayer(), and key4Tokey3().

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

◆ keyToLayer() [2/2]

int GEMDQMBase::keyToLayer ( ME4IdsKey  key)
inlineprotected

Definition at line 573 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ keyToRegion() [1/3]

int GEMDQMBase::keyToRegion ( ME2IdsKey  key)
inlineprotected

Definition at line 566 of file GEMDQMBase.h.

References crabWrapper::key.

Referenced by CreateSummaryHist(), getNameDirLayer(), key3Tokey2(), and key4Tokey3().

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

◆ keyToRegion() [2/3]

int GEMDQMBase::keyToRegion ( ME3IdsKey  key)
inlineprotected

Definition at line 567 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ keyToRegion() [3/3]

int GEMDQMBase::keyToRegion ( ME4IdsKey  key)
inlineprotected

Definition at line 568 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ keyToStation() [1/3]

int GEMDQMBase::keyToStation ( ME2IdsKey  key)
inlineprotected

◆ keyToStation() [2/3]

int GEMDQMBase::keyToStation ( ME3IdsKey  key)
inlineprotected

Definition at line 570 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ keyToStation() [3/3]

int GEMDQMBase::keyToStation ( ME4IdsKey  key)
inlineprotected

Definition at line 571 of file GEMDQMBase.h.

References crabWrapper::key.

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

◆ loadChambers()

int GEMDQMBase::loadChambers ( )
protected

Definition at line 56 of file GEMDQMBase.cc.

References chambers, GEMGeometry_, getMaxVFAT(), getNumEtaPartitions(), getNumModule(), l1tTowerCalibrationProducer_cfi::iEta, listChamberId_, mapEtaPartition_, mapStationInfo_, SiStripPI::max, GEMeMap::maxChan_, nMaxNumCh_, readGeometryPhiInfoChamber(), readGeometryRadiusInfoChamber(), nano_mu_digi_cff::region, GEMGeometry::regions(), and relativeConstraints::station.

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

56  {
57  if (GEMGeometry_ == nullptr)
58  return -1;
59  listChamberId_.clear();
60  mapEtaPartition_.clear();
61  for (const GEMRegion* region : GEMGeometry_->regions()) {
62  for (const GEMStation* station : region->stations()) {
63  for (auto sch : station->superChambers()) {
64  for (auto pchamber : sch->chambers()) {
65  GEMDetId gid = pchamber->id();
66  listChamberId_.push_back(pchamber->id());
67  for (auto iEta : pchamber->etaPartitions()) {
68  mapEtaPartition_[gid].push_back(iEta);
69  }
70  }
71  }
72  }
73  }
74 
75  // Borrwed from DQM/GEM/src/GEMOfflineMonitor.cc
76  nMaxNumCh_ = 0;
77  for (const GEMRegion* region : GEMGeometry_->regions()) {
78  const int region_number = region->region();
79 
80  for (const GEMStation* station : region->stations()) {
81  const auto&& superchambers = station->superChambers();
82 
83  const int station_number = station->station();
84  const int num_superchambers = (station_number == 1 ? 36 : 18);
85  const int num_mod = getNumModule(station->station());
86  const int max_vfat = getMaxVFAT(station->station()); // the number of VFATs per GEMEtaPartition
87  const int num_etas = getNumEtaPartitions(station); // the number of eta partitions per GEMChamber
88  const int num_vfat = num_etas * max_vfat; // the number of VFATs per GEMChamber
89  const int strip1st = (station_number == 2 ? 1 : 0); // the index of the first strip
90  const int num_digi = GEMeMap::maxChan_; // the number of digis (channels) per VFAT
91 
92  nMaxNumCh_ = std::max(nMaxNumCh_, num_superchambers * num_mod);
93 
94  Int_t nMinIdxChamber = 1048576;
95  Int_t nMaxIdxChamber = -1048576;
96  for (auto sch : superchambers) {
97  auto nIdxChamber = sch->chambers().front()->id().chamber();
98  if (nMinIdxChamber > nIdxChamber)
99  nMinIdxChamber = nIdxChamber;
100  if (nMaxIdxChamber < nIdxChamber)
101  nMaxIdxChamber = nIdxChamber;
102  }
103 
104  const auto& chambers = superchambers.front()->chambers();
105 
106  for (auto pchamber : chambers) {
107  int layer_number = pchamber->id().layer();
108  ME3IdsKey key3(region_number, station_number, layer_number);
109  mapStationInfo_[key3] = MEStationInfo(region_number,
110  station_number,
111  layer_number,
112  num_superchambers,
113  num_mod,
114  num_etas,
115  num_vfat,
116  strip1st,
117  num_digi,
118  nMinIdxChamber,
119  nMaxIdxChamber);
122  }
123  }
124  }
125 
126  return 0;
127 }
std::vector< GEMDetId > listChamberId_
Definition: GEMDQMBase.h:612
int readGeometryRadiusInfoChamber(const GEMStation *station, MEStationInfo &stationInfo)
Definition: GEMDQMBase.cc:247
int getNumModule(const int)
Definition: GEMDQMBase.h:649
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:624
int readGeometryPhiInfoChamber(const GEMStation *station, MEStationInfo &stationInfo)
Definition: GEMDQMBase.cc:308
static const int maxChan_
Definition: GEMeMap.h:72
int getNumEtaPartitions(const GEMStation *)
Definition: GEMDQMBase.cc:40
int getMaxVFAT(const int)
Definition: GEMDQMBase.h:638
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:609
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
Definition: GEMDQMBase.h:613
const std::vector< const GEMRegion * > & regions() const
Return a vector of all GEM regions.
Definition: GEMGeometry.cc:30
int nMaxNumCh_
Definition: GEMDQMBase.h:622
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ ProcessWithMEMap2()

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

Reimplemented in GEMDigiSource.

Definition at line 559 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ ProcessWithMEMap2AbsReWithEta()

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

Reimplemented in GEMRecHitSource.

Definition at line 561 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ ProcessWithMEMap2WithEta()

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

Reimplemented in GEMDigiSource, and GEMRecHitSource.

Definition at line 560 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ ProcessWithMEMap3()

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

Reimplemented in GEMDAQStatusSource, GEMDigiSource, and GEMRecHitSource.

Definition at line 562 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ ProcessWithMEMap3WithChamber()

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

Reimplemented in GEMDAQStatusSource, GEMDigiSource, and GEMRecHitSource.

Definition at line 564 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ ProcessWithMEMap4()

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

Definition at line 563 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

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

◆ readGeometryPhiInfoChamber()

int GEMDQMBase::readGeometryPhiInfoChamber ( const GEMStation station,
MEStationInfo stationInfo 
)

Definition at line 308 of file GEMDQMBase.cc.

References funct::abs(), GEMDQMBase::MEStationInfo::fMinPhi_, l1tTowerCalibrationProducer_cfi::iEta, SiStripPI::max, SiStripPI::min, GEMDQMBase::MEStationInfo::nMaxVFAT_, GEMDQMBase::MEStationInfo::nNumDigi_, GEMDQMBase::MEStationInfo::nNumEtaPartitions_, AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::phi(), and relativeConstraints::station.

Referenced by loadChambers().

308  {
309  auto listSuperChambers = station->superChambers();
310  Int_t nNumStripEta = stationInfo.nNumDigi_ * (stationInfo.nMaxVFAT_ / stationInfo.nNumEtaPartitions_);
311 
312  std::vector<std::pair<Int_t, std::pair<std::pair<Float_t, Float_t>, Bool_t>>> listDivPhi;
313 
314  // Obtaining phi intervals of chambers
315  for (auto superchamber : listSuperChambers) {
316  auto iEta = superchamber->chambers().front()->etaPartitions().front();
317 
318  // What is the index of the first strip? Rather than to ask to someone, let's calculate it!
319  Float_t fWidthStrip = std::abs(iEta->centreOfStrip((Int_t)1).x() - iEta->centreOfStrip((Int_t)0).x());
320  LocalPoint lpRef(-fWidthStrip / 3.0, 0.0);
321  Int_t nStripMid = (Int_t)iEta->strip(lpRef);
322  Int_t nFirstStrip = 1 - ((nNumStripEta / 2) - nStripMid);
323  Int_t nLastStrip = nFirstStrip + nNumStripEta - 1;
324 
325  auto& surface = iEta->surface();
326  LocalPoint lpF = iEta->centreOfStrip((Float_t)(nFirstStrip - 0.5)); // To avoid the round error(?)
327  LocalPoint lpL = iEta->centreOfStrip((Float_t)(nLastStrip + 0.5)); // To avoid the round error(?)
328  GlobalPoint gpF = surface.toGlobal(lpF);
329  GlobalPoint gpL = surface.toGlobal(lpL);
330 
331  Float_t fPhiF = gpF.phi();
332  Float_t fPhiL = gpL.phi();
333  if (fPhiF * fPhiL < 0 && std::abs(fPhiF) > 0.5 * 3.14159265359) {
334  if (fPhiF < 0)
335  fPhiF += 2 * 3.14159265359;
336  if (fPhiL < 0)
337  fPhiL += 2 * 3.14159265359;
338  }
339  Bool_t bFlipped = fPhiF > fPhiL;
340  Float_t fPhiMin = std::min(fPhiF, fPhiL);
341  Float_t fPhiMax = std::max(fPhiF, fPhiL);
342 
343  listDivPhi.emplace_back();
344  listDivPhi.back().first = iEta->id().chamber();
345  listDivPhi.back().second.first.first = fPhiMin;
346  listDivPhi.back().second.first.second = fPhiMax;
347  listDivPhi.back().second.second = bFlipped;
348  }
349 
350  stationInfo.fMinPhi_ = 0.0;
351  for (auto p : listDivPhi) {
352  if (p.first == 1) {
353  stationInfo.fMinPhi_ = p.second.first.first;
354  break;
355  }
356  }
357 
358  // For a future usage
359  //for ( auto p : listDivPhi ) {
360  // std::cout << "GEO_PHI: " << p.first << " "
361  // << p.second.first.first << " " << p.second.first.second << " " << p.second.second << std::endl;
362  //}
363 
364  return 0;
365 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ readGeometryRadiusInfoChamber()

int GEMDQMBase::readGeometryRadiusInfoChamber ( const GEMStation station,
MEStationInfo stationInfo 
)

Definition at line 247 of file GEMDQMBase.cc.

References mps_fire::i, l1tTowerCalibrationProducer_cfi::iEta, createfilelist::int, GEMDQMBase::MEStationInfo::listRadiusEvenChamber_, GEMDQMBase::MEStationInfo::listRadiusOddChamber_, SiStripPI::max, SiStripPI::min, PV3DBase< T, PVType, FrameType >::perp(), jetUpdater_cfi::sort, relativeConstraints::station, and GEMStripTopology::stripLength().

Referenced by loadChambers().

247  {
248  auto listSuperChambers = station->superChambers();
249 
250  Bool_t bDoneEven = false, bDoneOdd = false;
251 
252  // Obtaining radius intervals of even/odd chambers
253  for (auto superchamber : listSuperChambers) {
254  Int_t chamberNo = superchamber->id().chamber();
255  if (chamberNo % 2 == 0 && bDoneEven)
256  continue;
257  if (chamberNo % 2 != 0 && bDoneOdd)
258  continue;
259 
260  auto& etaPartitions = superchamber->chambers().front()->etaPartitions();
261 
262  // A little of additional procedures to list up the radius intervals
263  // It would be independent to local direction of chambers and the order of eta partitions
264  // 1. Obtain the radius of the middle top/bottom points of the trapezoid
265  // 2. Sort these two values and determine which one is the lower/upper one
266  // 3. Keep them all and then sort them
267  // 4. The intermediate radii are set as the mean of the corresponding values of upper/lowers.
268  std::vector<Float_t> listRadiusLower, listRadiusUpper;
269  for (auto iEta : etaPartitions) {
270  const GEMStripTopology& stripTopology = dynamic_cast<const GEMStripTopology&>(iEta->specificTopology());
271  Float_t fHeight = stripTopology.stripLength();
272  LocalPoint lp1(0.0, -0.5 * fHeight), lp2(0.0, 0.5 * fHeight);
273  auto& surface = iEta->surface();
274  GlobalPoint gp1 = surface.toGlobal(lp1), gp2 = surface.toGlobal(lp2);
275  Float_t fR1 = gp1.perp(), fR2 = gp2.perp();
276  Float_t fRL = std::min(fR1, fR2), fRH = std::max(fR1, fR2);
277  listRadiusLower.push_back(fRL);
278  listRadiusUpper.push_back(fRH);
279  // For a future usage
280  //std::cout << "GEO_RADIUS: " << iEta->id().chamber() << " " << iEta->id().ieta() << " "
281  // << fRL << " " << fRH << std::endl;
282  }
283 
284  std::sort(listRadiusLower.begin(), listRadiusLower.end());
285  std::sort(listRadiusUpper.begin(), listRadiusUpper.end());
286 
287  std::vector<Float_t>& listR =
288  (chamberNo % 2 == 0 ? stationInfo.listRadiusEvenChamber_ : stationInfo.listRadiusOddChamber_);
289  listR.clear();
290  listR.push_back(listRadiusLower.front());
291  for (int i = 1; i < (int)listRadiusLower.size(); i++) {
292  listR.push_back(0.5 * (listRadiusLower[i] + listRadiusUpper[i - 1]));
293  }
294  listR.push_back(listRadiusUpper.back());
295 
296  if (chamberNo % 2 == 0)
297  bDoneEven = true;
298  if (chamberNo % 2 != 0)
299  bDoneOdd = true;
300 
301  if (bDoneEven && bDoneOdd)
302  break;
303  }
304 
305  return 0;
306 }
float stripLength() const override
T perp() const
Definition: PV3DBase.h:69

◆ restrictAngle()

Float_t GEMDQMBase::restrictAngle ( const Float_t  fTheta,
const Float_t  fStart 
)
inlineprotected

Definition at line 712 of file GEMDQMBase.h.

References createfilelist::int, and M_PI.

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

712  {
713  Float_t fLoop = (fTheta - fStart) / (2 * M_PI);
714  int nLoop = (fLoop >= 0 ? (int)fLoop : (int)fLoop - 1);
715  return fTheta - nLoop * 2 * M_PI;
716 }
#define M_PI

◆ SortingLayers()

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

Definition at line 129 of file GEMDQMBase.cc.

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

Referenced by CreateSummaryHist().

129  {
130  std::sort(listLayers.begin(), listLayers.end(), [](ME3IdsKey key1, ME3IdsKey key2) {
131  Int_t re1 = std::get<0>(key1), st1 = std::get<1>(key1), la1 = std::get<2>(key1);
132  Int_t re2 = std::get<0>(key2), st2 = std::get<1>(key2), la2 = std::get<2>(key2);
133  if (re1 < 0 && re2 > 0)
134  return false;
135  if (re1 > 0 && re2 < 0)
136  return true;
137  Bool_t bRes = (re1 < 0); // == re2 < 0
138  Int_t sum1 = 256 * std::abs(re1) + 16 * st1 + 1 * la1;
139  Int_t sum2 = 256 * std::abs(re2) + 16 * st2 + 1 * la2;
140  if (sum1 <= sum2)
141  return bRes;
142  return !bRes;
143  });
144 
145  return 0;
146 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey

Member Data Documentation

◆ GEMGeometry_

const GEMGeometry* GEMDQMBase::GEMGeometry_
protected

◆ geomToken_

edm::ESGetToken<GEMGeometry, MuonGeometryRecord> GEMDQMBase::geomToken_
protected

Definition at line 610 of file GEMDQMBase.h.

Referenced by initGeometry().

◆ listChamberId_

std::vector<GEMDetId> GEMDQMBase::listChamberId_
protected

◆ log_category_

std::string GEMDQMBase::log_category_

◆ mapEtaPartition_

std::map<GEMDetId, std::vector<const GEMEtaPartition *> > GEMDQMBase::mapEtaPartition_
protected

◆ mapStationInfo_

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

◆ mapStationToIdx_

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

Definition at line 623 of file GEMDQMBase.h.

Referenced by CreateSummaryHist(), and GEMDAQStatusSource::FillStatusSummaryPlot().

◆ MEMap2AbsReWithEtaCheck_

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

Definition at line 617 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ MEMap2Check_

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

Definition at line 615 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ MEMap2WithEtaCheck_

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

Definition at line 616 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ MEMap3Check_

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

Definition at line 618 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ MEMap3WithChCheck_

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

Definition at line 619 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ MEMap4Check_

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

Definition at line 620 of file GEMDQMBase.h.

Referenced by GenerateMEPerChamber().

◆ nMaxNumCh_

int GEMDQMBase::nMaxNumCh_
protected

Definition at line 622 of file GEMDQMBase.h.

Referenced by CreateSummaryHist(), and loadChambers().

◆ nRunType_

Int_t GEMDQMBase::nRunType_