45 m_l1GtDataDaqInputTag = consumes<L1GlobalTriggerReadoutRecord>(pset.
getParameter <
InputTag>(
"inputTagL1GtDataDaq"));
46 m_l1GtEvmSource = consumes<L1GlobalTriggerEvmReadoutRecord>(pset.
getParameter <
InputTag>(
"inputTagtEvmSource"));
48 m_refPrescaleSet = pset.
getParameter <
int> (
"refPrescaleSet");
53 bool forceGlobalParameters = Categories.
getParameter<
bool>(
"forceGlobalParameters");
54 bool doGlobalAutoSelection = Categories.getParameter<
bool>(
"doGlobalAutoSelection");
71 if(forceGlobalParameters){
75 if(doGlobalAutoSelection){
77 if(CatMu .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"Mu"] =
true;}
else{m_algoAutoSelect[
"Mu"] =
false;}
78 if(CatEG .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"EG"] =
true;}
else{m_algoAutoSelect[
"EG"] =
false;}
79 if(CatIsoEG .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"IsoEG"] =
true;}
else{m_algoAutoSelect[
"IsoEG"] =
false;}
80 if(CatJet .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"Jet"] =
true;}
else{m_algoAutoSelect[
"Jet"] =
false;}
81 if(CatCenJet.getParameter<
bool>(
"monitor")){m_algoAutoSelect[
"CenJet"] =
true;}
else{m_algoAutoSelect[
"CenJet"] =
false;}
82 if(CatForJet.getParameter<
bool>(
"monitor")){m_algoAutoSelect[
"ForJet"] =
true;}
else{m_algoAutoSelect[
"ForJet"] =
false;}
83 if(CatTauJet.getParameter<
bool>(
"monitor")){m_algoAutoSelect[
"TauJet"] =
true;}
else{m_algoAutoSelect[
"TauJet"] =
false;}
84 if(CatETM .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"ETM"] =
true;}
else{m_algoAutoSelect[
"ETM"] =
false;}
85 if(CatETT .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"ETT"] =
true;}
else{m_algoAutoSelect[
"ETT"] =
false;}
86 if(CatHTM .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"HTM"] =
true;}
else{m_algoAutoSelect[
"HTM"] =
false;}
87 if(CatHTT .getParameter<bool>(
"monitor")){m_algoAutoSelect[
"HTT"] =
true;}
else{m_algoAutoSelect[
"HTT"] =
false;}
93 m_algoAutoSelect[
"Mu"] =
false;
94 m_algoAutoSelect[
"EG"] =
false;
95 m_algoAutoSelect[
"IsoEG"] =
false;
96 m_algoAutoSelect[
"Jet"] =
false;
97 m_algoAutoSelect[
"CenJet"] =
false;
98 m_algoAutoSelect[
"ForJet"] =
false;
99 m_algoAutoSelect[
"TauJet"] =
false;
100 m_algoAutoSelect[
"ETM"] =
false;
101 m_algoAutoSelect[
"ETT"] =
false;
102 m_algoAutoSelect[
"HTM"] =
false;
103 m_algoAutoSelect[
"HTT"] =
false;
105 if(CatMu .getParameter<bool>(
"monitor")){m_selectedTriggers[
"Mu"] = CatMu .
getParameter<
string>(
"algo");}
106 if(CatEG .getParameter<bool>(
"monitor")){m_selectedTriggers[
"EG"] = CatEG .getParameter<
string>(
"algo");}
107 if(CatIsoEG .getParameter<bool>(
"monitor")){m_selectedTriggers[
"IsoEG"] = CatIsoEG .getParameter<
string>(
"algo");}
108 if(CatJet .getParameter<bool>(
"monitor")){m_selectedTriggers[
"Jet"] = CatJet .getParameter<
string>(
"algo");}
109 if(CatCenJet.getParameter<
bool>(
"monitor")){m_selectedTriggers[
"CenJet"] = CatCenJet.getParameter<
string>(
"algo");}
110 if(CatForJet.getParameter<
bool>(
"monitor")){m_selectedTriggers[
"CatForJet"] = CatForJet.getParameter<
string>(
"algo");}
111 if(CatTauJet.getParameter<
bool>(
"monitor")){m_selectedTriggers[
"TauJet"] = CatTauJet.getParameter<
string>(
"algo");}
112 if(CatETM .getParameter<bool>(
"monitor")){m_selectedTriggers[
"ETM"] = CatETM .getParameter<
string>(
"algo");}
113 if(CatETT .getParameter<bool>(
"monitor")){m_selectedTriggers[
"ETT"] = CatETT .getParameter<
string>(
"algo");}
114 if(CatHTM .getParameter<bool>(
"monitor")){m_selectedTriggers[
"HTM"] = CatHTM .getParameter<
string>(
"algo");}
115 if(CatHTT .getParameter<bool>(
"monitor")){m_selectedTriggers[
"HTT"] = CatHTT .getParameter<
string>(
"algo");}
122 if(CatBPTX.getParameter<
bool>(
"monitor")){
123 m_selectedTriggers[
"BPTX"] = CatBPTX.getParameter<
string>(
"algo");
126 if(CatMu.getParameter<
bool>(
"monitor")){
127 m_algoAutoSelect[
"Mu"] = CatMu.getParameter<
bool>(
"doAutoSelection");
128 if(!m_algoAutoSelect[
"Mu"]){m_selectedTriggers[
"Mu"] = CatMu.getParameter<
string>(
"algo");}
129 }
else{m_algoAutoSelect[
"Mu"] =
false;}
131 if(CatEG.getParameter<
bool>(
"monitor")){
132 m_algoAutoSelect[
"EG"] = CatEG.getParameter<
bool>(
"doAutoSelection");
133 if(!m_algoAutoSelect[
"EG"]){m_selectedTriggers[
"EG"] = CatEG.getParameter<
string>(
"algo");}
134 }
else{m_algoAutoSelect[
"EG"] =
false;}
136 if(CatIsoEG.getParameter<
bool>(
"monitor")){
137 m_algoAutoSelect[
"IsoEG"] = CatIsoEG.getParameter<
bool>(
"doAutoSelection");
138 if(!m_algoAutoSelect[
"IsoEG"]){m_selectedTriggers[
"IsoEG"] = CatIsoEG.getParameter<
string>(
"algo");}
139 }
else{m_algoAutoSelect[
"IsoEG"] =
false;}
141 if(CatJet.getParameter<
bool>(
"monitor")){
142 m_algoAutoSelect[
"Jet"] = CatJet.getParameter<
bool>(
"doAutoSelection");
143 if(!m_algoAutoSelect[
"Jet"]){m_selectedTriggers[
"Jet"] = CatJet.getParameter<
string>(
"algo");}
144 }
else{m_algoAutoSelect[
"Jet"] =
false;}
146 if(CatCenJet.getParameter<
bool>(
"monitor")){
147 m_algoAutoSelect[
"CenJet"] = CatCenJet.getParameter<
bool>(
"doAutoSelection");
148 if(!m_algoAutoSelect[
"CenJet"]){m_selectedTriggers[
"CenJet"] = CatCenJet.getParameter<
string>(
"algo");}
149 }
else{m_algoAutoSelect[
"CenJet"] =
false;}
151 if(CatForJet.getParameter<
bool>(
"monitor")){
152 m_algoAutoSelect[
"CatForJet"] = CatForJet.getParameter<
bool>(
"doAutoSelection");
153 if(!m_algoAutoSelect[
"CatForJet"]){m_selectedTriggers[
"CatForJet"] = CatForJet.getParameter<
string>(
"algo");}
154 }
else{m_algoAutoSelect[
"CatForJet"] =
false;}
156 if(CatTauJet.getParameter<
bool>(
"monitor")){
157 m_algoAutoSelect[
"TauJet"] = CatTauJet.getParameter<
bool>(
"doAutoSelection");
158 if(!m_algoAutoSelect[
"TauJet"]){m_selectedTriggers[
"TauJet"] = CatTauJet.getParameter<
string>(
"algo");}
159 }
else{m_algoAutoSelect[
"TauJet"] =
false;}
161 if(CatETM.getParameter<
bool>(
"monitor")){
162 m_algoAutoSelect[
"ETM"] = CatETM.getParameter<
bool>(
"doAutoSelection");
163 if(!m_algoAutoSelect[
"ETM"]){m_selectedTriggers[
"ETM"] = CatETM.getParameter<
string>(
"algo");}
164 }
else{m_algoAutoSelect[
"ETM"] =
false;}
166 if(CatETT.getParameter<
bool>(
"monitor")){
167 m_algoAutoSelect[
"ETT"] = CatETT.getParameter<
bool>(
"doAutoSelection");
168 if(!m_algoAutoSelect[
"ETT"]){m_selectedTriggers[
"ETT"] = CatETT.getParameter<
string>(
"algo");}
169 }
else{m_algoAutoSelect[
"ETT"] =
false;}
171 if(CatHTM.getParameter<
bool>(
"monitor")){
172 m_algoAutoSelect[
"HTM"] = CatHTM.getParameter<
bool>(
"doAutoSelection");
173 if(!m_algoAutoSelect[
"HTM"]){m_selectedTriggers[
"HTM"] = CatHTM.getParameter<
string>(
"algo");}
174 }
else{m_algoAutoSelect[
"HTM"] =
false;}
176 if(CatHTT.getParameter<
bool>(
"monitor")){
177 m_algoAutoSelect[
"HTT"] = CatHTT.getParameter<
bool>(
"doAutoSelection");
178 if(!m_algoAutoSelect[
"HTT"]){m_selectedTriggers[
"HTT"] = CatHTT.getParameter<
string>(
"algo");}
179 }
else{m_algoAutoSelect[
"HTT"] =
false;}
186 if (m_outputFile.size() != 0) {
187 std::cout <<
"L1T Monitoring histograms will be saved to " << m_outputFile.c_str() << std::endl;
191 if (disable) {m_outputFile =
"";}
204 if (m_verbose){
cout <<
"[L1TSync] Called beginRun." << endl;}
215 m_certFirstLS.clear();
216 m_certLastLS .clear();
225 m_algoBit[(
algo->second).algoAlias()] = (
algo->second).algoBitNumber();
239 m_selectedTriggers = myMenuHelper.
testAlgos(m_selectedTriggers);
241 map<string,string> tAutoSelTrig = myMenuHelper.
getLUSOTrigger(m_algoAutoSelect,m_refPrescaleSet);
242 m_selectedTriggers.insert(tAutoSelTrig.begin(),tAutoSelTrig.end());
246 m_ErrorMonitor = ibooker.
book1D(
"ErrorMonitor",
"ErrorMonitor",7,0,7);
248 m_ErrorMonitor->setBinLabel(WARNING_DB_CONN_FAILED ,
"WARNING_DB_CONN_FAILED");
249 m_ErrorMonitor->setBinLabel(WARNING_DB_QUERY_FAILED ,
"WARNING_DB_QUERY_FAILED");
250 m_ErrorMonitor->setBinLabel(WARNING_DB_INCORRECT_NBUNCHES,
"WARNING_DB_INCORRECT_NBUNCHES");
251 m_ErrorMonitor->setBinLabel(ERROR_UNABLE_RETRIVE_PRODUCT ,
"ERROR_UNABLE_RETRIVE_PRODUCT");
252 m_ErrorMonitor->setBinLabel(ERROR_TRIGGERALIAS_NOTVALID ,
"ERROR_TRIGGERALIAS_NOTVALID");
253 m_ErrorMonitor->setBinLabel(ERROR_LSBLOCK_NOTVALID ,
"ERROR_LSBLOCK_NOTVALID");
256 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
258 string tCategory = (*i).first;
259 string tTrigger = (*i).second;
262 m_certFirstLS[(*i).second] = 0;
263 m_certLastLS [(*i).second] = 0;
267 m_algoVsBunchStructure[tTrigger] = ibooker.
book2D(tCategory,
"min #Delta("+tTrigger+
",Bunch)",maxNbins,-0.5,
double(maxNbins)-0.5,5,-2.5,2.5);
268 m_algoVsBunchStructure[tTrigger] ->
setAxisTitle(
"Lumi Section" ,1);
271 m_algoCertification[tTrigger] = ibooker.
book1D(tCategory,
"fraction of in sync: "+tTrigger,maxNbins,-0.5,
double(maxNbins)-0.5);
272 m_algoCertification[tTrigger] ->
setAxisTitle(
"Lumi Section" ,1);
283 if (m_verbose){
cout <<
"[L1TSync] Called beginLuminosityBlock." << endl;}
290 cout <<
"[L1TSync] None consecutive: doFractionInSync() - LAST="
293 doFractionInSync(
true,
false);
300 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
302 string theTriggerAlias = (*i).second;
303 if(m_certFirstLS[theTriggerAlias]==0){m_certFirstLS[theTriggerAlias] = m_currentLS;}
309 m_currentLSValid =
true;
319 if(m_verbose){
cout <<
"[L1TSync] Called endLuminosityBlock." << endl;}
322 cout <<
"[L1TSync] m_currentLSValid : " << m_currentLSValid << endl;
323 cout <<
"[L1TSync] m_beamConfig.isValid(): " << m_beamConfig.isValid() << endl;
326 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
329 string theTriggerAlias = (*i).second;
330 m_certLastLS[theTriggerAlias] = m_currentLS;
335 if(m_currentLSValid && m_beamConfig.isValid()){
337 if(m_verbose){
cout <<
"[L1TSync] Regular call: doFractionInSync()" << endl;}
338 doFractionInSync(
false,
false);
347 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
349 string theTriggerAlias = (*i).second;
351 int fLs = m_certFirstLS[theTriggerAlias];
352 int lLS = m_certLastLS [theTriggerAlias];
356 m_certFirstLS[theTriggerAlias] = 0;
357 m_certLastLS [theTriggerAlias] = 0;
361 m_certLastLS [theTriggerAlias] = m_currentLS-1;
365 doFractionInSync(
true,
false);
368 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
369 string theTriggerAlias = (*i).second;
370 m_certFirstLS[theTriggerAlias] = m_currentLS;
371 m_certLastLS [theTriggerAlias] = m_currentLS;
373 doFractionInSync(
true,
true);
375 if(m_verbose){
cout <<
"[L1TSync] Error call: doFractionInSync()" << endl;}
384 if(m_verbose){
cout <<
"[L1TSync] Called analyze." << endl;}
387 if(m_currentLSValid){
389 if(m_verbose){
cout <<
"[L1TSync] -> m_currentLSValid=" << m_currentLSValid << endl;}
393 iEvent.
getByToken(m_l1GtEvmSource, gtEvmReadoutRecord);
396 if(gtEvmReadoutRecord.
isValid()){
398 const L1GtfeExtWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
399 unsigned int lhcBeamMode = gtfeEvmWord.
beamMode();
406 if(lhcBeamMode != STABLE){m_currentLSValid =
false;}
409 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
411 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT,eCount);
414 if(m_verbose){
cout <<
"[L1TSync] -> m_currentLSValid=" << m_currentLSValid << endl;}
420 if(m_currentLSValid && m_beamConfig.isValid()){
424 iEvent.
getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
426 if(gtReadoutRecordData.
isValid()){
428 const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
431 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
433 string tTrigger = (*i).second;
436 if(tTrigger !=
"Undefined" && tTrigger !=
"Undefined (Wrong Name)"){
438 bool beamSingleConfig =
false;
439 bool firedAlgo =
false;
443 for(
unsigned int a=0 ;
a<gtFdlVectorData.size() ;
a++){
446 if(gtFdlVectorData[
a].bxInEvent() == 0){
447 eventBx = gtFdlVectorData[
a].localBxNr();
448 if(gtFdlVectorData[
a].gtDecisionWord()[ m_algoBit[tTrigger] ]){firedAlgo =
true;}
453 if( m_beamConfig.beam1[eventBx] && !m_beamConfig.beam2[eventBx]){beamSingleConfig =
true;}
454 if(!m_beamConfig.beam1[eventBx] && m_beamConfig.beam2[eventBx]){beamSingleConfig =
true;}
460 if(firedAlgo && !beamSingleConfig){
462 int DifAlgoVsBunchStructure = 9999;
464 for(
unsigned int a=0 ;
a<gtFdlVectorData.size() ;
a++){
466 int bxFDL = gtFdlVectorData[
a].localBxNr();
467 int bxInEvent = gtFdlVectorData[
a].bxInEvent();
469 if(m_beamConfig.bxConfig(bxFDL) &&
abs(bxInEvent)<
abs(DifAlgoVsBunchStructure)){
470 DifAlgoVsBunchStructure = -1*bxInEvent;
474 m_algoVsBunchStructure[tTrigger]->Fill(m_currentLS,DifAlgoVsBunchStructure);
481 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
483 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT,eCount);
497 string oracleDB = m_parameters.getParameter<
string>(
"oracleDB");
498 string pathCondDB = m_parameters.getParameter<
string>(
"pathCondDB");
503 myOMDSHelper.connect(oracleDB,pathCondDB,conError);
507 if(m_verbose){
cout <<
"[L1TSync] Connected to DB with no error." << endl;}
510 m_beamConfig = myOMDSHelper.getBeamConfiguration(m_lhcFill,errorRetrive);
514 cout <<
"[L1TSync] Retriving LHC Bunch Structure: NO_ERROR" << endl;
515 cout <<
"[L1TSync] -> LHC Bunch Structure valid=" << m_beamConfig.m_valid <<
" nBunches=" << m_beamConfig.nCollidingBunches << endl;
520 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: WARNING_DB_CONN_FAILED" << endl;}
522 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_INCORRECT_NBUNCHES);
524 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_INCORRECT_NBUNCHES,eCount);
528 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: WARNING_DB_QUERY_FAILED" << endl;}
530 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_QUERY_FAILED);
532 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_QUERY_FAILED,eCount);
536 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: UNKNOWN" << endl;}
538 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(
UNKNOWN);
540 m_ErrorMonitor->getTH1()->SetBinContent(
UNKNOWN,eCount);
547 if(m_verbose){
cout <<
"[L1TSync] Connect to DB: WARNING_DB_CONN_FAILED" << endl;}
549 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_CONN_FAILED);
551 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_CONN_FAILED,eCount);
554 if(m_verbose){
cout <<
"[L1TSync] Connect to DB: UNKNOWN" << endl;}
556 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(
UNKNOWN);
558 m_ErrorMonitor->getTH1()->SetBinContent(
UNKNOWN,eCount);
576 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
578 string theCategory = (*i).first;
579 string theTriggerAlias = (*i).second;
582 unsigned int fLS = m_certFirstLS[theTriggerAlias];
583 unsigned int lLS = m_certLastLS [theTriggerAlias];
586 bool triggerAlias_isValid = theTriggerAlias !=
"Undefined" && theTriggerAlias !=
"Undefined (Wrong Name)";
587 bool lsBlock_exists = !(fLS == 0 && lLS == 0);
588 bool lsBlock_isValid = fLS <= lLS && fLS > 0 && lLS > 0;
590 if(triggerAlias_isValid && lsBlock_exists && lsBlock_isValid){
594 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
595 m_certFirstLS[theTriggerAlias] = 0;
596 m_certLastLS [theTriggerAlias] = 0;
603 double CountSync = 0;
607 for(
unsigned int ls=fLS ;
ls<=lLS ;
ls++){
609 CountSync += m_algoVsBunchStructure[theTriggerAlias]->getBinContent(
ls+1,3);
610 for(
int a=1 ;
a<6 ;
a++){
611 CountAll += m_algoVsBunchStructure[theTriggerAlias]->getBinContent(
ls+1,
a);
616 cout <<
"Alias = " << theTriggerAlias
619 <<
" Events=" << CountAll ;
623 CountAll >= m_parameters.getParameter<
ParameterSet>(
"Categories")
627 if(m_verbose){
cout <<
" <--------------- Enough Statistics: ";}
632 if(CountAll >0){fraction = CountSync/CountAll;}
636 if(fraction==0){fraction=0.000001;}
638 certifyLSBlock(theTriggerAlias,fLS,lLS,fraction);
639 m_certFirstLS[theTriggerAlias] = 0;
640 m_certLastLS [theTriggerAlias] = 0;
643 if(m_verbose){
cout << endl;}
652 if(!triggerAlias_isValid){
653 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_TRIGGERALIAS_NOTVALID);
655 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_TRIGGERALIAS_NOTVALID,eCount);
656 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
657 m_certFirstLS[theTriggerAlias] = 0;
658 m_certLastLS [theTriggerAlias] = 0;
662 if(lsBlock_exists && !lsBlock_isValid){
663 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_LSBLOCK_NOTVALID);
665 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_LSBLOCK_NOTVALID,eCount);
666 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
667 m_certFirstLS[theTriggerAlias] = 0;
668 m_certLastLS [theTriggerAlias] = 0;
688 int binInit = m_algoCertification[iTrigger]->getTH1()->FindBin(iInitLs);
689 int binEnd = m_algoCertification[iTrigger]->getTH1()->FindBin(iEndLs);
691 for(
int ls=binInit ;
ls<=binEnd ;
ls++){
692 m_algoCertification[iTrigger]->setBinContent(
ls,iValue);
LuminosityBlockID id() const
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
void doFractionInSync(bool iForce=false, bool iBad=false)
0: Unidentified isolated particle
L1TSync(const edm::ParameterSet &ps)
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)
virtual void beginLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
void analyze(const edm::Event &e, const edm::EventSetup &c)
virtual void dqmBeginRun(edm::Run const &, edm::EventSetup const &)
BeginRun.
void certifyLSBlock(std::string iTrigger, int iInitLs, int iEndLs, float iValue)
virtual void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
MonitorElement * book1D(Args &&...args)
Abs< T >::type abs(const T &t)
virtual void endLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
const cms_uint32_t lhcFillNumber() const
T const * product() const
LuminosityBlockNumber_t luminosityBlock() const
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
const cms_uint16_t beamMode() const