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;}
191 if (m_outputFile.size() != 0) {
192 std::cout <<
"L1T Monitoring histograms will be saved to " << m_outputFile.c_str() << std::endl;
196 if (disable) {m_outputFile =
"";}
198 if (dbe !=
NULL) {dbe->setCurrentFolder(
"L1T/L1TSync");}
210 if (m_verbose){
cout <<
"[L1TSync] Called beginJob." << endl;}
217 dbe->setCurrentFolder(
"L1T/L1TSync");
218 dbe->rmdir(
"L1T/L1TSync");
227 if (m_verbose){
cout <<
"[L1TSync] Called endJob." << endl;}
229 if (m_outputFile.size() != 0 && dbe)
230 dbe->save(m_outputFile);
241 if (m_verbose){
cout <<
"[L1TSync] Called beginRun." << endl;}
249 m_certFirstLS.clear();
250 m_certLastLS .clear();
259 m_algoBit[(algo->second).algoAlias()] = (algo->second).algoBitNumber();
273 m_selectedTriggers = myMenuHelper.
testAlgos(m_selectedTriggers);
275 map<string,string> tAutoSelTrig = myMenuHelper.
getLUSOTrigger(m_algoAutoSelect,m_refPrescaleSet);
276 m_selectedTriggers.insert(tAutoSelTrig.begin(),tAutoSelTrig.end());
279 dbe->setCurrentFolder(
"L1T/L1TSync");
280 m_ErrorMonitor = dbe->book1D(
"ErrorMonitor",
"ErrorMonitor",7,0,7);
281 m_ErrorMonitor->setBinLabel(
UNKNOWN ,
"UNKNOWN");
282 m_ErrorMonitor->setBinLabel(WARNING_DB_CONN_FAILED ,
"WARNING_DB_CONN_FAILED");
283 m_ErrorMonitor->setBinLabel(WARNING_DB_QUERY_FAILED ,
"WARNING_DB_QUERY_FAILED");
284 m_ErrorMonitor->setBinLabel(WARNING_DB_INCORRECT_NBUNCHES,
"WARNING_DB_INCORRECT_NBUNCHES");
285 m_ErrorMonitor->setBinLabel(ERROR_UNABLE_RETRIVE_PRODUCT ,
"ERROR_UNABLE_RETRIVE_PRODUCT");
286 m_ErrorMonitor->setBinLabel(ERROR_TRIGGERALIAS_NOTVALID ,
"ERROR_TRIGGERALIAS_NOTVALID");
287 m_ErrorMonitor->setBinLabel(ERROR_LSBLOCK_NOTVALID ,
"ERROR_LSBLOCK_NOTVALID");
290 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
292 string tCategory = (*i).first;
293 string tTrigger = (*i).second;
296 m_certFirstLS[(*i).second] = 0;
297 m_certLastLS [(*i).second] = 0;
300 dbe->setCurrentFolder(
"L1T/L1TSync/AlgoVsBunchStructure/");
301 m_algoVsBunchStructure[tTrigger] = dbe->book2D(tCategory,
"min #Delta("+tTrigger+
",Bunch)",maxNbins,-0.5,
double(maxNbins)-0.5,5,-2.5,2.5);
302 m_algoVsBunchStructure[tTrigger] ->setAxisTitle(
"Lumi Section" ,1);
304 dbe->setCurrentFolder(
"L1T/L1TSync/Certification/");
305 m_algoCertification[tTrigger] = dbe->book1D(tCategory,
"fraction of in sync: "+tTrigger,maxNbins,-0.5,
double(maxNbins)-0.5);
306 m_algoCertification[tTrigger] ->setAxisTitle(
"Lumi Section" ,1);
317 if (m_verbose){
cout <<
"[L1TSync] Called beginLuminosityBlock." << endl;}
324 cout <<
"[L1TSync] None consecutive: doFractionInSync() - LAST="
327 doFractionInSync(
true,
false);
334 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
336 string theTriggerAlias = (*i).second;
337 if(m_certFirstLS[theTriggerAlias]==0){m_certFirstLS[theTriggerAlias] = m_currentLS;}
343 m_currentLSValid =
true;
353 if(m_verbose){
cout <<
"[L1TSync] Called endLuminosityBlock." << endl;}
356 cout <<
"[L1TSync] m_currentLSValid : " << m_currentLSValid << endl;
357 cout <<
"[L1TSync] m_beamConfig.isValid(): " << m_beamConfig.isValid() << endl;
360 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
363 string theTriggerAlias = (*i).second;
364 m_certLastLS[theTriggerAlias] = m_currentLS;
369 if(m_currentLSValid && m_beamConfig.isValid()){
371 if(m_verbose){
cout <<
"[L1TSync] Regular call: doFractionInSync()" << endl;}
372 doFractionInSync(
false,
false);
381 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
383 string theTriggerAlias = (*i).second;
385 int fLs = m_certFirstLS[theTriggerAlias];
386 int lLS = m_certLastLS [theTriggerAlias];
390 m_certFirstLS[theTriggerAlias] = 0;
391 m_certLastLS [theTriggerAlias] = 0;
395 m_certLastLS [theTriggerAlias] = m_currentLS-1;
399 doFractionInSync(
true,
false);
402 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
403 string theTriggerAlias = (*i).second;
404 m_certFirstLS[theTriggerAlias] = m_currentLS;
405 m_certLastLS [theTriggerAlias] = m_currentLS;
407 doFractionInSync(
true,
true);
409 if(m_verbose){
cout <<
"[L1TSync] Error call: doFractionInSync()" << endl;}
418 if(m_verbose){
cout <<
"[L1TSync] Called endRun." << endl;}
422 doFractionInSync(
true,
false);
429 if(m_verbose){
cout <<
"[L1TSync] Called analyze." << endl;}
432 if(m_currentLSValid){
434 if(m_verbose){
cout <<
"[L1TSync] -> m_currentLSValid=" << m_currentLSValid << endl;}
438 iEvent.
getByToken(m_l1GtEvmSource, gtEvmReadoutRecord);
441 if(gtEvmReadoutRecord.
isValid()){
443 const L1GtfeExtWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
444 unsigned int lhcBeamMode = gtfeEvmWord.
beamMode();
451 if(lhcBeamMode != STABLE){m_currentLSValid =
false;}
454 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
456 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT,eCount);
459 if(m_verbose){
cout <<
"[L1TSync] -> m_currentLSValid=" << m_currentLSValid << endl;}
465 if(m_currentLSValid && m_beamConfig.isValid()){
469 iEvent.
getByToken(m_l1GtDataDaqInputTag, gtReadoutRecordData);
471 if(gtReadoutRecordData.
isValid()){
473 const vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->gtFdlVector();
476 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
478 string tTrigger = (*i).second;
481 if(tTrigger !=
"Undefined" && tTrigger !=
"Undefined (Wrong Name)"){
483 bool beamSingleConfig =
false;
484 bool firedAlgo =
false;
488 for(
unsigned int a=0 ;
a<gtFdlVectorData.size() ;
a++){
491 if(gtFdlVectorData[
a].bxInEvent() == 0){
492 eventBx = gtFdlVectorData[
a].localBxNr();
493 if(gtFdlVectorData[
a].gtDecisionWord()[ m_algoBit[tTrigger] ]){firedAlgo =
true;}
498 if( m_beamConfig.beam1[eventBx] && !m_beamConfig.beam2[eventBx]){beamSingleConfig =
true;}
499 if(!m_beamConfig.beam1[eventBx] && m_beamConfig.beam2[eventBx]){beamSingleConfig =
true;}
505 if(firedAlgo && !beamSingleConfig){
507 int DifAlgoVsBunchStructure = 9999;
509 for(
unsigned int a=0 ;
a<gtFdlVectorData.size() ;
a++){
511 int bxFDL = gtFdlVectorData[
a].localBxNr();
512 int bxInEvent = gtFdlVectorData[
a].bxInEvent();
514 if(m_beamConfig.bxConfig(bxFDL) &&
abs(bxInEvent)<
abs(DifAlgoVsBunchStructure)){
515 DifAlgoVsBunchStructure = -1*bxInEvent;
519 m_algoVsBunchStructure[tTrigger]->Fill(m_currentLS,DifAlgoVsBunchStructure);
526 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT);
528 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_UNABLE_RETRIVE_PRODUCT,eCount);
542 string oracleDB = m_parameters.getParameter<
string>(
"oracleDB");
543 string pathCondDB = m_parameters.getParameter<
string>(
"pathCondDB");
548 myOMDSHelper.connect(oracleDB,pathCondDB,conError);
552 if(m_verbose){
cout <<
"[L1TSync] Connected to DB with no error." << endl;}
555 m_beamConfig = myOMDSHelper.getBeamConfiguration(m_lhcFill,errorRetrive);
559 cout <<
"[L1TSync] Retriving LHC Bunch Structure: NO_ERROR" << endl;
560 cout <<
"[L1TSync] -> LHC Bunch Structure valid=" << m_beamConfig.m_valid <<
" nBunches=" << m_beamConfig.nCollidingBunches << endl;
565 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: WARNING_DB_CONN_FAILED" << endl;}
567 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_INCORRECT_NBUNCHES);
569 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_INCORRECT_NBUNCHES,eCount);
573 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: WARNING_DB_QUERY_FAILED" << endl;}
575 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_QUERY_FAILED);
577 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_QUERY_FAILED,eCount);
581 if(m_verbose){
cout <<
"[L1TSync] Retriving LHC Bunch Structure: UNKNOWN" << endl;}
583 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(
UNKNOWN);
585 m_ErrorMonitor->getTH1()->SetBinContent(
UNKNOWN,eCount);
592 if(m_verbose){
cout <<
"[L1TSync] Connect to DB: WARNING_DB_CONN_FAILED" << endl;}
594 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(WARNING_DB_CONN_FAILED);
596 m_ErrorMonitor->getTH1()->SetBinContent(WARNING_DB_CONN_FAILED,eCount);
599 if(m_verbose){
cout <<
"[L1TSync] Connect to DB: UNKNOWN" << endl;}
601 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(
UNKNOWN);
603 m_ErrorMonitor->getTH1()->SetBinContent(
UNKNOWN,eCount);
621 for(map<string,string>::const_iterator
i=m_selectedTriggers.begin() ;
i!=m_selectedTriggers.end() ;
i++){
623 string theCategory = (*i).first;
624 string theTriggerAlias = (*i).second;
627 unsigned int fLS = m_certFirstLS[theTriggerAlias];
628 unsigned int lLS = m_certLastLS [theTriggerAlias];
631 bool triggerAlias_isValid = theTriggerAlias !=
"Undefined" && theTriggerAlias !=
"Undefined (Wrong Name)";
632 bool lsBlock_exists = !(fLS == 0 && lLS == 0);
633 bool lsBlock_isValid = fLS <= lLS && fLS > 0 && lLS > 0;
635 if(triggerAlias_isValid && lsBlock_exists && lsBlock_isValid){
639 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
640 m_certFirstLS[theTriggerAlias] = 0;
641 m_certLastLS [theTriggerAlias] = 0;
648 double CountSync = 0;
652 for(
unsigned int ls=fLS ;
ls<=lLS ;
ls++){
654 CountSync += m_algoVsBunchStructure[theTriggerAlias]->getBinContent(
ls+1,3);
655 for(
int a=1 ;
a<6 ;
a++){
656 CountAll += m_algoVsBunchStructure[theTriggerAlias]->getBinContent(
ls+1,
a);
661 cout <<
"Alias = " << theTriggerAlias
664 <<
" Events=" << CountAll ;
668 CountAll >= m_parameters.getParameter<
ParameterSet>(
"Categories")
672 if(m_verbose){
cout <<
" <--------------- Enough Statistics: ";}
677 if(CountAll >0){fraction = CountSync/CountAll;}
681 if(fraction==0){fraction=0.000001;}
683 certifyLSBlock(theTriggerAlias,fLS,lLS,fraction);
684 m_certFirstLS[theTriggerAlias] = 0;
685 m_certLastLS [theTriggerAlias] = 0;
688 if(m_verbose){
cout << endl;}
697 if(!triggerAlias_isValid){
698 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_TRIGGERALIAS_NOTVALID);
700 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_TRIGGERALIAS_NOTVALID,eCount);
701 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
702 m_certFirstLS[theTriggerAlias] = 0;
703 m_certLastLS [theTriggerAlias] = 0;
707 if(lsBlock_exists && !lsBlock_isValid){
708 int eCount = m_ErrorMonitor->getTH1()->GetBinContent(ERROR_LSBLOCK_NOTVALID);
710 m_ErrorMonitor->getTH1()->SetBinContent(ERROR_LSBLOCK_NOTVALID,eCount);
711 certifyLSBlock(theTriggerAlias,fLS,lLS,-1);
712 m_certFirstLS[theTriggerAlias] = 0;
713 m_certLastLS [theTriggerAlias] = 0;
733 int binInit = m_algoCertification[iTrigger]->getTH1()->FindBin(iInitLs);
734 int binEnd = m_algoCertification[iTrigger]->getTH1()->FindBin(iEndLs);
736 for(
int ls=binInit ;
ls<=binEnd ;
ls++){
737 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)
virtual void beginLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
void analyze(const edm::Event &e, const edm::EventSetup &c)
void certifyLSBlock(std::string iTrigger, int iInitLs, int iEndLs, float iValue)
Abs< T >::type abs(const T &t)
virtual void endLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
const cms_uint32_t lhcFillNumber() const
T const * product() const
LuminosityBlockNumber_t luminosityBlock() const
void endRun(const edm::Run &run, const edm::EventSetup &iSetup)
void beginRun(const edm::Run &run, const edm::EventSetup &iSetup)
BeginRun.
const cms_uint16_t beamMode() const