CMS 3D CMS Logo

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