CMS 3D CMS Logo

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 <functional>
8 #include <iostream>
9 #include <map>
10 #include <memory>
11 
19 //
20 //
22 #include "DataMixingModule.h"
25 
26 using namespace std;
27 
28 namespace edm {
29 
30  // Constructor
31  DataMixingModule::DataMixingModule(const edm::ParameterSet &ps, MixingCache::Config const *globalConf)
32  : BMixingModule(ps, globalConf),
33  EBPileInputTag_(ps.getParameter<edm::InputTag>("EBPileInputTag")),
34  EEPileInputTag_(ps.getParameter<edm::InputTag>("EEPileInputTag")),
35  ESPileInputTag_(ps.getParameter<edm::InputTag>("ESPileInputTag")),
36  HBHEPileInputTag_(ps.getParameter<edm::InputTag>("HBHEPileInputTag")),
37  HOPileInputTag_(ps.getParameter<edm::InputTag>("HOPileInputTag")),
38  HFPileInputTag_(ps.getParameter<edm::InputTag>("HFPileInputTag")),
39  ZDCPileInputTag_(ps.getParameter<edm::InputTag>("ZDCPileInputTag")),
40  QIE10PileInputTag_(ps.getParameter<edm::InputTag>("QIE10PileInputTag")),
41  QIE11PileInputTag_(ps.getParameter<edm::InputTag>("QIE11PileInputTag")),
42  label_(ps.getParameter<std::string>("Label")) {
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  tok_qie10_ = consumes<HcalQIE10DigitizerTraits::DigiCollection>(QIE10PileInputTag_);
49  tok_qie11_ = consumes<HcalQIE11DigitizerTraits::DigiCollection>(QIE11PileInputTag_);
50 
51  // get the subdetector names
52  this->getSubdetectorNames(); // something like this may be useful to check
53  // what we are supposed to do...
54 
55  // For now, list all of them here. Later, make this selectable with input
56  // parameters
57  //
58 
59  // Check to see if we are working in Full or Fast Simulation
60 
61  MergeTrackerDigis_ = (ps.getParameter<std::string>("TrackerMergeType")) == "Digis";
62  MergeEMDigis_ = (ps.getParameter<std::string>("EcalMergeType")) == "Digis";
63  MergeHcalDigis_ = (ps.getParameter<std::string>("HcalMergeType")) == "Digis";
64  if (MergeHcalDigis_)
65  MergeHcalDigisProd_ = (ps.getParameter<std::string>("HcalDigiMerge") == "FullProd");
66 
67  // Put Fast Sim Sequences here for Simplification: Fewer options!
68 
69  if (MergeEMDigis_) {
70  // cout<<"EM Digis TRUE!!!"<<endl;
71 
72  EBDigiCollectionDM_ = ps.getParameter<std::string>("EBDigiCollectionDM");
73  EEDigiCollectionDM_ = ps.getParameter<std::string>("EEDigiCollectionDM");
74  ESDigiCollectionDM_ = ps.getParameter<std::string>("ESDigiCollectionDM");
75  // nMaxPrintout_ =
76  // ps.getUntrackedParameter<int>("nMaxPrintout",10);
77 
78  produces<EBDigiCollection>(EBDigiCollectionDM_);
79  produces<EEDigiCollection>(EEDigiCollectionDM_);
80  produces<ESDigiCollection>(ESDigiCollectionDM_);
81 
82  EMDigiWorker_ = new DataMixingEMDigiWorker(ps, consumesCollector());
83  } else { // merge RecHits
84  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
85  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
86  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
87  // nMaxPrintout_ =
88  // ps.getUntrackedParameter<int>("nMaxPrintout",10);
89 
90  produces<EBRecHitCollection>(EBRecHitCollectionDM_);
91  produces<EERecHitCollection>(EERecHitCollectionDM_);
92  produces<ESRecHitCollection>(ESRecHitCollectionDM_);
93 
94  EMWorker_ = new DataMixingEMWorker(ps, consumesCollector());
95  }
96  // Hcal next
97 
98  if (MergeHcalDigis_) {
99  HBHEDigiCollectionDM_ = ps.getParameter<std::string>("HBHEDigiCollectionDM");
100  HODigiCollectionDM_ = ps.getParameter<std::string>("HODigiCollectionDM");
101  HFDigiCollectionDM_ = ps.getParameter<std::string>("HFDigiCollectionDM");
102  ZDCDigiCollectionDM_ = ps.getParameter<std::string>("ZDCDigiCollectionDM");
103  QIE10DigiCollectionDM_ = ps.getParameter<std::string>("QIE10DigiCollectionDM");
104  QIE11DigiCollectionDM_ = ps.getParameter<std::string>("QIE11DigiCollectionDM");
105 
106  produces<HBHEDigiCollection>();
107  produces<HODigiCollection>();
108  produces<HFDigiCollection>();
109  produces<ZDCDigiCollection>();
110 
111  produces<QIE10DigiCollection>("HFQIE10DigiCollection");
112  produces<QIE11DigiCollection>("HBHEQIE11DigiCollection");
113 
114  if (ps.getParameter<bool>("debugCaloSamples")) {
115  produces<CaloSamplesCollection>("HcalSamples");
116  }
117  if (ps.getParameter<bool>("injectTestHits")) {
118  produces<edm::PCaloHitContainer>("HcalHits");
119  }
120 
122  HcalDigiWorkerProd_ = new DataMixingHcalDigiWorkerProd(ps, consumesCollector());
123  else
124  HcalDigiWorker_ = new DataMixingHcalDigiWorker(ps, consumesCollector());
125 
126  } else {
127  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
128  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
129  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
130  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
131 
132  produces<HBHERecHitCollection>(HBHERecHitCollectionDM_);
133  produces<HORecHitCollection>(HORecHitCollectionDM_);
134  produces<HFRecHitCollection>(HFRecHitCollectionDM_);
135  produces<ZDCRecHitCollection>(ZDCRecHitCollectionDM_);
136 
137  HcalWorker_ = new DataMixingHcalWorker(ps, consumesCollector());
138  }
139 
140  // Muons
141 
142  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
143  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
144  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
145  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
146  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
147 
148  produces<DTDigiCollection>();
149  produces<RPCDigiCollection>();
150  produces<CSCStripDigiCollection>(CSCStripDigiCollectionDM_);
151  produces<CSCWireDigiCollection>(CSCWireDigiCollectionDM_);
152  produces<CSCComparatorDigiCollection>(CSCComparatorDigiCollectionDM_);
153 
154  MuonWorker_ = new DataMixingMuonWorker(ps, consumesCollector());
155 
156  // Si-Strips
157 
158  useSiStripRawDigi_ = ps.exists("SiStripRawDigiSource")
159  ? ps.getParameter<std::string>("SiStripRawDigiSource") == "PILEUP" ||
160  ps.getParameter<std::string>("SiStripRawDigiSource") == "SIGNAL"
161  : false;
162 
163  SiStripDigiCollectionDM_ = ps.getParameter<std::string>("SiStripDigiCollectionDM");
164 
165  if (useSiStripRawDigi_) {
166  produces<edm::DetSetVector<SiStripRawDigi>>(SiStripDigiCollectionDM_);
167  SiStripRawWorker_ = new DataMixingSiStripRawWorker(ps, consumesCollector());
168 
169  } else {
170  produces<edm::DetSetVector<SiStripDigi>>(SiStripDigiCollectionDM_);
171 
172  SiStripWorker_ = new DataMixingSiStripWorker(ps, consumesCollector());
173  }
174 
175  // Pixels
176 
177  PixelDigiCollectionDM_ = ps.getParameter<std::string>("PixelDigiCollectionDM");
178 
179  produces<edm::DetSetVector<PixelDigi>>(PixelDigiCollectionDM_);
180 
181  SiPixelWorker_ = new DataMixingSiPixelWorker(ps, consumesCollector());
182 
183  // Pileup Information: if doing pre-mixing, we have to save the pileup
184  // information from the Secondary stream
185 
186  MergePileup_ = ps.getParameter<bool>("MergePileupInfo");
187 
188  if (MergePileup_) {
189  produces<std::vector<PileupSummaryInfo>>();
190  produces<int>("bunchSpacing");
191  produces<CrossingFramePlaybackInfoNew>();
192 
193  std::vector<edm::InputTag> GenPUProtonsInputTags;
194  GenPUProtonsInputTags = ps.getParameter<std::vector<edm::InputTag>>("GenPUProtonsInputTags");
195  for (std::vector<edm::InputTag>::const_iterator it_InputTag = GenPUProtonsInputTags.begin();
196  it_InputTag != GenPUProtonsInputTags.end();
197  ++it_InputTag)
198  produces<std::vector<reco::GenParticle>>(it_InputTag->label());
199 
200  PUWorker_ = new DataMixingPileupCopy(ps, consumesCollector());
201  }
202  }
203 
205  // get subdetector names
206  // edm::Service<edm::ConstProductRegistry> reg;
207  // Loop over provenance of products in registry.
208  // for (edm::ProductRegistry::ProductList::const_iterator it =
209  // reg->productList().begin(); it != reg->productList().end(); ++it) {
210 
211  // **** Check this out.... ****
212 
213  // See FWCore/Framework/interface/BranchDescription.h
214  // BranchDescription contains all the information for the product.
215 
216  // This section not very backwards-compatible in terms of digi-merging. Need
217  // to be able to specify here which data format to look at...
218 
219  // edm::BranchDescription desc = it->second;
220  // if (!desc.friendlyClassName_.compare(0,9,"EBRecHitC")) {
221  // Subdetectors_.push_back(desc.productInstanceName_);
222  // LogInfo("DataMixingModule") <<"Adding container
223  // "<<desc.productInstanceName_ <<" for pileup treatment";
224  //}
225  // else if (!desc.friendlyClassName_.compare(0,9,"EERecHitC")) {
226  // else if (!desc.friendlyClassName_.compare(0,9,"EErechitC") &&
227  // desc.productInstanceName_.compare(0,11,"TrackerHits")) {
228  // Subdetectors_.push_back(desc.productInstanceName_);
229  // LogInfo("DataMixingModule") <<"Adding container
230  // "<<desc.productInstanceName_ <<" for pileup treatment";
231  //}
232  // else if (!desc.friendlyClassName_.compare(0,9,"HBRecHitC")) {
233  // Subdetectors_.push_back(desc.productInstanceName_);
234  // LogInfo("DataMixingModule") <<"Adding container
235  // "<<desc.productInstanceName_ <<" for pileup treatment";
236  //}
237  // else if (!desc.friendlyClassName_.compare(0,9,"HERecHitC")) {
238  // Subdetectors_.push_back(desc.productInstanceName_);
239  // LogInfo("DataMixingModule") <<"Adding container
240  // "<<desc.productInstanceName_ <<" for pileup treatment";
241  // }
242  // and so on with other detector types...
243  // }
244  }
245 
247 
249 
251 
252  // Virtual destructor needed.
254  if (MergeEMDigis_) {
255  delete EMDigiWorker_;
256  } else {
257  delete EMWorker_;
258  }
259  if (MergeHcalDigis_) {
260  if (MergeHcalDigisProd_) {
261  delete HcalDigiWorkerProd_;
262  } else {
263  delete HcalDigiWorker_;
264  }
265  } else {
266  delete HcalWorker_;
267  }
268  if (MuonWorker_)
269  delete MuonWorker_;
270  if (useSiStripRawDigi_)
271  delete SiStripRawWorker_;
272  else
273  delete SiStripWorker_;
274  delete SiPixelWorker_;
275  if (MergePileup_) {
276  delete PUWorker_;
277  }
278  }
279 
281  // fill in maps of hits
282 
283  LogDebug("DataMixingModule") << "===============> adding MC signals for " << e.id();
284 
285  // Ecal
286  if (MergeEMDigis_) {
288  } else {
290  }
291 
292  // Hcal
293  if (MergeHcalDigis_) {
294  if (MergeHcalDigisProd_) {
296  } else {
298  }
299  } else {
301  }
302 
303  // Muon
305 
306  // SiStrips
307  if (useSiStripRawDigi_)
309  else
311 
312  // SiPixels
314  AddedPileup_ = false;
315  } // end of addSignals
316 
318  const EventPrincipal &ep, int bcr, int eventNr, const edm::EventSetup &ES, edm::ModuleCallingContext const *mcc) {
319  InternalContext internalContext(ep.id(), mcc);
320  ParentContext parentContext(&internalContext);
321  ModuleCallingContext moduleCallingContext(&moduleDescription());
322  ModuleContextSentry moduleContextSentry(&moduleCallingContext, parentContext);
323 
324  LogDebug("DataMixingModule") << "\n===============> adding pileups from event " << ep.id() << " for bunchcrossing "
325  << bcr;
326 
327  // Note: setupPileUpEvent may modify the run and lumi numbers of the
328  // EventPrincipal to match that of the primary event.
329  setupPileUpEvent(ES);
330 
331  // check and see if we need to copy the pileup information from
332  // secondary stream to the output stream
333  // We only have the pileup event here, so pick the first time and store the
334  // info
335 
336  if (MergePileup_ && !AddedPileup_) {
337  PUWorker_->addPileupInfo(&ep, eventNr, &moduleCallingContext);
338 
339  AddedPileup_ = true;
340  }
341 
342  // fill in maps of hits; same code as addSignals, except now applied to the
343  // pileup events
344 
345  // Ecal
346  if (MergeEMDigis_) {
347  EMDigiWorker_->addEMPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);
348  } else {
349  EMWorker_->addEMPileups(bcr, &ep, eventNr, &moduleCallingContext);
350  }
351 
352  // Hcal
353  if (MergeHcalDigis_) {
354  if (MergeHcalDigisProd_) {
355  HcalDigiWorkerProd_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);
356  } else {
357  HcalDigiWorker_->addHcalPileups(bcr, &ep, eventNr, ES, &moduleCallingContext);
358  }
359  } else {
360  HcalWorker_->addHcalPileups(bcr, &ep, eventNr, &moduleCallingContext);
361  }
362 
363  // Muon
364  MuonWorker_->addMuonPileups(bcr, &ep, eventNr, &moduleCallingContext);
365 
366  // SiStrips
367  if (useSiStripRawDigi_)
368  SiStripRawWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
369  else
370  SiStripWorker_->addSiStripPileups(bcr, &ep, eventNr, &moduleCallingContext);
371 
372  // SiPixels
373  // whoops this should be for the MC worker ?????
374  // SiPixelWorker_->setPileupInfo(ps,bunchSpacing);
375  SiPixelWorker_->addSiPixelPileups(bcr, &ep, eventNr, &moduleCallingContext);
376 
377  return true;
378  }
379 
381  using namespace std::placeholders;
382 
383  std::vector<edm::SecondaryEventIDAndFileInfo> recordEventID;
384  std::vector<int> PileupList;
385  PileupList.clear();
386  TrueNumInteractions_.clear();
387 
388  ModuleCallingContext const *mcc = e.moduleCallingContext();
389 
390  for (int bunchCrossing = minBunch_; bunchCrossing <= maxBunch_; ++bunchCrossing) {
391  for (unsigned int isource = 0; isource < maxNbSources_; ++isource) {
392  std::shared_ptr<PileUp> source = inputSources_[isource];
393  if (!source || !(source->doPileUp(bunchCrossing)))
394  continue;
395 
396  if (isource == 0)
397  source->CalculatePileup(minBunch_, maxBunch_, PileupList, TrueNumInteractions_, e.streamID());
398 
399  int NumPU_Events = 0;
400  if (isource == 0) {
401  NumPU_Events = PileupList[bunchCrossing - minBunch_];
402  } else {
403  // non-minbias pileup only gets one event for now. Fix later if desired.
404  NumPU_Events = 1;
405  }
406 
407  source->readPileUp(
408  e.id(),
409  recordEventID,
410  std::bind(&DataMixingModule::pileWorker, std::ref(*this), _1, bunchCrossing, _2, std::cref(ES), mcc),
411  NumPU_Events,
412  e.streamID());
413  }
414  }
415  }
416 
418  // individual workers...
419 
420  // move pileup first so we have access to the information for the put step
421 
422  std::vector<PileupSummaryInfo> ps;
423  int bunchSpacing = 10000;
424 
425  if (MergePileup_) {
428  }
429 
430  // Ecal
431  if (MergeEMDigis_) {
432  EMDigiWorker_->putEM(e, ES);
433  } else {
434  EMWorker_->putEM(e);
435  }
436 
437  // Hcal
438  if (MergeHcalDigis_) {
439  if (MergeHcalDigisProd_) {
441  } else {
442  HcalDigiWorker_->putHcal(e, ES);
443  }
444  } else {
446  }
447 
448  // Muon
450 
451  // SiStrips
452  if (useSiStripRawDigi_)
454  else
456 
457  // SiPixels
459  }
460 
463  }
464 
467  }
468 
469 } // namespace edm
edm::BMixingModule::endRun
void endRun(const edm::Run &r, const edm::EventSetup &setup) override
Definition: BMixingModule.cc:256
edm::BMixingModule::inputSources_
std::vector< std::shared_ptr< PileUp > > inputSources_
Definition: BMixingModule.h:108
edm::BMixingModule::endLuminosityBlock
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &setup) override
Definition: BMixingModule.cc:249
edm::source
static const std::string source("source")
edm::DataMixingModule::HODigiCollectionDM_
std::string HODigiCollectionDM_
Definition: DataMixingModule.h:105
edm::DataMixingEMWorker::addEMPileups
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingEMWorker.cc:136
edm::DataMixingModule::PixelDigiCollectionDM_
std::string PixelDigiCollectionDM_
Definition: DataMixingModule.h:131
Handle.h
ModuleCallingContext.h
edm::DataMixingModule::QIE11PileInputTag_
edm::InputTag QIE11PileInputTag_
Definition: DataMixingModule.h:159
edm::BMixingModule::minBunch_
int minBunch_
Definition: BMixingModule.h:94
MessageLogger.h
edm::DataMixingModule::tok_zdc_
edm::EDGetTokenT< ZDCDigitizerTraits::DigiCollection > tok_zdc_
Definition: DataMixingModule.h:163
edm::DataMixingModule::MergeEMDigis_
bool MergeEMDigis_
Definition: DataMixingModule.h:142
CrossingFramePlaybackInfoNew.h
edm::DataMixingHcalDigiWorkerProd
Definition: DataMixingHcalDigiWorkerProd.h:43
edm::DataMixingModule::AddedPileup_
bool AddedPileup_
Definition: DataMixingModule.h:171
edm::DataMixingModule::CSCStripDigiCollectionDM_
std::string CSCStripDigiCollectionDM_
Definition: DataMixingModule.h:120
edm::BMixingModule::setupPileUpEvent
void setupPileUpEvent(const edm::EventSetup &setup)
Definition: BMixingModule.cc:298
edm::ModuleContextSentry
Definition: ModuleContextSentry.h:11
edm::DataMixingModule::MergeHcalDigisProd_
bool MergeHcalDigisProd_
Definition: DataMixingModule.h:168
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
edm::DataMixingModule::endRun
void endRun(const edm::Run &r, const edm::EventSetup &setup) override
Definition: DataMixingModule.cc:250
edm::DataMixingModule::beginLuminosityBlock
void beginLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override
Definition: DataMixingModule.cc:461
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::DataMixingModule::ZDCRecHitCollectionDM_
std::string ZDCRecHitCollectionDM_
Definition: DataMixingModule.h:99
edm::DataMixingHcalDigiWorker::addHcalPileups
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
Definition: DataMixingHcalDigiWorker.cc:353
edm::DataMixingModule::doPileUp
void doPileUp(edm::Event &e, const edm::EventSetup &ES) override
Definition: DataMixingModule.cc:380
edm::BMixingModule::maxBunch_
int maxBunch_
Definition: BMixingModule.h:95
edm::DataMixingModule::tok_ho_
edm::EDGetTokenT< HODigitizerTraits::DigiCollection > tok_ho_
Definition: DataMixingModule.h:161
edm::DataMixingEMDigiWorker::putEM
void putEM(edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingEMDigiWorker.cc:227
edm::DataMixingHcalWorker::putHcal
void putHcal(edm::Event &e)
Definition: DataMixingHcalWorker.cc:266
edm::DataMixingHcalDigiWorkerProd::addHcalSignals
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorkerProd.cc:81
edm::DataMixingSiStripWorker::addSiStripPileups
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingSiStripWorker.cc:73
edm::DataMixingModule::QIE10PileInputTag_
edm::InputTag QIE10PileInputTag_
Definition: DataMixingModule.h:158
edm::DataMixingMuonWorker::addMuonSignals
void addMuonSignals(const edm::Event &e)
Definition: DataMixingMuonWorker.cc:71
edm::DataMixingHcalWorker::addHcalSignals
void addHcalSignals(const edm::Event &e)
Definition: DataMixingHcalWorker.cc:66
edm::BMixingModule::TrueNumInteractions_
std::vector< float > TrueNumInteractions_
Definition: BMixingModule.h:103
DataMixingModule.h
edm::DataMixingModule::MergeTrackerDigis_
bool MergeTrackerDigis_
Definition: DataMixingModule.h:134
edm::DataMixingModule::useSiStripRawDigi_
bool useSiStripRawDigi_
Definition: DataMixingModule.h:181
edm::BMixingModule
Definition: BMixingModule.h:40
edm::DataMixingModule::SiStripDigiCollectionDM_
std::string SiStripDigiCollectionDM_
Definition: DataMixingModule.h:127
edm::BMixingModule::beginLuminosityBlock
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &setup) override
Definition: BMixingModule.cc:233
edm::DataMixingSiPixelWorker::addSiPixelPileups
void addSiPixelPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingSiPixelWorker.cc:79
edm::DataMixingModule::QIE10DigiCollectionDM_
std::string QIE10DigiCollectionDM_
Definition: DataMixingModule.h:111
GenParticle.h
edm::DataMixingModule::HcalDigiWorker_
DataMixingHcalDigiWorker * HcalDigiWorker_
Definition: DataMixingModule.h:147
edm::DataMixingSiPixelWorker
Definition: DataMixingSiPixelWorker.h:36
edm::DataMixingSiStripWorker::addSiStripSignals
void addSiStripSignals(const edm::Event &e)
Definition: DataMixingSiStripWorker.cc:49
edm::DataMixingModule::beginRun
void beginRun(edm::Run const &run, edm::EventSetup const &eventSetup) override
Definition: DataMixingModule.cc:248
edm::DataMixingHcalDigiWorker::putHcal
void putHcal(edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorker.cc:409
edm::DataMixingEMDigiWorker
Definition: DataMixingEMDigiWorker.h:40
edm::EventPrincipal
Definition: EventPrincipal.h:46
edm::DataMixingModule::CSCWireDigiCollectionDM_
std::string CSCWireDigiCollectionDM_
Definition: DataMixingModule.h:122
edm::DataMixingModule::RPCDigiCollectionDM_
std::string RPCDigiCollectionDM_
Definition: DataMixingModule.h:119
edm::BMixingModule::maxNbSources_
const static unsigned int maxNbSources_
Definition: BMixingModule.h:101
mixOne_sim_on_sim_cfi.GenPUProtonsInputTags
GenPUProtonsInputTags
Definition: mixOne_sim_on_sim_cfi.py:38
edm::DataMixingSiStripWorker
Definition: DataMixingSiStripWorker.h:36
edm::DataMixingPileupCopy::putPileupInfo
void putPileupInfo(edm::Event &e)
Definition: DataMixingPileupCopy.cc:94
edm::DataMixingMuonWorker::putMuon
void putMuon(edm::Event &e)
Definition: DataMixingMuonWorker.cc:352
PileUpEventPrincipal.h
edm::InternalContext
Definition: InternalContext.h:23
edm::DataMixingHcalDigiWorker
Definition: DataMixingHcalDigiWorker.h:40
edm::DataMixingEMDigiWorker::addEMPileups
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
Definition: DataMixingEMDigiWorker.cc:149
edm::DataMixingModule::HORecHitCollectionDM_
std::string HORecHitCollectionDM_
Definition: DataMixingModule.h:95
edm::ParentContext
Definition: ParentContext.h:27
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::DataMixingModule::ZDCDigiCollectionDM_
std::string ZDCDigiCollectionDM_
Definition: DataMixingModule.h:109
edm::DataMixingModule::MuonWorker_
DataMixingMuonWorker * MuonWorker_
Definition: DataMixingModule.h:175
edm::DataMixingModule::SiStripRawWorker_
DataMixingSiStripRawWorker * SiStripRawWorker_
Definition: DataMixingModule.h:180
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:674
edm::DataMixingModule::EEDigiCollectionDM_
std::string EEDigiCollectionDM_
Definition: DataMixingModule.h:85
edm::DataMixingModule::SiPixelWorker_
DataMixingSiPixelWorker * SiPixelWorker_
Definition: DataMixingModule.h:186
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
edm::DataMixingHcalDigiWorkerProd::addHcalPileups
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES, edm::ModuleCallingContext const *)
Definition: DataMixingHcalDigiWorkerProd.cc:86
edm::DataMixingSiStripRawWorker::putSiStrip
void putSiStrip(edm::Event &e)
Definition: DataMixingSiStripRawWorker.cc:94
edm::DataMixingHcalWorker
Definition: DataMixingHcalWorker.h:33
edm::DataMixingModule::HBHEDigiCollectionDM_
std::string HBHEDigiCollectionDM_
Definition: DataMixingModule.h:103
edm::MixingCache::Config
Definition: BMixingModule.h:29
edm::DataMixingEMWorker::putEM
void putEM(edm::Event &e)
Definition: DataMixingEMWorker.cc:210
edm::DataMixingModule::HOPileInputTag_
edm::InputTag HOPileInputTag_
Definition: DataMixingModule.h:155
edm::DataMixingSiStripWorker::putSiStrip
void putSiStrip(edm::Event &e)
Definition: DataMixingSiStripWorker.cc:132
edm::DataMixingSiStripRawWorker
Definition: DataMixingSiStripRawWorker.h:37
edm::DataMixingModule::MergePileup_
bool MergePileup_
Definition: DataMixingModule.h:170
edm::DataMixingModule::EMWorker_
DataMixingEMWorker * EMWorker_
Definition: DataMixingModule.h:140
edm::DataMixingModule::ESRecHitCollectionDM_
std::string ESRecHitCollectionDM_
Definition: DataMixingModule.h:79
InternalContext.h
edm::DataMixingModule::HBHEPileInputTag_
edm::InputTag HBHEPileInputTag_
Definition: DataMixingModule.h:154
edm::EventSetup
Definition: EventSetup.h:57
edm::DataMixingHcalDigiWorker::addHcalSignals
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorker.cc:293
edm::DataMixingModule::MergeHcalDigis_
bool MergeHcalDigis_
Definition: DataMixingModule.h:167
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
edm::DataMixingModule::EBRecHitCollectionDM_
std::string EBRecHitCollectionDM_
Definition: DataMixingModule.h:75
edm::DataMixingModule::CSCComparatorDigiCollectionDM_
std::string CSCComparatorDigiCollectionDM_
Definition: DataMixingModule.h:124
edm::DataMixingHcalDigiWorkerProd::putHcal
void putHcal(edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingHcalDigiWorkerProd.cc:110
edm::DataMixingSiStripRawWorker::addSiStripPileups
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingSiStripRawWorker.cc:72
edm::DataMixingModule::getSubdetectorNames
virtual void getSubdetectorNames()
Definition: DataMixingModule.cc:204
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
edm::DataMixingModule::PUWorker_
DataMixingPileupCopy * PUWorker_
Definition: DataMixingModule.h:138
edm::DataMixingModule::HcalDigiWorkerProd_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
Definition: DataMixingModule.h:148
edm::DataMixingModule::~DataMixingModule
~DataMixingModule() override
Definition: DataMixingModule.cc:253
ParentContext.h
edm::DataMixingModule::tok_hf_
edm::EDGetTokenT< HFDigitizerTraits::DigiCollection > tok_hf_
Definition: DataMixingModule.h:162
edm::DataMixingModule::EERecHitCollectionDM_
std::string EERecHitCollectionDM_
Definition: DataMixingModule.h:77
edm::DataMixingModule::QIE11DigiCollectionDM_
std::string QIE11DigiCollectionDM_
Definition: DataMixingModule.h:113
edm::DataMixingEMWorker
Definition: DataMixingEMWorker.h:37
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::DataMixingModule::DTDigiCollectionDM_
std::string DTDigiCollectionDM_
Definition: DataMixingModule.h:118
edm::DataMixingEMDigiWorker::addEMSignals
void addEMSignals(const edm::Event &e, const edm::EventSetup &ES)
Definition: DataMixingEMDigiWorker.cc:67
edm::DataMixingModule::HFRecHitCollectionDM_
std::string HFRecHitCollectionDM_
Definition: DataMixingModule.h:97
edm::DataMixingSiPixelWorker::addSiPixelSignals
void addSiPixelSignals(const edm::Event &e)
Definition: DataMixingSiPixelWorker.cc:48
edm::DataMixingHcalWorker::addHcalPileups
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingHcalWorker.cc:171
edm::DataMixingModule::EMDigiWorker_
DataMixingEMDigiWorker * EMDigiWorker_
Definition: DataMixingModule.h:141
edm::DataMixingModule::HFPileInputTag_
edm::InputTag HFPileInputTag_
Definition: DataMixingModule.h:156
edm::DataMixingPileupCopy::addPileupInfo
void addPileupInfo(const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *mcc)
Definition: DataMixingPileupCopy.cc:46
edm::DataMixingEMWorker::addEMSignals
void addEMSignals(const edm::Event &e)
Definition: DataMixingEMWorker.cc:62
edm::DataMixingModule::endLuminosityBlock
void endLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override
Definition: DataMixingModule.cc:465
edm::DataMixingPileupCopy::getPileupInfo
void getPileupInfo(std::vector< PileupSummaryInfo > &ps, int &bs)
Definition: DataMixingPileupCopy.h:53
edm::DataMixingSiStripRawWorker::addSiStripSignals
void addSiStripSignals(const edm::Event &e)
Definition: DataMixingSiStripRawWorker.cc:56
edm::DataMixingModule::tok_hbhe_
edm::EDGetTokenT< HBHEDigitizerTraits::DigiCollection > tok_hbhe_
Definition: DataMixingModule.h:160
edm::DataMixingModule::ESDigiCollectionDM_
std::string ESDigiCollectionDM_
Definition: DataMixingModule.h:87
edm::DataMixingModule::put
void put(edm::Event &e, const edm::EventSetup &ES) override
Definition: DataMixingModule.cc:417
edm::DataMixingMuonWorker::addMuonPileups
void addMuonPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, ModuleCallingContext const *)
Definition: DataMixingMuonWorker.cc:218
edm::DataMixingModule::initializeEvent
void initializeEvent(edm::Event const &e, edm::EventSetup const &eventSetup) override
Definition: DataMixingModule.cc:246
edm::DataMixingModule::tok_qie10_
edm::EDGetTokenT< HcalQIE10DigitizerTraits::DigiCollection > tok_qie10_
Definition: DataMixingModule.h:164
edm::DataMixingModule::tok_qie11_
edm::EDGetTokenT< HcalQIE11DigitizerTraits::DigiCollection > tok_qie11_
Definition: DataMixingModule.h:165
edm::DataMixingSiPixelWorker::putSiPixel
void putSiPixel(edm::Event &e)
Definition: DataMixingSiPixelWorker.cc:143
ConsumesCollector.h
edm::DataMixingPileupCopy
Definition: DataMixingPileupCopy.h:40
edm::DataMixingModule::HcalWorker_
DataMixingHcalWorker * HcalWorker_
Definition: DataMixingModule.h:146
edm::DataMixingModule::HFDigiCollectionDM_
std::string HFDigiCollectionDM_
Definition: DataMixingModule.h:107
edm::DataMixingModule::addSignals
void addSignals(const edm::Event &e, const edm::EventSetup &ES) override
Definition: DataMixingModule.cc:280
hltParticleFlowClusterECALL1Seeded_cfi.bunchSpacing
bunchSpacing
Definition: hltParticleFlowClusterECALL1Seeded_cfi.py:8
edm::DataMixingModule::pileWorker
bool pileWorker(const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
Definition: DataMixingModule.cc:317
edm::Event
Definition: Event.h:73
edm::DataMixingModule::ZDCPileInputTag_
edm::InputTag ZDCPileInputTag_
Definition: DataMixingModule.h:157
edm::DataMixingModule::SiStripWorker_
DataMixingSiStripWorker * SiStripWorker_
Definition: DataMixingModule.h:179
ModuleContextSentry.h
edm::DataMixingModule::HBHERecHitCollectionDM_
std::string HBHERecHitCollectionDM_
Definition: DataMixingModule.h:93
SiStripBadComponentsDQMServiceTemplate_cfg.ep
ep
Definition: SiStripBadComponentsDQMServiceTemplate_cfg.py:86
edm::BMixingModule::beginRun
void beginRun(const edm::Run &r, const edm::EventSetup &setup) override
Definition: BMixingModule.cc:241
edm::InputTag
Definition: InputTag.h:15
edm::DataMixingModule::EBDigiCollectionDM_
std::string EBDigiCollectionDM_
Definition: DataMixingModule.h:83
edm::DataMixingMuonWorker
Definition: DataMixingMuonWorker.h:41
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29