CMS 3D CMS Logo

GlobalDigisProducer.cc
Go to the documentation of this file.
1 
11 
13  fName(""), verbosity(0), frequency(0), label(""), getAllProvenances(false),
14  printProvenanceInfo(false), theCSCStripPedestalSum(0),
15  theCSCStripPedestalCount(0), count(0)
16 {
17  std::string MsgLoggerCat = "GlobalDigisProducer_GlobalDigisProducer";
18 
19  // get information from parameter set
20  fName = iPSet.getUntrackedParameter<std::string>("Name");
21  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
22  frequency = iPSet.getUntrackedParameter<int>("Frequency");
23  label = iPSet.getParameter<std::string>("Label");
24  edm::ParameterSet m_Prov =
25  iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
27  m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
29  m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
30 
31  //get Labels to use to extract information
32  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
33  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
34  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
35  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
36  HCalDigi_ = iPSet.getParameter<edm::InputTag>("HCalDigi");
37  SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc");
38  SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
39  MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
40  MuCSCStripSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCStripSrc");
41  MuCSCWireSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCWireSrc");
42  // fix for consumes
43  ECalEBSrc_Token_ = consumes<EBDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
44  ECalEESrc_Token_ = consumes<EEDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
45  ECalESSrc_Token_ = consumes<ESDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
46  HCalSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
47  HBHEDigi_Token_ = consumes<edm::SortedCollection<HBHEDataFrame> >(iPSet.getParameter<edm::InputTag>("HCalDigi"));
48  HODigi_Token_ = consumes<edm::SortedCollection<HODataFrame>>(iPSet.getParameter<edm::InputTag>("HCalDigi"));
49  HFDigi_Token_ = consumes<edm::SortedCollection<HFDataFrame>>(iPSet.getParameter<edm::InputTag>("HCalDigi"));
50  SiStripSrc_Token_ = consumes<edm::DetSetVector<SiStripDigi> >(iPSet.getParameter<edm::InputTag>("SiStripSrc"));
51  SiPxlSrc_Token_ = consumes<edm::DetSetVector<PixelDigi> >(iPSet.getParameter<edm::InputTag>("SiPxlSrc"));
52  MuDTSrc_Token_ = consumes<DTDigiCollection>(iPSet.getParameter<edm::InputTag>("MuDTSrc"));
53  MuCSCStripSrc_Token_ = consumes<CSCStripDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCStripSrc"));
54  MuCSCWireSrc_Token_ = consumes<CSCWireDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCWireSrc"));
55  //
56  const std::string barrelHitsName("EcalHitsEB");
57  const std::string endcapHitsName("EcalHitsEE");
58  const std::string preshowerHitsName("EcalHitsES");
59  EBHits_Token_ = consumes<CrossingFrame<PCaloHit> >(edm::InputTag(std::string("mix"), std::string("barrelHitsName")));
60  EEHits_Token_ = consumes<CrossingFrame<PCaloHit> >(edm::InputTag(std::string("mix"), std::string("endcapHitsName")));
61  ESHits_Token_ = consumes<CrossingFrame<PCaloHit> >(edm::InputTag(std::string("mix"), std::string("preshowerHitsName")));
62 
63  // use value of first digit to determine default output level (inclusive)
64  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
65  verbosity %= 10;
66 
67  // create persistent object
68  produces<PGlobalDigi>(label);
69 
70  // print out Parameter Set information being used
71  if (verbosity >= 0) {
72  edm::LogInfo(MsgLoggerCat)
73  << "\n===============================\n"
74  << "Initialized as EDProducer with parameter values:\n"
75  << " Name = " << fName << "\n"
76  << " Verbosity = " << verbosity << "\n"
77  << " Frequency = " << frequency << "\n"
78  << " Label = " << label << "\n"
79  << " GetProv = " << getAllProvenances << "\n"
80  << " PrintProv = " << printProvenanceInfo << "\n"
81  << " ECalEBSrc = " << ECalEBSrc_.label()
82  << ":" << ECalEBSrc_.instance() << "\n"
83  << " ECalEESrc = " << ECalEESrc_.label()
84  << ":" << ECalEESrc_.instance() << "\n"
85  << " ECalESSrc = " << ECalESSrc_.label()
86  << ":" << ECalESSrc_.instance() << "\n"
87  << " HCalSrc = " << HCalSrc_.label()
88  << ":" << HCalSrc_.instance() << "\n"
89  << " HCalDigi = " << HCalDigi_.label()
90  << ":" << HCalDigi_.instance() << "\n"
91  << " SiStripSrc = " << SiStripSrc_.label()
92  << ":" << SiStripSrc_.instance() << "\n"
93  << " SiPixelSrc = " << SiPxlSrc_.label()
94  << ":" << SiPxlSrc_.instance() << "\n"
95  << " MuDTSrc = " << MuDTSrc_.label()
96  << ":" << MuDTSrc_.instance() << "\n"
97  << " MuCSCStripSrc = " << MuCSCStripSrc_.label()
98  << ":" << MuCSCStripSrc_.instance() << "\n"
99  << " MuCSCWireSrc = " << MuCSCWireSrc_.label()
100  << ":" << MuCSCWireSrc_.instance() << "\n"
101  << "===============================\n";
102  }
103 
104  // set default constants
105  // ECal
106  ECalgainConv_[0] = 0.;
107  ECalgainConv_[1] = 1.;
108  ECalgainConv_[2] = 2.;
109  ECalgainConv_[3] = 12.;
110  ECalbarrelADCtoGeV_ = 0.035;
111  ECalendcapADCtoGeV_ = 0.06;
112 
113 }
114 
116 {
117 }
118 
120 {
121  std::string MsgLoggerCat = "GlobalDigisProducer_beginJob";
122 
123 // // setup calorimeter constants from service
124 // edm::ESHandle<EcalADCToGeVConstant> pAgc;
125 // iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
126 // const EcalADCToGeVConstant* agc = pAgc.product();
127 
128  EcalMGPAGainRatio * defaultRatios = new EcalMGPAGainRatio();
129 
130  ECalgainConv_[0] = 0.;
131  ECalgainConv_[1] = 1.;
132  ECalgainConv_[2] = defaultRatios->gain12Over6() ;
133  ECalgainConv_[3] = ECalgainConv_[2]*(defaultRatios->gain6Over1()) ;
134 
135  delete defaultRatios;
136 
137 // ECalbarrelADCtoGeV_ = agc->getEBValue();
138 // ECalendcapADCtoGeV_ = agc->getEEValue();
139 
140  if (verbosity >= 0) {
141  edm::LogInfo(MsgLoggerCat)
142  << "Modified Calorimeter gain constants: g0 = " << ECalgainConv_[0]
143  << ", g1 = " << ECalgainConv_[1] << ", g2 = " << ECalgainConv_[2]
144  << ", g3 = " << ECalgainConv_[3];
145 // edm::LogInfo(MsgLoggerCat)
146 // << "Modified Calorimeter ADCtoGeV constants: barrel = "
147 // << ECalbarrelADCtoGeV_ << ", endcap = " << ECalendcapADCtoGeV_;
148  }
149 
150  // clear storage vectors
151  clear();
152  return;
153 }
154 
156 {
157  std::string MsgLoggerCat = "GlobalDigisProducer_endJob";
158  if (verbosity >= 0)
159  edm::LogInfo(MsgLoggerCat)
160  << "Terminating having processed " << count << " events.";
161  return;
162 }
163 
165  const edm::EventSetup& iSetup)
166 {
167  std::string MsgLoggerCat = "GlobalDigisProducer_produce";
168 
169  // keep track of number of events processed
170  ++count;
171 
172 
173  // THIS BLOCK MIGRATED HERE FROM beginJob:
174  // setup calorimeter constants from service
176  iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
177  const EcalADCToGeVConstant* agc = pAgc.product();
180  if (verbosity >= 0) {
181  edm::LogInfo(MsgLoggerCat)
182  << "Modified Calorimeter ADCtoGeV constants: barrel = "
183  << ECalbarrelADCtoGeV_ << ", endcap = " << ECalendcapADCtoGeV_;
184  }
185 
186 
187  // get event id information
188  edm::RunNumber_t nrun = iEvent.id().run();
189  edm::EventNumber_t nevt = iEvent.id().event();
190 
191  if (verbosity > 0) {
192  edm::LogInfo(MsgLoggerCat)
193  << "Processing run " << nrun << ", event " << nevt
194  << " (" << count << " events total)";
195  } else if (verbosity == 0) {
196  if (nevt%frequency == 0 || nevt == 1) {
197  edm::LogInfo(MsgLoggerCat)
198  << "Processing run " << nrun << ", event " << nevt
199  << " (" << count << " events total)";
200  }
201  }
202 
203  // clear event holders
204  clear();
205 
206  // look at information available in the event
207  if (getAllProvenances) {
208 
209  std::vector<const edm::StableProvenance*> AllProv;
210  iEvent.getAllStableProvenance(AllProv);
211 
212  if (verbosity >= 0)
213  edm::LogInfo(MsgLoggerCat)
214  << "Number of Provenances = " << AllProv.size();
215 
216  if (printProvenanceInfo && (verbosity >= 0)) {
217  TString eventout("\nProvenance info:\n");
218 
219  for (unsigned int i = 0; i < AllProv.size(); ++i) {
220  eventout += "\n ******************************";
221  eventout += "\n Module : ";
222  //eventout += (AllProv[i]->product).moduleLabel();
223  eventout += AllProv[i]->moduleLabel();
224  eventout += "\n ProductID : ";
225  //eventout += (AllProv[i]->product).productID_.id_;
226  eventout += AllProv[i]->productID().id();
227  eventout += "\n ClassName : ";
228  //eventout += (AllProv[i]->product).fullClassName_;
229  eventout += AllProv[i]->className();
230  eventout += "\n InstanceName : ";
231  //eventout += (AllProv[i]->product).productInstanceName_;
232  eventout += AllProv[i]->productInstanceName();
233  eventout += "\n BranchName : ";
234  //eventout += (AllProv[i]->product).branchName_;
235  eventout += AllProv[i]->branchName();
236  }
237  eventout += "\n ******************************\n";
238  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
239  printProvenanceInfo = false;
240  }
241  getAllProvenances = false;
242  }
243 
244  // call fill functions
245  // gather Ecal information from event
246  fillECal(iEvent, iSetup);
247  // gather Hcal information from event
248  fillHCal(iEvent, iSetup);
249  // gather Track information from event
250  fillTrk(iEvent, iSetup);
251  // gather Muon information from event
252  fillMuon(iEvent, iSetup);
253 
254  if (verbosity > 0)
255  edm::LogInfo (MsgLoggerCat)
256  << "Done gathering data from event.";
257 
258  // produce object to put into event
259  std::unique_ptr<PGlobalDigi> pOut(new PGlobalDigi);
260 
261  if (verbosity > 2)
262  edm::LogInfo (MsgLoggerCat)
263  << "Saving event contents:";
264 
265  // call store functions
266  // store ECal information in produce
267  storeECal(*pOut);
268  // store HCal information in produce
269  storeHCal(*pOut);
270  // store Track information in produce
271  storeTrk(*pOut);
272  // store Muon information in produce
273  storeMuon(*pOut);
274 
275  // store information in event
276  iEvent.put(std::move(pOut),label);
277 
278  return;
279 }
280 
282  const edm::EventSetup& iSetup)
283 {
284  std::string MsgLoggerCat = "GlobalDigisProducer_fillECal";
285 
286  TString eventout;
287  if (verbosity > 0)
288  eventout = "\nGathering info:";
289 
290  // extract crossing frame from event
291  //edm::Handle<CrossingFrame> crossingFrame;
292  edm::Handle<CrossingFrame<PCaloHit> > crossingFrame;
293  //iEvent.getByType(crossingFrame);
294  //if (!crossingFrame.isValid()) {
295  // edm::LogWarning(MsgLoggerCat)
296  // << "Unable to crossingFrame in event!";
297  // return;
298  //}
299 
301  //extract EB information
303  bool isBarrel = true;
304  edm::Handle<EBDigiCollection> EcalDigiEB;
305  iEvent.getByToken(ECalEBSrc_Token_, EcalDigiEB);
306  if (!EcalDigiEB.isValid()) {
307  edm::LogWarning(MsgLoggerCat)
308  << "Unable to find EcalDigiEB in event!";
309  return;
310  }
311  if ( EcalDigiEB->empty()) isBarrel = false;
312 
313  if (isBarrel) {
314 
315  // loop over simhits
316  iEvent.getByToken(EBHits_Token_,crossingFrame);
317  if (!crossingFrame.isValid()) {
318  edm::LogWarning(MsgLoggerCat)
319  << "Unable to find cal barrel crossingFrame in event!";
320  return;
321  }
322  //std::unique_ptr<MixCollection<PCaloHit> >
323  //barrelHits(new MixCollection<PCaloHit>
324  // (crossingFrame.product(), barrelHitsName));
325  std::unique_ptr<MixCollection<PCaloHit> >
326  barrelHits(new MixCollection<PCaloHit>(crossingFrame.product()));
327 
328  // keep track of sum of simhit energy in each crystal
329  MapType ebSimMap;
331  = barrelHits->begin();
332  hitItr != barrelHits->end();
333  ++hitItr) {
334 
335  EBDetId ebid = EBDetId(hitItr->id());
336 
337  uint32_t crystid = ebid.rawId();
338  ebSimMap[crystid] += hitItr->energy();
339  }
340 
341  // loop over digis
342  const EBDigiCollection *barrelDigi = EcalDigiEB.product();
343 
344  std::vector<double> ebAnalogSignal;
345  std::vector<double> ebADCCounts;
346  std::vector<double> ebADCGains;
347  ebAnalogSignal.reserve(EBDataFrame::MAXSAMPLES);
348  ebADCCounts.reserve(EBDataFrame::MAXSAMPLES);
349  ebADCGains.reserve(EBDataFrame::MAXSAMPLES);
350 
351  int i = 0;
352  for (unsigned int digis=0; digis<EcalDigiEB->size(); ++digis)
353  {
354  //for (std::vector<EBDataFrame>::const_iterator digis =
355  // barrelDigi->begin();
356  // digis != barrelDigi->end();
357  // ++digis) {
358 
359  ++i;
360 
361  EBDataFrame ebdf = (*barrelDigi)[digis];
362  int nrSamples = ebdf.size();
363 
364  EBDetId ebid = ebdf.id () ;
365  //EBDetId ebid = digis->id();
366 
367  double Emax = 0;
368  int Pmax = 0;
369  double pedestalPreSample = 0.;
370  double pedestalPreSampleAnalog = 0.;
371 
372  for (int sample = 0 ; sample < nrSamples; ++sample) {
373  //for (int sample = 0; sample < digis->size(); ++sample) {
374  ebAnalogSignal[sample] = 0.;
375  ebADCCounts[sample] = 0.;
376  ebADCGains[sample] = -1.;
377  }
378 
379  // calculate maximum energy and pedestal
380  for (int sample = 0 ; sample < nrSamples; ++sample) {
381  //for (int sample = 0; sample < digis->size(); ++sample) {
382 
383  EcalMGPASample thisSample = ebdf[sample];
384  ebADCCounts[sample] = (thisSample.adc());
385  ebADCGains[sample] = (thisSample.gainId());
386  ebAnalogSignal[sample] =
387  (ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]]
389  if (Emax < ebAnalogSignal[sample]) {
390  Emax = ebAnalogSignal[sample];
391  Pmax = sample;
392  }
393  if ( sample < 3 ) {
394  pedestalPreSample += ebADCCounts[sample] ;
395  pedestalPreSampleAnalog +=
396  ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]]
397  * ECalbarrelADCtoGeV_ ;
398  }
399 
400  }
401  pedestalPreSample /= 3. ;
402  pedestalPreSampleAnalog /= 3. ;
403 
404  // calculate pedestal subtracted digi energy in the crystal
405  double Erec = Emax - pedestalPreSampleAnalog
406  * ECalgainConv_[(int)ebADCGains[Pmax]];
407 
408  // gather necessary information
409  EBCalAEE.push_back(Erec);
410  EBCalSHE.push_back(ebSimMap[ebid.rawId()]);
411  EBCalmaxPos.push_back(Pmax);
412  }
413 
414  if (verbosity > 1) {
415  eventout += "\n Number of EBDigis collected:.............. ";
416  eventout += i;
417  }
418  }
419 
421  //extract EE information
423  bool isEndCap = true;
424  edm::Handle<EEDigiCollection> EcalDigiEE;
425  iEvent.getByToken(ECalEESrc_Token_, EcalDigiEE);
426  if (!EcalDigiEE.isValid()) {
427  edm::LogWarning(MsgLoggerCat)
428  << "Unable to find EcalDigiEE in event!";
429  return;
430  }
431  if (EcalDigiEE->empty()) isEndCap = false;
432 
433  if (isEndCap) {
434 
435  // loop over simhits
436  iEvent.getByToken(EEHits_Token_, crossingFrame);
437  if (!crossingFrame.isValid()) {
438  edm::LogWarning(MsgLoggerCat)
439  << "Unable to find cal endcap crossingFrame in event!";
440  return;
441  }
442  //std::unique_ptr<MixCollection<PCaloHit> >
443  // endcapHits(new MixCollection<PCaloHit>
444  // (crossingFrame.product(), endcapHitsName));
445  std::unique_ptr<MixCollection<PCaloHit> >
446  endcapHits(new MixCollection<PCaloHit>(crossingFrame.product()));
447 
448  // keep track of sum of simhit energy in each crystal
449  MapType eeSimMap;
451  = endcapHits->begin();
452  hitItr != endcapHits->end();
453  ++hitItr) {
454 
455  EEDetId eeid = EEDetId(hitItr->id());
456 
457  uint32_t crystid = eeid.rawId();
458  eeSimMap[crystid] += hitItr->energy();
459  }
460 
461  // loop over digis
462  const EEDigiCollection *endcapDigi = EcalDigiEE.product();
463 
464  std::vector<double> eeAnalogSignal;
465  std::vector<double> eeADCCounts;
466  std::vector<double> eeADCGains;
467  eeAnalogSignal.reserve(EEDataFrame::MAXSAMPLES);
468  eeADCCounts.reserve(EEDataFrame::MAXSAMPLES);
469  eeADCGains.reserve(EEDataFrame::MAXSAMPLES);
470 
471  int i = 0;
472  //for (std::vector<EEDataFrame>::const_iterator digis =
473  // endcapDigi->begin();
474  // digis != endcapDigi->end();
475  // ++digis) {
476  for (unsigned int digis=0; digis<EcalDigiEE->size(); ++digis){
477 
478  ++i;
479 
480  EEDataFrame eedf = (*endcapDigi)[digis];
481  int nrSamples = eedf.size();
482 
483  EEDetId eeid = eedf.id () ;
484  //EEDetId eeid = digis->id();
485 
486  double Emax = 0;
487  int Pmax = 0;
488  double pedestalPreSample = 0.;
489  double pedestalPreSampleAnalog = 0.;
490 
491  for (int sample = 0 ; sample < nrSamples; ++sample) {
492  //for (int sample = 0; sample < digis->size(); ++sample) {
493  eeAnalogSignal[sample] = 0.;
494  eeADCCounts[sample] = 0.;
495  eeADCGains[sample] = -1.;
496  }
497 
498  // calculate maximum enery and pedestal
499  for (int sample = 0 ; sample < nrSamples; ++sample) {
500  //for (int sample = 0; sample < digis->size(); ++sample) {
501 
502  EcalMGPASample thisSample = eedf[sample];
503 
504  eeADCCounts[sample] = (thisSample.adc());
505  eeADCGains[sample] = (thisSample.gainId());
506  eeAnalogSignal[sample] =
507  (eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]]
509  if (Emax < eeAnalogSignal[sample]) {
510  Emax = eeAnalogSignal[sample];
511  Pmax = sample;
512  }
513  if ( sample < 3 ) {
514  pedestalPreSample += eeADCCounts[sample] ;
515  pedestalPreSampleAnalog +=
516  eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]]
517  * ECalbarrelADCtoGeV_ ;
518  }
519 
520  }
521  pedestalPreSample /= 3. ;
522  pedestalPreSampleAnalog /= 3. ;
523 
524  // calculate pedestal subtracted digi energy in the crystal
525  double Erec = Emax - pedestalPreSampleAnalog
526  * ECalgainConv_[(int)eeADCGains[Pmax]];
527 
528  // gather necessary information
529  EECalAEE.push_back(Erec);
530  EECalSHE.push_back(eeSimMap[eeid.rawId()]);
531  EECalmaxPos.push_back(Pmax);
532  }
533 
534  if (verbosity > 1) {
535  eventout += "\n Number of EEDigis collected:.............. ";
536  eventout += i;
537  }
538  }
539 
541  //extract ES information
543  bool isPreshower = true;
544  edm::Handle<ESDigiCollection> EcalDigiES;
545  iEvent.getByToken(ECalESSrc_Token_, EcalDigiES);
546  if (!EcalDigiES.isValid()) {
547  edm::LogWarning(MsgLoggerCat)
548  << "Unable to find EcalDigiES in event!";
549  return;
550  }
551  if (EcalDigiES->empty()) isPreshower = false;
552 
553  if (isPreshower) {
554 
555  // loop over simhits
556  iEvent.getByToken(ESHits_Token_,crossingFrame);
557  if (!crossingFrame.isValid()) {
558  edm::LogWarning(MsgLoggerCat)
559  << "Unable to find cal preshower crossingFrame in event!";
560  return;
561  }
562  //std::unique_ptr<MixCollection<PCaloHit> >
563  // preshowerHits(new MixCollection<PCaloHit>
564  // (crossingFrame.product(), preshowerHitsName));
565  std::unique_ptr<MixCollection<PCaloHit> >
566  preshowerHits(new MixCollection<PCaloHit>(crossingFrame.product()));
567 
568  // keep track of sum of simhit energy in each crystal
569  MapType esSimMap;
571  = preshowerHits->begin();
572  hitItr != preshowerHits->end();
573  ++hitItr) {
574 
575  ESDetId esid = ESDetId(hitItr->id());
576 
577  uint32_t crystid = esid.rawId();
578  esSimMap[crystid] += hitItr->energy();
579  }
580 
581  // loop over digis
582  const ESDigiCollection *preshowerDigi = EcalDigiES.product();
583 
584  std::vector<double> esADCCounts;
585  esADCCounts.reserve(ESDataFrame::MAXSAMPLES);
586 
587  int i = 0;
588  for (unsigned int digis=0; digis<EcalDigiES->size(); ++digis) {
589  //for (std::vector<ESDataFrame>::const_iterator digis =
590  // preshowerDigi->begin();
591  // digis != preshowerDigi->end();
592  // ++digis) {
593 
594  ++i;
595 
596 
597  ESDataFrame esdf = (*preshowerDigi)[digis];
598  int nrSamples = esdf.size();
599 
600  ESDetId esid = esdf.id () ;
601  // ESDetId esid = digis->id();
602 
603  for (int sample = 0 ; sample < nrSamples; ++sample) {
604  //for (int sample = 0; sample < digis->size(); ++sample) {
605  esADCCounts[sample] = 0.;
606  }
607 
608  // gether ADC counts
609  for (int sample = 0 ; sample < nrSamples; ++sample) {
610 
611  ESSample thisSample = esdf[sample];
612  //for (int sample = 0; sample < digis->size(); ++sample) {
613  esADCCounts[sample] = (thisSample.adc());
614  }
615 
616  ESCalADC0.push_back(esADCCounts[0]);
617  ESCalADC1.push_back(esADCCounts[1]);
618  ESCalADC2.push_back(esADCCounts[2]);
619  ESCalSHE.push_back(esSimMap[esid.rawId()]);
620  }
621 
622  if (verbosity > 1) {
623  eventout += "\n Number of ESDigis collected:.............. ";
624  eventout += i;
625  }
626  }
627 
628  if (verbosity > 0)
629  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
630 
631  return;
632 }
633 
635 {
636  std::string MsgLoggerCat = "GlobalDigisProducer_storeECal";
637 
638  if (verbosity > 2) {
639  TString eventout("\n nEBDigis = ");
640  eventout += EBCalmaxPos.size();
641  for (unsigned int i = 0; i < EBCalmaxPos.size(); ++i) {
642  eventout += "\n (maxPos, AEE, SHE) = (";
643  eventout += EBCalmaxPos[i];
644  eventout += ", ";
645  eventout += EBCalAEE[i];
646  eventout += ", ";
647  eventout += EBCalSHE[i];
648  eventout += ")";
649  }
650  eventout += "\n nEEDigis = ";
651  eventout += EECalmaxPos.size();
652  for (unsigned int i = 0; i < EECalmaxPos.size(); ++i) {
653  eventout += "\n (maxPos, AEE, SHE) = (";
654  eventout += EECalmaxPos[i];
655  eventout += ", ";
656  eventout += EECalAEE[i];
657  eventout += ", ";
658  eventout += EECalSHE[i];
659  eventout += ")";
660  }
661  eventout += "\n nESDigis = ";
662  eventout += ESCalADC0.size();
663  for (unsigned int i = 0; i < ESCalADC0.size(); ++i) {
664  eventout += "\n (ADC0, ADC1, ADC2, SHE) = (";
665  eventout += ESCalADC0[i];
666  eventout += ", ";
667  eventout += ESCalADC1[i];
668  eventout += ", ";
669  eventout += ESCalADC2[i];
670  eventout += ", ";
671  eventout += ESCalSHE[i];
672  eventout += ")";
673  }
674  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
675  }
676 
680 
681  return;
682 }
683 
685  const edm::EventSetup& iSetup)
686 {
687  std::string MsgLoggerCat = "GlobalDigisProducer_fillHCal";
688 
689  TString eventout;
690  if (verbosity > 0)
691  eventout = "\nGathering info:";
692 
693  // get calibration info
694  edm::ESHandle<HcalDbService> HCalconditions;
695  iSetup.get<HcalDbRecord>().get(HCalconditions);
696  if (!HCalconditions.isValid()) {
697  edm::LogWarning(MsgLoggerCat)
698  << "Unable to find HCalconditions in event!";
699  return;
700  }
701  //HcalCalibrations calibrations;
702  CaloSamples tool;
703 
705  // extract simhit info
708  iEvent.getByToken(HCalSrc_Token_,hcalHits);
709  if (!hcalHits.isValid()) {
710  edm::LogWarning(MsgLoggerCat)
711  << "Unable to find hcalHits in event!";
712  return;
713  }
714  const edm::PCaloHitContainer *simhitResult = hcalHits.product();
715 
716  MapType fHBEnergySimHits;
717  MapType fHEEnergySimHits;
718  MapType fHOEnergySimHits;
719  MapType fHFEnergySimHits;
720  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin();
721  simhits != simhitResult->end();
722  ++simhits) {
723 
724  HcalDetId detId(simhits->id());
725  uint32_t cellid = detId.rawId();
726 
727  if (detId.subdet() == sdHcalBrl){
728  fHBEnergySimHits[cellid] += simhits->energy();
729  }
730  if (detId.subdet() == sdHcalEC){
731  fHEEnergySimHits[cellid] += simhits->energy();
732  }
733  if (detId.subdet() == sdHcalOut){
734  fHOEnergySimHits[cellid] += simhits->energy();
735  }
736  if (detId.subdet() == sdHcalFwd){
737  fHFEnergySimHits[cellid] += simhits->energy();
738  }
739  }
740 
742  // get HBHE information
745  iEvent.getByToken(HBHEDigi_Token_,hbhe);
746  if (!hbhe.isValid()) {
747  edm::LogWarning(MsgLoggerCat)
748  << "Unable to find HBHEDataFrame in event!";
749  return;
750  }
752 
753  int iHB = 0;
754  int iHE = 0;
755  for (ihbhe = hbhe->begin(); ihbhe != hbhe->end(); ++ihbhe) {
756  HcalDetId cell(ihbhe->id());
757 
758  if ((cell.subdet() == sdHcalBrl) || (cell.subdet() == sdHcalEC)) {
759 
760  //HCalconditions->makeHcalCalibration(cell, &calibrations);
762  HCalconditions->getHcalCalibrations(cell);
763  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
764  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
765 
766  HcalCoderDb coder(*channelCoder, *shape);
767  coder.adc2fC(*ihbhe, tool);
768 
769  // get HB info
770  if (cell.subdet() == sdHcalBrl) {
771 
772  ++iHB;
773  float fDigiSum = 0.0;
774  for (int ii = 0; ii < tool.size(); ++ii) {
775  // default ped is 4.5
776  int capid = (*ihbhe)[ii].capid();
777  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
778  }
779 
780  HBCalAEE.push_back(fDigiSum);
781  HBCalSHE.push_back(fHBEnergySimHits[cell.rawId()]);
782  }
783 
784  // get HE info
785  if (cell.subdet() == sdHcalEC) {
786 
787  ++iHE;
788  float fDigiSum = 0.0;
789  for (int ii = 0; ii < tool.size(); ++ii) {
790  int capid = (*ihbhe)[ii].capid();
791  fDigiSum += (tool[ii]-calibrations.pedestal(capid));
792  }
793 
794  HECalAEE.push_back(fDigiSum);
795  HECalSHE.push_back(fHEEnergySimHits[cell.rawId()]);
796  }
797  }
798  }
799 
800  if (verbosity > 1) {
801  eventout += "\n Number of HBDigis collected:.............. ";
802  eventout += iHB;
803  }
804 
805  if (verbosity > 1) {
806  eventout += "\n Number of HEDigis collected:.............. ";
807  eventout += iHE;
808  }
809 
811  // get HO information
814  iEvent.getByToken(HODigi_Token_,ho);
815  if (!ho.isValid()) {
816  edm::LogWarning(MsgLoggerCat)
817  << "Unable to find HODataFrame in event!";
818  return;
819  }
821 
822  int iHO = 0;
823  for (iho = ho->begin(); iho != ho->end(); ++iho) {
824  HcalDetId cell(iho->id());
825 
826  if (cell.subdet() == sdHcalOut) {
827 
828  //HCalconditions->makeHcalCalibration(cell, &calibrations);
830  HCalconditions->getHcalCalibrations(cell);
831  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
832  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
833 
834  HcalCoderDb coder (*channelCoder, *shape);
835  coder.adc2fC(*iho, tool);
836 
837  ++iHO;
838  float fDigiSum = 0.0;
839  for (int ii = 0; ii < tool.size(); ++ii) {
840  // default ped is 4.5
841  int capid = (*iho)[ii].capid();
842  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
843  }
844 
845  HOCalAEE.push_back(fDigiSum);
846  HOCalSHE.push_back(fHOEnergySimHits[cell.rawId()]);
847  }
848  }
849 
850  if (verbosity > 1) {
851  eventout += "\n Number of HODigis collected:.............. ";
852  eventout += iHO;
853  }
854 
856  // get HF information
859  iEvent.getByToken(HFDigi_Token_,hf);
860  if (!hf.isValid()) {
861  edm::LogWarning(MsgLoggerCat)
862  << "Unable to find HFDataFrame in event!";
863  return;
864  }
866 
867  int iHF = 0;
868  for (ihf = hf->begin(); ihf != hf->end(); ++ihf) {
869  HcalDetId cell(ihf->id());
870 
871  if (cell.subdet() == sdHcalFwd) {
872 
873  //HCalconditions->makeHcalCalibration(cell, &calibrations);
875  HCalconditions->getHcalCalibrations(cell);
876  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
877  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
878 
879  HcalCoderDb coder (*channelCoder, *shape);
880  coder.adc2fC(*ihf, tool);
881 
882  ++iHF;
883  float fDigiSum = 0.0;
884  for (int ii = 0; ii < tool.size(); ++ii) {
885  // default ped is 1.73077
886  int capid = (*ihf)[ii].capid();
887  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
888  }
889 
890  HFCalAEE.push_back(fDigiSum);
891  HFCalSHE.push_back(fHFEnergySimHits[cell.rawId()]);
892  }
893  }
894 
895  if (verbosity > 1) {
896  eventout += "\n Number of HFDigis collected:.............. ";
897  eventout += iHF;
898  }
899 
900  if (verbosity > 0)
901  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
902 
903  return;
904 }
905 
907 {
908  std::string MsgLoggerCat = "GlobalDigisProducer_storeHCal";
909 
910  if (verbosity > 2) {
911  TString eventout("\n nHBDigis = ");
912  eventout += HBCalAEE.size();
913  for (unsigned int i = 0; i < HBCalAEE.size(); ++i) {
914  eventout += "\n (AEE, SHE) = (";
915  eventout += HBCalAEE[i];
916  eventout += ", ";
917  eventout += HBCalSHE[i];
918  eventout += ")";
919  }
920  eventout += "\n nHEDigis = ";
921  eventout += HECalAEE.size();
922  for (unsigned int i = 0; i < HECalAEE.size(); ++i) {
923  eventout += "\n (AEE, SHE) = (";
924  eventout += HECalAEE[i];
925  eventout += ", ";
926  eventout += HECalSHE[i];
927  eventout += ")";
928  }
929  eventout += "\n nHODigis = ";
930  eventout += HOCalAEE.size();
931  for (unsigned int i = 0; i < HOCalAEE.size(); ++i) {
932  eventout += "\n (AEE, SHE) = (";
933  eventout += HOCalAEE[i];
934  eventout += ", ";
935  eventout += HOCalSHE[i];
936  eventout += ")";
937  }
938  eventout += "\n nHFDigis = ";
939  eventout += HFCalAEE.size();
940  for (unsigned int i = 0; i < HFCalAEE.size(); ++i) {
941  eventout += "\n (AEE, SHE) = (";
942  eventout += HFCalAEE[i];
943  eventout += ", ";
944  eventout += HFCalSHE[i];
945  eventout += ")";
946  }
947 
948  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
949  }
950 
955 
956  return;
957 }
958 
960  const edm::EventSetup& iSetup)
961 {
962  //Retrieve tracker topology from geometry
963  edm::ESHandle<TrackerTopology> tTopoHandle;
964  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
965  const TrackerTopology* const tTopo = tTopoHandle.product();
966 
967 
968  std::string MsgLoggerCat = "GlobalDigisProducer_fillTrk";
969 
970  TString eventout;
971  if (verbosity > 0)
972  eventout = "\nGathering info:";
973 
974  // get strip information
976  iEvent.getByToken(SiStripSrc_Token_, stripDigis);
977  if (!stripDigis.isValid()) {
978  edm::LogWarning(MsgLoggerCat)
979  << "Unable to find stripDigis in event!";
980  return;
981  }
982 
983  int nStripBrl = 0, nStripFwd = 0;
985  for (DSViter = stripDigis->begin(); DSViter != stripDigis->end();
986  ++DSViter) {
987  unsigned int id = DSViter->id;
988  DetId detId(id);
992 
993  // get TIB
994  if (detId.subdetId() == sdSiTIB) {
995 
996  for (iter = begin; iter != end; ++iter) {
997  ++nStripBrl;
998  if (tTopo->tibLayer(id) == 1) {
999  TIBL1ADC.push_back((*iter).adc());
1000  TIBL1Strip.push_back((*iter).strip());
1001  }
1002  if (tTopo->tibLayer(id) == 2) {
1003  TIBL2ADC.push_back((*iter).adc());
1004  TIBL2Strip.push_back((*iter).strip());
1005  }
1006  if (tTopo->tibLayer(id) == 3) {
1007  TIBL3ADC.push_back((*iter).adc());
1008  TIBL3Strip.push_back((*iter).strip());
1009  }
1010  if (tTopo->tibLayer(id) == 4) {
1011  TIBL4ADC.push_back((*iter).adc());
1012  TIBL4Strip.push_back((*iter).strip());
1013  }
1014  }
1015  }
1016 
1017  // get TOB
1018  if (detId.subdetId() == sdSiTOB) {
1019 
1020  for (iter = begin; iter != end; ++iter) {
1021  ++nStripBrl;
1022  if (tTopo->tobLayer(id) == 1) {
1023  TOBL1ADC.push_back((*iter).adc());
1024  TOBL1Strip.push_back((*iter).strip());
1025  }
1026  if (tTopo->tobLayer(id) == 2) {
1027  TOBL2ADC.push_back((*iter).adc());
1028  TOBL2Strip.push_back((*iter).strip());
1029  }
1030  if (tTopo->tobLayer(id) == 3) {
1031  TOBL3ADC.push_back((*iter).adc());
1032  TOBL3Strip.push_back((*iter).strip());
1033  }
1034  if (tTopo->tobLayer(id) == 4) {
1035  TOBL4ADC.push_back((*iter).adc());
1036  TOBL4Strip.push_back((*iter).strip());
1037  }
1038  }
1039  }
1040 
1041  // get TID
1042  if (detId.subdetId() == sdSiTID) {
1043 
1044  for (iter = begin; iter != end; ++iter) {
1045  ++nStripFwd;
1046  if (tTopo->tidWheel(id) == 1) {
1047  TIDW1ADC.push_back((*iter).adc());
1048  TIDW1Strip.push_back((*iter).strip());
1049  }
1050  if (tTopo->tidWheel(id) == 2) {
1051  TIDW2ADC.push_back((*iter).adc());
1052  TIDW2Strip.push_back((*iter).strip());
1053  }
1054  if (tTopo->tidWheel(id) == 3) {
1055  TIDW3ADC.push_back((*iter).adc());
1056  TIDW3Strip.push_back((*iter).strip());
1057  }
1058  }
1059  }
1060 
1061  // get TEC
1062  if (detId.subdetId() == sdSiTEC) {
1063 
1064  for (iter = begin; iter != end; ++iter) {
1065  ++nStripFwd;
1066  if (tTopo->tecWheel(id) == 1) {
1067  TECW1ADC.push_back((*iter).adc());
1068  TECW1Strip.push_back((*iter).strip());
1069  }
1070  if (tTopo->tecWheel(id) == 2) {
1071  TECW2ADC.push_back((*iter).adc());
1072  TECW2Strip.push_back((*iter).strip());
1073  }
1074  if (tTopo->tecWheel(id) == 3) {
1075  TECW3ADC.push_back((*iter).adc());
1076  TECW3Strip.push_back((*iter).strip());
1077  }
1078  if (tTopo->tecWheel(id) == 4) {
1079  TECW4ADC.push_back((*iter).adc());
1080  TECW4Strip.push_back((*iter).strip());
1081  }
1082  if (tTopo->tecWheel(id) == 5) {
1083  TECW5ADC.push_back((*iter).adc());
1084  TECW5Strip.push_back((*iter).strip());
1085  }
1086  if (tTopo->tecWheel(id) == 6) {
1087  TECW6ADC.push_back((*iter).adc());
1088  TECW6Strip.push_back((*iter).strip());
1089  }
1090  if (tTopo->tecWheel(id) == 7) {
1091  TECW7ADC.push_back((*iter).adc());
1092  TECW7Strip.push_back((*iter).strip());
1093  }
1094  if (tTopo->tecWheel(id) == 8) {
1095  TECW8ADC.push_back((*iter).adc());
1096  TECW8Strip.push_back((*iter).strip());
1097  }
1098  }
1099  }
1100  } // end loop over DataSetVector
1101 
1102  if (verbosity > 1) {
1103  eventout += "\n Number of BrlStripDigis collected:........ ";
1104  eventout += nStripBrl;
1105  }
1106 
1107  if (verbosity > 1) {
1108  eventout += "\n Number of FrwdStripDigis collected:....... ";
1109  eventout += nStripFwd;
1110  }
1111 
1112  // get pixel information
1114  iEvent.getByToken(SiPxlSrc_Token_, pixelDigis);
1115  if (!pixelDigis.isValid()) {
1116  edm::LogWarning(MsgLoggerCat)
1117  << "Unable to find pixelDigis in event!";
1118  return;
1119  }
1120 
1121  int nPxlBrl = 0, nPxlFwd = 0;
1123  for (DPViter = pixelDigis->begin(); DPViter != pixelDigis->end();
1124  ++DPViter) {
1125  unsigned int id = DPViter->id;
1126  DetId detId(id);
1130 
1131  // get Barrel pixels
1132  if (detId.subdetId() == sdPxlBrl) {
1133 
1134  for (iter = begin; iter != end; ++iter) {
1135  ++nPxlBrl;
1136  if (tTopo->pxbLayer(id) == 1) {
1137  BRL1ADC.push_back((*iter).adc());
1138  BRL1Row.push_back((*iter).row());
1139  BRL1Col.push_back((*iter).column());
1140  }
1141  if (tTopo->pxbLayer(id) == 2) {
1142  BRL2ADC.push_back((*iter).adc());
1143  BRL2Row.push_back((*iter).row());
1144  BRL2Col.push_back((*iter).column());
1145  }
1146  if (tTopo->pxbLayer(id) == 3) {
1147  BRL3ADC.push_back((*iter).adc());
1148  BRL3Row.push_back((*iter).row());
1149  BRL3Col.push_back((*iter).column());
1150  }
1151  }
1152  }
1153 
1154  // get Forward pixels
1155  if (detId.subdetId() == sdPxlFwd) {
1156 
1157  for (iter = begin; iter != end; ++iter) {
1158  ++nPxlFwd;
1159  if (tTopo->pxfDisk(id) == 1) {
1160  if (tTopo->pxfSide(id) == 1) {
1161  FWD1nADC.push_back((*iter).adc());
1162  FWD1nRow.push_back((*iter).row());
1163  FWD1nCol.push_back((*iter).column());
1164  }
1165  if (tTopo->pxfSide(id) == 2) {
1166  FWD1pADC.push_back((*iter).adc());
1167  FWD1pRow.push_back((*iter).row());
1168  FWD1pCol.push_back((*iter).column());
1169  }
1170  }
1171  if (tTopo->pxfDisk(id) == 2) {
1172  if (tTopo->pxfSide(id) == 1) {
1173  FWD2nADC.push_back((*iter).adc());
1174  FWD2nRow.push_back((*iter).row());
1175  FWD2nCol.push_back((*iter).column());
1176  }
1177  if (tTopo->pxfSide(id) == 2) {
1178  FWD2pADC.push_back((*iter).adc());
1179  FWD2pRow.push_back((*iter).row());
1180  FWD2pCol.push_back((*iter).column());
1181  }
1182  }
1183  }
1184  }
1185  }
1186 
1187  if (verbosity > 1) {
1188  eventout += "\n Number of BrlPixelDigis collected:........ ";
1189  eventout += nPxlBrl;
1190  }
1191 
1192  if (verbosity > 1) {
1193  eventout += "\n Number of FrwdPixelDigis collected:....... ";
1194  eventout += nPxlFwd;
1195  }
1196 
1197  if (verbosity > 0)
1198  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1199 
1200  return;
1201 }
1202 
1204 {
1205  std::string MsgLoggerCat = "GlobalDigisProducer_storeTrk";
1206 
1207  if (verbosity > 2) {
1208 
1209  // strip output
1210  TString eventout("\n nTIBL1 = ");
1211  eventout += TIBL1ADC.size();
1212  for (unsigned int i = 0; i < TIBL1ADC.size(); ++i) {
1213  eventout += "\n (ADC, strip) = (";
1214  eventout += TIBL1ADC[i];
1215  eventout += ", ";
1216  eventout += TIBL1Strip[i];
1217  eventout += ")";
1218  }
1219  eventout += "\n nTIBL2 = ";
1220  eventout += TIBL2ADC.size();
1221  for (unsigned int i = 0; i < TIBL2ADC.size(); ++i) {
1222  eventout += "\n (ADC, strip) = (";
1223  eventout += TIBL2ADC[i];
1224  eventout += ", ";
1225  eventout += TIBL2Strip[i];
1226  eventout += ")";
1227  }
1228  eventout += "\n nTIBL3 = ";
1229  eventout += TIBL3ADC.size();
1230  for (unsigned int i = 0; i < TIBL3ADC.size(); ++i) {
1231  eventout += "\n (ADC, strip) = (";
1232  eventout += TIBL3ADC[i];
1233  eventout += ", ";
1234  eventout += TIBL3Strip[i];
1235  eventout += ")";
1236  }
1237  eventout += "\n nTIBL4 = ";
1238  eventout += TIBL4ADC.size();
1239  for (unsigned int i = 0; i < TIBL4ADC.size(); ++i) {
1240  eventout += "\n (ADC, strip) = (";
1241  eventout += TIBL4ADC[i];
1242  eventout += ", ";
1243  eventout += TIBL4Strip[i];
1244  eventout += ")";
1245  }
1246  eventout += "\n nTOBL1 = ";
1247  eventout += TOBL1ADC.size();
1248  for (unsigned int i = 0; i < TOBL1ADC.size(); ++i) {
1249  eventout += "\n (ADC, strip) = (";
1250  eventout += TOBL1ADC[i];
1251  eventout += ", ";
1252  eventout += TOBL1Strip[i];
1253  eventout += ")";
1254  }
1255  eventout += "\n nTOBL2 = ";
1256  eventout += TOBL2ADC.size();
1257  for (unsigned int i = 0; i < TOBL2ADC.size(); ++i) {
1258  eventout += "\n (ADC, strip) = (";
1259  eventout += TOBL2ADC[i];
1260  eventout += ", ";
1261  eventout += TOBL2Strip[i];
1262  eventout += ")";
1263  }
1264  eventout += "\n nTOBL3 = ";
1265  eventout += TOBL3ADC.size();
1266  for (unsigned int i = 0; i < TOBL3ADC.size(); ++i) {
1267  eventout += "\n (ADC, strip) = (";
1268  eventout += TOBL3ADC[i];
1269  eventout += ", ";
1270  eventout += TOBL3Strip[i];
1271  eventout += ")";
1272  }
1273  eventout += "\n nTOBL4 = ";
1274  eventout += TOBL4ADC.size();
1275  for (unsigned int i = 0; i < TOBL4ADC.size(); ++i) {
1276  eventout += "\n (ADC, strip) = (";
1277  eventout += TOBL4ADC[i];
1278  eventout += ", ";
1279  eventout += TOBL4Strip[i];
1280  eventout += ")";
1281  }
1282  eventout += "\n nTIDW1 = ";
1283  eventout += TIDW1ADC.size();
1284  for (unsigned int i = 0; i < TIDW1ADC.size(); ++i) {
1285  eventout += "\n (ADC, strip) = (";
1286  eventout += TIDW1ADC[i];
1287  eventout += ", ";
1288  eventout += TIDW1Strip[i];
1289  eventout += ")";
1290  }
1291  eventout += "\n nTIDW2 = ";
1292  eventout += TIDW2ADC.size();
1293  for (unsigned int i = 0; i < TIDW2ADC.size(); ++i) {
1294  eventout += "\n (ADC, strip) = (";
1295  eventout += TIDW2ADC[i];
1296  eventout += ", ";
1297  eventout += TIDW2Strip[i];
1298  eventout += ")";
1299  }
1300  eventout += "\n nTIDW3 = ";
1301  eventout += TIDW3ADC.size();
1302  for (unsigned int i = 0; i < TIDW3ADC.size(); ++i) {
1303  eventout += "\n (ADC, strip) = (";
1304  eventout += TIDW3ADC[i];
1305  eventout += ", ";
1306  eventout += TIDW3Strip[i];
1307  eventout += ")";
1308  }
1309  eventout += "\n nTECW1 = ";
1310  eventout += TECW1ADC.size();
1311  for (unsigned int i = 0; i < TECW1ADC.size(); ++i) {
1312  eventout += "\n (ADC, strip) = (";
1313  eventout += TECW1ADC[i];
1314  eventout += ", ";
1315  eventout += TECW1Strip[i];
1316  eventout += ")";
1317  }
1318  eventout += "\n nTECW2 = ";
1319  eventout += TECW2ADC.size();
1320  for (unsigned int i = 0; i < TECW2ADC.size(); ++i) {
1321  eventout += "\n (ADC, strip) = (";
1322  eventout += TECW2ADC[i];
1323  eventout += ", ";
1324  eventout += TECW2Strip[i];
1325  eventout += ")";
1326  }
1327  eventout += "\n nTECW3 = ";
1328  eventout += TECW3ADC.size();
1329  for (unsigned int i = 0; i < TECW3ADC.size(); ++i) {
1330  eventout += "\n (ADC, strip) = (";
1331  eventout += TECW3ADC[i];
1332  eventout += ", ";
1333  eventout += TECW3Strip[i];
1334  eventout += ")";
1335  }
1336  eventout += "\n nTECW4 = ";
1337  eventout += TECW4ADC.size();
1338  for (unsigned int i = 0; i < TECW4ADC.size(); ++i) {
1339  eventout += "\n (ADC, strip) = (";
1340  eventout += TECW4ADC[i];
1341  eventout += ", ";
1342  eventout += TECW4Strip[i];
1343  eventout += ")";
1344  }
1345  eventout += "\n nTECW5 = ";
1346  eventout += TECW5ADC.size();
1347  for (unsigned int i = 0; i < TECW5ADC.size(); ++i) {
1348  eventout += "\n (ADC, strip) = (";
1349  eventout += TECW5ADC[i];
1350  eventout += ", ";
1351  eventout += TECW5Strip[i];
1352  eventout += ")";
1353  }
1354  eventout += "\n nTECW6 = ";
1355  eventout += TECW6ADC.size();
1356  for (unsigned int i = 0; i < TECW6ADC.size(); ++i) {
1357  eventout += "\n (ADC, strip) = (";
1358  eventout += TECW6ADC[i];
1359  eventout += ", ";
1360  eventout += TECW6Strip[i];
1361  eventout += ")";
1362  }
1363  eventout += "\n nTECW7 = ";
1364  eventout += TECW7ADC.size();
1365  for (unsigned int i = 0; i < TECW7ADC.size(); ++i) {
1366  eventout += "\n (ADC, strip) = (";
1367  eventout += TECW7ADC[i];
1368  eventout += ", ";
1369  eventout += TECW7Strip[i];
1370  eventout += ")";
1371  }
1372  eventout += "\n nTECW8 = ";
1373  eventout += TECW8ADC.size();
1374  for (unsigned int i = 0; i < TECW8ADC.size(); ++i) {
1375  eventout += "\n (ADC, strip) = (";
1376  eventout += TECW8ADC[i];
1377  eventout += ", ";
1378  eventout += TECW8Strip[i];
1379  eventout += ")";
1380  }
1381 
1382  // pixel output
1383  eventout += "\n nBRL1 = ";
1384  eventout += BRL1ADC.size();
1385  for (unsigned int i = 0; i < BRL1ADC.size(); ++i) {
1386  eventout += "\n (ADC, row, column) = (";
1387  eventout += BRL1ADC[i];
1388  eventout += ", ";
1389  eventout += BRL1Row[i];
1390  eventout += ", ";
1391  eventout += BRL1Col[i];
1392  eventout += ")";
1393  }
1394  eventout += "\n nBRL2 = ";
1395  eventout += BRL2ADC.size();
1396  for (unsigned int i = 0; i < BRL2ADC.size(); ++i) {
1397  eventout += "\n (ADC, row, column) = (";
1398  eventout += BRL2ADC[i];
1399  eventout += ", ";
1400  eventout += BRL2Row[i];
1401  eventout += ", ";
1402  eventout += BRL2Col[i];
1403  eventout += ")";
1404  }
1405  eventout += "\n nBRL3 = ";
1406  eventout += BRL3ADC.size();
1407  for (unsigned int i = 0; i < BRL3ADC.size(); ++i) {
1408  eventout += "\n (ADC, row, column) = (";
1409  eventout += BRL3ADC[i];
1410  eventout += ", ";
1411  eventout += BRL3Row[i];
1412  eventout += ", ";
1413  eventout += BRL3Col[i];
1414  eventout += ")";
1415  }
1416  eventout += "\n nFWD1p = ";
1417  eventout += FWD1pADC.size();
1418  for (unsigned int i = 0; i < FWD1pADC.size(); ++i) {
1419  eventout += "\n (ADC, row, column) = (";
1420  eventout += FWD1pADC[i];
1421  eventout += ", ";
1422  eventout += FWD1pRow[i];
1423  eventout += ", ";
1424  eventout += FWD1pCol[i];
1425  eventout += ")";
1426  }
1427  eventout += "\n nFWD1p = ";
1428  eventout += FWD1nADC.size();
1429  for (unsigned int i = 0; i < FWD1nADC.size(); ++i) {
1430  eventout += "\n (ADC, row, column) = (";
1431  eventout += FWD1nADC[i];
1432  eventout += ", ";
1433  eventout += FWD1nRow[i];
1434  eventout += ", ";
1435  eventout += FWD1nCol[i];
1436  eventout += ")";
1437  }
1438  eventout += "\n nFWD1p = ";
1439  eventout += FWD2pADC.size();
1440  for (unsigned int i = 0; i < FWD2pADC.size(); ++i) {
1441  eventout += "\n (ADC, row, column) = (";
1442  eventout += FWD2pADC[i];
1443  eventout += ", ";
1444  eventout += FWD2pRow[i];
1445  eventout += ", ";
1446  eventout += FWD2pCol[i];
1447  eventout += ")";
1448  }
1449  eventout += "\n nFWD2p = ";
1450  eventout += FWD2nADC.size();
1451  for (unsigned int i = 0; i < FWD2nADC.size(); ++i) {
1452  eventout += "\n (ADC, row, column) = (";
1453  eventout += FWD2nADC[i];
1454  eventout += ", ";
1455  eventout += FWD2nRow[i];
1456  eventout += ", ";
1457  eventout += FWD2nCol[i];
1458  eventout += ")";
1459  }
1460 
1461  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1462  }
1463 
1464  // strip output
1481  product.putTECW6Digis(TECW6ADC,TECW6Strip);
1483  product.putTECW8Digis(TECW8ADC,TECW8Strip);
1484 
1485  // pixel output
1486  product.putBRL1Digis(BRL1ADC, BRL1Row, BRL1Col);
1487  product.putBRL2Digis(BRL2ADC, BRL2Row, BRL2Col);
1488  product.putBRL3Digis(BRL3ADC, BRL3Row, BRL3Col);
1493 
1494  return;
1495 }
1496 
1498  const edm::EventSetup& iSetup)
1499 {
1500  std::string MsgLoggerCat = "GlobalDigisProducer_fillMuon";
1501 
1502  TString eventout;
1503  if (verbosity > 0)
1504  eventout = "\nGathering info:";
1505 
1506  // get DT information
1508  iEvent.getByToken(MuDTSrc_Token_, dtDigis);
1509  if (!dtDigis.isValid()) {
1510  edm::LogWarning(MsgLoggerCat)
1511  << "Unable to find dtDigis in event!";
1512  return;
1513  }
1514 
1515  int nDt = 0;
1517  for (detUnitIt = dtDigis->begin(); detUnitIt != dtDigis->end();
1518  ++detUnitIt) {
1519 
1520  const DTLayerId& id = (*detUnitIt).first;
1521  const DTDigiCollection::Range& range = (*detUnitIt).second;
1522 
1523  for (DTDigiCollection::const_iterator digiIt = range.first;
1524  digiIt != range.second;
1525  ++digiIt) {
1526 
1527  ++nDt;
1528 
1529  DTWireId wireId(id,(*digiIt).wire());
1530  if (wireId.station() == 1) {
1531  MB1SLayer.push_back(id.superlayer());
1532  MB1Time.push_back((*digiIt).time());
1533  MB1Layer.push_back(id.layer());
1534  }
1535  if (wireId.station() == 2) {
1536  MB2SLayer.push_back(id.superlayer());
1537  MB2Time.push_back((*digiIt).time());
1538  MB2Layer.push_back(id.layer());
1539  }
1540  if (wireId.station() == 3) {
1541  MB3SLayer.push_back(id.superlayer());
1542  MB3Time.push_back((*digiIt).time());
1543  MB3Layer.push_back(id.layer());
1544  }
1545  if (wireId.station() == 4) {
1546  MB4SLayer.push_back(id.superlayer());
1547  MB4Time.push_back((*digiIt).time());
1548  MB4Layer.push_back(id.layer());
1549  }
1550  }
1551  }
1552 
1553  if (verbosity > 1) {
1554  eventout += "\n Number of DtMuonDigis collected:.......... ";
1555  eventout += nDt;
1556  }
1557 
1558  // get CSC Strip information
1560  iEvent.getByToken(MuCSCStripSrc_Token_, strips);
1561  if (!strips.isValid()) {
1562  edm::LogWarning(MsgLoggerCat)
1563  << "Unable to find muon strips in event!";
1564  return;
1565  }
1566 
1567  int nStrips = 0;
1568  for (CSCStripDigiCollection::DigiRangeIterator j = strips->begin();
1569  j != strips->end();
1570  ++j) {
1571 
1572  std::vector<CSCStripDigi>::const_iterator digiItr = (*j).second.first;
1573  std::vector<CSCStripDigi>::const_iterator last = (*j).second.second;
1574 
1575  for ( ; digiItr != last; ++digiItr) {
1576  ++nStrips;
1577 
1578  // average pedestals
1579  std::vector<int> adcCounts = digiItr->getADCCounts();
1580  theCSCStripPedestalSum += adcCounts[0];
1581  theCSCStripPedestalSum += adcCounts[1];
1583 
1584  // if there are enough pedestal statistics
1585  if (theCSCStripPedestalCount > 100) {
1587  if (adcCounts[5] > (pedestal + 100))
1588  CSCStripADC.push_back(adcCounts[4] - pedestal);
1589  }
1590  }
1591  }
1592 
1593  if (verbosity > 1) {
1594  eventout += "\n Number of CSCStripDigis collected:........ ";
1595  eventout += nStrips;
1596  }
1597 
1598  // get CSC Wire information
1600  iEvent.getByToken(MuCSCWireSrc_Token_, wires);
1601  if (!wires.isValid()) {
1602  edm::LogWarning(MsgLoggerCat)
1603  << "Unable to find muon wires in event!";
1604  return;
1605  }
1606 
1607  int nWires = 0;
1608  for (CSCWireDigiCollection::DigiRangeIterator j = wires->begin();
1609  j != wires->end();
1610  ++j) {
1611 
1612  std::vector<CSCWireDigi>::const_iterator digiItr = (*j).second.first;
1613  std::vector<CSCWireDigi>::const_iterator endDigi = (*j).second.second;
1614 
1615  for ( ; digiItr != endDigi; ++digiItr) {
1616  ++nWires;
1617 
1618  CSCWireTime.push_back(digiItr->getTimeBin());
1619  }
1620  }
1621 
1622  if (verbosity > 1) {
1623  eventout += "\n Number of CSCWireDigis collected:......... ";
1624  eventout += nWires;
1625  }
1626 
1627  if (verbosity > 0)
1628  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1629 
1630  return;
1631 }
1632 
1634 {
1635  std::string MsgLoggerCat = "GlobalDigisProducer_storeMuon";
1636 
1637  if (verbosity > 2) {
1638 
1639  // dt output
1640  TString eventout("\n nMB1 = ");
1641  eventout += MB1SLayer.size();
1642  for (unsigned int i = 0; i < MB1SLayer.size(); ++i) {
1643  eventout += "\n (slayer, time, layer) = (";
1644  eventout += MB1SLayer[i];
1645  eventout += ", ";
1646  eventout += MB1Time[i];
1647  eventout += ", ";
1648  eventout += MB1Layer[i];
1649  eventout += ")";
1650  }
1651  eventout += "\n nMB2 = ";
1652  eventout += MB2SLayer.size();
1653  for (unsigned int i = 0; i < MB2SLayer.size(); ++i) {
1654  eventout += "\n (slayer, time, layer) = (";
1655  eventout += MB2SLayer[i];
1656  eventout += ", ";
1657  eventout += MB2Time[i];
1658  eventout += ", ";
1659  eventout += MB2Layer[i];
1660  eventout += ")";
1661  }
1662  eventout += "\n nMB3 = ";
1663  eventout += MB3SLayer.size();
1664  for (unsigned int i = 0; i < MB3SLayer.size(); ++i) {
1665  eventout += "\n (slayer, time, layer) = (";
1666  eventout += MB3SLayer[i];
1667  eventout += ", ";
1668  eventout += MB3Time[i];
1669  eventout += ", ";
1670  eventout += MB3Layer[i];
1671  eventout += ")";
1672  }
1673  eventout += "\n nMB2 = ";
1674  eventout += MB4SLayer.size();
1675  for (unsigned int i = 0; i < MB4SLayer.size(); ++i) {
1676  eventout += "\n (slayer, time, layer) = (";
1677  eventout += MB4SLayer[i];
1678  eventout += ", ";
1679  eventout += MB4Time[i];
1680  eventout += ", ";
1681  eventout += MB4Layer[i];
1682  eventout += ")";
1683  }
1684 
1685  // CSC Strip
1686  eventout += "\n nCSCStrip = ";
1687  eventout += CSCStripADC.size();
1688  for (unsigned int i = 0; i < CSCStripADC.size(); ++i) {
1689  eventout += "\n (adc) = (";
1690  eventout += CSCStripADC[i];
1691  eventout += ")";
1692  }
1693 
1694  // CSC Wire
1695  eventout += "\n nCSCWire = ";
1696  eventout += CSCWireTime.size();
1697  for (unsigned int i = 0; i < CSCWireTime.size(); ++i) {
1698  eventout += "\n (time) = (";
1699  eventout += CSCWireTime[i];
1700  eventout += ")";
1701  }
1702 
1703  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1704  }
1705 
1710 
1711  product.putCSCstripDigis(CSCStripADC);
1712 
1713  product.putCSCwireDigis(CSCWireTime);
1714 
1715  return;
1716 }
1717 
1719 {
1720  std::string MsgLoggerCat = "GlobalDigisProducer_clear";
1721 
1722  if (verbosity > 0)
1723  edm::LogInfo(MsgLoggerCat)
1724  << "Clearing event holders";
1725 
1726  // reset electromagnetic info
1727  // EE info
1728  EECalmaxPos.clear();
1729  EECalAEE.clear();
1730  EECalSHE.clear();
1731  // EB info
1732  EBCalmaxPos.clear();
1733  EBCalAEE.clear();
1734  EBCalSHE.clear();
1735  // ES info
1736  ESCalADC0.clear();
1737  ESCalADC1.clear();
1738  ESCalADC2.clear();
1739  ESCalSHE.clear();
1740 
1741  // reset HCal Info
1742  HBCalAEE.clear();
1743  HBCalSHE.clear();
1744  HECalAEE.clear();
1745  HECalSHE.clear();
1746  HOCalAEE.clear();
1747  HOCalSHE.clear();
1748  HFCalAEE.clear();
1749  HFCalSHE.clear();
1750 
1751  // reset Track Info
1752  TIBL1ADC.clear();
1753  TIBL2ADC.clear();
1754  TIBL3ADC.clear();
1755  TIBL4ADC.clear();
1756  TIBL1Strip.clear();
1757  TIBL2Strip.clear();
1758  TIBL3Strip.clear();
1759  TIBL4Strip.clear();
1760 
1761  TOBL1ADC.clear();
1762  TOBL2ADC.clear();
1763  TOBL3ADC.clear();
1764  TOBL4ADC.clear();
1765  TOBL1Strip.clear();
1766  TOBL2Strip.clear();
1767  TOBL3Strip.clear();
1768  TOBL4Strip.clear();
1769 
1770  TIDW1ADC.clear();
1771  TIDW2ADC.clear();
1772  TIDW3ADC.clear();
1773  TIDW1Strip.clear();
1774  TIDW2Strip.clear();
1775  TIDW3Strip.clear();
1776 
1777  TECW1ADC.clear();
1778  TECW2ADC.clear();
1779  TECW3ADC.clear();
1780  TECW4ADC.clear();
1781  TECW5ADC.clear();
1782  TECW6ADC.clear();
1783  TECW7ADC.clear();
1784  TECW8ADC.clear();
1785  TECW1Strip.clear();
1786  TECW2Strip.clear();
1787  TECW3Strip.clear();
1788  TECW4Strip.clear();
1789  TECW5Strip.clear();
1790  TECW6Strip.clear();
1791  TECW7Strip.clear();
1792  TECW8Strip.clear();
1793 
1794  BRL1ADC.clear();
1795  BRL1Row.clear();
1796  BRL1Col.clear();
1797  BRL2ADC.clear();
1798  BRL2Row.clear();
1799  BRL2Col.clear();
1800  BRL3ADC.clear();
1801  BRL3Row.clear();
1802  BRL3Col.clear();
1803 
1804  FWD1pADC.clear();
1805  FWD1pRow.clear();
1806  FWD1pCol.clear();
1807  FWD1nADC.clear();
1808  FWD1nRow.clear();
1809  FWD1nCol.clear();
1810  FWD2pADC.clear();
1811  FWD2pRow.clear();
1812  FWD2pCol.clear();
1813  FWD2nADC.clear();
1814  FWD2nRow.clear();
1815  FWD2nCol.clear();
1816 
1817  //muon clear
1818  MB1SLayer.clear();
1819  MB1Time.clear();
1820  MB1Layer.clear();
1821  MB2SLayer.clear();
1822  MB2Time.clear();
1823  MB2Layer.clear();
1824  MB3SLayer.clear();
1825  MB3Time.clear();
1826  MB3Layer.clear();
1827  MB4SLayer.clear();
1828  MB4Time.clear();
1829  MB4Layer.clear();
1830 
1831  CSCStripADC.clear();
1832 
1833  CSCWireTime.clear();
1834 
1835  return;
1836 }
1837 
1838 //define this as a plug-in
1839 //DEFINE_FWK_MODULE(GlobalDigisProducer);
RunNumber_t run() const
Definition: EventID.h:39
void putTECW7Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putTOBL4Digis(const std::vector< float > &adc, const std::vector< int > &strip)
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:41
T getUntrackedParameter(std::string const &, T const &) const
void putFWD2pDigis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
void putTOBL1Digis(const std::vector< float > &adc, const std::vector< int > &strip)
std::vector< PCaloHit > PCaloHitContainer
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
std::map< uint32_t, float, std::less< uint32_t > > MapType
key_type id() const
Definition: EBDataFrame.h:31
int ihf
unsigned int tibLayer(const DetId &id) const
edm::EDGetTokenT< CSCStripDigiCollection > MuCSCStripSrc_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
void putBRL3Digis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
static const int sdHcalOut
edm::InputTag MuCSCStripSrc_
edm::EDGetTokenT< edm::SortedCollection< HBHEDataFrame > > HBHEDigi_Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
const ESDetId & id() const
Definition: ESDataFrame.h:21
unsigned int pxfDisk(const DetId &id) const
static const int sdSiTID
void putMB1Digis(const std::vector< int > &slayer, const std::vector< float > &time, const std::vector< int > &layer)
std::vector< T >::const_iterator const_iterator
unsigned long long EventNumber_t
unsigned int tidWheel(const DetId &id) const
double pedestal(int fCapId) const
get pedestal for capid=0..3
void fillTrk(edm::Event &, const edm::EventSetup &)
void putHOCalDigis(const std::vector< float > &aee, const std::vector< float > &she)
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > SiStripSrc_Token_
int size() const
Definition: ESDataFrame.h:23
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
void putFWD2nDigis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
void storeECal(PGlobalDigi &)
edm::EDGetTokenT< EEDigiCollection > ECalEESrc_Token_
void putFWD1nDigis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
int gainId() const
get the gainId (2 bits)
void putTECW8Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putFWD1pDigis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
int size() const
Definition: EcalDataFrame.h:26
void putTIDW3Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putTECW3Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putBRL1Digis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
uint32_t rawId() const
get the raw id
Definition: DetId.h:44
void fillMuon(edm::Event &, const edm::EventSetup &)
GlobalDigisProducer(const edm::ParameterSet &)
void putTECW6Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void adc2fC(const HBHEDataFrame &df, CaloSamples &lf) const override
Definition: HcalCoderDb.cc:68
int iEvent
Definition: GenABIO.cc:230
edm::EDGetTokenT< DTDigiCollection > MuDTSrc_Token_
void putHBCalDigis(const std::vector< float > &aee, const std::vector< float > &she)
void putTECW2Digis(const std::vector< float > &adc, const std::vector< int > &strip)
static const int sdSiTIB
void putEBCalDigis(const std::vector< int > &maxpos, const std::vector< double > &aee, const std::vector< float > &she)
static const int sdPxlBrl
void putTECW1Digis(const std::vector< float > &adc, const std::vector< int > &strip)
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > SiPxlSrc_Token_
static const int MAXSAMPLES
Definition: ESDataFrame.h:32
void produce(edm::Event &, const edm::EventSetup &) override
void beginJob(void) override
void putHFCalDigis(const std::vector< float > &aee, const std::vector< float > &she)
void putTECW4Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putTOBL2Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void storeTrk(PGlobalDigi &)
void storeHCal(PGlobalDigi &)
edm::EDGetTokenT< EBDigiCollection > ECalEBSrc_Token_
void putESCalDigis(const std::vector< float > &adc0, const std::vector< float > &adc1, const std::vector< float > &adc2, const std::vector< float > &she)
static const int sdSiTOB
float gain6Over1() const
edm::EDGetTokenT< edm::SortedCollection< HODataFrame > > HODigi_Token_
#define end
Definition: vmac.h:39
edm::EDGetTokenT< ESDigiCollection > ECalESSrc_Token_
bool isValid() const
Definition: HandleBase.h:74
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:38
void putTECW5Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putMB4Digis(const std::vector< int > &slayer, const std::vector< float > &time, const std::vector< int > &layer)
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:361
key_type id() const
Definition: EEDataFrame.h:28
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
ii
Definition: cuy.py:588
void putBRL2Digis(const std::vector< float > &adc, const std::vector< int > &row, const std::vector< int > &column)
unsigned int pxbLayer(const DetId &id) const
void reserve(size_t isize)
edm::EDGetTokenT< edm::SortedCollection< HFDataFrame > > HFDigi_Token_
Definition: DetId.h:18
std::map< int, double, std::less< int > > ECalgainConv_
void putHECalDigis(const std::vector< float > &aee, const std::vector< float > &she)
T const * product() const
Definition: Handle.h:81
int size() const
get the size
Definition: CaloSamples.h:24
const T & get() const
Definition: EventSetup.h:59
void putEECalDigis(const std::vector< int > &maxpos, const std::vector< double > &aee, const std::vector< float > &she)
static const int sdHcalFwd
float gain12Over6() const
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
std::vector< DTDigi >::const_iterator const_iterator
void putTIBL1Digis(const std::vector< float > &adc, const std::vector< int > &strip)
static const int sdHcalBrl
void putMB2Digis(const std::vector< int > &slayer, const std::vector< float > &time, const std::vector< int > &layer)
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
std::string const & label() const
Definition: InputTag.h:36
edm::EventID id() const
Definition: EventBase.h:60
static const int sdSiTEC
#define begin
Definition: vmac.h:32
void putTIDW2Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void storeMuon(PGlobalDigi &)
void putMB3Digis(const std::vector< int > &slayer, const std::vector< float > &time, const std::vector< int > &layer)
unsigned int pxfSide(const DetId &id) const
std::pair< const_iterator, const_iterator > Range
int adc() const
get the ADC sample (singed 16 bits)
Definition: ESSample.h:18
void fillHCal(edm::Event &, const edm::EventSetup &)
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:346
unsigned int RunNumber_t
static const int sdPxlFwd
void fillECal(edm::Event &, const edm::EventSetup &)
void putCSCwireDigis(const std::vector< float > &time)
collection_type::const_iterator const_iterator
Definition: DetSet.h:33
bool isValid() const
Definition: ESHandle.h:47
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:104
void putTIBL4Digis(const std::vector< float > &adc, const std::vector< int > &strip)
edm::EDGetTokenT< CSCWireDigiCollection > MuCSCWireSrc_Token_
void putTIBL2Digis(const std::vector< float > &adc, const std::vector< int > &strip)
void putTIBL3Digis(const std::vector< float > &adc, const std::vector< int > &strip)
unsigned int tecWheel(const DetId &id) const
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
T const * product() const
Definition: ESHandle.h:86
std::string const & instance() const
Definition: InputTag.h:37
static const int sdHcalEC
static const int MAXSAMPLES
Definition: EcalDataFrame.h:48
void putTOBL3Digis(const std::vector< float > &adc, const std::vector< int > &strip)
def move(src, dest)
Definition: eostools.py:510
void putCSCstripDigis(const std::vector< float > &adc)
unsigned int tobLayer(const DetId &id) const
int adc() const
get the ADC sample (12 bits)
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Event.cc:144
void putTIDW1Digis(const std::vector< float > &adc, const std::vector< int > &strip)