CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GlobalDigisAnalyzer.cc
Go to the documentation of this file.
1 
12 
14  fName(""), verbosity(0), frequency(0), label(""), getAllProvenances(false),
15  printProvenanceInfo(false), hitsProducer(""), theCSCStripPedestalSum(0),
16  theCSCStripPedestalCount(0), count(0)
17 {
18  std::string MsgLoggerCat = "GlobalDigisAnalyzer_GlobalDigisAnalyzer";
19 
20  // get information from parameter set
21  fName = iPSet.getUntrackedParameter<std::string>("Name");
22  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
23  frequency = iPSet.getUntrackedParameter<int>("Frequency");
24  edm::ParameterSet m_Prov =
25  iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
27  m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
29  m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
30  hitsProducer = iPSet.getParameter<std::string>("hitsProducer");
31 
32  //get Labels to use to extract information
33  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
34  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
35  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
36  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
37  HCalDigi_ = iPSet.getParameter<edm::InputTag>("HCalDigi");
38  SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc");
39  SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
40  MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
41  MuCSCStripSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCStripSrc");
42  MuCSCWireSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCWireSrc");
43  MuRPCSrc_ = iPSet.getParameter<edm::InputTag>("MuRPCSrc");
44 
45  // use value of first digit to determine default output level (inclusive)
46  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
47  verbosity %= 10;
48 
49  // print out Parameter Set information being used
50  if (verbosity >= 0) {
51  edm::LogInfo(MsgLoggerCat)
52  << "\n===============================\n"
53  << "Initialized as EDAnalyzer with parameter values:\n"
54  << " Name = " << fName << "\n"
55  << " Verbosity = " << verbosity << "\n"
56  << " Frequency = " << frequency << "\n"
57  << " GetProv = " << getAllProvenances << "\n"
58  << " PrintProv = " << printProvenanceInfo << "\n"
59  << " ECalEBSrc = " << ECalEBSrc_.label()
60  << ":" << ECalEBSrc_.instance() << "\n"
61  << " ECalEESrc = " << ECalEESrc_.label()
62  << ":" << ECalEESrc_.instance() << "\n"
63  << " ECalESSrc = " << ECalESSrc_.label()
64  << ":" << ECalESSrc_.instance() << "\n"
65  << " HCalSrc = " << HCalSrc_.label()
66  << ":" << HCalSrc_.instance() << "\n"
67  << " HCalDigi = " << HCalDigi_.label()
68  << ":" << HCalDigi_.instance() << "\n"
69  << " SiStripSrc = " << SiStripSrc_.label()
70  << ":" << SiStripSrc_.instance() << "\n"
71  << " SiPixelSrc = " << SiPxlSrc_.label()
72  << ":" << SiPxlSrc_.instance() << "\n"
73  << " MuDTSrc = " << MuDTSrc_.label()
74  << ":" << MuDTSrc_.instance() << "\n"
75  << " MuCSCStripSrc = " << MuCSCStripSrc_.label()
76  << ":" << MuCSCStripSrc_.instance() << "\n"
77  << " MuCSCWireSrc = " << MuCSCWireSrc_.label()
78  << ":" << MuCSCWireSrc_.instance() << "\n"
79  << " MuRPCSrc = " << MuRPCSrc_.label()
80  << ":" << MuRPCSrc_.instance() << "\n"
81  << "===============================\n";
82  }
83 
84  //Put in analyzer stuff here.... Pasted from Rec Hits...
85 
86  dbe = 0;
88  if (dbe) {
89  if (verbosity > 0 ) {
90  dbe->setVerbose(1);
91  } else {
92  dbe->setVerbose(0);
93  }
94  }
95  if (dbe) {
96  if (verbosity > 0 ) dbe->showDirStructure();
97  }
98 
99  //monitor elements
100 
101  //Si Strip
102  if (dbe) {
103  std::string SiStripString[19] = {"TECW1", "TECW2", "TECW3", "TECW4",
104  "TECW5", "TECW6", "TECW7", "TECW8",
105  "TIBL1", "TIBL2", "TIBL3", "TIBL4",
106  "TIDW1", "TIDW2", "TIDW3", "TOBL1",
107  "TOBL2", "TOBL3", "TOBL4"};
108  for(int i = 0; i<19; ++i) {
109  mehSiStripn[i]=0;
110  mehSiStripADC[i]=0;
111  mehSiStripStrip[i]=0;
112  }
113  std::string hcharname, hchartitle;
114  dbe->setCurrentFolder("GlobalDigisV/SiStrips");
115  for(int amend = 0; amend < 19; ++amend) {
116  hcharname = "hSiStripn_"+SiStripString[amend];
117  hchartitle= SiStripString[amend]+" Digis";
118  mehSiStripn[amend] = dbe->book1D(hcharname,hchartitle,5000,0.,10000.);
119  mehSiStripn[amend]->setAxisTitle("Number of Digis",1);
120  mehSiStripn[amend]->setAxisTitle("Count",2);
121 
122  hcharname = "hSiStripADC_"+SiStripString[amend];
123  hchartitle= SiStripString[amend]+" ADC";
124  mehSiStripADC[amend] = dbe->book1D(hcharname,hchartitle,150,0.0,300.);
125  mehSiStripADC[amend]->setAxisTitle("ADC",1);
126  mehSiStripADC[amend]->setAxisTitle("Count",2);
127 
128  hcharname = "hSiStripStripADC_"+SiStripString[amend];
129  hchartitle= SiStripString[amend]+" Strip";
130  mehSiStripStrip[amend] = dbe->book1D(hcharname,hchartitle,200,0.0,800.);
131  mehSiStripStrip[amend]->setAxisTitle("Strip Number",1);
132  mehSiStripStrip[amend]->setAxisTitle("Count",2);
133  }
134 
135  //HCal
136  std::string HCalString[4] = {"HB", "HE", "HO","HF"};
137  float calnUpper[4] = {30000.,30000.,30000.,20000.};
138  float calnLower[4]={0.,0.,0.,0.};
139  float SHEUpper[4]={1.,1.,1.,1.};
140  float SHEvAEEUpper[4] = {5000, 5000, 5000, 5000};
141  float SHEvAEELower[4] = {-5000, -5000, -5000, -5000};
142  int SHEvAEEnBins[4] = {200,200,200,200};
143  double ProfileUpper[4] = {1.,1.,1.,1.};
144 
145  for(int i =0; i<4; ++i) {
146  mehHcaln[i]=0;
147  mehHcalAEE[i]=0;
148  mehHcalSHE[i]=0;
149  mehHcalAEESHE[i]=0;
150  mehHcalSHEvAEE[i]=0;
151  }
152  dbe->setCurrentFolder("GlobalDigisV/HCals");
153 
154  for(int amend = 0; amend < 4; ++amend) {
155  hcharname = "hHcaln_"+HCalString[amend];
156  hchartitle= HCalString[amend]+" digis";
157  mehHcaln[amend] = dbe->book1D(hcharname,hchartitle, 10000, calnLower[amend],
158  calnUpper[amend]);
159  mehHcaln[amend]->setAxisTitle("Number of Digis",1);
160  mehHcaln[amend]->setAxisTitle("Count",2);
161 
162  hcharname = "hHcalAEE_"+HCalString[amend];
163  hchartitle= HCalString[amend]+"Cal AEE";
164  mehHcalAEE[amend] = dbe->book1D(hcharname,hchartitle, 60, -10., 50.);
165  mehHcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
166  mehHcalAEE[amend]->setAxisTitle("Count",2);
167 
168  hcharname = "hHcalSHE_"+HCalString[amend];
169  hchartitle= HCalString[amend]+"Cal SHE";
170  mehHcalSHE[amend] = dbe->book1D(hcharname,hchartitle, 1000, 0.0,
171  SHEUpper[amend]);
172  mehHcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
173  mehHcalSHE[amend]->setAxisTitle("Count",2);
174 
175  hcharname = "hHcalAEESHE_"+HCalString[amend];
176  hchartitle= HCalString[amend]+"Cal AEE/SHE";
177  mehHcalAEESHE[amend] = dbe->book1D(hcharname, hchartitle, SHEvAEEnBins[amend],
178  SHEvAEELower[amend],
179  SHEvAEEUpper[amend]);
180  mehHcalAEESHE[amend]->setAxisTitle("ADC / SHE",1);
181  mehHcalAEESHE[amend]->setAxisTitle("Count",2);
182 
183  hcharname = "hHcalSHEvAEE_"+HCalString[amend];
184  hchartitle= HCalString[amend]+"Cal SHE vs. AEE";
185  mehHcalSHEvAEE[amend] = dbe->bookProfile(hcharname,hchartitle, 60, -10.,
186  50., 100, 0.,
187  (float)ProfileUpper[amend],"");
188  mehHcalSHEvAEE[amend]->setAxisTitle("AEE / SHE",1);
189  mehHcalSHEvAEE[amend]->setAxisTitle("SHE",2);
190 
191  }
192 
193  //Ecal
194  std::string ECalString[2] = {"EB","EE"};
195 
196  for(int i =0; i<2; ++i) {
197  mehEcaln[i]=0;
198  mehEcalAEE[i]=0;
199  mehEcalSHE[i]=0;
200  mehEcalMaxPos[i]=0;
201  mehEcalMultvAEE[i]=0;
202  mehEcalSHEvAEESHE[i]=0;
203  }
204  dbe->setCurrentFolder("GlobalDigisV/ECals");
205 
206  for(int amend = 0; amend < 2; ++amend) {
207  hcharname = "hEcaln_"+ECalString[amend];
208  hchartitle= ECalString[amend]+" digis";
209  mehEcaln[amend] = dbe->book1D(hcharname,hchartitle, 3000, 0., 40000.);
210  mehEcaln[amend]->setAxisTitle("Number of Digis",1);
211  mehEcaln[amend]->setAxisTitle("Count",2);
212 
213  hcharname = "hEcalAEE_"+ECalString[amend];
214  hchartitle= ECalString[amend]+"Cal AEE";
215  mehEcalAEE[amend] = dbe->book1D(hcharname,hchartitle, 1000, 0., 100.);
216  mehEcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
217  mehEcalAEE[amend]->setAxisTitle("Count",2);
218 
219  hcharname = "hEcalSHE_"+ECalString[amend];
220  hchartitle= ECalString[amend]+"Cal SHE";
221  mehEcalSHE[amend] = dbe->book1D(hcharname,hchartitle, 500, 0., 50.);
222  mehEcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
223  mehEcalSHE[amend]->setAxisTitle("Count",2);
224 
225  hcharname = "hEcalMaxPos_"+ECalString[amend];
226  hchartitle= ECalString[amend]+"Cal MaxPos";
227  mehEcalMaxPos[amend] = dbe->book1D(hcharname,hchartitle,10, 0., 10.);
228  mehEcalMaxPos[amend]->setAxisTitle("Maximum Position",1);
229  mehEcalMaxPos[amend]->setAxisTitle("Count",2);
230 
231  hcharname = "hEcalSHEvAEESHE_"+ECalString[amend];
232  hchartitle= ECalString[amend]+"Cal SHE vs. AEE/SHE";
233  mehEcalSHEvAEESHE[amend] = dbe->bookProfile(hcharname,hchartitle,1000, 0., 100.,
234  500, 0., 50.,"");
235  mehEcalSHEvAEESHE[amend]->setAxisTitle("AEE / SHE",1);
236  mehEcalSHEvAEESHE[amend]->setAxisTitle("SHE",2);
237 
238  hcharname = "hEcalMultvAEE_"+ECalString[amend];
239  hchartitle= ECalString[amend]+"Cal Multi vs. AEE";
240  mehEcalMultvAEE[amend] = dbe->bookProfile(hcharname,hchartitle, 1000, 0., 100.,
241  4000, 0., 40000.,"");
242  mehEcalMultvAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
243  mehEcalMultvAEE[amend]->setAxisTitle("Number of Digis",2);
244  }
245  mehEScaln = 0;
246 
247  hcharname = "hEcaln_ES";
248  hchartitle= "ESCAL digis";
249  mehEScaln = dbe->book1D(hcharname,hchartitle, 1000, 0., 5000.);
250  mehEScaln->setAxisTitle("Number of Digis",1);
251  mehEScaln->setAxisTitle("Count",2);
252 
253  std::string ADCNumber[3] = {"0", "1", "2"};
254  for(int i =0; i<3; ++i) {
255  mehEScalADC[i] = 0;
256  hcharname = "hEcalADC"+ADCNumber[i]+"_ES";
257  hchartitle= "ESCAL ADC"+ADCNumber[i];
258  mehEScalADC[i] = dbe->book1D(hcharname,hchartitle, 1500, 0., 1500.);
259  mehEScalADC[i]->setAxisTitle("ADC"+ADCNumber[i],1);
260  mehEScalADC[i]->setAxisTitle("Count",2);
261  }
262 
263  //Si Pixels ***DONE***
264  std::string SiPixelString[7] = {"BRL1", "BRL2", "BRL3", "FWD1n", "FWD1p",
265  "FWD2n", "FWD2p"};
266  for(int j =0; j<7; ++j) {
267  mehSiPixeln[j]=0;
268  mehSiPixelADC[j]=0;
269  mehSiPixelRow[j]=0;
270  mehSiPixelCol[j]=0;
271  }
272 
273  dbe->setCurrentFolder("GlobalDigisV/SiPixels");
274  for(int amend = 0; amend < 7; ++amend) {
275  hcharname = "hSiPixeln_"+SiPixelString[amend];
276  hchartitle= SiPixelString[amend]+" Digis";
277  if(amend<3) mehSiPixeln[amend] = dbe->book1D(hcharname,hchartitle,500,0.,1000.);
278  else mehSiPixeln[amend] = dbe->book1D(hcharname,hchartitle,500,0.,1000.);
279  mehSiPixeln[amend]->setAxisTitle("Number of Digis",1);
280  mehSiPixeln[amend]->setAxisTitle("Count",2);
281 
282  hcharname = "hSiPixelADC_"+SiPixelString[amend];
283  hchartitle= SiPixelString[amend]+" ADC";
284  mehSiPixelADC[amend] = dbe->book1D(hcharname,hchartitle,150,0.0,300.);
285  mehSiPixelADC[amend]->setAxisTitle("ADC",1);
286  mehSiPixelADC[amend]->setAxisTitle("Count",2);
287 
288  hcharname = "hSiPixelRow_"+SiPixelString[amend];
289  hchartitle= SiPixelString[amend]+" Row";
290  mehSiPixelRow[amend] = dbe->book1D(hcharname,hchartitle,100,0.0,100.);
291  mehSiPixelRow[amend]->setAxisTitle("Row Number",1);
292  mehSiPixelRow[amend]->setAxisTitle("Count",2);
293 
294  hcharname = "hSiPixelColumn_"+SiPixelString[amend];
295  hchartitle= SiPixelString[amend]+" Column";
296  mehSiPixelCol[amend] = dbe->book1D(hcharname,hchartitle,200,0.0,500.);
297  mehSiPixelCol[amend]->setAxisTitle("Column Number",1);
298  mehSiPixelCol[amend]->setAxisTitle("Count",2);
299  }
300 
301  //Muons
302  dbe->setCurrentFolder("GlobalDigisV/Muons");
303 
304  //DT
305  std::string MuonString[4] = {"MB1", "MB2", "MB3", "MB4"};
306 
307  for(int i =0; i < 4; ++i) {
308  mehDtMuonn[i] = 0;
309  mehDtMuonLayer[i] = 0;
310  mehDtMuonTime[i] = 0;
311  mehDtMuonTimevLayer[i] = 0;
312  }
313 
314  for(int j = 0; j < 4; ++j) {
315  hcharname = "hDtMuonn_"+MuonString[j];
316  hchartitle= MuonString[j]+" digis";
317  mehDtMuonn[j] = dbe->book1D(hcharname,hchartitle,250, 0., 500.);
318  mehDtMuonn[j]->setAxisTitle("Number of Digis",1);
319  mehDtMuonn[j]->setAxisTitle("Count",2);
320 
321  hcharname = "hDtLayer_"+MuonString[j];
322  hchartitle= MuonString[j]+" Layer";
323  mehDtMuonLayer[j] = dbe->book1D(hcharname,hchartitle,12, 1., 13.);
324  mehDtMuonLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
325  mehDtMuonLayer[j]->setAxisTitle("Count",2);
326 
327  hcharname = "hDtMuonTime_"+MuonString[j];
328  hchartitle= MuonString[j]+" Time";
329  mehDtMuonTime[j] = dbe->book1D(hcharname,hchartitle,300, 400., 1000.);
330  mehDtMuonTime[j]->setAxisTitle("Time",1);
331  mehDtMuonTime[j]->setAxisTitle("Count",2);
332 
333  hcharname = "hDtMuonTimevLayer_"+MuonString[j];
334  hchartitle= MuonString[j]+" Time vs. Layer";
335  mehDtMuonTimevLayer[j] = dbe->bookProfile(hcharname,hchartitle,12, 1., 13., 300,
336  400., 1000.,"");
337  mehDtMuonTimevLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
338  mehDtMuonTimevLayer[j]->setAxisTitle("Time",2);
339  }
340 
341  //CSC
342  mehCSCStripn = 0;
343  hcharname = "hCSCStripn";
344  hchartitle = "CSC Strip digis";
345  mehCSCStripn = dbe->book1D(hcharname,hchartitle,250, 0., 500.);
346  mehCSCStripn->setAxisTitle("Number of Digis",1);
347  mehCSCStripn->setAxisTitle("Count",2);
348 
349  mehCSCStripADC = 0;
350  hcharname = "hCSCStripADC";
351  hchartitle = "CSC Strip ADC";
352  mehCSCStripADC = dbe->book1D(hcharname,hchartitle, 110, 0., 1100.);
353  mehCSCStripADC->setAxisTitle("ADC",1);
354  mehCSCStripADC->setAxisTitle("Count",2);
355 
356  mehCSCWiren = 0;
357  hcharname = "hCSCWiren";
358  hchartitle = "CSC Wire digis";
359  mehCSCWiren = dbe->book1D(hcharname,hchartitle,250, 0., 500.);
360  mehCSCWiren->setAxisTitle("Number of Digis",1);
361  mehCSCWiren->setAxisTitle("Count",2);
362 
363  mehCSCWireTime = 0;
364  hcharname = "hCSCWireTime";
365  hchartitle = "CSC Wire Time";
366  mehCSCWireTime = dbe->book1D(hcharname,hchartitle,10, 0., 10.);
367  mehCSCWireTime->setAxisTitle("Time",1);
368  mehCSCWireTime->setAxisTitle("Count",2);
369 
370  // RPC
371  mehRPCMuonn = 0;
372  hcharname = "hRPCMuonn";
373  hchartitle = "RPC digis";
374  mehCSCStripn = dbe->book1D(hcharname,hchartitle,250, 0., 500.);
375  mehCSCStripn->setAxisTitle("Number of Digis",1);
376  mehCSCStripn->setAxisTitle("Count",2);
377 
378  std::string MuonRPCString[5] = {"Wmin2", "Wmin1", "W0", "Wpu1", "Wpu2"};
379  for(int i =0; i < 5; ++i) {
380  mehRPCRes[i] = 0;
381  }
382 
383  for(int j = 0; j < 5; ++j) {
384  hcharname = "hRPCRes_"+MuonRPCString[j];
385  hchartitle= MuonRPCString[j]+" Digi - Sim";
386  mehRPCRes[j] = dbe->book1D(hcharname,hchartitle,200, -8., 8.);
387  mehRPCRes[j]->setAxisTitle("Digi - Sim center of strip x",1);
388  mehRPCRes[j]->setAxisTitle("Count",2);
389  }
390  }
391 
392  // set default constants
393  // ECal
394 
395  ECalgainConv_[0] = 0.;
396  ECalgainConv_[1] = 1.;
397  ECalgainConv_[2] = 2.;
398  ECalgainConv_[3] = 12.;
399  ECalbarrelADCtoGeV_ = 0.035;
400  ECalendcapADCtoGeV_ = 0.06;
401 }
402 
404 
406 {
407  std::string MsgLoggerCat = "GlobalDigisAnalyzer_beginJob";
408 
409  EcalMGPAGainRatio * defaultRatios = new EcalMGPAGainRatio();
410 
411  ECalgainConv_[0] = 0.;
412  ECalgainConv_[1] = 1.;
413  ECalgainConv_[2] = defaultRatios->gain12Over6() ;
414  ECalgainConv_[3] = ECalgainConv_[2]*(defaultRatios->gain6Over1()) ;
415 
416  delete defaultRatios;
417 
418  if (verbosity >= 0) {
419  edm::LogInfo(MsgLoggerCat)
420  << "Modified Calorimeter gain constants: g0 = " << ECalgainConv_[0]
421  << ", g1 = " << ECalgainConv_[1] << ", g2 = " << ECalgainConv_[2]
422  << ", g3 = " << ECalgainConv_[3];
423  }
424 
425  return;
426 }
427 
428 
430 {
431  std::string MsgLoggerCat = "GlobalDigisAnalyzer_endJob";
432  if (verbosity >= 0)
433  edm::LogInfo(MsgLoggerCat)
434  << "Terminating having processed " << count << " events.";
435  return;
436 }
437 
439  const edm::EventSetup& iSetup)
440 {
441  std::string MsgLoggerCat = "GlobalDigisAnalyzer_analyze";
442 
443  // keep track of number of events processed
444  ++count;
445 
446 
447 
448  // THIS BLOCK MIGRATED HERE FROM beginJob:
449  // setup calorimeter constants from service
451  iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
452  const EcalADCToGeVConstant* agc = pAgc.product();
455  if (verbosity >= 0) {
456  edm::LogInfo(MsgLoggerCat)
457  << "Modified Calorimeter ADCtoGeV constants: barrel = "
458  << ECalbarrelADCtoGeV_ << ", endcap = " << ECalendcapADCtoGeV_;
459  }
460 
461 
462 
463  // get event id information
464  int nrun = iEvent.id().run();
465  int nevt = iEvent.id().event();
466 
467  if (verbosity > 0) {
468  edm::LogInfo(MsgLoggerCat)
469  << "Processing run " << nrun << ", event " << nevt
470  << " (" << count << " events total)";
471  } else if (verbosity == 0) {
472  if (nevt%frequency == 0 || nevt == 1) {
473  edm::LogInfo(MsgLoggerCat)
474  << "Processing run " << nrun << ", event " << nevt
475  << " (" << count << " events total)";
476  }
477  }
478 
479  // look at information available in the event
480  if (getAllProvenances) {
481 
482  std::vector<const edm::Provenance*> AllProv;
483  iEvent.getAllProvenance(AllProv);
484 
485  if (verbosity >= 0)
486  edm::LogInfo(MsgLoggerCat)
487  << "Number of Provenances = " << AllProv.size();
488 
489  if (printProvenanceInfo && (verbosity >= 0)) {
490  TString eventout("\nProvenance info:\n");
491 
492  for (unsigned int i = 0; i < AllProv.size(); ++i) {
493  eventout += "\n ******************************";
494  eventout += "\n Module : ";
495  eventout += AllProv[i]->moduleLabel();
496  eventout += "\n ProductID : ";
497  eventout += AllProv[i]->productID().id();
498  eventout += "\n ClassName : ";
499  eventout += AllProv[i]->className();
500  eventout += "\n InstanceName : ";
501  eventout += AllProv[i]->productInstanceName();
502  eventout += "\n BranchName : ";
503  eventout += AllProv[i]->branchName();
504  }
505  eventout += "\n ******************************\n";
506  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
507  printProvenanceInfo = false;
508  }
509  getAllProvenances = false;
510  }
511 
512  // call fill functions
513  // gather Ecal information from event
514  fillECal(iEvent, iSetup);
515  // gather Hcal information from event
516  fillHCal(iEvent, iSetup);
517  // gather Track information from event
518  fillTrk(iEvent, iSetup);
519  // gather Muon information from event
520  fillMuon(iEvent, iSetup);
521 
522  if (verbosity > 0)
523  edm::LogInfo (MsgLoggerCat)
524  << "Done gathering data from event.";
525 
526  if (verbosity > 2)
527  edm::LogInfo (MsgLoggerCat)
528  << "Saving event contents:";
529 
530  return;
531 }
532 
534  const edm::EventSetup& iSetup)
535 {
536  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillECal";
537 
538  TString eventout;
539  if (verbosity > 0)
540  eventout = "\nGathering info:";
541 
542  // extract crossing frame from event
543  edm::Handle<CrossingFrame<PCaloHit> > crossingFrame;
544 
546  //extract EB information
548  bool isBarrel = true;
549  edm::Handle<EBDigiCollection> EcalDigiEB;
550  iEvent.getByLabel(ECalEBSrc_, EcalDigiEB);
551  bool validDigiEB = true;
552  if (!EcalDigiEB.isValid()) {
553  LogDebug(MsgLoggerCat)
554  << "Unable to find EcalDigiEB in event!";
555  validDigiEB = false;
556  }
557  if (validDigiEB) {
558  if ( EcalDigiEB->size() == 0) isBarrel = false;
559 
560  if (isBarrel) {
561 
562  // loop over simhits
563  MapType ebSimMap;
564  const std::string barrelHitsName(hitsProducer+"EcalHitsEB");
565  iEvent.getByLabel("mix",barrelHitsName,crossingFrame);
566  bool validXFrame = true;
567  if (!crossingFrame.isValid()) {
568  LogDebug(MsgLoggerCat)
569  << "Unable to find cal barrel crossingFrame in event!";
570  validXFrame = false;
571  }
572  if (validXFrame) {
573  std::auto_ptr<MixCollection<PCaloHit> >
574  barrelHits(new MixCollection<PCaloHit>(crossingFrame.product()));
575 
576  // keep track of sum of simhit energy in each crystal
578  = barrelHits->begin();
579  hitItr != barrelHits->end();
580  ++hitItr) {
581 
582  EBDetId ebid = EBDetId(hitItr->id());
583 
584  uint32_t crystid = ebid.rawId();
585  ebSimMap[crystid] += hitItr->energy();
586  }
587  }
588 
589  // loop over digis
590  const EBDigiCollection *barrelDigi = EcalDigiEB.product();
591 
592  std::vector<double> ebAnalogSignal;
593  std::vector<double> ebADCCounts;
594  std::vector<double> ebADCGains;
595  ebAnalogSignal.reserve(EBDataFrame::MAXSAMPLES);
596  ebADCCounts.reserve(EBDataFrame::MAXSAMPLES);
597  ebADCGains.reserve(EBDataFrame::MAXSAMPLES);
598 
599  int i = 0;
600  for (unsigned int digis=0; digis<EcalDigiEB->size(); ++digis) {
601 
602  ++i;
603 
604  EBDataFrame ebdf = (*barrelDigi)[digis];
605  int nrSamples = ebdf.size();
606 
607  EBDetId ebid = ebdf.id () ;
608 
609  double Emax = 0;
610  int Pmax = 0;
611  double pedestalPreSample = 0.;
612  double pedestalPreSampleAnalog = 0.;
613 
614  for (int sample = 0 ; sample < nrSamples; ++sample) {
615  ebAnalogSignal[sample] = 0.;
616  ebADCCounts[sample] = 0.;
617  ebADCGains[sample] = -1.;
618  }
619 
620  // calculate maximum energy and pedestal
621  for (int sample = 0 ; sample < nrSamples; ++sample) {
622 
623  EcalMGPASample thisSample = ebdf[sample];
624  ebADCCounts[sample] = (thisSample.adc());
625  ebADCGains[sample] = (thisSample.gainId());
626  ebAnalogSignal[sample] =
627  (ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]]
629  if (Emax < ebAnalogSignal[sample]) {
630  Emax = ebAnalogSignal[sample];
631  Pmax = sample;
632  }
633  if ( sample < 3 ) {
634  pedestalPreSample += ebADCCounts[sample] ;
635  pedestalPreSampleAnalog +=
636  ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]]
637  * ECalbarrelADCtoGeV_ ;
638  }
639 
640  }
641  pedestalPreSample /= 3. ;
642  pedestalPreSampleAnalog /= 3. ;
643 
644  // calculate pedestal subtracted digi energy in the crystal
645  double Erec = Emax - pedestalPreSampleAnalog
646  * ECalgainConv_[(int)ebADCGains[Pmax]];
647 
648  // gather necessary information
649  mehEcalMaxPos[0]->Fill(Pmax);
650  mehEcalSHE[0]->Fill(ebSimMap[ebid.rawId()]);
651  mehEcalAEE[0]->Fill(Erec);
652  //Adding protection against FPE
653  if (ebSimMap[ebid.rawId()]!=0) {
654  mehEcalSHEvAEESHE[0]->Fill(Erec/ebSimMap[ebid.rawId()],
655  ebSimMap[ebid.rawId()]);
656  }
657  //else {
658  // std::cout<<"Would have been an FPE! with ebSimMap[ebid.rawId()]==0\n";
659  //}
660 
661  mehEcalMultvAEE[0]->Fill(Pmax,(float)i);
662  }
663 
664  if (verbosity > 1) {
665  eventout += "\n Number of EBDigis collected:.............. ";
666  eventout += i;
667  }
668  mehEcaln[0]->Fill((float)i);
669  }
670  }
671 
673  //extract EE information
675  bool isEndCap = true;
676  edm::Handle<EEDigiCollection> EcalDigiEE;
677  iEvent.getByLabel(ECalEESrc_, EcalDigiEE);
678  bool validDigiEE = true;
679  if (!EcalDigiEE.isValid()) {
680  LogDebug(MsgLoggerCat)
681  << "Unable to find EcalDigiEE in event!";
682  validDigiEE = false;
683  }
684  if (validDigiEE) {
685  if (EcalDigiEE->size() == 0) isEndCap = false;
686 
687  if (isEndCap) {
688 
689  // loop over simhits
690  MapType eeSimMap;
691  const std::string endcapHitsName(hitsProducer+"EcalHitsEE");
692  iEvent.getByLabel("mix",endcapHitsName,crossingFrame);
693  bool validXFrame = true;
694  if (!crossingFrame.isValid()) {
695  LogDebug(MsgLoggerCat)
696  << "Unable to find cal endcap crossingFrame in event!";
697  validXFrame = false;
698  }
699  if (validXFrame) {
700  std::auto_ptr<MixCollection<PCaloHit> >
701  endcapHits(new MixCollection<PCaloHit>(crossingFrame.product()));
702 
703  // keep track of sum of simhit energy in each crystal
705  = endcapHits->begin();
706  hitItr != endcapHits->end();
707  ++hitItr) {
708 
709  EEDetId eeid = EEDetId(hitItr->id());
710 
711  uint32_t crystid = eeid.rawId();
712  eeSimMap[crystid] += hitItr->energy();
713  }
714  }
715 
716  // loop over digis
717  const EEDigiCollection *endcapDigi = EcalDigiEE.product();
718 
719  std::vector<double> eeAnalogSignal;
720  std::vector<double> eeADCCounts;
721  std::vector<double> eeADCGains;
722  eeAnalogSignal.reserve(EEDataFrame::MAXSAMPLES);
723  eeADCCounts.reserve(EEDataFrame::MAXSAMPLES);
724  eeADCGains.reserve(EEDataFrame::MAXSAMPLES);
725 
726  int inc = 0;
727  for (unsigned int digis=0; digis<EcalDigiEE->size(); ++digis){
728 
729  ++inc;
730 
731  EEDataFrame eedf = (*endcapDigi)[digis];
732  int nrSamples = eedf.size();
733 
734  EEDetId eeid = eedf.id () ;
735 
736  double Emax = 0;
737  int Pmax = 0;
738  double pedestalPreSample = 0.;
739  double pedestalPreSampleAnalog = 0.;
740 
741  for (int sample = 0 ; sample < nrSamples; ++sample) {
742  eeAnalogSignal[sample] = 0.;
743  eeADCCounts[sample] = 0.;
744  eeADCGains[sample] = -1.;
745  }
746 
747  // calculate maximum enery and pedestal
748  for (int sample = 0 ; sample < nrSamples; ++sample) {
749 
750  EcalMGPASample thisSample = eedf[sample];
751 
752  eeADCCounts[sample] = (thisSample.adc());
753  eeADCGains[sample] = (thisSample.gainId());
754  eeAnalogSignal[sample] =
755  (eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]]
757  if (Emax < eeAnalogSignal[sample]) {
758  Emax = eeAnalogSignal[sample];
759  Pmax = sample;
760  }
761  if ( sample < 3 ) {
762  pedestalPreSample += eeADCCounts[sample] ;
763  pedestalPreSampleAnalog +=
764  eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]]
765  * ECalbarrelADCtoGeV_ ;
766  }
767 
768  }
769  pedestalPreSample /= 3. ;
770  pedestalPreSampleAnalog /= 3. ;
771 
772  // calculate pedestal subtracted digi energy in the crystal
773  double Erec = Emax - pedestalPreSampleAnalog
774  * ECalgainConv_[(int)eeADCGains[Pmax]];
775 
776  // gather necessary information
777  mehEcalMaxPos[1]->Fill(Pmax);
778  mehEcalSHE[1]->Fill(eeSimMap[eeid.rawId()]);
779  mehEcalAEE[1]->Fill(Erec);
780  //Adding protection against FPE
781  if (eeSimMap[eeid.rawId()]!=0){
782  mehEcalSHEvAEESHE[1]->Fill(Erec/eeSimMap[eeid.rawId()],
783  eeSimMap[eeid.rawId()]);
784  }
785  //else{
786  // std::cout<<"Would have been an FPE! with eeSimMap[eeid.rawId()]==0\n";
787  //}
788  mehEcalMultvAEE[1]->Fill(Pmax,(float)inc);
789 
790  }
791 
792  if (verbosity > 1) {
793  eventout += "\n Number of EEDigis collected:.............. ";
794  eventout += inc;
795  }
796 
797  mehEcaln[1]->Fill((float)inc);
798  }
799  }
800 
802  //extract ES information
804  bool isPreshower = true;
805  edm::Handle<ESDigiCollection> EcalDigiES;
806  iEvent.getByLabel(ECalESSrc_, EcalDigiES);
807  bool validDigiES = true;
808  if (!EcalDigiES.isValid()) {
809  LogDebug(MsgLoggerCat)
810  << "Unable to find EcalDigiES in event!";
811  validDigiES = false;
812  }
813 
814  // ONLY WHILE GEOMETRY IS REMOVED
815  validDigiES = false;
816 
817  if (validDigiES) {
818  if (EcalDigiES->size() == 0) isPreshower = false;
819 
820  if (isPreshower) {
821 
822  // loop over simhits
823  const std::string preshowerHitsName(hitsProducer+"EcalHitsES");
824  iEvent.getByLabel("mix",preshowerHitsName,crossingFrame);
825  bool validXFrame = true;
826  if (!crossingFrame.isValid()) {
827  LogDebug(MsgLoggerCat)
828  << "Unable to find cal preshower crossingFrame in event!";
829  validXFrame = false;
830  }
831  if (validXFrame) {
832  std::auto_ptr<MixCollection<PCaloHit> >
833  preshowerHits(new MixCollection<PCaloHit>(crossingFrame.product()));
834 
835  // keep track of sum of simhit energy in each crystal
836  MapType esSimMap;
838  = preshowerHits->begin();
839  hitItr != preshowerHits->end();
840  ++hitItr) {
841 
842  ESDetId esid = ESDetId(hitItr->id());
843 
844  uint32_t crystid = esid.rawId();
845  esSimMap[crystid] += hitItr->energy();
846  }
847  }
848 
849  // loop over digis
850  const ESDigiCollection *preshowerDigi = EcalDigiES.product();
851 
852  std::vector<double> esADCCounts;
853  esADCCounts.reserve(ESDataFrame::MAXSAMPLES);
854 
855  int i = 0;
856  for (unsigned int digis=0; digis<EcalDigiES->size(); ++digis) {
857 
858  ++i;
859 
860 
861  ESDataFrame esdf = (*preshowerDigi)[digis];
862  int nrSamples = esdf.size();
863 
864  for (int sample = 0 ; sample < nrSamples; ++sample) {
865  esADCCounts[sample] = 0.;
866  }
867 
868  // gether ADC counts
869  for (int sample = 0 ; sample < nrSamples; ++sample) {
870 
871  ESSample thisSample = esdf[sample];
872  esADCCounts[sample] = (thisSample.adc());
873  }
874 
875  mehEScalADC[0]->Fill(esADCCounts[0]);
876  mehEScalADC[1]->Fill(esADCCounts[1]);
877  mehEScalADC[2]->Fill(esADCCounts[2]);
878 
879  }
880 
881  if (verbosity > 1) {
882  eventout += "\n Number of ESDigis collected:.............. ";
883  eventout += i;
884  }
885 
886  mehEScaln->Fill((float)i);
887  }
888  }
889  if (verbosity > 0)
890  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
891 
892  return;
893 }
894 
895 
897  const edm::EventSetup& iSetup)
898 {
899  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillHCal";
900 
901  TString eventout;
902  if (verbosity > 0)
903  eventout = "\nGathering info:";
904 
905  // get calibration info
906  edm::ESHandle<HcalDbService> HCalconditions;
907  iSetup.get<HcalDbRecord>().get(HCalconditions);
908  if (!HCalconditions.isValid()) {
909  edm::LogWarning(MsgLoggerCat)
910  << "Unable to find HCalconditions in event!";
911  return;
912  }
913  const HcalQIEShape *shape = HCalconditions->getHcalShape();
914  //HcalCalibrations calibrations;
915  CaloSamples tool;
916 
918  // extract simhit info
921  iEvent.getByLabel(HCalSrc_,hcalHits);
922  bool validhcalHits = true;
923  if (!hcalHits.isValid()) {
924  LogDebug(MsgLoggerCat)
925  << "Unable to find hcalHits in event!";
926  validhcalHits = false;
927  }
928  MapType fHBEnergySimHits;
929  MapType fHEEnergySimHits;
930  MapType fHOEnergySimHits;
931  MapType fHFEnergySimHits;
932  if (validhcalHits) {
933  const edm::PCaloHitContainer *simhitResult = hcalHits.product();
934 
935  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin();
936  simhits != simhitResult->end();
937  ++simhits) {
938 
939  HcalDetId detId(simhits->id());
940  uint32_t cellid = detId.rawId();
941 
942  if (detId.subdet() == sdHcalBrl){
943  fHBEnergySimHits[cellid] += simhits->energy();
944  }
945  if (detId.subdet() == sdHcalEC){
946  fHEEnergySimHits[cellid] += simhits->energy();
947  }
948  if (detId.subdet() == sdHcalOut){
949  fHOEnergySimHits[cellid] += simhits->energy();
950  }
951  if (detId.subdet() == sdHcalFwd){
952  fHFEnergySimHits[cellid] += simhits->energy();
953  }
954  }
955  }
956 
958  // get HBHE information
961  iEvent.getByLabel(HCalDigi_,hbhe);
962  bool validHBHE = true;
963  if (!hbhe.isValid()) {
964  LogDebug(MsgLoggerCat)
965  << "Unable to find HBHEDataFrame in event!";
966  validHBHE = false;
967  }
968 
969  if (validHBHE) {
971 
972  int iHB = 0;
973  int iHE = 0;
974  for (ihbhe = hbhe->begin(); ihbhe != hbhe->end(); ++ihbhe) {
975  HcalDetId cell(ihbhe->id());
976 
977  if ((cell.subdet() == sdHcalBrl) || (cell.subdet() == sdHcalEC)) {
978 
979  //HCalconditions->makeHcalCalibration(cell, &calibrations);
980  const HcalCalibrations& calibrations =
981  HCalconditions->getHcalCalibrations(cell);
982  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
983  HcalCoderDb coder(*channelCoder, *shape);
984  coder.adc2fC(*ihbhe, tool);
985 
986  // get HB info
987  if (cell.subdet() == sdHcalBrl) {
988 
989  ++iHB;
990  float fDigiSum = 0.0;
991  for (int ii = 0; ii < tool.size(); ++ii) {
992  // default ped is 4.5
993  int capid = (*ihbhe)[ii].capid();
994  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
995  }
996 
997  mehHcalSHE[0]->Fill(fHFEnergySimHits[cell.rawId()]);
998  mehHcalAEE[0]->Fill(fDigiSum);
999  //Adding protection against FPE
1000  if (fHFEnergySimHits[cell.rawId()]!=0){
1001  mehHcalAEESHE[0]->Fill(fDigiSum/fHFEnergySimHits[cell.rawId()]);
1002  }
1003  //else {
1004  // std::cout<<"It would have been an FPE! with fHFEnergySimHits[cell.rawId()]==0!\n";
1005  //}
1006  mehHcalSHEvAEE[0]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1007  }
1008 
1009  // get HE info
1010  if (cell.subdet() == sdHcalEC) {
1011 
1012  ++iHE;
1013  float fDigiSum = 0.0;
1014  for (int ii = 0; ii < tool.size(); ++ii) {
1015  int capid = (*ihbhe)[ii].capid();
1016  fDigiSum += (tool[ii]-calibrations.pedestal(capid));
1017  }
1018 
1019  mehHcalSHE[1]->Fill(fHFEnergySimHits[cell.rawId()]);
1020  mehHcalAEE[1]->Fill(fDigiSum);
1021  //Adding protection against FPE
1022  if (fHFEnergySimHits[cell.rawId()]!=0){
1023  mehHcalAEESHE[1]->Fill(fDigiSum/fHFEnergySimHits[cell.rawId()]);
1024  }
1025  //else{
1026  // std::cout<<"It would have been an FPE! with fHFEnergySimHits[cell.rawId()]==0!\n";
1027  //}
1028  mehHcalSHEvAEE[1]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1029  }
1030  }
1031  }
1032 
1033  if (verbosity > 1) {
1034  eventout += "\n Number of HBDigis collected:.............. ";
1035  eventout += iHB;
1036  }
1037  mehHcaln[0]->Fill((float)iHB);
1038 
1039  if (verbosity > 1) {
1040  eventout += "\n Number of HEDigis collected:.............. ";
1041  eventout += iHE;
1042  }
1043  mehHcaln[1]->Fill((float)iHE);
1044  }
1045 
1047  // get HO information
1050  iEvent.getByLabel(HCalDigi_,ho);
1051  bool validHO = true;
1052  if (!ho.isValid()) {
1053  LogDebug(MsgLoggerCat)
1054  << "Unable to find HODataFrame in event!";
1055  validHO = false;
1056  }
1057  if (validHO) {
1059 
1060  int iHO = 0;
1061  for (iho = ho->begin(); iho != ho->end(); ++iho) {
1062  HcalDetId cell(iho->id());
1063 
1064  if (cell.subdet() == sdHcalOut) {
1065 
1066  //HCalconditions->makeHcalCalibration(cell, &calibrations);
1067  const HcalCalibrations& calibrations =
1068  HCalconditions->getHcalCalibrations(cell);
1069  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
1070  HcalCoderDb coder (*channelCoder, *shape);
1071  coder.adc2fC(*iho, tool);
1072 
1073  ++iHO;
1074  float fDigiSum = 0.0;
1075  for (int ii = 0; ii < tool.size(); ++ii) {
1076  // default ped is 4.5
1077  int capid = (*iho)[ii].capid();
1078  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
1079  }
1080 
1081  mehHcalSHE[2]->Fill(fHFEnergySimHits[cell.rawId()]);
1082  mehHcalAEE[2]->Fill(fDigiSum);
1083  //Adding protection against FPE
1084  if (fHFEnergySimHits[cell.rawId()]!=0){
1085  mehHcalAEESHE[2]->Fill(fDigiSum/fHFEnergySimHits[cell.rawId()]);
1086  }
1087  //else{
1088  // std::cout<<"It would have been an FPE! with fHFEnergySimHits[cell.rawId()]==0!\n";
1089  //}
1090  mehHcalSHEvAEE[2]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1091  }
1092  }
1093 
1094  if (verbosity > 1) {
1095  eventout += "\n Number of HODigis collected:.............. ";
1096  eventout += iHO;
1097  }
1098  mehHcaln[2]->Fill((float)iHO);
1099  }
1100 
1102  // get HF information
1105  iEvent.getByLabel(HCalDigi_,hf);
1106  bool validHF = true;
1107  if (!hf.isValid()) {
1108  LogDebug(MsgLoggerCat)
1109  << "Unable to find HFDataFrame in event!";
1110  validHF = false;
1111  }
1112  if (validHF) {
1114 
1115  int iHF = 0;
1116  for (ihf = hf->begin(); ihf != hf->end(); ++ihf) {
1117  HcalDetId cell(ihf->id());
1118 
1119  if (cell.subdet() == sdHcalFwd) {
1120 
1121  //HCalconditions->makeHcalCalibration(cell, &calibrations);
1122  const HcalCalibrations& calibrations =
1123  HCalconditions->getHcalCalibrations(cell);
1124  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
1125  HcalCoderDb coder (*channelCoder, *shape);
1126  coder.adc2fC(*ihf, tool);
1127 
1128  ++iHF;
1129  float fDigiSum = 0.0;
1130  for (int ii = 0; ii < tool.size(); ++ii) {
1131  // default ped is 1.73077
1132  int capid = (*ihf)[ii].capid();
1133  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
1134  }
1135 
1136  mehHcalSHE[3]->Fill(fHFEnergySimHits[cell.rawId()]);
1137  mehHcalAEE[3]->Fill(fDigiSum);
1138  //Adding protection against FPE
1139  if (fHFEnergySimHits[cell.rawId()]!=0){
1140  mehHcalAEESHE[3]->Fill(fDigiSum/fHFEnergySimHits[cell.rawId()]);
1141  }
1142  //else{
1143  // std::cout<<"It would have been an FPE! with fHFEnergySimHits[cell.rawId()]==0!\n";
1144  //}
1145  mehHcalSHEvAEE[3]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1146  }
1147  }
1148 
1149  if (verbosity > 1) {
1150  eventout += "\n Number of HFDigis collected:.............. ";
1151  eventout += iHF;
1152  }
1153  mehHcaln[3]->Fill((float)iHF);
1154  }
1155 
1156  if (verbosity > 0)
1157  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1158 
1159  return;
1160 }
1161 
1163  const edm::EventSetup& iSetup)
1164 {
1165  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillTrk";
1166 
1167  TString eventout;
1168  if (verbosity > 0)
1169  eventout = "\nGathering info:";
1170 
1171  // get strip information
1173  iEvent.getByLabel(SiStripSrc_, stripDigis);
1174  bool validstripDigis = true;
1175  if (!stripDigis.isValid()) {
1176  LogDebug(MsgLoggerCat)
1177  << "Unable to find stripDigis in event!";
1178  validstripDigis = false;
1179  }
1180 
1181  if (validstripDigis) {
1182  int nStripBrl = 0, nStripFwd = 0;
1184  for (DSViter = stripDigis->begin(); DSViter != stripDigis->end();
1185  ++DSViter) {
1186  unsigned int id = DSViter->id;
1187  DetId detId(id);
1191 
1192  // get TIB
1193  if (detId.subdetId() == sdSiTIB) {
1194  TIBDetId tibid(id);
1195  for (iter = begin; iter != end; ++iter) {
1196  ++nStripBrl;
1197  if (tibid.layer() == 1) {
1198  mehSiStripADC[0]->Fill((*iter).adc());
1199  mehSiStripStrip[0]->Fill((*iter).strip());
1200  }
1201  if (tibid.layer() == 2) {
1202  mehSiStripADC[1]->Fill((*iter).adc());
1203  mehSiStripStrip[1]->Fill((*iter).strip());
1204  }
1205  if (tibid.layer() == 3) {
1206  mehSiStripADC[2]->Fill((*iter).adc());
1207  mehSiStripStrip[2]->Fill((*iter).strip());
1208  }
1209  if (tibid.layer() == 4) {
1210  mehSiStripADC[3]->Fill((*iter).adc());
1211  mehSiStripStrip[3]->Fill((*iter).strip());
1212  }
1213  }
1214  }
1215 
1216  // get TOB
1217  if (detId.subdetId() == sdSiTOB) {
1218  TOBDetId tobid(id);
1219  for (iter = begin; iter != end; ++iter) {
1220  ++nStripBrl;
1221  if (tobid.layer() == 1) {
1222  mehSiStripADC[4]->Fill((*iter).adc());
1223  mehSiStripStrip[4]->Fill((*iter).strip());
1224  }
1225  if (tobid.layer() == 2) {
1226  mehSiStripADC[5]->Fill((*iter).adc());
1227  mehSiStripStrip[5]->Fill((*iter).strip());
1228  }
1229  if (tobid.layer() == 3) {
1230  mehSiStripADC[6]->Fill((*iter).adc());
1231  mehSiStripStrip[6]->Fill((*iter).strip());
1232  }
1233  if (tobid.layer() == 4) {
1234  mehSiStripADC[7]->Fill((*iter).adc());
1235  mehSiStripStrip[7]->Fill((*iter).strip());
1236  }
1237  }
1238  }
1239 
1240  // get TID
1241  if (detId.subdetId() == sdSiTID) {
1242  TIDDetId tidid(id);
1243  for (iter = begin; iter != end; ++iter) {
1244  ++nStripFwd;
1245  if (tidid.wheel() == 1) {
1246  mehSiStripADC[8]->Fill((*iter).adc());
1247  mehSiStripStrip[8]->Fill((*iter).strip());
1248  }
1249  if (tidid.wheel() == 2) {
1250  mehSiStripADC[9]->Fill((*iter).adc());
1251  mehSiStripStrip[9]->Fill((*iter).strip());
1252  }
1253  if (tidid.wheel() == 3) {
1254  mehSiStripADC[10]->Fill((*iter).adc());
1255  mehSiStripStrip[10]->Fill((*iter).strip());
1256  }
1257  }
1258  }
1259 
1260  // get TEC
1261  if (detId.subdetId() == sdSiTEC) {
1262  TECDetId tecid(id);
1263  for (iter = begin; iter != end; ++iter) {
1264  ++nStripFwd;
1265  if (tecid.wheel() == 1) {
1266  mehSiStripADC[11]->Fill((*iter).adc());
1267  mehSiStripStrip[11]->Fill((*iter).strip());
1268  }
1269  if (tecid.wheel() == 2) {
1270  mehSiStripADC[12]->Fill((*iter).adc());
1271  mehSiStripStrip[12]->Fill((*iter).strip());
1272  }
1273  if (tecid.wheel() == 3) {
1274  mehSiStripADC[13]->Fill((*iter).adc());
1275  mehSiStripStrip[13]->Fill((*iter).strip());
1276  }
1277  if (tecid.wheel() == 4) {
1278  mehSiStripADC[14]->Fill((*iter).adc());
1279  mehSiStripStrip[14]->Fill((*iter).strip());
1280  }
1281  if (tecid.wheel() == 5) {
1282  mehSiStripADC[15]->Fill((*iter).adc());
1283  mehSiStripStrip[15]->Fill((*iter).strip());
1284  }
1285  if (tecid.wheel() == 6) {
1286  mehSiStripADC[16]->Fill((*iter).adc());
1287  mehSiStripStrip[16]->Fill((*iter).strip());
1288  }
1289  if (tecid.wheel() == 7) {
1290  mehSiStripADC[17]->Fill((*iter).adc());
1291  mehSiStripStrip[17]->Fill((*iter).strip());
1292  }
1293  if (tecid.wheel() == 8) {
1294  mehSiStripADC[18]->Fill((*iter).adc());
1295  mehSiStripStrip[18]->Fill((*iter).strip());
1296  }
1297  }
1298  }
1299  } // end loop over DataSetVector
1300 
1301  if (verbosity > 1) {
1302  eventout += "\n Number of BrlStripDigis collected:........ ";
1303  eventout += nStripBrl;
1304  }
1305  for(int i = 0; i < 8; ++i) {
1306  mehSiStripn[i]->Fill((float)nStripBrl);
1307  }
1308 
1309  if (verbosity > 1) {
1310  eventout += "\n Number of FrwdStripDigis collected:....... ";
1311  eventout += nStripFwd;
1312  }
1313  for(int i = 8; i < 19; ++i) {
1314  mehSiStripn[i]->Fill((float)nStripFwd);
1315  }
1316  }
1317 
1318  // get pixel information
1320  iEvent.getByLabel(SiPxlSrc_, pixelDigis);
1321  bool validpixelDigis = true;
1322  if (!pixelDigis.isValid()) {
1323  LogDebug(MsgLoggerCat)
1324  << "Unable to find pixelDigis in event!";
1325  validpixelDigis = false;
1326  }
1327  if (validpixelDigis) {
1328  int nPxlBrl = 0, nPxlFwd = 0;
1330  for (DPViter = pixelDigis->begin(); DPViter != pixelDigis->end();
1331  ++DPViter) {
1332  unsigned int id = DPViter->id;
1333  DetId detId(id);
1337 
1338  // get Barrel pixels
1339  if (detId.subdetId() == sdPxlBrl) {
1340  PXBDetId bdetid(id);
1341  for (iter = begin; iter != end; ++iter) {
1342  ++nPxlBrl;
1343  if (bdetid.layer() == 1) {
1344  mehSiPixelADC[0]->Fill((*iter).adc());
1345  mehSiPixelRow[0]->Fill((*iter).row());
1346  mehSiPixelCol[0]->Fill((*iter).column());
1347  }
1348  if (bdetid.layer() == 2) {
1349  mehSiPixelADC[1]->Fill((*iter).adc());
1350  mehSiPixelRow[1]->Fill((*iter).row());
1351  mehSiPixelCol[1]->Fill((*iter).column());
1352  }
1353  if (bdetid.layer() == 3) {
1354  mehSiPixelADC[2]->Fill((*iter).adc());
1355  mehSiPixelRow[2]->Fill((*iter).row());
1356  mehSiPixelCol[2]->Fill((*iter).column());
1357  }
1358  }
1359  }
1360 
1361  // get Forward pixels
1362  if (detId.subdetId() == sdPxlFwd) {
1363  PXFDetId fdetid(id);
1364  for (iter = begin; iter != end; ++iter) {
1365  ++nPxlFwd;
1366  if (fdetid.disk() == 1) {
1367  if (fdetid.side() == 1) {
1368  mehSiPixelADC[4]->Fill((*iter).adc());
1369  mehSiPixelRow[4]->Fill((*iter).row());
1370  mehSiPixelCol[4]->Fill((*iter).column());
1371  }
1372  if (fdetid.side() == 2) {
1373  mehSiPixelADC[3]->Fill((*iter).adc());
1374  mehSiPixelRow[3]->Fill((*iter).row());
1375  mehSiPixelCol[3]->Fill((*iter).column());
1376  }
1377  }
1378  if (fdetid.disk() == 2) {
1379  if (fdetid.side() == 1) {
1380 
1381  mehSiPixelADC[6]->Fill((*iter).adc());
1382  mehSiPixelRow[6]->Fill((*iter).row());
1383  mehSiPixelCol[6]->Fill((*iter).column());
1384  }
1385  if (fdetid.side() == 2) {
1386  mehSiPixelADC[5]->Fill((*iter).adc());
1387  mehSiPixelRow[5]->Fill((*iter).row());
1388  mehSiPixelCol[5]->Fill((*iter).column());
1389  }
1390  }
1391  }
1392  }
1393  }
1394 
1395  if (verbosity > 1) {
1396  eventout += "\n Number of BrlPixelDigis collected:........ ";
1397  eventout += nPxlBrl;
1398  }
1399  for(int i = 0; i < 3; ++i) {
1400  mehSiPixeln[i]->Fill((float)nPxlBrl);
1401  }
1402 
1403  if (verbosity > 1) {
1404  eventout += "\n Number of FrwdPixelDigis collected:....... ";
1405  eventout += nPxlFwd;
1406  }
1407 
1408  for(int i = 3; i < 7; ++i) {
1409  mehSiPixeln[i]->Fill((float)nPxlFwd);
1410  }
1411  }
1412 
1413  if (verbosity > 0)
1414  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1415 
1416  return;
1417 }
1418 
1420  const edm::EventSetup& iSetup)
1421 {
1422  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillMuon";
1423 
1424  TString eventout;
1425  if (verbosity > 0)
1426  eventout = "\nGathering info:";
1427 
1428  // get DT information
1430  iEvent.getByLabel(MuDTSrc_, dtDigis);
1431  bool validdtDigis = true;
1432  if (!dtDigis.isValid()) {
1433  LogDebug(MsgLoggerCat)
1434  << "Unable to find dtDigis in event!";
1435  validdtDigis = false;
1436  }
1437  if (validdtDigis) {
1438  int nDt0 = 0; int nDt1 = 0; int nDt2 = 0; int nDt3 = 0;
1439  int nDt = 0;
1441  for (detUnitIt = dtDigis->begin(); detUnitIt != dtDigis->end();
1442  ++detUnitIt) {
1443 
1444  const DTLayerId& id = (*detUnitIt).first;
1445  const DTDigiCollection::Range& range = (*detUnitIt).second;
1446  for (DTDigiCollection::const_iterator digiIt = range.first;
1447  digiIt != range.second;
1448  ++digiIt) {
1449 
1450  ++nDt;
1451 
1452  DTWireId wireId(id,(*digiIt).wire());
1453  if (wireId.station() == 1) {
1454  mehDtMuonLayer[0]->Fill(id.layer());
1455  mehDtMuonTime[0]->Fill((*digiIt).time());
1456  mehDtMuonTimevLayer[0]->Fill(id.layer(),(*digiIt).time());
1457  ++nDt0;
1458  }
1459  if (wireId.station() == 2) {
1460  mehDtMuonLayer[1]->Fill(id.layer());
1461  mehDtMuonTime[1]->Fill((*digiIt).time());
1462  mehDtMuonTimevLayer[1]->Fill(id.layer(),(*digiIt).time());
1463  ++nDt1;
1464  }
1465  if (wireId.station() == 3) {
1466  mehDtMuonLayer[2]->Fill(id.layer());
1467  mehDtMuonTime[2]->Fill((*digiIt).time());
1468  mehDtMuonTimevLayer[2]->Fill(id.layer(),(*digiIt).time());
1469  ++nDt2;
1470  }
1471  if (wireId.station() == 4) {
1472  mehDtMuonLayer[3]->Fill(id.layer());
1473  mehDtMuonTime[3]->Fill((*digiIt).time());
1474  mehDtMuonTimevLayer[3]->Fill(id.layer(),(*digiIt).time());
1475  ++nDt3;
1476  }
1477  }
1478  }
1479  mehDtMuonn[0]->Fill((float)nDt0);
1480  mehDtMuonn[1]->Fill((float)nDt1);
1481  mehDtMuonn[2]->Fill((float)nDt2);
1482  mehDtMuonn[3]->Fill((float)nDt3);
1483 
1484 
1485  if (verbosity > 1) {
1486  eventout += "\n Number of DtMuonDigis collected:.......... ";
1487  eventout += nDt;
1488  }
1489  }
1490 
1491  // get CSC Strip information
1493  iEvent.getByLabel(MuCSCStripSrc_, strips);
1494  bool validstrips = true;
1495  if (!strips.isValid()) {
1496  LogDebug(MsgLoggerCat)
1497  << "Unable to find muon strips in event!";
1498  validstrips = false;
1499  }
1500 
1501  if (validstrips) {
1502  int nStrips = 0;
1503  for (CSCStripDigiCollection::DigiRangeIterator j = strips->begin();
1504  j != strips->end();
1505  ++j) {
1506 
1507  std::vector<CSCStripDigi>::const_iterator digiItr = (*j).second.first;
1508  std::vector<CSCStripDigi>::const_iterator last = (*j).second.second;
1509 
1510  for ( ; digiItr != last; ++digiItr) {
1511  ++nStrips;
1512 
1513  // average pedestals
1514  std::vector<int> adcCounts = digiItr->getADCCounts();
1515  theCSCStripPedestalSum += adcCounts[0];
1516  theCSCStripPedestalSum += adcCounts[1];
1518 
1519  // if there are enough pedestal statistics
1520  if (theCSCStripPedestalCount > 100) {
1522  if (adcCounts[5] > (pedestal + 100))
1523  mehCSCStripADC->Fill(adcCounts[4] - pedestal);
1524  }
1525  }
1526  }
1527 
1528  if (verbosity > 1) {
1529  eventout += "\n Number of CSCStripDigis collected:........ ";
1530  eventout += nStrips;
1531  }
1532  mehCSCStripn->Fill((float)nStrips);
1533  }
1534 
1535  // get CSC Wire information
1537  iEvent.getByLabel(MuCSCWireSrc_, wires);
1538  bool validwires = true;
1539  if (!wires.isValid()) {
1540  LogDebug(MsgLoggerCat)
1541  << "Unable to find muon wires in event!";
1542  validwires = false;
1543  }
1544 
1545  if (validwires) {
1546  int nWires = 0;
1547  for (CSCWireDigiCollection::DigiRangeIterator j = wires->begin();
1548  j != wires->end();
1549  ++j) {
1550 
1551  std::vector<CSCWireDigi>::const_iterator digiItr = (*j).second.first;
1552  std::vector<CSCWireDigi>::const_iterator endDigi = (*j).second.second;
1553 
1554  for ( ; digiItr != endDigi; ++digiItr) {
1555  ++nWires;
1556  mehCSCWireTime->Fill(digiItr->getTimeBin());
1557  }
1558  }
1559 
1560  if (verbosity > 1) {
1561  eventout += "\n Number of CSCWireDigis collected:......... ";
1562  eventout += nWires;
1563  }
1564  mehCSCWiren->Fill((float)nWires);
1565  }
1566 
1567  // get RPC information
1568  // Get the RPC Geometry
1570  iSetup.get<MuonGeometryRecord>().get(rpcGeom);
1571  if (!rpcGeom.isValid()) {
1572  edm::LogWarning(MsgLoggerCat)
1573  << "Unable to find RPCGeometryRecord in event!";
1574  return;
1575  }
1576 
1578  iEvent.getByLabel("g4SimHits", "MuonRPCHits", rpcsimHit);
1579  bool validrpcsim = true;
1580  if (!rpcsimHit.isValid()) {
1581  LogDebug(MsgLoggerCat)
1582  << "Unable to find rpcsimHit in event!";
1583  validrpcsim = false;
1584  }
1585 
1587  iEvent.getByLabel(MuRPCSrc_, rpcDigis);
1588  bool validrpcdigi = true;
1589  if (!rpcDigis.isValid()) {
1590  LogDebug(MsgLoggerCat)
1591  << "Unable to find rpcDigis in event!";
1592  validrpcdigi = false;
1593  }
1594 
1595  // ONLY UNTIL PROBLEM WITH RPC DIGIS IS FIGURED OUT
1596  validrpcdigi = false;
1597 
1598  // Loop on simhits
1599  edm::PSimHitContainer::const_iterator rpcsimIt;
1600  std::map<RPCDetId, std::vector<double> > allsims;
1601 
1602  if (validrpcsim) {
1603  for (rpcsimIt = rpcsimHit->begin(); rpcsimIt != rpcsimHit->end();
1604  rpcsimIt++) {
1605  RPCDetId Rsid = (RPCDetId)(*rpcsimIt).detUnitId();
1606  int ptype = rpcsimIt->particleType();
1607 
1608  if (ptype == 13 || ptype == -13) {
1609  std::vector<double> buff;
1610  if (allsims.find(Rsid) != allsims.end() ){
1611  buff= allsims[Rsid];
1612  }
1613  buff.push_back(rpcsimIt->localPosition().x());
1614  allsims[Rsid]=buff;
1615  }
1616  }
1617  }
1618 
1619  // CRASH HAPPENS SOMEWHERE HERE IN FOR DECLARATION
1620  // WHAT IS WRONG WITH rpcDigis?????
1621  if (validrpcdigi) {
1622  int nRPC = 0;
1624  for (rpcdetUnitIt = rpcDigis->begin(); rpcdetUnitIt != rpcDigis->end();
1625  ++rpcdetUnitIt) {
1626 
1627  const RPCDetId Rsid = (*rpcdetUnitIt).first;
1628  const RPCRoll* roll =
1629  dynamic_cast<const RPCRoll* >( rpcGeom->roll(Rsid));
1630  const RPCDigiCollection::Range& range = (*rpcdetUnitIt).second;
1631 
1632  std::vector<double> sims;
1633  if (allsims.find(Rsid) != allsims.end() ){
1634  sims = allsims[Rsid];
1635  }
1636 
1637  int ndigi = 0;
1638  for (RPCDigiCollection::const_iterator rpcdigiIt = range.first;
1639  rpcdigiIt != range.second;
1640  ++rpcdigiIt) {
1641 
1642  ++ndigi;
1643  ++nRPC;
1644  }
1645 
1646  if (sims.size() == 1 && ndigi == 1){
1647  double dis = roll->centreOfStrip(range.first->strip()).x()-sims[0];
1648 
1649  if (Rsid.region() == 0 ){
1650  if (Rsid.ring() == -2)
1651  mehRPCRes[0]->Fill((float)dis);
1652  else if (Rsid.ring() == -1)
1653  mehRPCRes[1]->Fill((float)dis);
1654  else if (Rsid.ring() == 0)
1655  mehRPCRes[2]->Fill((float)dis);
1656  else if (Rsid.ring() == 1)
1657  mehRPCRes[3]->Fill((float)dis);
1658  else if (Rsid.ring() == 2)
1659  mehRPCRes[4]->Fill((float)dis);
1660  }
1661  }
1662  }
1663 
1664  if (verbosity > 1) {
1665  eventout += "\n Number of RPCDigis collected:.............. ";
1666  eventout += nRPC;
1667  }
1668  mehRPCMuonn->Fill(float(nRPC));
1669  }
1670 
1671  if (verbosity > 0)
1672  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1673 
1674  return;
1675 }
#define LogDebug(id)
GlobalDigisAnalyzer(const edm::ParameterSet &)
RunNumber_t run() const
Definition: EventID.h:42
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:44
T getUntrackedParameter(std::string const &, T const &) const
void getAllProvenance(std::vector< Provenance const * > &provenances) const
Definition: Event.cc:70
int i
Definition: DBlmapReader.cc:9
LocalPoint centreOfStrip(int strip) const
Definition: RPCRoll.cc:52
std::vector< PCaloHit > PCaloHitContainer
MonitorElement * mehEScalADC[3]
key_type id() const
Definition: EBDataFrame.h:32
int ihf
MonitorElement * mehDtMuonLayer[4]
unsigned int layer() const
layer id
Definition: TOBDetId.h:39
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
static const int sdHcalOut
MonitorElement * mehEcaln[2]
void fillECal(const edm::Event &, const edm::EventSetup &)
static const int sdSiTID
MonitorElement * mehEScaln
std::vector< T >::const_iterator const_iterator
MonitorElement * mehSiPixelRow[7]
MonitorElement * mehRPCRes[5]
double pedestal(int fCapId) const
get pedestal for capid=0..3
MonitorElement * mehSiStripADC[19]
int size() const
Definition: ESDataFrame.h:23
MonitorElement * mehDtMuonTimevLayer[4]
MonitorElement * mehSiStripn[19]
int gainId() const
get the gainId (2 bits)
MonitorElement * mehCSCWireTime
int size() const
Definition: EcalDataFrame.h:27
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
void Fill(long long x)
virtual void beginJob(void)
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
MonitorElement * mehEcalMaxPos[2]
MonitorElement * mehDtMuonTime[4]
int iEvent
Definition: GenABIO.cc:243
static const int sdSiTIB
static const int sdPxlBrl
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
virtual void adc2fC(const HBHEDataFrame &df, CaloSamples &lf) const
Definition: HcalCoderDb.cc:37
int ring() const
Definition: RPCDetId.h:76
edm::InputTag MuCSCStripSrc_
static const int MAXSAMPLES
Definition: ESDataFrame.h:32
MonitorElement * mehHcalAEE[4]
int j
Definition: DBlmapReader.cc:9
std::map< uint32_t, float, std::less< uint32_t > > MapType
static const int sdSiTOB
float gain6Over1() const
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1031
#define end
Definition: vmac.h:38
void setVerbose(unsigned level)
Definition: DQMStore.cc:393
bool isValid() const
Definition: HandleBase.h:76
std::map< int, double, std::less< int > > ECalgainConv_
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:356
unsigned int disk() const
disk id
Definition: PXFDetId.h:43
void fillHCal(const edm::Event &, const edm::EventSetup &)
key_type id() const
Definition: EEDataFrame.h:29
MonitorElement * mehRPCMuonn
MonitorElement * mehEcalSHE[2]
Definition: DetId.h:20
void fillMuon(const edm::Event &, const edm::EventSetup &)
MonitorElement * mehEcalAEE[2]
MonitorElement * mehHcalSHEvAEE[4]
MonitorElement * mehCSCStripn
int size() const
get the size
Definition: CaloSamples.h:24
MonitorElement * mehCSCStripADC
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
static const int sdHcalFwd
float gain12Over6() const
std::vector< DigiType >::const_iterator const_iterator
T const * product() const
Definition: Handle.h:74
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
static const int sdHcalBrl
MonitorElement * mehSiPixelCol[7]
MonitorElement * mehHcaln[4]
unsigned int layer() const
layer id
Definition: TIBDetId.h:41
std::string const & label() const
Definition: InputTag.h:25
MonitorElement * mehHcalAEESHE[4]
MonitorElement * mehEcalSHEvAEESHE[2]
edm::EventID id() const
Definition: EventBase.h:56
static const int sdSiTEC
#define begin
Definition: vmac.h:31
MonitorElement * mehHcalSHE[4]
unsigned int side() const
positive or negative id
Definition: PXFDetId.h:38
MonitorElement * mehCSCWiren
std::pair< const_iterator, const_iterator > Range
int adc() const
get the ADC sample (singed 16 bits)
Definition: ESSample.h:18
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:341
static const int sdPxlFwd
void showDirStructure(void) const
Definition: DQMStore.cc:2761
MonitorElement * mehEcalMultvAEE[2]
MonitorElement * mehSiPixeln[7]
MonitorElement * mehSiStripStrip[19]
x
Definition: VDTMath.h:216
collection_type::const_iterator const_iterator
Definition: DetSet.h:34
bool isValid() const
Definition: ESHandle.h:37
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:106
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void fillTrk(const edm::Event &, const edm::EventSetup &)
std::string const & instance() const
Definition: InputTag.h:26
static const int sdHcalEC
static const int MAXSAMPLES
Definition: EcalDataFrame.h:49
MonitorElement * mehSiPixelADC[7]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
int adc() const
get the ADC sample (12 bits)
MonitorElement * mehDtMuonn[4]
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:67
virtual void analyze(const edm::Event &, const edm::EventSetup &)