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 =
"") {
74 return ibooker_->
book2D(name, title, nbinsx, xlow, xup, nbinsy, ylow, yup);
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 =
"")
281 void SetBinConfX(Int_t nBins, Double_t dL = 0.5, Double_t dH = -1048576.0) {
289 void SetBinConfY(Int_t nBins, Double_t dL = 0.5, Double_t dH = -1048576.0) {
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 = 1;
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,
557 template <
typename T>
558 inline bool checkRefs(
const std::vector<T *> &);
568 inline Float_t
restrictAngle(
const Float_t fTheta,
const Float_t fStart);
593 template <
typename T>
597 if (refs.front() ==
nullptr)
606 else if (station == 2)
636 return n_chambers * (chamber - 1) + layer;
640 Float_t fLoop = (fTheta - fStart) / (2 *
M_PI);
641 int nLoop = (fLoop >= 0 ? (int)fLoop : (
int)fLoop - 1);
642 return fTheta - nLoop * 2 *
M_PI;
647 const char *szRegion = (
keyToRegion(key3) > 0 ?
"P" :
"M");
649 return std::string(Form(
"GE%i1-%s-L%i", nStation, szRegion, nLayer));
652 #endif // DQM_GEM_INTERFACE_GEMDQMBase_h
void SetName(TString strName)
ME2IdsKey key3Tokey2(ME3IdsKey key)
Int_t nNumEtaPartitionGE11_
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
void SetBinLowEdgeZ(Double_t dZL)
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
bool checkRefs(const std::vector< T * > &)
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)
virtual int ProcessWithMEMap2AbsReWithEta(BookingHelper &bh, ME3IdsKey key)
int getVFATNumber(const int, const int, const int)
int getVFATNumberByDigi(const int, const int, const int)
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1)
int initGeometry(edm::EventSetup const &iSetup)
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
int readGeometryRadiusInfoChamber(const GEMStation *station, MEStationInfo &stationInfo)
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="")
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 *)
virtual int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key)
std::vector< GEMChamber > gemChambers_
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
tuple key
prepare the HTCondor submission files and eventually submit them
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)
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)
bool operator==(const MEStationInfo &other) const
GEMDQMBase(const edm::ParameterSet &cfg)
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
int bookND(BookingHelper &bh, K key)
ME3IdsKey key4Tokey3(ME4IdsKey key)
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")
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)
Int_t nNumEtaPartitionGE0_
std::map< ME4IdsKey, bool > MEMap3WithChCheck_
Int_t nNumEtaPartitionGE21_
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)