1 #ifndef DQM_GEM_INTERFACE_GEMDQMBase_h 2 #define DQM_GEM_INTERFACE_GEMDQMBase_h 45 TString y_title =
"Entries") {
53 std::vector<double> &x_binning,
55 TString y_title =
"Entries") {
58 TH1F *h_obj =
new TH1F(
name,
title, x_binning.size() - 1, &x_binning[0]);
71 TString y_title =
"") {
88 TString y_title =
"") {
102 template <
class M,
class K>
108 GEMDQMBase *pDQMBase, TString strName, TString strTitle, TString strTitleX =
"", TString strTitleY =
"Entries")
122 TString strTitleX =
"",
123 TString strTitleY =
"Entries")
141 std::vector<Double_t> &x_binning,
142 TString strTitleX =
"",
143 TString strTitleY =
"Entries")
155 for (Int_t
i = 0;
i < (Int_t)x_binning.size();
i++)
168 TString strTitleX =
"",
169 TString strTitleY =
"")
199 TString strTitleX =
"",
200 TString strTitleY =
"")
313 strName_,
strTitle_,
nBinsX_,
dXL_,
dXH_,
nBinsY_,
dYL_,
dYH_,
dZL_,
dZH_,
strTitleX_,
strTitleY_);
331 <<
"WARNING: Cannot find the histogram corresponing to the given key\n";
349 if (histCurr ==
nullptr)
351 for (Int_t
i = nIdxStart;
i <= nNumBin;
i++) {
371 if (histCurr ==
nullptr)
373 for (Int_t
i = 0;
i < nNumBin;
i++) {
375 histCurr->
setBinLabel(
i + 1, Form(
"%i (%i)",
i, nIEta), nAxis);
427 if ((unMask &
bits) != 0)
469 Int_t nNumEtaPartitions,
559 template <
typename T>
560 inline bool checkRefs(
const std::vector<T *> &);
572 inline Float_t
restrictAngle(
const Float_t fTheta,
const Float_t fStart);
594 template <
typename T>
598 if (refs.front() ==
nullptr)
657 Float_t fLoop = (fTheta - fStart) / (2 *
M_PI);
658 int nLoop = (fLoop >= 0 ? (
int)fLoop : (
int)fLoop - 1);
659 return fTheta - nLoop * 2 *
M_PI;
664 char cRegion = (
keyToRegion(key3) > 0 ?
'P' :
'M');
666 return std::string(Form(
"GE%i1-%c-L%i", nStation, cRegion, nLayer));
669 #endif // DQM_GEM_INTERFACE_GEMDQMBase_h void SetName(TString strName)
ME2IdsKey key3Tokey2(ME3IdsKey key)
bool checkRefs(const std::vector< T *> &)
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
void SetBinLowEdgeZ(Double_t dZL)
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
virtual int ProcessWithMEMap4(BookingHelper &bh, ME4IdsKey key)
int getIEtaFromVFATGE0(const int vfat)
std::vector< GEMDetId > listChamberId_
virtual int ProcessWithMEMap2AbsReWithEta(BookingHelper &bh, ME3IdsKey key)
int getVFATNumber(const int, const int, const int)
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1, Int_t nIdxStart=1)
int getVFATNumberByDigi(const int, const int, const int)
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
int getIEtaFromVFATGE21(const int vfat)
int initGeometry(edm::EventSetup const &iSetup)
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
int readGeometryRadiusInfoChamber(const GEMStation *station, MEStationInfo &stationInfo)
static const int maxVFatGE0_
BookingHelper(DQMStore::IBooker &ibooker, const TString &name_suffix, const TString &title_suffix)
Bool_t bIsNoUnderOverflowBin_
MEMapInfT(GEMDQMBase *pDQMBase, TString strName, TString strTitle, Int_t nBinsX, Double_t dXL, Double_t dXH, Int_t nBinsY, Double_t dYL, Double_t dYH, TString strTitleX="", TString strTitleY="")
static const int maxiEtaIdGE0_
const TString name_suffix_
int SetLabelForVFATs(K key, Int_t nNumEtaPartitions, Int_t nAxis, Int_t nNumBin=-1)
void SetBinHighEdgeZ(Double_t dZH)
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
int keyToRegion(ME2IdsKey key)
int readGeometryPhiInfoChamber(const GEMStation *station, MEStationInfo &stationInfo)
Double_t GetBinLowEdgeX()
void SetBinHighEdgeX(Double_t dXH)
std::map< ME3IdsKey, int > mapStationToIdx_
MEMapInfT(GEMDQMBase *pDQMBase, TString strName, TString strTitle, TString strTitleX="", TString strTitleY="Entries")
static const int maxChan_
int keyToLayer(ME3IdsKey key)
Log< level::Error, false > LogError
std::vector< Float_t > listRadiusOddChamber_
int keyToStation(ME3IdsKey key)
int Fill(K key, Double_t x)
std::string log_category_
void SetTitleX(TString strTitleX)
constexpr std::array< uint8_t, layerIndexSize > layer
std::map< ME3IdsKey, bool > MEMap2AbsReWithEtaCheck_
std::map< ME2IdsKey, bool > MEMap2Check_
virtual int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key)
Double_t GetBinLowEdgeY()
std::string log_category_own_
Double_t GetBinHighEdgeZ()
void SetBinLowEdgeX(Double_t dXL)
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)
std::vector< Float_t > listRadiusEvenChamber_
std::map< ME3IdsKey, bool > MEMap3Check_
int keyToRegion(ME3IdsKey key)
int getIEtaFromVFATGE11(const int vfat)
DQMStore::IBooker * ibooker_
Float_t restrictAngle(const Float_t fTheta, const Float_t fStart)
MEMapInfT(GEMDQMBase *pDQMBase, TString strName, TString strTitle, std::vector< Double_t > &x_binning, TString strTitleX="", TString strTitleY="Entries")
int keyToRegion(ME4IdsKey key)
int getNumEtaPartitions(const GEMStation *)
static const int maxiEtaIdGE21_
virtual int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key)
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
void SetBinHighEdgeY(Double_t dYH)
MEMapInfT< MEMap2Ids, ME2IdsKey > MEMap2Inf
void SetNbinsY(Int_t nBinsY)
std::vector< double > x_binning_
int getMaxVFAT(const int)
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
int keyToStation(ME2IdsKey key)
void SetTitle(TString strTitle)
std::map< ME4IdsKey, bool > MEMap4Check_
int keyToStation(ME4IdsKey key)
MEStationInfo(Int_t nRegion, Int_t nStation, Int_t nLayer, Int_t nNumChambers, Int_t nNumEtaPartitions, Int_t nMaxVFAT, Int_t nNumDigi)
MEMapInfT(GEMDQMBase *pDQMBase, TString strName, TString strTitle, Int_t nBinsX, Double_t dXL, Double_t dXH, TString strTitleX="", TString strTitleY="Entries")
Double_t GetBinHighEdgeX()
void SetOperating(Bool_t bOperating)
const GEMGeometry * GEMGeometry_
int keyToIEta(ME4IdsKey key)
bool operator==(const MEStationInfo &other) const
void SetNoUnderOverflowBin()
MonitorElement * book1D(TString name, TString title, std::vector< double > &x_binning, TString x_title="", TString y_title="Entries")
int SetLabelForIEta(K key, Int_t nAxis, Int_t nNumBin=-1)
void SetTitleY(TString strTitleY)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
int getDetOccXBin(const int, const int, const int)
virtual int ProcessWithMEMap2WithEta(BookingHelper &bh, ME3IdsKey key)
DQMStore::IBooker * getBooker()
const TString title_suffix_
int keyToChamber(ME4IdsKey key)
int getIEtaFromVFAT(const int station, const int vfat)
Double_t GetBinHighEdgeY()
int SortingLayers(std::vector< ME3IdsKey > &listLayers)
int Fill(K key, Double_t x, Double_t y, Double_t w=1.0)
std::string getNameDirLayer(ME3IdsKey key3)
GEMDQMBase(const edm::ParameterSet &cfg)
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
int bookND(BookingHelper &bh, K key)
ME3IdsKey key4Tokey3(ME4IdsKey key)
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
MonitorElement * bookProfile2D(TString name, TString title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup, double zlow, double zup, TString x_title="", TString y_title="")
MonitorElement * book1D(TString name, TString title, int nbinsx, double xlow, double xup, TString x_title="", TString y_title="Entries")
static const int maxiEtaIdGE11_
void SetNbinsX(Int_t nBinsX)
static const int maxVFatGE21_
int getVFATNumberGE11(const int, const int, const int)
std::tuple< Int_t, Int_t > ME2IdsKey
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
void SetProfile(Bool_t bIsProfile)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
int keyToLayer(ME4IdsKey key)
MonitorElement * book2D(TString name, TString title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup, TString x_title="", TString y_title="")
int FillBits(K key, Double_t x, UInt_t bits, Double_t w=1.0)
std::map< ME4IdsKey, bool > MEMap3WithChCheck_
Double_t GetBinLowEdgeZ()
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
int keyToIEta(ME3IdsKey key)
dqm::impl::MonitorElement * FindHist(K key)
static const int maxVFatGE11_
MEMapInfT(GEMDQMBase *pDQMBase, TString strName, TString strTitle, Int_t nBinsX, Double_t dXL, Double_t dXH, Int_t nBinsY, Double_t dYL, Double_t dYH, Double_t dZL, Double_t dZH, TString strTitleX="", TString strTitleY="")
void SetBinLowEdgeY(Double_t dYL)
virtual int ProcessWithMEMap2(BookingHelper &bh, ME2IdsKey key)