CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTScalerInfoTask.cc
Go to the documentation of this file.
1 /*
2  * \file DTScalerInfoTask.cc
3  *
4  * \author C. Battilana - CIEMAT
5  *
6 */
7 
9 
10 // Framework
12 
13 // DT DQM
15 
16 #include <sstream>
17 #include <iostream>
18 #include <fstream>
19 
20 using namespace edm;
21 using namespace std;
22 
24  nEvents(0) {
25 
26  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
27  << "[DTScalerInfoTask]: Constructor"<<endl;
28 
29  scalerToken_ = consumes<LumiScalersCollection>(
30  ps.getUntrackedParameter<InputTag>("inputTagScaler"));
31  theParams = ps;
33 
34 }
35 
36 
38 
39  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
40  << "[DTScalerInfoTask]: analyzed " << nEvents << " events" << endl;
41 
42 }
43 
44 
46 
47  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
48  << "[DTScalerInfoTask]: BeginJob" << endl;
49 
50 }
51 
52 
54 
55  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
56  << "[DTScalerInfoTask]: BeginRun" << endl;
57 
58  bookHistos();
59 
60 }
61 
62 
64 
65  nEventsInLS=0;
66 
67  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
68  << "[DTScalerInfoTask]: Begin of LS transition" << endl;
69 
70  }
71 
72 void DTScalerInfoTask::endLuminosityBlock(const LuminosityBlock& lumiSeg, const EventSetup& context) {
73 
74  LogTrace("DTDQM|DTMonitorModule|DTScalerInfoTask")
75  << "[DTScalerInfoTask]: End of LS transition" << endl;
76 
77 
78  int block = lumiSeg.luminosityBlock();
79 
80  map<string,DTTimeEvolutionHisto* >::const_iterator histoIt = trendHistos.begin();
81  map<string,DTTimeEvolutionHisto* >::const_iterator histoEnd = trendHistos.end();
82  for(;histoIt!=histoEnd;++histoIt) {
83  histoIt->second->updateTimeSlot(block, nEventsInLS);
84  }
85 
86 }
87 
88 
90 
91  LogVerbatim("DTDQM|DTMonitorModule|DTScalerInfoTask")
92  << "[DTScalerInfoTask]: analyzed " << nEvents << " events" << endl;
93 
94 }
95 
96 
98 
99  nEvents++;
100  nEventsInLS++;
102 
103  //retrieve the luminosity
105  if (e.getByToken(scalerToken_, lumiScalers)) {
106  if (lumiScalers->begin() != lumiScalers->end()) {
107  LumiScalersCollection::const_iterator lumiIt = lumiScalers->begin();
108  trendHistos["AvgLumivsLumiSec"]->accumulateValueTimeSlot(lumiIt->instantLumi());
109  }
110  else {
111  LogVerbatim("DTDQM|DTMonitorModule|DTScalerInfoTask")
112  << "[DTScalerInfoTask]: LumiScalersCollection size == 0" << endl;
113  }
114  }
115  else {
116  LogVerbatim("DTDQM|DTMonitorModule|DTScalerInfoTask")
117  << "[DTScalerInfoTask]: LumiScalersCollection getByToken call failed" << endl;
118  }
119 
120 }
121 
122 
124 
125  theDQMStore->setCurrentFolder("DT/EventInfo/Counters");
126  nEventMonitor = theDQMStore->bookFloat("nProcessedEventsScalerInfo");
127 
128  theDQMStore->setCurrentFolder("DT/00-DataIntegrity/ScalerInfo");
129 
130  string histoName = "AvgLumivsLumiSec";
131  string histoTitle = "Average Lumi vs LumiSec";
132  trendHistos[histoName] = new DTTimeEvolutionHisto(theDQMStore,histoName,histoTitle,200,10,true,0);
133 
134 }
135 
136 // Local Variables:
137 // show-trailing-whitespace: t
138 // truncate-lines: t
139 // End:
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * nEventMonitor
DTScalerInfoTask(const edm::ParameterSet &ps)
Constructor.
edm::EDGetTokenT< LumiScalersCollection > scalerToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
To reset the MEs.
MonitorElement * bookFloat(const char *name)
Book float.
Definition: DQMStore.cc:879
virtual ~DTScalerInfoTask()
Destructor.
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
DQMStore * theDQMStore
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
Perform trend plot operations.
void beginRun(const edm::Run &, const edm::EventSetup &)
Beginrun.
void bookHistos()
Book the histograms.
#define LogTrace(id)
void endJob(void)
EndJob.
std::map< std::string,DTTimeEvolutionHisto * > trendHistos
UInt_t nEvents
Definition: hcalCalib.cc:42
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:655
Definition: Run.h:41
edm::ParameterSet theParams