CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GlobalDigisHistogrammer.cc
Go to the documentation of this file.
1 
9 
11  fName(""), verbosity(0), frequency(0), label(""), getAllProvenances(false),
12  printProvenanceInfo(false), theCSCStripPedestalSum(0),
13  theCSCStripPedestalCount(0), count(0)
14 {
15  std::string MsgLoggerCat = "GlobalDigisHistogrammer_GlobalDigisHistogrammer";
16 
17  // get information from parameter set
18  fName = iPSet.getUntrackedParameter<std::string>("Name");
19  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
20  frequency = iPSet.getUntrackedParameter<int>("Frequency");
21  outputfile = iPSet.getParameter<std::string>("outputFile");
22  doOutput = iPSet.getParameter<bool>("DoOutput");
23  edm::ParameterSet m_Prov =
24  iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
26  m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
28  m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
29 
30  //get Labels to use to extract information
31  GlobalDigisSrc_ = iPSet.getParameter<edm::InputTag>("GlobalDigisSrc");
32  //ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
33  //ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
34  //ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
35  //HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
36  //SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc");
37  //SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
38  //MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
39  //MuCSCStripSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCStripSrc");
40  //MuCSCWireSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCWireSrc");
41 
42  //fix for consumes
43  GlobalDigisSrc_Token_ = consumes<PGlobalDigi>(iPSet.getParameter<edm::InputTag>("GlobalDigisSrc"));
44  // use value of first digit to determine default output level (inclusive)
45  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
46  verbosity %= 10;
47 
48  // create persistent object
49  //produces<PGlobalDigi>(label);
50 
51  // print out Parameter Set information being used
52  if (verbosity >= 0) {
53  edm::LogInfo(MsgLoggerCat)
54  << "\n===============================\n"
55  << "Initialized as EDHistogrammer with parameter values:\n"
56  << " Name = " << fName << "\n"
57  << " Verbosity = " << verbosity << "\n"
58  << " Frequency = " << frequency << "\n"
59  << " OutputFile = " << outputfile << "\n"
60  << " DoOutput = " << doOutput << "\n"
61  << " GetProv = " << getAllProvenances << "\n"
62  << " PrintProv = " << printProvenanceInfo << "\n"
63  << " Global Src = " << GlobalDigisSrc_ << "\n"
64 
65  << "===============================\n";
66  }
67 }
68 
69  // set default constants
70  // ECal
71 
72  //ECalgainConv_[0] = 0.;
73  //ECalgainConv_[1] = 1.;
74  //ECalgainConv_[2] = 2.;
75  //ECalgainConv_[3] = 12.;
76  //ECalbarrelADCtoGeV_ = 0.035;
77  //ECalendcapADCtoGeV_ = 0.06;
78 
80  edm::Run const &, edm::EventSetup const & ){
81 
82 //monitor elements
83 
84 //Si Strip ***Done***
85  std::string SiStripString[19] = {"TECW1", "TECW2", "TECW3", "TECW4", "TECW5",
86  "TECW6", "TECW7", "TECW8", "TIBL1", "TIBL2", "TIBL3", "TIBL4", "TIDW1",
87  "TIDW2", "TIDW3", "TOBL1", "TOBL2", "TOBL3", "TOBL4"};
88 
89  for (int i = 0; i < 19; ++i) {
90  mehSiStripn[i] = 0;
91  mehSiStripADC[i] = 0;
92  mehSiStripStrip[i] = 0;
93  }
94 
95  ibooker.setCurrentFolder("GlobalDigisV/SiStrips");
96  for (int amend = 0; amend < 19; ++amend) {
97  mehSiStripn[amend] = ibooker.book1D("hSiStripn_" + SiStripString[amend],
98  SiStripString[amend] + " Digis", 500, 0., 1000.);
99 
100  mehSiStripn[amend]->setAxisTitle("Number of Digis", 1);
101  mehSiStripn[amend]->setAxisTitle("Count", 2);
102  mehSiStripADC[amend] = ibooker.book1D("hSiStripADC_" + SiStripString[amend],
103  SiStripString[amend] + " ADC", 150, 0.0, 300.);
104 
105  mehSiStripADC[amend]->setAxisTitle("ADC", 1);
106  mehSiStripADC[amend]->setAxisTitle("Count", 2);
107  mehSiStripStrip[amend] = ibooker.book1D("hSiStripStripADC_" + SiStripString[amend],
108  SiStripString[amend] + " Strip", 200, 0.0, 800.);
109  mehSiStripStrip[amend]->setAxisTitle("Strip Number", 1);
110  mehSiStripStrip[amend]->setAxisTitle("Count", 2);
111  }
112 
113  //HCal **DONE**
114  std::string HCalString[4] = {"HB", "HE", "HO","HF"};
115  float calnUpper[4] = {3000., 3000., 3000., 2000.};
116  float calnLower[4] = {2000., 2000., 2000., 1000.};
117  float SHEUpper[4] = {0.05, .05, 0.05, 20};
118  float SHEvAEEUpper[4] = {5000, 5000, 5000, 20};
119  float SHEvAEELower[4] = {-5000, -5000, -5000, -20};
120  int SHEvAEEnBins[4] = {200, 200, 200, 40};
121  double ProfileUpper[4] = {1., 1., 1., 20.};
122 
123  for (int i =0; i<4; ++i) {
124  mehHcaln[i] = 0;
125  mehHcalAEE[i] = 0;
126  mehHcalSHE[i] = 0;
127  mehHcalAEESHE[i] = 0;
128  mehHcalSHEvAEE[i] = 0;
129  }
130 
131  ibooker.setCurrentFolder("GlobalDigisV/HCals");
132  for (int amend = 0; amend < 4; ++amend) {
133  mehHcaln[amend] = ibooker.book1D("hHcaln_" + HCalString[amend],
134  HCalString[amend] + " digis", 1000, calnLower[amend], calnUpper[amend]);
135 
136  mehHcaln[amend]->setAxisTitle("Number of Digis", 1);
137  mehHcaln[amend]->setAxisTitle("Count", 2);
138  mehHcalAEE[amend] = ibooker.book1D("hHcalAEE_" + HCalString[amend],
139  HCalString[amend]+"Cal AEE", 60, -10., 50.);
140 
141  mehHcalAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
142  mehHcalAEE[amend]->setAxisTitle("Count", 2);
143  mehHcalSHE[amend] = ibooker.book1D("hHcalSHE_" + HCalString[amend],
144  HCalString[amend]+"Cal SHE", 100, 0.0, SHEUpper[amend]);
145 
146  mehHcalSHE[amend]->setAxisTitle("Simulated Hit Energy", 1);
147  mehHcalSHE[amend]->setAxisTitle("Count", 2);
148  mehHcalAEESHE[amend] = ibooker.book1D("hHcalAEESHE_" + HCalString[amend],
149  HCalString[amend] + "Cal AEE/SHE", SHEvAEEnBins[amend],
150  SHEvAEELower[amend], SHEvAEEUpper[amend]);
151 
152  mehHcalAEESHE[amend]->setAxisTitle("ADC / SHE", 1);
153  mehHcalAEESHE[amend]->setAxisTitle("Count", 2);
154 
155  //************ Not sure how to do Profile ME **************
156  mehHcalSHEvAEE[amend] = ibooker.bookProfile("hHcalSHEvAEE_" + HCalString[amend],
157  HCalString[amend] + "Cal SHE vs. AEE", 60, (float)-10., (float)50., 100,
158  (float)0., (float)ProfileUpper[amend],"");
159 
160  mehHcalSHEvAEE[amend]->setAxisTitle("AEE / SHE", 1);
161  mehHcalSHEvAEE[amend]->setAxisTitle("SHE", 2);
162  }
163 
164  //Ecal **Done **
165  std::string ECalString[2] = {"EB","EE"};
166 
167  for (int i = 0; i < 2; ++i) {
168  mehEcaln[i] = 0;
169  mehEcalAEE[i] = 0;
170  mehEcalSHE[i] = 0;
171  mehEcalMaxPos[i] = 0;
172  mehEcalMultvAEE[i] = 0;
173  mehEcalSHEvAEESHE[i] = 0;
174  }
175 
176  ibooker.setCurrentFolder("GlobalDigisV/ECals");
177  for (int amend = 0; amend < 2; ++amend) {
178  mehEcaln[amend] = ibooker.book1D("hEcaln_" + ECalString[amend],
179  ECalString[amend] + " digis", 300, 1000., 4000.);
180 
181  mehEcaln[amend]->setAxisTitle("Number of Digis", 1);
182  mehEcaln[amend]->setAxisTitle("Count", 2);
183  mehEcalAEE[amend] = ibooker.book1D("hEcalAEE_" + ECalString[amend],
184  ECalString[amend] + "Cal AEE", 100, 0., 1.);
185 
186  mehEcalAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
187  mehEcalAEE[amend]->setAxisTitle("Count", 2);
188  mehEcalSHE[amend] = ibooker.book1D("hEcalSHE_" + ECalString[amend],
189  ECalString[amend] + "Cal SHE", 50, 0., 5.);
190 
191  mehEcalSHE[amend]->setAxisTitle("Simulated Hit Energy", 1);
192  mehEcalSHE[amend]->setAxisTitle("Count", 2);
193  mehEcalMaxPos[amend] = ibooker.book1D("hEcalMaxPos_" + ECalString[amend],
194  ECalString[amend] + "Cal MaxPos", 10, 0., 10.);
195 
196  mehEcalMaxPos[amend]->setAxisTitle("Maximum Position", 1);
197  mehEcalMaxPos[amend]->setAxisTitle("Count", 2);
198 
199  //************ Not sure how to do Profile ME **************
200  mehEcalSHEvAEESHE[amend] = ibooker.bookProfile("hEcalSHEvAEESHE_" + ECalString[amend],
201  ECalString[amend] + "Cal SHE vs. AEE/SHE", 100, (float)0., (float)10., 50,
202  (float)0., (float)5., "");
203 
204  mehEcalSHEvAEESHE[amend]->setAxisTitle("AEE / SHE", 1);
205  mehEcalSHEvAEESHE[amend]->setAxisTitle("SHE", 2);
206  mehEcalMultvAEE[amend] = ibooker.bookProfile("hEcalMultvAEE_" + ECalString[amend],
207  ECalString[amend] + "Cal Multi vs. AEE", 100, (float)0., (float)10., 400,
208  (float)0., (float)4000., "");
209  mehEcalMultvAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
210  mehEcalMultvAEE[amend]->setAxisTitle("Number of Digis", 2);
211  }
212 
213  mehEcaln[2] = 0;
214  mehEcaln[2] = ibooker.book1D("hEcaln_ES", "ESCAL digis", 100, 0., 500.);
215  mehEcaln[2]->setAxisTitle("Number of Digis", 1);
216  mehEcaln[2]->setAxisTitle("Count", 2);
217  std::string ADCNumber[3] = {"0", "1", "2"};
218  for (int i = 0; i < 3; ++i) {
219  mehEScalADC[i] = 0;
220  mehEScalADC[i] = ibooker.book1D(
221  "hEcalADC" + ADCNumber[i] + "_ES","ESCAL ADC" + ADCNumber[i], 150, 950., 1500.);
222 
223  mehEScalADC[i]->setAxisTitle("ADC" + ADCNumber[i], 1);
224  mehEScalADC[i]->setAxisTitle("Count", 2);
225  }
226 
227  //Si Pixels ***DONE***
228  std::string SiPixelString[7] = {"BRL1", "BRL2", "BRL3", "FWD1n", "FWD1p", "FWD2n",
229  "FWD2p"};
230 
231  for (int j = 0; j < 7; ++j) {
232  mehSiPixeln[j] = 0;
233  mehSiPixelADC[j] = 0;
234  mehSiPixelRow[j] = 0;
235  mehSiPixelCol[j] = 0;
236  }
237 
238  ibooker.setCurrentFolder("GlobalDigisV/SiPixels");
239  for (int amend = 0; amend < 7; ++amend) {
240  if (amend < 3) {
241  mehSiPixeln[amend] = ibooker.book1D("hSiPixeln_" + SiPixelString[amend],
242  SiPixelString[amend] + " Digis", 50, 0., 100.);
243  }
244  else {
245  mehSiPixeln[amend] = ibooker.book1D("hSiPixeln_" + SiPixelString[amend],
246  SiPixelString[amend] + " Digis", 25, 0., 50.);
247  }
248 
249  mehSiPixeln[amend]->setAxisTitle("Number of Digis", 1);
250  mehSiPixeln[amend]->setAxisTitle("Count", 2);
251  mehSiPixelADC[amend] = ibooker.book1D("hSiPixelADC_" + SiPixelString[amend],
252  SiPixelString[amend] + " ADC", 150, 0.0, 300.);
253 
254  mehSiPixelADC[amend]->setAxisTitle("ADC", 1);
255  mehSiPixelADC[amend]->setAxisTitle("Count", 2);
256  mehSiPixelRow[amend] = ibooker.book1D("hSiPixelRow_" + SiPixelString[amend],
257  SiPixelString[amend] + " Row", 100, 0.0, 100.);
258 
259  mehSiPixelRow[amend]->setAxisTitle("Row Number", 1);
260  mehSiPixelRow[amend]->setAxisTitle("Count", 2);
261  mehSiPixelCol[amend] = ibooker.book1D("hSiPixelColumn_" + SiPixelString[amend],
262  SiPixelString[amend] + " Column", 200, 0.0, 500.);
263 
264  mehSiPixelCol[amend]->setAxisTitle("Column Number", 1);
265  mehSiPixelCol[amend]->setAxisTitle("Count", 2);
266  }
267 
268  //Muons ***DONE****
269  ibooker.setCurrentFolder("GlobalDigisV/Muons");
270  std::string MuonString[4] = {"MB1", "MB2", "MB3", "MB4"};
271 
272  for (int i = 0; i < 4; ++i) {
273  mehDtMuonn[i] = 0;
274  mehDtMuonLayer[i] = 0;
275  mehDtMuonTime[i] = 0;
276  mehDtMuonTimevLayer[i] = 0;
277  }
278 
279  for (int j = 0; j < 4; ++j) {
280  mehDtMuonn[j] = ibooker.book1D("hDtMuonn_" + MuonString[j],
281  MuonString[j] + " digis", 25, 0., 50.);
282 
283  mehDtMuonn[j]->setAxisTitle("Number of Digis", 1);
284  mehDtMuonn[j]->setAxisTitle("Count", 2);
285  mehDtMuonLayer[j] = ibooker.book1D("hDtLayer_" + MuonString[j],
286  MuonString[j]+" Layer", 12, 1., 13.);
287 
288  mehDtMuonLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer", 1);
289  mehDtMuonLayer[j]->setAxisTitle("Count", 2);
290  mehDtMuonTime[j] = ibooker.book1D("hDtMuonTime_" + MuonString[j],
291  MuonString[j] + " Time", 300, 400., 1000.);
292 
293  mehDtMuonTime[j]->setAxisTitle("Time", 1);
294  mehDtMuonTime[j]->setAxisTitle("Count", 2);
295  mehDtMuonTimevLayer[j] = ibooker.bookProfile("hDtMuonTimevLayer_" + MuonString[j],
296  MuonString[j] + " Time vs. Layer", 12, 1., 13., 300, 400., 1000., "");
297 
298  mehDtMuonTimevLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer", 1);
299  mehDtMuonTimevLayer[j]->setAxisTitle("Time", 2);
300  }
301 
302 
303  // **** Have to do CSC and RPC now *****
304  //CSC
305  mehCSCStripn = 0;
306  mehCSCStripn = ibooker.book1D("hCSCStripn", "CSC Strip digis", 25, 0., 50.);
307  mehCSCStripn->setAxisTitle("Number of Digis", 1);
308  mehCSCStripn->setAxisTitle("Count", 2);
309 
310  mehCSCStripADC = 0;
311  mehCSCStripADC = ibooker.book1D("hCSCStripADC", "CSC Strip ADC", 110, 0., 1100.);
312  mehCSCStripADC->setAxisTitle("ADC", 1);
313  mehCSCStripADC->setAxisTitle("Count", 2);
314 
315  mehCSCWiren = 0;
316  mehCSCWiren = ibooker.book1D("hCSCWiren", "CSC Wire digis", 25, 0., 50.);
317  mehCSCWiren->setAxisTitle("Number of Digis", 1);
318  mehCSCWiren->setAxisTitle("Count", 2);
319 
320  mehCSCWireTime = 0;
321  mehCSCWiren = ibooker.book1D("hCSCWireTime", "CSC Wire Time", 10, 0., 10.);
322  mehCSCWiren->setAxisTitle("Time", 1);
323  mehCSCWiren->setAxisTitle("Count", 2);
324 
325 } //close bookHistograms
326 
328 {
329 }
330 
332  const edm::EventSetup& iSetup)
333 {
334  std::string MsgLoggerCat = "GlobalDigisHistogrammer_analyze";
335 
336  // keep track of number of events processed
337  ++count;
338 
339  // get event id information
340  edm::RunNumber_t nrun = iEvent.id().run();
341  edm::EventNumber_t nevt = iEvent.id().event();
342 
343  if (verbosity > 0) {
344  edm::LogInfo(MsgLoggerCat)
345  << "Processing run " << nrun << ", event " << nevt
346  << " (" << count << " events total)";
347  } else if (verbosity == 0) {
348  if (nevt%frequency == 0 || nevt == 1) {
349  edm::LogInfo(MsgLoggerCat)
350  << "Processing run " << nrun << ", event " << nevt
351  << " (" << count << " events total)";
352  }
353  }
354 
355  // clear event holders
356  //clear();
357 
358  // look at information available in the event
359  if (getAllProvenances) {
360 
361  std::vector<const edm::Provenance*> AllProv;
362  iEvent.getAllProvenance(AllProv);
363 
364  if (verbosity >= 0)
365  edm::LogInfo(MsgLoggerCat)
366  << "Number of Provenances = " << AllProv.size();
367 
368  if (printProvenanceInfo && (verbosity >= 0)) {
369  TString eventout("\nProvenance info:\n");
370 
371  for (unsigned int i = 0; i < AllProv.size(); ++i) {
372  eventout += "\n ******************************";
373  eventout += "\n Module : ";
374  //eventout += (AllProv[i]->product).moduleLabel();
375  eventout += AllProv[i]->moduleLabel();
376  eventout += "\n ProductID : ";
377  //eventout += (AllProv[i]->product).productID_.id_;
378  eventout += AllProv[i]->productID().id();
379  eventout += "\n ClassName : ";
380  //eventout += (AllProv[i]->product).fullClassName_;
381  eventout += AllProv[i]->className();
382  eventout += "\n InstanceName : ";
383  //eventout += (AllProv[i]->product).productInstanceName_;
384  eventout += AllProv[i]->productInstanceName();
385  eventout += "\n BranchName : ";
386  //eventout += (AllProv[i]->product).branchName_;
387  eventout += AllProv[i]->branchName();
388  }
389  eventout += "\n ******************************\n";
390  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
391  printProvenanceInfo = false;
392  getAllProvenances = false;
393  }
394 edm::Handle<PGlobalDigi> srcGlobalDigis;
395  iEvent.getByToken(GlobalDigisSrc_Token_,srcGlobalDigis);
396  if (!srcGlobalDigis.isValid()) {
397  edm::LogWarning(MsgLoggerCat)
398  << "Unable to find PGlobalDigis in event!";
399  return;
400 
401  }
402 
403 
404 
405  int nEBCalDigis = srcGlobalDigis->getnEBCalDigis();
406  int nEECalDigis = srcGlobalDigis->getnEECalDigis();
407  int nESCalDigis = srcGlobalDigis->getnESCalDigis();
408 
409  int nHBCalDigis = srcGlobalDigis->getnHBCalDigis();
410  int nHECalDigis = srcGlobalDigis->getnHECalDigis();
411  int nHOCalDigis = srcGlobalDigis->getnHOCalDigis();
412  int nHFCalDigis = srcGlobalDigis->getnHFCalDigis();
413 
414  int nTIBL1Digis = srcGlobalDigis->getnTIBL1Digis();
415  int nTIBL2Digis = srcGlobalDigis->getnTIBL2Digis();
416  int nTIBL3Digis = srcGlobalDigis->getnTIBL3Digis();
417  int nTIBL4Digis = srcGlobalDigis->getnTIBL4Digis();
418  int nTOBL1Digis = srcGlobalDigis->getnTOBL1Digis();
419  int nTOBL2Digis = srcGlobalDigis->getnTOBL2Digis();
420  int nTOBL3Digis = srcGlobalDigis->getnTOBL3Digis();
421  int nTOBL4Digis = srcGlobalDigis->getnTOBL4Digis();
422  int nTIDW1Digis = srcGlobalDigis->getnTIDW1Digis();
423  int nTIDW2Digis = srcGlobalDigis->getnTIDW2Digis();
424  int nTIDW3Digis = srcGlobalDigis->getnTIDW3Digis();
425  int nTECW1Digis = srcGlobalDigis->getnTECW1Digis();
426  int nTECW2Digis = srcGlobalDigis->getnTECW2Digis();
427  int nTECW3Digis = srcGlobalDigis->getnTECW3Digis();
428  int nTECW4Digis = srcGlobalDigis->getnTECW4Digis();
429  int nTECW5Digis = srcGlobalDigis->getnTECW5Digis();
430  int nTECW6Digis = srcGlobalDigis->getnTECW6Digis();
431  int nTECW7Digis = srcGlobalDigis->getnTECW7Digis();
432  int nTECW8Digis = srcGlobalDigis->getnTECW8Digis();
433 
434  int nBRL1Digis = srcGlobalDigis->getnBRL1Digis();
435  int nBRL2Digis = srcGlobalDigis->getnBRL2Digis();
436  int nBRL3Digis = srcGlobalDigis->getnBRL3Digis();
437  int nFWD1nDigis = srcGlobalDigis->getnFWD1nDigis();
438  int nFWD1pDigis = srcGlobalDigis->getnFWD1pDigis();
439  int nFWD2nDigis = srcGlobalDigis->getnFWD2nDigis();
440  int nFWD2pDigis = srcGlobalDigis->getnFWD2pDigis();
441 
442  int nMB1Digis = srcGlobalDigis->getnMB1Digis();
443  int nMB2Digis = srcGlobalDigis->getnMB2Digis();
444  int nMB3Digis = srcGlobalDigis->getnMB3Digis();
445  int nMB4Digis = srcGlobalDigis->getnMB4Digis();
446 
447  int nCSCstripDigis = srcGlobalDigis->getnCSCstripDigis();
448 
449  int nCSCwireDigis = srcGlobalDigis->getnCSCwireDigis();
450 
451  // get Ecal info
452  std::vector<PGlobalDigi::ECalDigi> EECalDigis =
453  srcGlobalDigis->getEECalDigis();
454  mehEcaln[0]->Fill((float)nEECalDigis);
455  for (unsigned int i = 0; i < EECalDigis.size(); ++i) {
456  mehEcalAEE[0]->Fill(EECalDigis[i].AEE);
457  mehEcalMaxPos[0]->Fill(EECalDigis[i].maxPos);
458  mehEcalMultvAEE[0]->Fill(EECalDigis[i].AEE,(float)nEECalDigis,1);
459  if (EECalDigis[i].SHE != 0.) {
460  mehEcalSHE[0]->Fill(EECalDigis[i].SHE);
461  mehEcalSHEvAEESHE[0]->
462  Fill(EECalDigis[i].AEE/EECalDigis[i].SHE,EECalDigis[i].SHE,1);
463  }
464  }
465 
466  std::vector<PGlobalDigi::ECalDigi> EBCalDigis =
467  srcGlobalDigis->getEBCalDigis();
468  mehEcaln[1]->Fill((float)nEBCalDigis);
469  for (unsigned int i = 0; i < EBCalDigis.size(); ++i) {
470  mehEcalAEE[1]->Fill(EBCalDigis[i].AEE);
471  mehEcalMaxPos[1]->Fill(EBCalDigis[i].maxPos);
472  mehEcalMultvAEE[1]->Fill(EBCalDigis[i].AEE,(float)nEBCalDigis,1);
473  if (EBCalDigis[i].SHE != 0.) {
474  mehEcalSHE[1]->Fill(EBCalDigis[i].SHE);
475  mehEcalSHEvAEESHE[1]->
476  Fill(EBCalDigis[i].AEE/EBCalDigis[i].SHE,EBCalDigis[i].SHE,1);
477  }
478  }
479 
480  std::vector<PGlobalDigi::ESCalDigi> ESCalDigis =
481  srcGlobalDigis->getESCalDigis();
482  mehEcaln[2]->Fill((float)nESCalDigis);
483  for (unsigned int i = 0; i < ESCalDigis.size(); ++i) {
484  mehEScalADC[0]->Fill(ESCalDigis[i].ADC0);
485  mehEScalADC[1]->Fill(ESCalDigis[i].ADC1);
486  mehEScalADC[2]->Fill(ESCalDigis[i].ADC2);
487  }
488 
489  // Get HCal info
490  std::vector<PGlobalDigi::HCalDigi> HBCalDigis =
491  srcGlobalDigis->getHBCalDigis();
492  mehHcaln[0]->Fill((float)nHBCalDigis);
493  for (unsigned int i = 0; i < HBCalDigis.size(); ++i) {
494  mehHcalAEE[0]->Fill(HBCalDigis[i].AEE);
495  if (HBCalDigis[i].SHE != 0.) {
496  mehHcalSHE[0]->Fill(HBCalDigis[i].SHE);
497  mehHcalAEESHE[0]->Fill(HBCalDigis[i].AEE/HBCalDigis[i].SHE);
498  mehHcalSHEvAEE[0]->
499  Fill(HBCalDigis[i].AEE,HBCalDigis[i].SHE,1);
500  }
501  }
502  std::vector<PGlobalDigi::HCalDigi> HECalDigis =
503  srcGlobalDigis->getHECalDigis();
504  mehHcaln[1]->Fill((float)nHECalDigis);
505  for (unsigned int i = 0; i < HECalDigis.size(); ++i) {
506  mehHcalAEE[1]->Fill(HECalDigis[i].AEE);
507  if (HECalDigis[i].SHE != 0.) {
508  mehHcalSHE[1]->Fill(HECalDigis[i].SHE);
509  mehHcalAEESHE[1]->Fill(HECalDigis[i].AEE/HECalDigis[i].SHE);
510  mehHcalSHEvAEE[1]->
511  Fill(HECalDigis[i].AEE,HECalDigis[i].SHE,1);
512  }
513  }
514 
515  std::vector<PGlobalDigi::HCalDigi> HOCalDigis =
516  srcGlobalDigis->getHOCalDigis();
517  mehHcaln[2]->Fill((float)nHOCalDigis);
518  for (unsigned int i = 0; i < HOCalDigis.size(); ++i) {
519  mehHcalAEE[2]->Fill(HOCalDigis[i].AEE);
520  if (HOCalDigis[i].SHE != 0.) {
521  mehHcalSHE[2]->Fill(HOCalDigis[i].SHE);
522  mehHcalAEESHE[2]->Fill(HOCalDigis[i].AEE/HOCalDigis[i].SHE);
523  mehHcalSHEvAEE[2]->
524  Fill(HOCalDigis[i].AEE,HOCalDigis[i].SHE,1);
525  }
526  }
527 
528  std::vector<PGlobalDigi::HCalDigi> HFCalDigis =
529  srcGlobalDigis->getHFCalDigis();
530  mehHcaln[3]->Fill((float)nHFCalDigis);
531  for (unsigned int i = 0; i < HFCalDigis.size(); ++i) {
532  mehHcalAEE[3]->Fill(HFCalDigis[i].AEE);
533  if (HFCalDigis[i].SHE != 0.) {
534  mehHcalSHE[3]->Fill(HFCalDigis[i].SHE);
535  mehHcalAEESHE[3]->Fill(HFCalDigis[i].AEE/HFCalDigis[i].SHE);
536  mehHcalSHEvAEE[3]->
537  Fill(HFCalDigis[i].AEE,HFCalDigis[i].SHE,1);
538  }
539  }
540 
541  // get SiStrip info
542  std::vector<PGlobalDigi::SiStripDigi> TIBL1Digis =
543  srcGlobalDigis->getTIBL1Digis();
544  mehSiStripn[0]->Fill((float)nTIBL1Digis);
545  for (unsigned int i = 0; i < TIBL1Digis.size(); ++i) {
546  mehSiStripADC[0]->Fill(TIBL1Digis[i].ADC);
547  mehSiStripStrip[0]->Fill(TIBL1Digis[i].STRIP);
548  }
549 
550  std::vector<PGlobalDigi::SiStripDigi> TIBL2Digis =
551  srcGlobalDigis->getTIBL2Digis();
552  mehSiStripn[1]->Fill((float)nTIBL2Digis);
553  for (unsigned int i = 0; i < TIBL2Digis.size(); ++i) {
554  mehSiStripADC[1]->Fill(TIBL2Digis[i].ADC);
555  mehSiStripStrip[1]->Fill(TIBL2Digis[i].STRIP);
556  }
557 
558  std::vector<PGlobalDigi::SiStripDigi> TIBL3Digis =
559  srcGlobalDigis->getTIBL3Digis();
560  mehSiStripn[2]->Fill((float)nTIBL3Digis);
561  for (unsigned int i = 0; i < TIBL3Digis.size(); ++i) {
562  mehSiStripADC[2]->Fill(TIBL3Digis[i].ADC);
563  mehSiStripStrip[2]->Fill(TIBL3Digis[i].STRIP);
564  }
565 
566  std::vector<PGlobalDigi::SiStripDigi> TIBL4Digis =
567  srcGlobalDigis->getTIBL4Digis();
568  mehSiStripn[3]->Fill((float)nTIBL4Digis);
569  for (unsigned int i = 0; i < TIBL4Digis.size(); ++i) {
570  mehSiStripADC[3]->Fill(TIBL4Digis[i].ADC);
571  mehSiStripStrip[3]->Fill(TIBL4Digis[i].STRIP);
572  }
573 
574  std::vector<PGlobalDigi::SiStripDigi> TOBL1Digis =
575  srcGlobalDigis->getTOBL1Digis();
576  mehSiStripn[4]->Fill((float)nTOBL1Digis);
577  for (unsigned int i = 0; i < TOBL1Digis.size(); ++i) {
578  mehSiStripADC[4]->Fill(TOBL1Digis[i].ADC);
579  mehSiStripStrip[4]->Fill(TOBL1Digis[i].STRIP);
580  }
581 
582  std::vector<PGlobalDigi::SiStripDigi> TOBL2Digis =
583  srcGlobalDigis->getTOBL2Digis();
584  mehSiStripn[5]->Fill((float)nTOBL2Digis);
585  for (unsigned int i = 0; i < TOBL2Digis.size(); ++i) {
586  mehSiStripADC[5]->Fill(TOBL2Digis[i].ADC);
587  mehSiStripStrip[5]->Fill(TOBL2Digis[i].STRIP);
588  }
589 
590  std::vector<PGlobalDigi::SiStripDigi> TOBL3Digis =
591  srcGlobalDigis->getTOBL3Digis();
592  mehSiStripn[6]->Fill((float)nTOBL3Digis);
593  for (unsigned int i = 0; i < TOBL3Digis.size(); ++i) {
594  mehSiStripADC[6]->Fill(TOBL3Digis[i].ADC);
595  mehSiStripStrip[6]->Fill(TOBL3Digis[i].STRIP);
596  }
597 
598  std::vector<PGlobalDigi::SiStripDigi> TOBL4Digis =
599  srcGlobalDigis->getTOBL4Digis();
600  mehSiStripn[7]->Fill((float)nTOBL4Digis);
601  for (unsigned int i = 0; i < TOBL4Digis.size(); ++i) {
602  mehSiStripADC[7]->Fill(TOBL4Digis[i].ADC);
603  mehSiStripStrip[7]->Fill(TOBL4Digis[i].STRIP);
604  }
605 
606  std::vector<PGlobalDigi::SiStripDigi> TIDW1Digis =
607  srcGlobalDigis->getTIDW1Digis();
608  mehSiStripn[8]->Fill((float)nTIDW1Digis);
609  for (unsigned int i = 0; i < TIDW1Digis.size(); ++i) {
610  mehSiStripADC[8]->Fill(TIDW1Digis[i].ADC);
611  mehSiStripStrip[8]->Fill(TIDW1Digis[i].STRIP);
612  }
613 
614  std::vector<PGlobalDigi::SiStripDigi> TIDW2Digis =
615  srcGlobalDigis->getTIDW2Digis();
616  mehSiStripn[9]->Fill((float)nTIDW2Digis);
617  for (unsigned int i = 0; i < TIDW2Digis.size(); ++i) {
618  mehSiStripADC[9]->Fill(TIDW2Digis[i].ADC);
619  mehSiStripStrip[9]->Fill(TIDW2Digis[i].STRIP);
620  }
621 
622  std::vector<PGlobalDigi::SiStripDigi> TIDW3Digis =
623  srcGlobalDigis->getTIDW3Digis();
624  mehSiStripn[10]->Fill((float)nTIDW3Digis);
625  for (unsigned int i = 0; i < TIDW3Digis.size(); ++i) {
626  mehSiStripADC[10]->Fill(TIDW3Digis[i].ADC);
627  mehSiStripStrip[10]->Fill(TIDW3Digis[i].STRIP);
628  }
629 
630  std::vector<PGlobalDigi::SiStripDigi> TECW1Digis =
631  srcGlobalDigis->getTECW1Digis();
632  mehSiStripn[11]->Fill((float)nTECW1Digis);
633  for (unsigned int i = 0; i < TECW1Digis.size(); ++i) {
634  mehSiStripADC[11]->Fill(TECW1Digis[i].ADC);
635  mehSiStripStrip[11]->Fill(TECW1Digis[i].STRIP);
636  }
637 
638  std::vector<PGlobalDigi::SiStripDigi> TECW2Digis =
639  srcGlobalDigis->getTECW2Digis();
640  mehSiStripn[12]->Fill((float)nTECW2Digis);
641  for (unsigned int i = 0; i < TECW2Digis.size(); ++i) {
642  mehSiStripADC[12]->Fill(TECW2Digis[i].ADC);
643  mehSiStripStrip[12]->Fill(TECW2Digis[i].STRIP);
644  }
645 
646  std::vector<PGlobalDigi::SiStripDigi> TECW3Digis =
647  srcGlobalDigis->getTECW3Digis();
648  mehSiStripn[13]->Fill((float)nTECW3Digis);
649  for (unsigned int i = 0; i < TECW3Digis.size(); ++i) {
650  mehSiStripADC[13]->Fill(TECW3Digis[i].ADC);
651  mehSiStripStrip[13]->Fill(TECW3Digis[i].STRIP);
652  }
653 
654  std::vector<PGlobalDigi::SiStripDigi> TECW4Digis =
655  srcGlobalDigis->getTECW4Digis();
656  mehSiStripn[14]->Fill((float)nTECW4Digis);
657  for (unsigned int i = 0; i < TECW4Digis.size(); ++i) {
658  mehSiStripADC[14]->Fill(TECW4Digis[i].ADC);
659  mehSiStripStrip[14]->Fill(TECW4Digis[i].STRIP);
660  }
661 
662  std::vector<PGlobalDigi::SiStripDigi> TECW5Digis =
663  srcGlobalDigis->getTECW5Digis();
664  mehSiStripn[15]->Fill((float)nTECW5Digis);
665  for (unsigned int i = 0; i < TECW5Digis.size(); ++i) {
666  mehSiStripADC[15]->Fill(TECW5Digis[i].ADC);
667  mehSiStripStrip[15]->Fill(TECW5Digis[i].STRIP);
668  }
669 
670  std::vector<PGlobalDigi::SiStripDigi> TECW6Digis =
671  srcGlobalDigis->getTECW6Digis();
672  mehSiStripn[16]->Fill((float)nTECW6Digis);
673  for (unsigned int i = 0; i < TECW6Digis.size(); ++i) {
674  mehSiStripADC[16]->Fill(TECW6Digis[i].ADC);
675  mehSiStripStrip[16]->Fill(TECW6Digis[i].STRIP);
676  }
677 
678  std::vector<PGlobalDigi::SiStripDigi> TECW7Digis =
679  srcGlobalDigis->getTECW7Digis();
680  mehSiStripn[17]->Fill((float)nTECW7Digis);
681  for (unsigned int i = 0; i < TECW7Digis.size(); ++i) {
682  mehSiStripADC[17]->Fill(TECW7Digis[i].ADC);
683  mehSiStripStrip[17]->Fill(TECW7Digis[i].STRIP);
684  }
685 
686  std::vector<PGlobalDigi::SiStripDigi> TECW8Digis =
687  srcGlobalDigis->getTECW8Digis();
688  mehSiStripn[18]->Fill((float)nTECW8Digis);
689  for (unsigned int i = 0; i < TECW8Digis.size(); ++i) {
690  mehSiStripADC[18]->Fill(TECW8Digis[i].ADC);
691  mehSiStripStrip[18]->Fill(TECW8Digis[i].STRIP);
692  }
693 
694  // get SiPixel info
695  std::vector<PGlobalDigi::SiPixelDigi> BRL1Digis =
696  srcGlobalDigis->getBRL1Digis();
697  mehSiPixeln[0]->Fill((float)nBRL1Digis);
698  for (unsigned int i = 0; i < BRL1Digis.size(); ++i) {
699  mehSiPixelADC[0]->Fill(BRL1Digis[i].ADC);
700  mehSiPixelRow[0]->Fill(BRL1Digis[i].ROW);
701  mehSiPixelCol[0]->Fill(BRL1Digis[i].COLUMN);
702  }
703 
704  std::vector<PGlobalDigi::SiPixelDigi> BRL2Digis =
705  srcGlobalDigis->getBRL2Digis();
706  mehSiPixeln[1]->Fill((float)nBRL2Digis);
707  for (unsigned int i = 0; i < BRL2Digis.size(); ++i) {
708  mehSiPixelADC[1]->Fill(BRL2Digis[i].ADC);
709  mehSiPixelRow[1]->Fill(BRL2Digis[i].ROW);
710  mehSiPixelCol[1]->Fill(BRL2Digis[i].COLUMN);
711  }
712 
713  std::vector<PGlobalDigi::SiPixelDigi> BRL3Digis =
714  srcGlobalDigis->getBRL3Digis();
715  mehSiPixeln[2]->Fill((float)nBRL3Digis);
716  for (unsigned int i = 0; i < BRL3Digis.size(); ++i) {
717  mehSiPixelADC[2]->Fill(BRL3Digis[i].ADC);
718  mehSiPixelRow[2]->Fill(BRL3Digis[i].ROW);
719  mehSiPixelCol[2]->Fill(BRL3Digis[i].COLUMN);
720  }
721 
722  std::vector<PGlobalDigi::SiPixelDigi> FWD1pDigis =
723  srcGlobalDigis->getFWD1pDigis();
724  mehSiPixeln[3]->Fill((float)nFWD1pDigis);
725  for (unsigned int i = 0; i < FWD1pDigis.size(); ++i) {
726  mehSiPixelADC[3]->Fill(FWD1pDigis[i].ADC);
727  mehSiPixelRow[3]->Fill(FWD1pDigis[i].ROW);
728  mehSiPixelCol[3]->Fill(FWD1pDigis[i].COLUMN);
729  }
730 
731  std::vector<PGlobalDigi::SiPixelDigi> FWD1nDigis =
732  srcGlobalDigis->getFWD1nDigis();
733  mehSiPixeln[4]->Fill((float)nFWD1nDigis);
734  for (unsigned int i = 0; i < FWD1nDigis.size(); ++i) {
735  mehSiPixelADC[4]->Fill(FWD1nDigis[i].ADC);
736  mehSiPixelRow[4]->Fill(FWD1nDigis[i].ROW);
737  mehSiPixelCol[4]->Fill(FWD1nDigis[i].COLUMN);
738  }
739 
740  std::vector<PGlobalDigi::SiPixelDigi> FWD2pDigis =
741  srcGlobalDigis->getFWD2pDigis();
742  mehSiPixeln[5]->Fill((float)nFWD2pDigis);
743  for (unsigned int i = 0; i < FWD2pDigis.size(); ++i) {
744  mehSiPixelADC[5]->Fill(FWD2pDigis[i].ADC);
745  mehSiPixelRow[5]->Fill(FWD2pDigis[i].ROW);
746  mehSiPixelCol[5]->Fill(FWD2pDigis[i].COLUMN);
747  }
748 
749  std::vector<PGlobalDigi::SiPixelDigi> FWD2nDigis =
750  srcGlobalDigis->getFWD2nDigis();
751  mehSiPixeln[6]->Fill((float)nFWD2nDigis);
752  for (unsigned int i = 0; i < FWD2nDigis.size(); ++i) {
753  mehSiPixelADC[6]->Fill(FWD2nDigis[i].ADC);
754  mehSiPixelRow[6]->Fill(FWD2nDigis[i].ROW);
755  mehSiPixelCol[6]->Fill(FWD2nDigis[i].COLUMN);
756  }
757 
758  // get DtMuon info
759  std::vector<PGlobalDigi::DTDigi> MB1Digis =
760  srcGlobalDigis->getMB1Digis();
761  mehDtMuonn[0]->Fill((float)nMB1Digis);
762  for (unsigned int i = 0; i < MB1Digis.size(); ++i) {
763  float layer = 4.0 * (MB1Digis[i].SLAYER - 1.0) + MB1Digis[i].LAYER;
764  mehDtMuonLayer[0]->Fill(layer);
765  mehDtMuonTime[0]->Fill(MB1Digis[i].TIME);
766  mehDtMuonTimevLayer[0]->Fill(layer,MB1Digis[i].TIME,1);
767  }
768 
769  std::vector<PGlobalDigi::DTDigi> MB2Digis =
770  srcGlobalDigis->getMB2Digis();
771  mehDtMuonn[1]->Fill((float)nMB2Digis);
772  for (unsigned int i = 0; i < MB2Digis.size(); ++i) {
773  float layer = 4.0 * (MB2Digis[i].SLAYER - 1.0) + MB2Digis[i].LAYER;
774  mehDtMuonLayer[1]->Fill(layer);
775  mehDtMuonTime[1]->Fill(MB2Digis[i].TIME);
776  mehDtMuonTimevLayer[1]->Fill(layer,MB2Digis[i].TIME,1);
777  }
778 
779  std::vector<PGlobalDigi::DTDigi> MB3Digis =
780  srcGlobalDigis->getMB3Digis();
781  mehDtMuonn[2]->Fill((float)nMB3Digis);
782  for (unsigned int i = 0; i < MB3Digis.size(); ++i) {
783  float layer = 4.0 * (MB3Digis[i].SLAYER - 1.0) + MB3Digis[i].LAYER;
784  mehDtMuonLayer[2]->Fill(layer);
785  mehDtMuonTime[2]->Fill(MB3Digis[i].TIME);
786  mehDtMuonTimevLayer[2]->Fill(layer,MB3Digis[i].TIME,1);
787  }
788 
789  std::vector<PGlobalDigi::DTDigi> MB4Digis =
790  srcGlobalDigis->getMB4Digis();
791  mehDtMuonn[3]->Fill((float)nMB4Digis);
792  for (unsigned int i = 0; i < MB4Digis.size(); ++i) {
793  float layer = 4.0 * (MB4Digis[i].SLAYER - 1.0) + MB4Digis[i].LAYER;
794  mehDtMuonLayer[3]->Fill(layer);
795  mehDtMuonTime[3]->Fill(MB4Digis[i].TIME);
796  mehDtMuonTimevLayer[3]->Fill(layer,MB4Digis[i].TIME,1);
797  }
798 
799  // get CSC Strip info
800  std::vector<PGlobalDigi::CSCstripDigi> CSCstripDigis =
801  srcGlobalDigis->getCSCstripDigis();
802  mehCSCStripn->Fill((float)nCSCstripDigis);
803  for (unsigned int i = 0; i < CSCstripDigis.size(); ++i) {
804  mehCSCStripADC->Fill(CSCstripDigis[i].ADC);
805  }
806 
807  // get CSC Wire info
808  std::vector<PGlobalDigi::CSCwireDigi> CSCwireDigis =
809  srcGlobalDigis->getCSCwireDigis();
810  mehCSCWiren->Fill((float)nCSCwireDigis);
811  for (unsigned int i = 0; i < CSCwireDigis.size(); ++i) {
812  mehCSCWireTime->Fill(CSCwireDigis[i].TIME);
813  }
814  if (verbosity > 0)
815  edm::LogInfo (MsgLoggerCat)
816  << "Done gathering data from event.";
817 
818  } // end loop through events
819 }
820 
821 //define this as a plug-in
822 //DEFINE_FWK_MODULE(GlobalDigisHistogrammer);
RunNumber_t run() const
Definition: EventID.h:39
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:41
T getUntrackedParameter(std::string const &, T const &) const
void getAllProvenance(std::vector< Provenance const * > &provenances) const
Definition: Event.cc:83
int i
Definition: DBlmapReader.cc:9
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * mehDtMuonLayer[4]
MonitorElement * mehEcalMultvAEE[2]
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:449
unsigned long long EventNumber_t
MonitorElement * mehHcalAEESHE[4]
MonitorElement * mehSiPixelCol[7]
MonitorElement * mehHcalSHEvAEE[4]
MonitorElement * mehHcalSHE[4]
MonitorElement * mehDtMuonTimevLayer[4]
GlobalDigisHistogrammer(const edm::ParameterSet &)
void Fill(long long x)
MonitorElement * mehSiStripADC[19]
int iEvent
Definition: GenABIO.cc:230
MonitorElement * mehEcalSHEvAEESHE[2]
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * mehEcalSHE[2]
MonitorElement * mehHcalAEE[4]
MonitorElement * mehSiPixelRow[7]
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
int j
Definition: DBlmapReader.cc:9
MonitorElement * mehSiPixelADC[7]
bool isValid() const
Definition: HandleBase.h:75
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * mehDtMuonTime[4]
MonitorElement * mehSiStripStrip[19]
edm::EventID id() const
Definition: EventBase.h:60
MonitorElement * mehEScalADC[3]
MonitorElement * mehEcalAEE[2]
MonitorElement * mehEcalMaxPos[2]
unsigned int RunNumber_t
edm::EDGetTokenT< PGlobalDigi > GlobalDigisSrc_Token_
volatile std::atomic< bool > shutdown_flag false
MonitorElement * mehSiStripn[19]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: Run.h:41