CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DataMixingModule.cc
Go to the documentation of this file.
1 // File: DataMixingModule.cc
2 // Description: see DataMixingModule.h
3 // Author: Mike Hildreth, University of Notre Dame
4 //
5 //--------------------------------------------
6 
7 #include <map>
8 #include <iostream>
9 #include <boost/bind.hpp>
22 //
23 //
24 #include "DataMixingModule.h"
25 
26 
27 using namespace std;
28 
29 namespace edm
30 {
31 
32  // Constructor
33  DataMixingModule::DataMixingModule(const edm::ParameterSet& ps) : BMixingModule(ps),
34  HBHEPileInputTag_(ps.getParameter<edm::InputTag>("HBHEPileInputTag")),
35  HOPileInputTag_(ps.getParameter<edm::InputTag>("HOPileInputTag")),
36  HFPileInputTag_(ps.getParameter<edm::InputTag>("HFPileInputTag")),
37  ZDCPileInputTag_(ps.getParameter<edm::InputTag>("ZDCPileInputTag")),
38  label_(ps.getParameter<std::string>("Label"))
39 
40  {
41  // what's "label_"?
42 
43  // prepare for data access in DataMixingHcalDigiWorkerProd
44  tok_hbhe_ = consumes<HBHEDigitizerTraits::DigiCollection>(HBHEPileInputTag_);
45  tok_ho_ = consumes<HODigitizerTraits::DigiCollection>(HOPileInputTag_);
46  tok_hf_ = consumes<HFDigitizerTraits::DigiCollection>(HFPileInputTag_);
47  tok_zdc_ = consumes<ZDCDigitizerTraits::DigiCollection>(ZDCPileInputTag_);
48 
49 
50  // get the subdetector names
51  this->getSubdetectorNames(); //something like this may be useful to check what we are supposed to do...
52 
53  // For now, list all of them here. Later, make this selectable with input parameters
54  //
55 
56  // Check to see if we are working in Full or Fast Simulation
57 
58  DoFastSim_ = (ps.getParameter<std::string>("IsThisFastSim")).compare("YES") == 0;
59  MergeEMDigis_ = (ps.getParameter<std::string>("EcalMergeType")).compare("Digis") == 0;
60  MergeHcalDigis_ = (ps.getParameter<std::string>("HcalMergeType")).compare("Digis") == 0;
61  if(MergeHcalDigis_) MergeHcalDigisProd_ = (ps.getParameter<std::string>("HcalDigiMerge")=="FullProd");
62 
63  addMCDigiNoise_ = false;
64 
65  addMCDigiNoise_ = ps.getUntrackedParameter<bool>("addMCDigiNoise"); // for Sim on Sim mixing
66 
67 
68 
69  // Put Fast Sim Sequences here for Simplification: Fewer options!
70 
71  if(DoFastSim_) {
72 
73  // declare the products to produce
74 
75  //Ecal:
76 
77  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
78  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
79  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
80 
81  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
82  produces< EERecHitCollection >(EERecHitCollectionDM_);
83  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
84 
85  EMWorker_ = new DataMixingEMWorker(ps);
86 
87  //Hcal:
88 
89  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
90  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
91  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
92  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
93 
94  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
95  produces< HORecHitCollection >(HORecHitCollectionDM_);
96  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
97  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
98 
100 
101  //Muons:
102 
103  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
104  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
105  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
106  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
107  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
108 
109  produces< DTDigiCollection >();
110  produces< RPCDigiCollection >();
111  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
112  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
113  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
114 
116 
117  //Tracks:
118 
119  GeneralTrackCollectionDM_ = ps.getParameter<std::string>("GeneralTrackDigiCollectionDM");
120  produces< reco::TrackCollection >(GeneralTrackCollectionDM_);
122 
123  }
124  else{ // Full Simulation options
125 
126  //cout<<"FastSim False!!!"<<endl;
127 
128  // declare the products to produce
129  // Start with EM
130  if(MergeEMDigis_) {
131 
132  // cout<<"EM Digis TRUE!!!"<<endl;
133 
134  EBDigiCollectionDM_ = ps.getParameter<std::string>("EBDigiCollectionDM");
135  EEDigiCollectionDM_ = ps.getParameter<std::string>("EEDigiCollectionDM");
136  ESDigiCollectionDM_ = ps.getParameter<std::string>("ESDigiCollectionDM");
137  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
138 
139  produces< EBDigiCollection >(EBDigiCollectionDM_);
140  produces< EEDigiCollection >(EEDigiCollectionDM_);
141  produces< ESDigiCollection >(ESDigiCollectionDM_);
142 
144  }
145  else { // merge RecHits
146  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
147  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
148  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
149  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
150 
151  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
152  produces< EERecHitCollection >(EERecHitCollectionDM_);
153  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
154 
155  EMWorker_ = new DataMixingEMWorker(ps);
156  }
157  // Hcal next
158 
159  if(MergeHcalDigis_){
160  // cout<<"Hcal Digis TRUE!!!"<<endl;
161 
162  HBHEDigiCollectionDM_ = ps.getParameter<std::string>("HBHEDigiCollectionDM");
163  HODigiCollectionDM_ = ps.getParameter<std::string>("HODigiCollectionDM");
164  HFDigiCollectionDM_ = ps.getParameter<std::string>("HFDigiCollectionDM");
165  ZDCDigiCollectionDM_ = ps.getParameter<std::string>("ZDCDigiCollectionDM");
166 
167  produces< HBHEDigiCollection >();
168  produces< HODigiCollection >();
169  produces< HFDigiCollection >();
170  produces< ZDCDigiCollection >();
171 
172  produces<HBHEUpgradeDigiCollection>("HBHEUpgradeDigiCollection");
173  produces<HFUpgradeDigiCollection>("HFUpgradeDigiCollection");
174 
175 
176  if(MergeHcalDigisProd_) {
183  }
185  }
186 
187 
188  }
189  else{
190  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
191  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
192  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
193  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
194 
195  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
196  produces< HORecHitCollection >(HORecHitCollectionDM_);
197  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
198  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
199 
201  }
202 
203  // Muons
204 
205  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
206  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
207  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
208  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
209  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
210 
211 
212  produces< DTDigiCollection >();
213  produces< RPCDigiCollection >();
214  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
215  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
216  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
217 
219 
220  // Si-Strips
221 
222  useSiStripRawDigi_ = ps.exists("SiStripRawDigiSource")?
223  ps.getParameter<std::string>("SiStripRawDigiSource")=="PILEUP" ||
224  ps.getParameter<std::string>("SiStripRawDigiSource")=="SIGNAL" : false;
225 
226  SiStripDigiCollectionDM_ = ps.getParameter<std::string>("SiStripDigiCollectionDM");
227 
228  if(useSiStripRawDigi_) {
229 
230  produces< edm::DetSetVector<SiStripRawDigi> > (SiStripDigiCollectionDM_);
232 
233  } else {
234 
235  produces< edm::DetSetVector<SiStripDigi> > (SiStripDigiCollectionDM_);
236 
237  if( addMCDigiNoise_ ) {
239  }
240  else {
242  }
243  }
244 
245  // Pixels
246 
247  PixelDigiCollectionDM_ = ps.getParameter<std::string>("PixelDigiCollectionDM");
248 
249  produces< edm::DetSetVector<PixelDigi> > (PixelDigiCollectionDM_);
250 
252 
253  }
254 
255  // Pileup Information: if doing pre-mixing, we have to save the pileup information from the Secondary stream
256 
257  MergePileup_ = ps.getParameter<bool>("MergePileupInfo");
258 
259  if(MergePileup_) {
260  produces< std::vector<PileupSummaryInfo> >();
261  produces<CrossingFramePlaybackInfoExtended>();
262 
264  }
265 
266  }
267 
269  // get subdetector names
270  // edm::Service<edm::ConstProductRegistry> reg;
271  // Loop over provenance of products in registry.
272  //for (edm::ProductRegistry::ProductList::const_iterator it = reg->productList().begin(); it != reg->productList().end(); ++it) {
273 
274  // **** Check this out.... ****
275 
276  // See FWCore/Framework/interface/BranchDescription.h
277  // BranchDescription contains all the information for the product.
278 
279  // This section not very backwards-compatible in terms of digi-merging. Need to be able to specify here which data format
280  // to look at...
281 
282  // edm::BranchDescription desc = it->second;
283  //if (!desc.friendlyClassName_.compare(0,9,"EBRecHitC")) {
284  // Subdetectors_.push_back(desc.productInstanceName_);
285  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
286  //}
287  //else if (!desc.friendlyClassName_.compare(0,9,"EERecHitC")) {
288  // else if (!desc.friendlyClassName_.compare(0,9,"EErechitC") && desc.productInstanceName_.compare(0,11,"TrackerHits")) {
289  // Subdetectors_.push_back(desc.productInstanceName_);
290  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
291  //}
292  //else if (!desc.friendlyClassName_.compare(0,9,"HBRecHitC")) {
293  // Subdetectors_.push_back(desc.productInstanceName_);
294  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
295  //}
296  //else if (!desc.friendlyClassName_.compare(0,9,"HERecHitC")) {
297  // Subdetectors_.push_back(desc.productInstanceName_);
298  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
299  // }
300  // and so on with other detector types...
301  // }
302  }
303 
304 
306  if( addMCDigiNoise_ ) {
308  }
309  }
310 
311  // Virtual destructor needed.
313  if(MergeEMDigis_){ delete EMDigiWorker_;}
314  else {delete EMWorker_;}
315  if(MergeHcalDigis_) {
317  else { delete HcalDigiWorker_; }}
318  else {delete HcalWorker_;}
319  if(MuonWorker_) delete MuonWorker_;
320  if(DoFastSim_){
321  delete GeneralTrackWorker_;
322  }else{
324  delete SiStripRawWorker_;
325  else
327  else delete SiStripWorker_;
328  delete SiPixelWorker_;
329  }
330  if(MergePileup_) { delete PUWorker_;}
331  }
332 
334  // fill in maps of hits
335 
336  LogDebug("DataMixingModule")<<"===============> adding MC signals for "<<e.id();
337 
338  // Ecal
339  if(MergeEMDigis_) { EMDigiWorker_->addEMSignals(e, ES); }
340  else{ EMWorker_->addEMSignals(e);}
341 
342  // Hcal
343  if(MergeHcalDigis_) {
346  }
347  else{
349  }
350  }
351  else {HcalWorker_->addHcalSignals(e);}
352 
353  // Muon
355 
356  if(DoFastSim_){
358  }else{
359  // SiStrips
363 
364  // SiPixels
366  }
367  AddedPileup_ = false;
368 
369  } // end of addSignals
370 
371 
372 
373 
374  void DataMixingModule::pileWorker(const EventPrincipal &ep, int bcr, int eventNr, const edm::EventSetup& ES, edm::ModuleCallingContext const* mcc) {
375 
376  InternalContext internalContext(ep.id(), mcc);
377  ParentContext parentContext(&internalContext);
378  ModuleCallingContext moduleCallingContext(&moduleDescription());
379  ModuleContextSentry moduleContextSentry(&moduleCallingContext, parentContext);
380 
381  LogDebug("DataMixingModule") <<"\n===============> adding pileups from event "<<ep.id()<<" for bunchcrossing "<<bcr;
382 
383  // Note: setupPileUpEvent may modify the run and lumi numbers of the EventPrincipal to match that of the primary event.
384  setupPileUpEvent(ES);
385 
386  // fill in maps of hits; same code as addSignals, except now applied to the pileup events
387 
388  // Ecal
389  if(MergeEMDigis_) { EMDigiWorker_->addEMPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);}
390  else {EMWorker_->addEMPileups(bcr, &ep, eventNr, &moduleCallingContext); }
391 
392  // Hcal
393  if(MergeHcalDigis_) {
394  if(MergeHcalDigisProd_) {
395  HcalDigiWorkerProd_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);
396  }
397  else{
398  HcalDigiWorker_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);}
399  }
400  else {HcalWorker_->addHcalPileups(bcr, &ep, eventNr, &moduleCallingContext);}
401 
402  // Muon
403  MuonWorker_->addMuonPileups(bcr, &ep, eventNr, &moduleCallingContext);
404 
405  if(DoFastSim_){
406  GeneralTrackWorker_->addGeneralTrackPileups(bcr, &ep, eventNr, &moduleCallingContext);
407  }else{
408 
409  // SiStrips
410  if(useSiStripRawDigi_) SiStripRawWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
411  else if(addMCDigiNoise_ ) SiStripMCDigiWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
412  else SiStripWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
413 
414  // SiPixels
415  SiPixelWorker_->addSiPixelPileups(bcr, &ep, eventNr, &moduleCallingContext);
416  }
417 
418  // check and see if we need to copy the pileup information from
419  // secondary stream to the output stream
420  // We only have the pileup event here, so pick the first time and store the info
421 
422  if(MergePileup_ && !AddedPileup_){
423 
424  PUWorker_->addPileupInfo(&ep, eventNr, &moduleCallingContext);
425 
426  AddedPileup_ = true;
427  }
428 
429  }
430 
431 
432 
434  {
435  std::vector<edm::EventID> recordEventID;
436  std::vector<int> PileupList;
437  PileupList.clear();
438  TrueNumInteractions_.clear();
439 
441 
442  for (int bunchCrossing=minBunch_;bunchCrossing<=maxBunch_;++bunchCrossing) {
443  for (unsigned int isource=0;isource<maxNbSources_;++isource) {
444  boost::shared_ptr<PileUp> source = inputSources_[isource];
445  if (not source or not source->doPileUp())
446  continue;
447 
448  if (isource==0)
449  source->CalculatePileup(minBunch_, maxBunch_, PileupList, TrueNumInteractions_);
450 
451  int NumPU_Events = 0;
452  if (isource ==0) {
453  NumPU_Events = PileupList[bunchCrossing - minBunch_];
454  } else {
455  // non-minbias pileup only gets one event for now. Fix later if desired.
456  NumPU_Events = 1;
457  }
458 
459  source->readPileUp(
460  e.id(),
461  recordEventID,
462  boost::bind(&DataMixingModule::pileWorker, boost::ref(*this),
463  _1, bunchCrossing, _2, boost::cref(ES), mcc),
464  NumPU_Events
465  );
466  }
467  }
468 
469  }
470 
471 
473 
474  // individual workers...
475 
476  // Ecal
477  if(MergeEMDigis_) {EMDigiWorker_->putEM(e,ES);}
478  else {EMWorker_->putEM(e);}
479 
480  // Hcal
481  if(MergeHcalDigis_) {
482  if(MergeHcalDigisProd_) {
484  }
485  else{
486  HcalDigiWorker_->putHcal(e,ES);
487  }
488  }
489  else {HcalWorker_->putHcal(e);}
490 
491  // Muon
492  MuonWorker_->putMuon(e);
493 
494  if(DoFastSim_){
496  }else{
497  // SiStrips
500  else SiStripWorker_->putSiStrip(e);
501 
502  // SiPixels
504  }
505 
507 
508 
509  }
510 
511 
512 } //edm
#define LogDebug(id)
virtual void doPileUp(edm::Event &e, const edm::EventSetup &ES) override
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void addMuonSignals(const edm::Event &e)
virtual void initializeEvent(edm::Event const &e, edm::EventSetup const &eventSetup)
std::string HFDigiCollectionDM_
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
void putEM(edm::Event &e)
void addSiStripSignals(const edm::Event &e)
void addHcalSignals(const edm::Event &e)
static std::string const source("source")
std::string HBHERecHitCollectionDM_
std::string ZDCRecHitCollectionDM_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
void addMuonPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
void addEMSignals(const edm::Event &e)
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
DataMixingGeneralTrackWorker * GeneralTrackWorker_
std::string CSCStripDigiCollectionDM_
void putPileupInfo(edm::Event &e)
std::vector< float > TrueNumInteractions_
Definition: BMixingModule.h:92
EventID const & id() const
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::string SiStripDigiCollectionDM_
edm::EDGetTokenT< ZDCDigitizerTraits::DigiCollection > tok_zdc_
edm::EDGetTokenT< HODigitizerTraits::DigiCollection > tok_ho_
virtual void initializeEvent(const edm::Event &e, edm::EventSetup const &iSetup)
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
void setHFAccess(edm::EDGetTokenT< HFDigitizerTraits::DigiCollection > tok)
ModuleDescription const & moduleDescription() const
void setZDCAccess(edm::EDGetTokenT< ZDCDigitizerTraits::DigiCollection > tok)
void addSiPixelPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
std::string CSCWireDigiCollectionDM_
void putEM(edm::Event &e, const edm::EventSetup &ES)
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
ModuleCallingContext const * moduleCallingContext() const
Definition: Event.h:212
DataMixingSiStripMCDigiWorker * SiStripMCDigiWorker_
std::string RPCDigiCollectionDM_
void putHcal(edm::Event &e, const edm::EventSetup &ES)
std::string ZDCDigiCollectionDM_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
std::string GeneralTrackCollectionDM_
virtual void addSignals(const edm::Event &e, const edm::EventSetup &ES)
static const unsigned int maxNbSources_
Definition: BMixingModule.h:89
DataMixingPileupCopy * PUWorker_
void setHBHEAccess(edm::EDGetTokenT< HBHEDigitizerTraits::DigiCollection > tok)
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
std::string HORecHitCollectionDM_
DataMixingMuonWorker * MuonWorker_
virtual void getSubdetectorNames()
std::string EEDigiCollectionDM_
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, edm::ModuleCallingContext const *)
edm::InputTag HBHEPileInputTag_
std::string HFRecHitCollectionDM_
void pileWorker(const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
std::string HBHEDigiCollectionDM_
std::string EBRecHitCollectionDM_
std::string CSCComparatorDigiCollectionDM_
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
edm::InputTag HOPileInputTag_
void putHcal(edm::Event &e, const edm::EventSetup &ES)
std::vector< boost::shared_ptr< PileUp > > inputSources_
Definition: BMixingModule.h:97
edm::EventID id() const
Definition: EventBase.h:56
DataMixingSiStripWorker * SiStripWorker_
std::string ESRecHitCollectionDM_
std::string EERecHitCollectionDM_
edm::EDGetTokenT< HFDigitizerTraits::DigiCollection > tok_hf_
std::string ESDigiCollectionDM_
std::string DTDigiCollectionDM_
void addSiStripSignals(const edm::Event &e)
std::string EBDigiCollectionDM_
DataMixingHcalWorker * HcalWorker_
void setHOAccess(edm::EDGetTokenT< HODigitizerTraits::DigiCollection > tok)
edm::InputTag HFPileInputTag_
std::string HODigiCollectionDM_
void addGeneralTrackPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
std::string PixelDigiCollectionDM_
edm::EDGetTokenT< HBHEDigitizerTraits::DigiCollection > tok_hbhe_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
void putSiStrip(edm::Event &e, edm::EventSetup const &iSetup)
void addPileupInfo(const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *mcc)
void addEMSignals(const edm::Event &e, const edm::EventSetup &ES)
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
void setupPileUpEvent(const edm::EventSetup &setup)
DataMixingEMDigiWorker * EMDigiWorker_
void addSiPixelSignals(const edm::Event &e)
edm::InputTag ZDCPileInputTag_
virtual void put(edm::Event &e, const edm::EventSetup &ES)