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  // Put Fast Sim Sequences here for Simplification: Fewer options!
64 
65  if(DoFastSim_) {
66 
67  // declare the products to produce
68 
69  //Ecal:
70 
71  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
72  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
73  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
74 
75  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
76  produces< EERecHitCollection >(EERecHitCollectionDM_);
77  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
78 
79  EMWorker_ = new DataMixingEMWorker(ps);
80 
81  //Hcal:
82 
83  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
84  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
85  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
86  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
87 
88  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
89  produces< HORecHitCollection >(HORecHitCollectionDM_);
90  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
91  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
92 
94 
95  //Muons:
96 
97  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
98  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
99  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
100  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
101  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
102 
103  produces< DTDigiCollection >();
104  produces< RPCDigiCollection >();
105  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
106  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
107  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
108 
110 
111  //Tracks:
112 
113  GeneralTrackCollectionDM_ = ps.getParameter<std::string>("GeneralTrackDigiCollectionDM");
114  produces< reco::TrackCollection >(GeneralTrackCollectionDM_);
116 
117  }
118  else{ // Full Simulation options
119 
120  //cout<<"FastSim False!!!"<<endl;
121 
122  // declare the products to produce
123  // Start with EM
124  if(MergeEMDigis_) {
125 
126  // cout<<"EM Digis TRUE!!!"<<endl;
127 
128  EBDigiCollectionDM_ = ps.getParameter<std::string>("EBDigiCollectionDM");
129  EEDigiCollectionDM_ = ps.getParameter<std::string>("EEDigiCollectionDM");
130  ESDigiCollectionDM_ = ps.getParameter<std::string>("ESDigiCollectionDM");
131  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
132 
133  produces< EBDigiCollection >(EBDigiCollectionDM_);
134  produces< EEDigiCollection >(EEDigiCollectionDM_);
135  produces< ESDigiCollection >(ESDigiCollectionDM_);
136 
138  }
139  else { // merge RecHits
140  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
141  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
142  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
143  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
144 
145  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
146  produces< EERecHitCollection >(EERecHitCollectionDM_);
147  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
148 
149  EMWorker_ = new DataMixingEMWorker(ps);
150  }
151  // Hcal next
152 
153  if(MergeHcalDigis_){
154  // cout<<"Hcal Digis TRUE!!!"<<endl;
155 
156  HBHEDigiCollectionDM_ = ps.getParameter<std::string>("HBHEDigiCollectionDM");
157  HODigiCollectionDM_ = ps.getParameter<std::string>("HODigiCollectionDM");
158  HFDigiCollectionDM_ = ps.getParameter<std::string>("HFDigiCollectionDM");
159  ZDCDigiCollectionDM_ = ps.getParameter<std::string>("ZDCDigiCollectionDM");
160 
161  produces< HBHEDigiCollection >();
162  produces< HODigiCollection >();
163  produces< HFDigiCollection >();
164  produces< ZDCDigiCollection >();
165 
166  if(MergeHcalDigisProd_) {
173  }
175  }
176 
177 
178  }
179  else{
180  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
181  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
182  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
183  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
184 
185  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
186  produces< HORecHitCollection >(HORecHitCollectionDM_);
187  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
188  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
189 
191  }
192 
193  // Muons
194 
195  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
196  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
197  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
198  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
199  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
200 
201 
202  produces< DTDigiCollection >();
203  produces< RPCDigiCollection >();
204  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
205  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
206  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
207 
209 
210  // Si-Strips
211 
212  useSiStripRawDigi_ = ps.exists("SiStripRawDigiSource")?
213  ps.getParameter<std::string>("SiStripRawDigiSource")=="PILEUP" ||
214  ps.getParameter<std::string>("SiStripRawDigiSource")=="SIGNAL" : false;
215 
216  SiStripDigiCollectionDM_ = ps.getParameter<std::string>("SiStripDigiCollectionDM");
217 
218  if(useSiStripRawDigi_) {
219 
220  produces< edm::DetSetVector<SiStripRawDigi> > (SiStripDigiCollectionDM_);
222 
223  } else {
224 
225  produces< edm::DetSetVector<SiStripDigi> > (SiStripDigiCollectionDM_);
227 
228  }
229 
230  // Pixels
231 
232  PixelDigiCollectionDM_ = ps.getParameter<std::string>("PixelDigiCollectionDM");
233 
234  produces< edm::DetSetVector<PixelDigi> > (PixelDigiCollectionDM_);
235 
237 
238  }
239 
240  // Pileup Information: if doing pre-mixing, we have to save the pileup information from the Secondary stream
241 
242  MergePileup_ = ps.getParameter<bool>("MergePileupInfo");
243 
244  if(MergePileup_) {
245  produces< std::vector<PileupSummaryInfo> >();
246  produces<CrossingFramePlaybackInfoExtended>();
247 
249  }
250 
251  }
252 
254  // get subdetector names
255  // edm::Service<edm::ConstProductRegistry> reg;
256  // Loop over provenance of products in registry.
257  //for (edm::ProductRegistry::ProductList::const_iterator it = reg->productList().begin(); it != reg->productList().end(); ++it) {
258 
259  // **** Check this out.... ****
260 
261  // See FWCore/Framework/interface/BranchDescription.h
262  // BranchDescription contains all the information for the product.
263 
264  // This section not very backwards-compatible in terms of digi-merging. Need to be able to specify here which data format
265  // to look at...
266 
267  // edm::BranchDescription desc = it->second;
268  //if (!desc.friendlyClassName_.compare(0,9,"EBRecHitC")) {
269  // Subdetectors_.push_back(desc.productInstanceName_);
270  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
271  //}
272  //else if (!desc.friendlyClassName_.compare(0,9,"EERecHitC")) {
273  // else if (!desc.friendlyClassName_.compare(0,9,"EErechitC") && desc.productInstanceName_.compare(0,11,"TrackerHits")) {
274  // Subdetectors_.push_back(desc.productInstanceName_);
275  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
276  //}
277  //else if (!desc.friendlyClassName_.compare(0,9,"HBRecHitC")) {
278  // Subdetectors_.push_back(desc.productInstanceName_);
279  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
280  //}
281  //else if (!desc.friendlyClassName_.compare(0,9,"HERecHitC")) {
282  // Subdetectors_.push_back(desc.productInstanceName_);
283  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
284  // }
285  // and so on with other detector types...
286  // }
287  }
288 
289 
290 
291 
292  // Virtual destructor needed.
294  if(MergeEMDigis_){ delete EMDigiWorker_;}
295  else {delete EMWorker_;}
296  if(MergeHcalDigis_) {
298  else { delete HcalDigiWorker_; }}
299  else {delete HcalWorker_;}
300  if(MuonWorker_) delete MuonWorker_;
301  if(DoFastSim_){
302  delete GeneralTrackWorker_;
303  }else{
305  delete SiStripRawWorker_;
306  else
307  delete SiStripWorker_;
308  delete SiPixelWorker_;
309  }
310  if(MergePileup_) { delete PUWorker_;}
311  }
312 
314  // fill in maps of hits
315 
316  LogDebug("DataMixingModule")<<"===============> adding MC signals for "<<e.id();
317 
318  // Ecal
319  if(MergeEMDigis_) { EMDigiWorker_->addEMSignals(e, ES); }
320  else{ EMWorker_->addEMSignals(e);}
321 
322  // Hcal
323  if(MergeHcalDigis_) {
326  }
327  else{
329  }
330  }
331  else {HcalWorker_->addHcalSignals(e);}
332 
333  // Muon
335 
336  if(DoFastSim_){
338  }else{
339  // SiStrips
342 
343  // SiPixels
345  }
346  AddedPileup_ = false;
347 
348  } // end of addSignals
349 
350 
351 
352 
353  void DataMixingModule::pileWorker(const EventPrincipal &ep, int bcr, int eventNr, const edm::EventSetup& ES, edm::ModuleCallingContext const* mcc) {
354 
355  InternalContext internalContext(ep.id(), mcc);
356  ParentContext parentContext(&internalContext);
357  ModuleCallingContext moduleCallingContext(&moduleDescription());
358  ModuleContextSentry moduleContextSentry(&moduleCallingContext, parentContext);
359 
360  LogDebug("DataMixingModule") <<"\n===============> adding pileups from event "<<ep.id()<<" for bunchcrossing "<<bcr;
361 
362  // Note: setupPileUpEvent may modify the run and lumi numbers of the EventPrincipal to match that of the primary event.
363  setupPileUpEvent(ES);
364 
365  // fill in maps of hits; same code as addSignals, except now applied to the pileup events
366 
367  // Ecal
368  if(MergeEMDigis_) { EMDigiWorker_->addEMPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);}
369  else {EMWorker_->addEMPileups(bcr, &ep, eventNr, &moduleCallingContext); }
370 
371  // Hcal
372  if(MergeHcalDigis_) {
373  if(MergeHcalDigisProd_) {
374  HcalDigiWorkerProd_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);
375  }
376  else{
377  HcalDigiWorker_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);}
378  }
379  else {HcalWorker_->addHcalPileups(bcr, &ep, eventNr, &moduleCallingContext);}
380 
381  // Muon
382  MuonWorker_->addMuonPileups(bcr, &ep, eventNr, &moduleCallingContext);
383 
384  if(DoFastSim_){
385  GeneralTrackWorker_->addGeneralTrackPileups(bcr, &ep, eventNr, &moduleCallingContext);
386  }else{
387 
388  // SiStrips
389  if(useSiStripRawDigi_) SiStripRawWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
390  else SiStripWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
391 
392  // SiPixels
393  SiPixelWorker_->addSiPixelPileups(bcr, &ep, eventNr, &moduleCallingContext);
394  }
395 
396  // check and see if we need to copy the pileup information from
397  // secondary stream to the output stream
398  // We only have the pileup event here, so pick the first time and store the info
399 
400  if(MergePileup_ && !AddedPileup_){
401 
402  PUWorker_->addPileupInfo(&ep, eventNr, &moduleCallingContext);
403 
404  AddedPileup_ = true;
405  }
406 
407  }
408 
409 
410 
412  {
413  std::vector<edm::EventID> recordEventID;
414  std::vector<int> PileupList;
415  PileupList.clear();
416  TrueNumInteractions_.clear();
417 
419 
420  for (int bunchCrossing=minBunch_;bunchCrossing<=maxBunch_;++bunchCrossing) {
421  for (unsigned int isource=0;isource<maxNbSources_;++isource) {
422  boost::shared_ptr<PileUp> source = inputSources_[isource];
423  if (not source or not source->doPileUp())
424  continue;
425 
426  if (isource==0)
427  source->CalculatePileup(minBunch_, maxBunch_, PileupList, TrueNumInteractions_);
428 
429  int NumPU_Events = 0;
430  if (isource ==0) {
431  NumPU_Events = PileupList[bunchCrossing - minBunch_];
432  } else {
433  // non-minbias pileup only gets one event for now. Fix later if desired.
434  NumPU_Events = 1;
435  }
436 
437  source->readPileUp(
438  e.id(),
439  recordEventID,
440  boost::bind(&DataMixingModule::pileWorker, boost::ref(*this),
441  _1, bunchCrossing, _2, boost::cref(ES), mcc),
442  NumPU_Events
443  );
444  }
445  }
446 
447  }
448 
449 
451 
452  // individual workers...
453 
454  // Ecal
455  if(MergeEMDigis_) {EMDigiWorker_->putEM(e,ES);}
456  else {EMWorker_->putEM(e);}
457 
458  // Hcal
459  if(MergeHcalDigis_) {
460  if(MergeHcalDigisProd_) {
462  }
463  else{
464  HcalDigiWorker_->putHcal(e,ES);
465  }
466  }
467  else {HcalWorker_->putHcal(e);}
468 
469  // Muon
470  MuonWorker_->putMuon(e);
471 
472  if(DoFastSim_){
474  }else{
475  // SiStrips
477  else SiStripWorker_->putSiStrip(e);
478 
479  // SiPixels
481  }
482 
484 
485 
486  }
487 
488 
489 } //edm
#define LogDebug(id)
virtual void doPileUp(edm::Event &e, const edm::EventSetup &ES) override
T getParameter(std::string const &) const
void addMuonSignals(const edm::Event &e)
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_
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
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.
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 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)