CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::MixingModule Class Reference

#include <MixingModule.h>

Inheritance diagram for edm::MixingModule:
edm::BMixingModule edm::stream::EDProducer< GlobalCache< MixingCache::Config > >

Public Types

typedef std::vector< DigiAccumulatorMixMod * > Accumulators
 
- Public Types inherited from edm::stream::EDProducer< GlobalCache< MixingCache::Config > >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

void accumulateEvent (Event const &event, EventSetup const &setup)
 
void accumulateEvent (PileUpEventPrincipal const &event, EventSetup const &setup, edm::StreamID const &)
 
virtual void beginJob ()
 
void beginLuminosityBlock (LuminosityBlock const &l1, EventSetup const &c) override
 
void beginRun (Run const &r1, EventSetup const &c) override
 
void endLuminosityBlock (LuminosityBlock const &l1, EventSetup const &c) override
 
void endRun (Run const &r1, EventSetup const &c) override
 
void finalizeEvent (Event &event, EventSetup const &setup) override
 
void initializeEvent (Event const &event, EventSetup const &setup) override
 
 MixingModule (const edm::ParameterSet &ps, MixingCache::Config const *globalConf)
 
void reload (const edm::EventSetup &) override
 
 ~MixingModule () override
 
- Public Member Functions inherited from edm::BMixingModule
virtual void addPileups (const int bcr, EventPrincipal *ep, unsigned int eventId, unsigned int worker, const edm::EventSetup &c)
 
double averageNumber () const
 
void beginLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &setup) override
 
void beginRun (const edm::Run &r, const edm::EventSetup &setup) override
 
 BMixingModule (const edm::ParameterSet &ps, MixingCache::Config const *globalConf)
 
void endLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &setup) override
 
void endRun (const edm::Run &r, const edm::EventSetup &setup) override
 
bool poisson () const
 
void produce (edm::Event &e1, const edm::EventSetup &c) override
 
void registerLateConsumes (eventsetup::ESRecordsToProductResolverIndices const &) override
 
virtual void setBcrOffset ()
 
virtual void setSourceOffset (const unsigned int s)
 
 ~BMixingModule () override
 
- Public Member Functions inherited from edm::stream::EDProducer< GlobalCache< MixingCache::Config > >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

void addSignals (const edm::Event &e, const edm::EventSetup &es) override
 
virtual void branchesActivate (const std::string &friendlyName, const std::string &subdet, InputTag &tag, std::string &label)
 
void checkSignal (const edm::Event &e) override
 
void createDigiAccumulators (const edm::ParameterSet &mixingPSet, edm::ConsumesCollector &iC)
 
void createnewEDProduct () override
 
void doPileUp (edm::Event &e, const edm::EventSetup &es) override
 
bool pileAllWorkers (EventPrincipal const &ep, ModuleCallingContext const *, int bcr, int id, int &offset, const edm::EventSetup &setup, edm::StreamID const &)
 
void put (edm::Event &e, const edm::EventSetup &es) override
 

Private Attributes

std::vector< AdjusterBase * > adjusters_
 
std::vector< AdjusterBase * > adjustersObjects_
 
edm::ESGetToken< MixingModuleConfig, MixingRcdconfigToken_
 
Accumulators digiAccumulators_
 
InputTag inputTagPlayback_
 
bool mixProdStep1_
 
bool mixProdStep2_
 
CrossingFramePlaybackInfoNewplaybackInfo_
 
bool skipSignal_
 
bool useCurrentProcessOnly_
 
std::vector< std::string > wantedBranches_
 
std::vector< MixingWorkerBase * > workers_
 
std::vector< MixingWorkerBase * > workersObjects_
 
bool wrapLongTimes_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::BMixingModule
static void globalEndJob (MixingCache::Config *)
 
static std::unique_ptr< MixingCache::ConfiginitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from edm::BMixingModule
void beginStream (edm::StreamID) override
 
void dropUnwantedBranches (std::vector< std::string > const &wantedBranches)
 
void endStream () override
 
void setupPileUpEvent (const edm::EventSetup &setup)
 
void update (edm::EventSetup const &)
 
- Protected Attributes inherited from edm::BMixingModule
int bunchSpace_
 
bool checktof_
 
bool doit_ [4]
 
unsigned int eventId_
 
std::vector< std::shared_ptr< PileUp > > inputSources_
 
int maxBunch_
 
int minBunch_
 
bool const mixProdStep1_
 
bool const mixProdStep2_
 
edm::ESWatcher< MixingRcdparameterWatcher_
 
bool playback_
 
bool readDB_
 
std::vector< float > TrueNumInteractions_
 
int vertexOffset_
 
- Static Protected Attributes inherited from edm::BMixingModule
static const unsigned int maxNbSources_ = 4
 

Detailed Description

Definition at line 49 of file MixingModule.h.

Member Typedef Documentation

◆ Accumulators

Definition at line 51 of file MixingModule.h.

Constructor & Destructor Documentation

◆ MixingModule()

MixingModule::MixingModule ( const edm::ParameterSet ps,
MixingCache::Config const *  globalConf 
)
explicit

standard constructor

Definition at line 41 of file MixingModule.cc.

References adjustersObjects_, edm::binary_search_all(), MicroEventContent_cff::branch, branchesActivate(), edm::BMixingModule::bunchSpace_, edm::MixingCache::Config::configFromDB_, configToken_, createDigiAccumulators(), DigiHGCalTB160_cff::crossingFrames, edm::BMixingModule::dropUnwantedBranches(), edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), mps_fire::i, cuy::ii, ProducerED_cfi::InputTag, inputTagPlayback_, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, edm::InputTag::kSkipCurrentProcess, label, LogDebug, DigiHGCalTB160_cff::makeCrossingFrame, edm::BMixingModule::maxBunch_, edm::BMixingModule::maxNbSources_, edm::BMixingModule::minBunch_, mixProdStep1_, mixProdStep2_, names, mixObjects_cfi::pcrossingFrames, edm::BMixingModule::playback_, muonDTDigis_cfi::pset, skipSignal_, edm::sort_all(), AlCaHLTBitMon_QueryRunRegistry::string, fireworks::subdets, makeGlobalPositionRcd_cfg::tag, triggerMatcherToHLTDebug_cfi::tags, useCurrentProcessOnly_, wantedBranches_, workersObjects_, and wrapLongTimes_.

42  : BMixingModule(ps_mix, globalConf),
44  mixProdStep2_(ps_mix.getParameter<bool>("mixProdStep2")),
45  mixProdStep1_(ps_mix.getParameter<bool>("mixProdStep1")),
48  LogInfo("MixingModule") << " The MixingModule was run in the Standard mode.";
49  if (mixProdStep1_)
50  LogInfo("MixingModule") << " The MixingModule was run in the Step1 mode. It produces a mixed secondary source.";
51  if (mixProdStep2_)
52  LogInfo("MixingModule") << " The MixingModule was run in the Step2 mode. It uses a mixed secondary source.";
53 
54  useCurrentProcessOnly_ = false;
55  if (ps_mix.exists("useCurrentProcessOnly")) {
56  useCurrentProcessOnly_ = ps_mix.getParameter<bool>("useCurrentProcessOnly");
57  LogInfo("MixingModule") << " using given Parameter 'useCurrentProcessOnly' =" << useCurrentProcessOnly_;
58  }
59  std::string labelPlayback;
60  if (ps_mix.exists("LabelPlayback")) {
61  labelPlayback = ps_mix.getParameter<std::string>("LabelPlayback");
62  }
63  if (labelPlayback.empty()) {
64  labelPlayback = ps_mix.getParameter<std::string>("@module_label");
65  }
66  if (playback_) {
68  consumes<CrossingFramePlaybackInfoNew>(inputTagPlayback_);
69  }
70  wrapLongTimes_ = false;
71  if (ps_mix.exists("WrapLongTimes")) {
72  wrapLongTimes_ = ps_mix.getParameter<bool>("WrapLongTimes");
73  }
74 
75  skipSignal_ = false;
76  if (ps_mix.exists("skipSignal")) {
77  skipSignal_ = ps_mix.getParameter<bool>("skipSignal");
78  }
79 
80  ParameterSet ps = ps_mix.getParameter<ParameterSet>("mixObjects");
81  std::vector<std::string> names = ps.getParameterNames();
82  for (std::vector<std::string>::iterator it = names.begin(); it != names.end(); ++it) {
83  ParameterSet pset = ps.getParameter<ParameterSet>((*it));
84  if (!pset.exists("type"))
85  continue; //to allow replacement by empty pset
86  std::string object = pset.getParameter<std::string>("type");
87  std::vector<InputTag> tags = pset.getParameter<std::vector<InputTag> >("input");
88 
89  //if (!mixProdStep2_) {
90 
91  InputTag tagCF = InputTag();
92  std::string labelCF = " ";
93 
94  if (object == "SimTrack") {
95  InputTag tag;
96  if (!tags.empty())
97  tag = tags[0];
99 
100  branchesActivate(TypeID(typeid(std::vector<SimTrack>)).friendlyClassName(), std::string(""), tag, label);
101  adjustersObjects_.push_back(new Adjuster<std::vector<SimTrack> >(tag, consumesCollector(), wrapLongTimes_));
102  bool makeCrossingFrame = pset.getUntrackedParameter<bool>("makeCrossingFrame", false);
103  if (makeCrossingFrame) {
105  minBunch_, maxBunch_, bunchSpace_, std::string(""), label, labelCF, maxNbSources_, tag, tagCF));
106  produces<CrossingFrame<SimTrack> >(label);
107  }
108  consumes<std::vector<SimTrack> >(tag);
109 
110  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag= " << tag.encode() << ", label will be "
111  << label;
112  // std::cout <<"Will mix "<<object<<"s with InputTag= "<<tag.encode()<<", label will be "<<label<<std::endl;
113 
114  } else if (object == "RecoTrack") {
115  InputTag tag;
116  if (!tags.empty())
117  tag = tags[0];
119 
120  branchesActivate(TypeID(typeid(std::vector<reco::Track>)).friendlyClassName(), std::string(""), tag, label);
122  TypeID(typeid(std::vector<reco::TrackExtra>)).friendlyClassName(), std::string(""), tag, label);
124  TypeID(typeid(edm::OwnVector<TrackingRecHit, edm::ClonePolicy<TrackingRecHit> >)).friendlyClassName(),
125  std::string(""),
126  tag,
127  label);
128  adjustersObjects_.push_back(
129  new Adjuster<edm::OwnVector<TrackingRecHit> >(tag, consumesCollector(), wrapLongTimes_));
130  // note: no crossing frame is foreseen to be used for this object type
131 
132  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag= " << tag.encode() << ", label will be "
133  << label;
134  //std::cout <<"Will mix "<<object<<"s with InputTag= "<<tag.encode()<<", label will be "<<label<<std::endl;
135 
136  } else if (object == "SimVertex") {
137  InputTag tag;
138  if (!tags.empty())
139  tag = tags[0];
141 
142  branchesActivate(TypeID(typeid(std::vector<SimVertex>)).friendlyClassName(), std::string(""), tag, label);
143  adjustersObjects_.push_back(new Adjuster<std::vector<SimVertex> >(tag, consumesCollector(), wrapLongTimes_));
144  bool makeCrossingFrame = pset.getUntrackedParameter<bool>("makeCrossingFrame", false);
145  if (makeCrossingFrame) {
147  minBunch_, maxBunch_, bunchSpace_, std::string(""), label, labelCF, maxNbSources_, tag, tagCF));
148  produces<CrossingFrame<SimVertex> >(label);
149  }
150  consumes<std::vector<SimVertex> >(tag);
151 
152  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag " << tag.encode() << ", label will be "
153  << label;
154  // std::cout <<"Will mix "<<object<<"s with InputTag "<<tag.encode()<<", label will be "<<label<<std::endl;
155 
156  } else if (object == "HepMCProduct") {
157  InputTag tag;
158  if (!tags.empty())
159  tag = tags[0];
161 
162  branchesActivate(TypeID(typeid(HepMCProduct)).friendlyClassName(), std::string(""), tag, label);
163  bool makeCrossingFrame = pset.getUntrackedParameter<bool>("makeCrossingFrame", false);
164  if (makeCrossingFrame) {
166  minBunch_, maxBunch_, bunchSpace_, std::string(""), label, labelCF, maxNbSources_, tag, tagCF, tags));
167  produces<CrossingFrame<HepMCProduct> >(label);
168  }
169  consumes<HepMCProduct>(tag);
170 
171  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag= " << tag.encode() << ", label will be "
172  << label;
173  // std::cout <<"Will mix "<<object<<"s with InputTag= "<<tag.encode()<<", label will be "<<label<<std::endl;
174  for (size_t i = 1; i < tags.size(); ++i) {
175  InputTag fallbackTag = tags[i];
176  std::string fallbackLabel;
178  TypeID(typeid(HepMCProduct)).friendlyClassName(), std::string(""), fallbackTag, fallbackLabel);
179  mayConsume<HepMCProduct>(fallbackTag);
180  }
181 
182  } else if (object == "PCaloHit") {
183  std::vector<std::string> subdets = pset.getParameter<std::vector<std::string> >("subdets");
184  std::vector<std::string> crossingFrames =
185  pset.getUntrackedParameter<std::vector<std::string> >("crossingFrames", std::vector<std::string>());
187  for (unsigned int ii = 0; ii < subdets.size(); ++ii) {
188  InputTag tag;
189  if (tags.size() == 1)
190  tag = tags[0];
191  else if (tags.size() > 1)
192  tag = tags[ii];
194 
195  branchesActivate(TypeID(typeid(std::vector<PCaloHit>)).friendlyClassName(), subdets[ii], tag, label);
196  adjustersObjects_.push_back(new Adjuster<std::vector<PCaloHit> >(tag, consumesCollector(), wrapLongTimes_));
197  if (binary_search_all(crossingFrames, tag.instance())) {
199  minBunch_, maxBunch_, bunchSpace_, subdets[ii], label, labelCF, maxNbSources_, tag, tagCF));
200  produces<CrossingFrame<PCaloHit> >(label);
201  consumes<std::vector<PCaloHit> >(tag);
202  }
203 
204  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag= " << tag.encode() << ", label will be "
205  << label;
206  // std::cout <<"Will mix "<<object<<"s with InputTag= "<<tag.encode()<<", label will be "<<label<<std::endl;
207  }
208 
209  } else if (object == "PSimHit") {
210  std::vector<std::string> subdets = pset.getParameter<std::vector<std::string> >("subdets");
211  std::vector<std::string> crossingFrames =
212  pset.getUntrackedParameter<std::vector<std::string> >("crossingFrames", std::vector<std::string>());
214  std::vector<std::string> pcrossingFrames =
215  pset.getUntrackedParameter<std::vector<std::string> >("pcrossingFrames", std::vector<std::string>());
217  for (unsigned int ii = 0; ii < subdets.size(); ++ii) {
218  InputTag tag;
219  if (tags.size() == 1)
220  tag = tags[0];
221  else if (tags.size() > 1)
222  tag = tags[ii];
224 
225  branchesActivate(TypeID(typeid(std::vector<PSimHit>)).friendlyClassName(), subdets[ii], tag, label);
226  adjustersObjects_.push_back(new Adjuster<std::vector<PSimHit> >(tag, consumesCollector(), wrapLongTimes_));
227  if (binary_search_all(crossingFrames, tag.instance())) {
228  bool makePCrossingFrame = binary_search_all(pcrossingFrames, tag.instance());
230  maxBunch_,
231  bunchSpace_,
232  subdets[ii],
233  label,
234  labelCF,
236  tag,
237  tagCF,
238  makePCrossingFrame));
239  produces<CrossingFrame<PSimHit> >(label);
240  if (makePCrossingFrame) {
241  produces<PCrossingFrame<PSimHit> >(label);
242  }
243  consumes<std::vector<PSimHit> >(tag);
244  }
245 
246  LogInfo("MixingModule") << "Will mix " << object << "s with InputTag= " << tag.encode() << ", label will be "
247  << label;
248  // std::cout <<"Will mix "<<object<<"s with InputTag= "<<tag.encode()<<", label will be "<<label<<std::endl;
249  }
250  } else {
251  LogWarning("MixingModule")
252  << "You have asked to mix an unknown type of object(" << object
253  << ").\n If you want to include it in mixing, please contact the authors of the MixingModule!";
254  }
255  //} //if for mixProdStep2
256  } //while over the mixObjects parameters
257 
259  for (unsigned int branch = 0; branch < wantedBranches_.size(); ++branch)
260  LogDebug("MixingModule") << "Will keep branch " << wantedBranches_[branch] << " for mixing ";
261 
263 
264  produces<PileupMixingContent>();
265 
266  produces<CrossingFramePlaybackInfoNew>();
267 
268  edm::ConsumesCollector iC(consumesCollector());
269  if (globalConf->configFromDB_) {
270  configToken_ = esConsumes<edm::Transition::BeginLuminosityBlock>();
271  }
272  // Create and configure digitizers
273  createDigiAccumulators(ps_mix, iC);
274  }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::ESGetToken< MixingModuleConfig, MixingRcd > configToken_
Definition: MixingModule.h:103
void createDigiAccumulators(const edm::ParameterSet &mixingPSet, edm::ConsumesCollector &iC)
std::vector< AdjusterBase * > adjustersObjects_
Definition: MixingModule.h:105
const std::string names[nVars_]
char const * label
Accumulators digiAccumulators_
Definition: MixingModule.h:114
static const std::string kSkipCurrentProcess
Definition: InputTag.h:53
static const unsigned int maxNbSources_
ii
Definition: cuy.py:589
virtual void branchesActivate(const std::string &friendlyName, const std::string &subdet, InputTag &tag, std::string &label)
Log< level::Info, false > LogInfo
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:92
std::vector< std::string > wantedBranches_
Definition: MixingModule.h:108
InputTag inputTagPlayback_
Definition: MixingModule.h:98
std::vector< MixingWorkerBase * > workersObjects_
Definition: MixingModule.h:107
bool binary_search_all(ForwardSequence const &s, Datum const &d)
wrappers for std::binary_search
Definition: Algorithms.h:58
void dropUnwantedBranches(std::vector< std::string > const &wantedBranches)
Log< level::Warning, false > LogWarning
static const std::string subdets[7]
Definition: TrackUtils.cc:60
#define LogDebug(id)
BMixingModule(const edm::ParameterSet &ps, MixingCache::Config const *globalConf)

◆ ~MixingModule()

MixingModule::~MixingModule ( )
override

Default destructor

Definition at line 346 of file MixingModule.cc.

References adjustersObjects_, digiAccumulators_, and workersObjects_.

346  {
347  for (auto& worker : workersObjects_) {
348  delete worker;
349  }
350 
351  for (auto& adjuster : adjustersObjects_) {
352  delete adjuster;
353  }
354 
355  for (auto& digiAccumulator : digiAccumulators_) {
356  delete digiAccumulator;
357  }
358  }
std::vector< AdjusterBase * > adjustersObjects_
Definition: MixingModule.h:105
Accumulators digiAccumulators_
Definition: MixingModule.h:114
std::vector< MixingWorkerBase * > workersObjects_
Definition: MixingModule.h:107

Member Function Documentation

◆ accumulateEvent() [1/2]

void MixingModule::accumulateEvent ( edm::Event const &  event,
edm::EventSetup const &  setup 
)

Definition at line 682 of file MixingModule.cc.

References digiAccumulators_, and singleTopDQM_cfi::setup.

Referenced by addSignals(), and pileAllWorkers().

682  {
683  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
684  accItr != accEnd;
685  ++accItr) {
686  (*accItr)->accumulate(event, setup);
687  }
688  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
Definition: event.py:1

◆ accumulateEvent() [2/2]

void MixingModule::accumulateEvent ( PileUpEventPrincipal const &  event,
edm::EventSetup const &  setup,
edm::StreamID const &  streamID 
)

Definition at line 690 of file MixingModule.cc.

References digiAccumulators_, and singleTopDQM_cfi::setup.

692  {
693  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
694  accItr != accEnd;
695  ++accItr) {
696  (*accItr)->accumulate(event, setup, streamID);
697  }
698  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
Definition: event.py:1

◆ addSignals()

void MixingModule::addSignals ( const edm::Event e,
const edm::EventSetup es 
)
overrideprivatevirtual

Reimplemented from edm::BMixingModule.

Definition at line 360 of file MixingModule.cc.

References accumulateEvent(), MillePedeFileConverter_cfg::e, cuy::ii, LogDebug, singleTopDQM_cfi::setup, skipSignal_, and workers_.

360  {
361  if (skipSignal_) {
362  return;
363  }
364 
365  LogDebug("MixingModule") << "===============> adding signals for " << e.id();
366 
368  // fill in signal part of CrossingFrame
369  for (unsigned int ii = 0; ii < workers_.size(); ++ii) {
370  workers_[ii]->addSignals(e);
371  }
372  }
std::vector< MixingWorkerBase * > workers_
Definition: MixingModule.h:106
ii
Definition: cuy.py:589
void accumulateEvent(Event const &event, EventSetup const &setup)
#define LogDebug(id)

◆ beginJob()

virtual void edm::MixingModule::beginJob ( void  )
inlinevirtual

Definition at line 59 of file MixingModule.h.

59 {}

◆ beginLuminosityBlock()

void MixingModule::beginLuminosityBlock ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  setup 
)
override

Definition at line 656 of file MixingModule.cc.

References edm::BMixingModule::beginLuminosityBlock(), digiAccumulators_, and singleTopDQM_cfi::setup.

656  {
657  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
658  accItr != accEnd;
659  ++accItr) {
660  (*accItr)->beginLuminosityBlock(lumi, setup);
661  }
663  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
void beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &setup) override

◆ beginRun()

void MixingModule::beginRun ( edm::Run const &  run,
edm::EventSetup const &  setup 
)
override

Definition at line 638 of file MixingModule.cc.

References edm::BMixingModule::beginRun(), digiAccumulators_, writedatasetfile::run, and singleTopDQM_cfi::setup.

638  {
639  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
640  accItr != accEnd;
641  ++accItr) {
642  (*accItr)->beginRun(run, setup);
643  }
645  }
void beginRun(const edm::Run &r, const edm::EventSetup &setup) override
Accumulators digiAccumulators_
Definition: MixingModule.h:114

◆ branchesActivate()

void MixingModule::branchesActivate ( const std::string &  friendlyName,
const std::string &  subdet,
InputTag tag,
std::string &  label 
)
privatevirtual

Definition at line 305 of file MixingModule.cc.

References edm::friendlyname::friendlyName(), EgammaHLTValidationUtils::getProcessName(), ProducerED_cfi::InputTag, label, SimL1EmulatorRepack_CalouGT_cff::processName, AlCaHLTBitMon_QueryRunRegistry::string, makeGlobalPositionRcd_cfg::tag, useCurrentProcessOnly_, and wantedBranches_.

Referenced by MixingModule().

308  {
309  label = tag.label() + tag.instance();
310  wantedBranches_.push_back(friendlyName + '_' + tag.label() + '_' + tag.instance());
311 
312  //if useCurrentProcessOnly, we have to change the input tag
315  tag = InputTag(tag.label(), tag.instance(), processName);
316  }
317  }
char const * label
std::string friendlyName(std::string const &iFullName)
def getProcessName(pdgGen, requiredNumberOfGeneratedObjects)
std::vector< std::string > wantedBranches_
Definition: MixingModule.h:108

◆ checkSignal()

void MixingModule::checkSignal ( const edm::Event e)
overrideprivatevirtual

Reimplemented from edm::BMixingModule.

Definition at line 319 of file MixingModule.cc.

References adjusters_, adjustersObjects_, MillePedeFileConverter_cfg::e, or, skipSignal_, workers_, and workersObjects_.

319  {
320  if (adjusters_.empty()) {
321  for (auto const& adjuster : adjustersObjects_) {
322  if (skipSignal_ or adjuster->checkSignal(e)) {
323  adjusters_.push_back(adjuster);
324  }
325  }
326  }
327  if (workers_.empty()) {
328  for (auto const& worker : workersObjects_) {
329  if (skipSignal_ or worker->checkSignal(e)) {
330  workers_.push_back(worker);
331  }
332  }
333  }
334  }
std::vector< AdjusterBase * > adjustersObjects_
Definition: MixingModule.h:105
std::vector< AdjusterBase * > adjusters_
Definition: MixingModule.h:104
std::vector< MixingWorkerBase * > workers_
Definition: MixingModule.h:106
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::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< MixingWorkerBase * > workersObjects_
Definition: MixingModule.h:107

◆ createDigiAccumulators()

void MixingModule::createDigiAccumulators ( const edm::ParameterSet mixingPSet,
edm::ConsumesCollector iC 
)
private

Definition at line 276 of file MixingModule.cc.

References mixOne_premix_on_sim_cfi::accumulator, digiAccumulators_, edm::DigiAccumulatorMixModFactory::get(), edm::ParameterSet::getParameterNames(), edm::ParameterSet::getParameterSet(), edm::DigiAccumulatorMixModFactory::makeDigiAccumulator(), and muonDTDigis_cfi::pset.

Referenced by MixingModule().

276  {
277  ParameterSet const& digiPSet = mixingPSet.getParameterSet("digitizers");
278  std::vector<std::string> digiNames = digiPSet.getParameterNames();
279  for (auto const& digiName : digiNames) {
280  ParameterSet const& pset = digiPSet.getParameterSet(digiName);
281  if (pset.existsAs<edm::InputTag>("HepMCProductLabel")) {
282  consumes<HepMCProduct>(pset.getParameter<edm::InputTag>("HepMCProductLabel"));
283  }
284  std::unique_ptr<DigiAccumulatorMixMod> accumulator = std::unique_ptr<DigiAccumulatorMixMod>(
285  DigiAccumulatorMixModFactory::get()->makeDigiAccumulator(pset, producesCollector(), iC));
286  // Create appropriate DigiAccumulator
287  if (accumulator.get() != nullptr) {
288  digiAccumulators_.push_back(accumulator.release());
289  }
290  }
291  }
ParameterSet const & getParameterSet(std::string const &) const
Accumulators digiAccumulators_
Definition: MixingModule.h:114
std::unique_ptr< DigiAccumulatorMixMod > makeDigiAccumulator(ParameterSet const &, ProducesCollector, ConsumesCollector &) const
static DigiAccumulatorMixModFactory const * get()

◆ createnewEDProduct()

void MixingModule::createnewEDProduct ( )
overrideprivatevirtual

Reimplemented from edm::BMixingModule.

Definition at line 336 of file MixingModule.cc.

References cuy::ii, edm::BMixingModule::maxBunch_, edm::BMixingModule::maxNbSources_, edm::BMixingModule::minBunch_, playbackInfo_, and workers_.

336  {
337  //create playback info
339  //and CrossingFrames
340  for (unsigned int ii = 0; ii < workers_.size(); ++ii) {
341  workers_[ii]->createnewEDProduct();
342  }
343  }
std::vector< MixingWorkerBase * > workers_
Definition: MixingModule.h:106
static const unsigned int maxNbSources_
CrossingFramePlaybackInfoNew * playbackInfo_
Definition: MixingModule.h:101
ii
Definition: cuy.py:589

◆ doPileUp()

void MixingModule::doPileUp ( edm::Event e,
const edm::EventSetup es 
)
overrideprivatevirtual

Reimplemented from edm::BMixingModule.

Definition at line 405 of file MixingModule.cc.

References genPUProtons_cfi::bunchCrossingList, edm::BMixingModule::bunchSpace_, digiAccumulators_, MillePedeFileConverter_cfg::e, Exception, CrossingFramePlaybackInfoNew::getEventId(), CrossingFramePlaybackInfoNew::getNumberOfEvents(), CrossingFramePlaybackInfoExtended::getStartEventId(), cuy::ii, edm::BMixingModule::inputSources_, inputTagPlayback_, B2GTnPMonitor_cfi::item, edm::BMixingModule::maxBunch_, edm::BMixingModule::maxNbSources_, edm::BMixingModule::minBunch_, eostools::move(), pileAllWorkers(), edm::BMixingModule::playback_, playbackInfo_, CrossingFramePlaybackInfoNew::setInfo(), singleTopDQM_cfi::setup, edm::source(), edm::BMixingModule::TrueNumInteractions_, mitigatedMETSequence_cff::U, and workers_.

405  {
406  using namespace std::placeholders;
407 
408  // Don't allocate because PileUp will do it for us.
409  std::vector<edm::SecondaryEventIDAndFileInfo> recordEventID;
410  std::vector<size_t> sizes;
411  sizes.reserve(maxNbSources_ * (maxBunch_ + 1 - minBunch_));
412  size_t playbackCounter = 0U;
414  edm::Handle<CrossingFramePlaybackInfoExtended> oldFormatPlaybackInfo_H;
415  bool oldFormatPlayback = false;
416  if (playback_) {
417  bool got = e.getByLabel(inputTagPlayback_, playbackInfo_H);
418  if (!got) {
419  bool gotOld = e.getByLabel(inputTagPlayback_, oldFormatPlaybackInfo_H);
420  if (!gotOld) {
421  throw cms::Exception("MixingProductNotFound")
422  << " No "
423  "CrossingFramePlaybackInfoNew on the input file, but playback "
424  "option set!!!!! Please change the input file if you really want "
425  "playback!!!!!!"
426  << std::endl;
427  }
428  oldFormatPlayback = true;
429  }
430  }
431 
432  // source[0] is "real" pileup. Check to see that this is what we are doing.
433 
434  std::vector<int> PileupList;
435  PileupList.clear();
436  TrueNumInteractions_.clear();
437 
438  std::shared_ptr<PileUp> source0 = inputSources_[0];
439 
440  if ((source0 && source0->doPileUp(0)) && !playback_) {
441  // if((!inputSources_[0] || !inputSources_[0]->doPileUp()) && !playback_ )
442 
443  // Pre-calculate all pileup distributions before we go fishing for events
444 
445  source0->CalculatePileup(minBunch_, maxBunch_, PileupList, TrueNumInteractions_, e.streamID());
446  }
447 
448  // pre-populate Pileup information
449  // necessary for luminosity-dependent effects during hit accumulation
450 
451  std::vector<int> numInteractionList;
452  std::vector<int> bunchCrossingList;
453  std::vector<float> TrueInteractionList;
454  std::vector<edm::EventID> eventInfoList; // will be empty if we pre-populate, but it's not used in digitizers
455 
456  if (!playback_) {
457  //Makin' a list: Basically, we don't care about the "other" sources at this point.
458  for (int bunchCrossing = minBunch_; bunchCrossing <= maxBunch_; ++bunchCrossing) {
459  bunchCrossingList.push_back(bunchCrossing);
460  if (!inputSources_[0] || !inputSources_[0]->doPileUp(0)) {
461  numInteractionList.push_back(0);
462  TrueInteractionList.push_back(0);
463  } else {
464  numInteractionList.push_back(PileupList[bunchCrossing - minBunch_]);
465  TrueInteractionList.push_back((TrueNumInteractions_)[bunchCrossing - minBunch_]);
466  }
467  }
468  } else { // have to read PU information from playback info
469  for (int bunchIdx = minBunch_; bunchIdx <= maxBunch_; ++bunchIdx) {
470  bunchCrossingList.push_back(bunchIdx);
471  for (size_t readSrcIdx = 0; readSrcIdx < maxNbSources_; ++readSrcIdx) {
472  if (oldFormatPlayback) {
473  std::vector<edm::EventID> const& playEventID =
474  oldFormatPlaybackInfo_H->getStartEventId(readSrcIdx, bunchIdx);
475  size_t numberOfEvents = playEventID.size();
476  if (readSrcIdx == 0) {
477  PileupList.push_back(numberOfEvents);
478  TrueNumInteractions_.push_back(numberOfEvents);
479  numInteractionList.push_back(numberOfEvents);
480  TrueInteractionList.push_back(numberOfEvents);
481  }
482  } else {
483  size_t numberOfEvents = playbackInfo_H->getNumberOfEvents(bunchIdx, readSrcIdx);
484  if (readSrcIdx == 0) {
485  PileupList.push_back(numberOfEvents);
486  TrueNumInteractions_.push_back(numberOfEvents);
487  numInteractionList.push_back(numberOfEvents);
488  TrueInteractionList.push_back(numberOfEvents);
489  }
490  }
491  }
492  }
493  }
494 
495  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
496  accItr != accEnd;
497  ++accItr) {
498  (*accItr)->StorePileupInformation(
499  bunchCrossingList, numInteractionList, TrueInteractionList, eventInfoList, bunchSpace_);
500  }
501 
502  // for (int bunchIdx = minBunch_; bunchIdx <= maxBunch_; ++bunchIdx) {
503  // std::cout << " bunch ID, Pileup, True " << bunchIdx << " " << PileupList[bunchIdx-minBunch_] << " " << TrueNumInteractions_[bunchIdx-minBunch_] << std::endl;
504  //}
505 
506  for (int bunchIdx = minBunch_; bunchIdx <= maxBunch_; ++bunchIdx) {
507  for (size_t setBcrIdx = 0; setBcrIdx < workers_.size(); ++setBcrIdx) {
508  workers_[setBcrIdx]->setBcrOffset();
509  }
510  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
511  accItr != accEnd;
512  ++accItr) {
513  (*accItr)->initializeBunchCrossing(e, setup, bunchIdx);
514  }
515 
516  for (size_t readSrcIdx = 0; readSrcIdx < maxNbSources_; ++readSrcIdx) {
517  std::shared_ptr<PileUp> source = inputSources_[readSrcIdx]; // this looks like we create
518  // new PileUp objects for each
519  // source for each event?
520  // Why?
521  for (size_t setSrcIdx = 0; setSrcIdx < workers_.size(); ++setSrcIdx) {
522  workers_[setSrcIdx]->setSourceOffset(readSrcIdx);
523  }
524 
525  if (!source || !source->doPileUp(bunchIdx)) {
526  sizes.push_back(0U);
527  if (playback_ && !oldFormatPlayback) {
528  playbackCounter += playbackInfo_H->getNumberOfEvents(bunchIdx, readSrcIdx);
529  }
530  continue;
531  }
532 
533  // int eventId = 0;
534  int vertexOffset = 0;
535 
536  ModuleCallingContext const* mcc = e.moduleCallingContext();
537  if (!playback_) {
538  // non-minbias pileup only gets one event for now. Fix later if desired.
539  int numberOfEvents = (readSrcIdx == 0 ? PileupList[bunchIdx - minBunch_] : 1);
540  sizes.push_back(numberOfEvents);
541  inputSources_[readSrcIdx]->readPileUp(e.id(),
542  recordEventID,
543  std::bind(&MixingModule::pileAllWorkers,
544  std::ref(*this),
545  _1,
546  mcc,
547  bunchIdx,
548  _2,
549  vertexOffset,
550  std::ref(setup),
551  e.streamID()),
552  numberOfEvents,
553  e.streamID());
554  } else if (oldFormatPlayback) {
555  std::vector<edm::EventID> const& playEventID = oldFormatPlaybackInfo_H->getStartEventId(readSrcIdx, bunchIdx);
556  size_t numberOfEvents = playEventID.size();
557  if (readSrcIdx == 0) {
558  PileupList.push_back(numberOfEvents);
559  TrueNumInteractions_.push_back(numberOfEvents);
560  }
561  sizes.push_back(numberOfEvents);
562  std::vector<EventID>::const_iterator begin = playEventID.begin();
563  std::vector<EventID>::const_iterator end = playEventID.end();
564  inputSources_[readSrcIdx]->playOldFormatPileUp(begin,
565  end,
566  recordEventID,
567  std::bind(&MixingModule::pileAllWorkers,
568  std::ref(*this),
569  _1,
570  mcc,
571  bunchIdx,
572  _2,
573  vertexOffset,
574  std::ref(setup),
575  e.streamID()));
576  } else {
577  size_t numberOfEvents = playbackInfo_H->getNumberOfEvents(bunchIdx, readSrcIdx);
578  if (readSrcIdx == 0) {
579  PileupList.push_back(numberOfEvents);
580  TrueNumInteractions_.push_back(numberOfEvents);
581  }
582  sizes.push_back(numberOfEvents);
583  std::vector<SecondaryEventIDAndFileInfo>::const_iterator begin = playbackInfo_H->getEventId(playbackCounter);
584  playbackCounter += numberOfEvents;
585  std::vector<SecondaryEventIDAndFileInfo>::const_iterator end = playbackInfo_H->getEventId(playbackCounter);
586  inputSources_[readSrcIdx]->playPileUp(begin,
587  end,
588  recordEventID,
589  std::bind(&MixingModule::pileAllWorkers,
590  std::ref(*this),
591  _1,
592  mcc,
593  bunchIdx,
594  _2,
595  vertexOffset,
596  std::ref(setup),
597  e.streamID()));
598  }
599  }
600  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
601  accItr != accEnd;
602  ++accItr) {
603  (*accItr)->finalizeBunchCrossing(e, setup, bunchIdx);
604  }
605  }
606 
607  // Save playback information
608  for (auto const item : recordEventID) {
609  eventInfoList.emplace_back(item.eventID());
610  }
611 
612  // setInfo swaps recordEventID, so recordEventID is useless (empty) after the call.
613  playbackInfo_->setInfo(recordEventID, sizes);
614 
615  // Keep track of pileup accounting...
616 
617  std::unique_ptr<PileupMixingContent> PileupMixing_;
618 
619  PileupMixing_ = std::make_unique<PileupMixingContent>(
620  bunchCrossingList, numInteractionList, TrueInteractionList, eventInfoList, bunchSpace_);
621 
622  e.put(std::move(PileupMixing_));
623 
624  // we have to do the ToF transformation for PSimHits once all pileup has been added
625  for (unsigned int ii = 0; ii < workers_.size(); ++ii) {
626  workers_[ii]->setTof();
627  workers_[ii]->put(e);
628  }
629  }
void setInfo(std::vector< edm::SecondaryEventIDAndFileInfo > &eventInfo, std::vector< size_t > &sizes)
static std::string const source("source")
std::vector< edm::EventID > getStartEventId(const unsigned int s, const int bcr) const
std::vector< MixingWorkerBase * > workers_
Definition: MixingModule.h:106
Accumulators digiAccumulators_
Definition: MixingModule.h:114
static const unsigned int maxNbSources_
std::vector< float > TrueNumInteractions_
size_t getNumberOfEvents(int bunchIdx, size_t sourceNumber) const
CrossingFramePlaybackInfoNew * playbackInfo_
Definition: MixingModule.h:101
ii
Definition: cuy.py:589
bool pileAllWorkers(EventPrincipal const &ep, ModuleCallingContext const *, int bcr, int id, int &offset, const edm::EventSetup &setup, edm::StreamID const &)
std::vector< edm::SecondaryEventIDAndFileInfo >::const_iterator getEventId(size_t offset) const
InputTag inputTagPlayback_
Definition: MixingModule.h:98
std::vector< std::shared_ptr< PileUp > > inputSources_
void doPileUp(edm::Event &e, const edm::EventSetup &es) override
def move(src, dest)
Definition: eostools.py:511

◆ endLuminosityBlock()

void MixingModule::endLuminosityBlock ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  setup 
)
override

Definition at line 665 of file MixingModule.cc.

References digiAccumulators_, edm::BMixingModule::endLuminosityBlock(), and singleTopDQM_cfi::setup.

665  {
666  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
667  accItr != accEnd;
668  ++accItr) {
669  (*accItr)->endLuminosityBlock(lumi, setup);
670  }
672  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &setup) override

◆ endRun()

void MixingModule::endRun ( edm::Run const &  run,
edm::EventSetup const &  setup 
)
override

Definition at line 647 of file MixingModule.cc.

References digiAccumulators_, edm::BMixingModule::endRun(), writedatasetfile::run, and singleTopDQM_cfi::setup.

647  {
648  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
649  accItr != accEnd;
650  ++accItr) {
651  (*accItr)->endRun(run, setup);
652  }
654  }
void endRun(const edm::Run &r, const edm::EventSetup &setup) override
Accumulators digiAccumulators_
Definition: MixingModule.h:114

◆ finalizeEvent()

void MixingModule::finalizeEvent ( edm::Event event,
edm::EventSetup const &  setup 
)
overridevirtual

Reimplemented from edm::BMixingModule.

Definition at line 700 of file MixingModule.cc.

References digiAccumulators_, and singleTopDQM_cfi::setup.

700  {
701  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
702  accItr != accEnd;
703  ++accItr) {
704  (*accItr)->finalizeEvent(event, setup);
705  }
706  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
Definition: event.py:1

◆ initializeEvent()

void MixingModule::initializeEvent ( edm::Event const &  event,
edm::EventSetup const &  setup 
)
overridevirtual

Reimplemented from edm::BMixingModule.

Definition at line 674 of file MixingModule.cc.

References digiAccumulators_, and singleTopDQM_cfi::setup.

674  {
675  for (Accumulators::const_iterator accItr = digiAccumulators_.begin(), accEnd = digiAccumulators_.end();
676  accItr != accEnd;
677  ++accItr) {
678  (*accItr)->initializeEvent(event, setup);
679  }
680  }
Accumulators digiAccumulators_
Definition: MixingModule.h:114
Definition: event.py:1

◆ pileAllWorkers()

bool MixingModule::pileAllWorkers ( EventPrincipal const &  ep,
ModuleCallingContext const *  mcc,
int  bcr,
int  id,
int &  offset,
const edm::EventSetup setup,
edm::StreamID const &  streamID 
)
private

Definition at line 374 of file MixingModule.cc.

References accumulateEvent(), adjusters_, edm::BMixingModule::bunchSpace_, edm::EventPrincipal::id(), LogDebug, singleTopDQM_cfi::setup, edm::BMixingModule::setupPileUpEvent(), and workers_.

Referenced by doPileUp().

380  {
381  InternalContext internalContext(eventPrincipal.id(), mcc);
382  ParentContext parentContext(&internalContext);
383  ModuleCallingContext moduleCallingContext(&moduleDescription());
384  ModuleContextSentry moduleContextSentry(&moduleCallingContext, parentContext);
385 
387 
388  for (auto const& adjuster : adjusters_) {
389  adjuster->doOffset(bunchSpace_, bunchCrossing, eventPrincipal, &moduleCallingContext, eventId, vertexOffset);
390  }
391  PileUpEventPrincipal pep(eventPrincipal, &moduleCallingContext, bunchCrossing);
392 
393  accumulateEvent(pep, setup, streamID);
394 
395  for (auto const& worker : workers_) {
396  LogDebug("MixingModule") << " merging Event: id " << eventPrincipal.id();
397  // std::cout <<"PILEALLWORKERS merging Event: id " << eventPrincipal.id() << std::endl;
398 
399  worker->addPileups(eventPrincipal, &moduleCallingContext, eventId);
400  }
401 
402  return true;
403  }
std::vector< AdjusterBase * > adjusters_
Definition: MixingModule.h:104
std::vector< MixingWorkerBase * > workers_
Definition: MixingModule.h:106
void accumulateEvent(Event const &event, EventSetup const &setup)
void setupPileUpEvent(const edm::EventSetup &setup)
#define LogDebug(id)

◆ put()

void MixingModule::put ( edm::Event e,
const edm::EventSetup es 
)
overrideprivatevirtual

Reimplemented from edm::BMixingModule.

Definition at line 631 of file MixingModule.cc.

References MillePedeFileConverter_cfg::e, eostools::move(), and playbackInfo_.

631  {
632  if (playbackInfo_) {
633  std::unique_ptr<CrossingFramePlaybackInfoNew> pOut(playbackInfo_);
634  e.put(std::move(pOut));
635  }
636  }
CrossingFramePlaybackInfoNew * playbackInfo_
Definition: MixingModule.h:101
def move(src, dest)
Definition: eostools.py:511

◆ reload()

void MixingModule::reload ( const edm::EventSetup setup)
overridevirtual

Reimplemented from edm::BMixingModule.

Definition at line 293 of file MixingModule.cc.

References edm::BMixingModule::bunchSpace_, configToken_, cuy::ii, edm::BMixingModule::maxBunch_, edm::BMixingModule::minBunch_, singleTopDQM_cfi::setup, and workersObjects_.

293  {
294  //change the basic parameters.
295  auto const& config = setup.getData(configToken_);
296  minBunch_ = config.minBunch();
297  maxBunch_ = config.maxBunch();
298  bunchSpace_ = config.bunchSpace();
299  //propagate to change the workers
300  for (unsigned int ii = 0; ii < workersObjects_.size(); ++ii) {
302  }
303  }
edm::ESGetToken< MixingModuleConfig, MixingRcd > configToken_
Definition: MixingModule.h:103
Definition: config.py:1
ii
Definition: cuy.py:589
std::vector< MixingWorkerBase * > workersObjects_
Definition: MixingModule.h:107

Member Data Documentation

◆ adjusters_

std::vector<AdjusterBase*> edm::MixingModule::adjusters_
private

Definition at line 104 of file MixingModule.h.

Referenced by checkSignal(), and pileAllWorkers().

◆ adjustersObjects_

std::vector<AdjusterBase*> edm::MixingModule::adjustersObjects_
private

Definition at line 105 of file MixingModule.h.

Referenced by checkSignal(), MixingModule(), and ~MixingModule().

◆ configToken_

edm::ESGetToken<MixingModuleConfig, MixingRcd> edm::MixingModule::configToken_
private

Definition at line 103 of file MixingModule.h.

Referenced by MixingModule(), and reload().

◆ digiAccumulators_

Accumulators edm::MixingModule::digiAccumulators_
private

◆ inputTagPlayback_

InputTag edm::MixingModule::inputTagPlayback_
private

Definition at line 98 of file MixingModule.h.

Referenced by doPileUp(), and MixingModule().

◆ mixProdStep1_

bool edm::MixingModule::mixProdStep1_
private

Definition at line 100 of file MixingModule.h.

Referenced by MixingModule().

◆ mixProdStep2_

bool edm::MixingModule::mixProdStep2_
private

Definition at line 99 of file MixingModule.h.

Referenced by MixingModule().

◆ playbackInfo_

CrossingFramePlaybackInfoNew* edm::MixingModule::playbackInfo_
private

Definition at line 101 of file MixingModule.h.

Referenced by createnewEDProduct(), doPileUp(), and put().

◆ skipSignal_

bool edm::MixingModule::skipSignal_
private

Definition at line 111 of file MixingModule.h.

Referenced by addSignals(), checkSignal(), and MixingModule().

◆ useCurrentProcessOnly_

bool edm::MixingModule::useCurrentProcessOnly_
private

Definition at line 109 of file MixingModule.h.

Referenced by branchesActivate(), and MixingModule().

◆ wantedBranches_

std::vector<std::string> edm::MixingModule::wantedBranches_
private

Definition at line 108 of file MixingModule.h.

Referenced by branchesActivate(), and MixingModule().

◆ workers_

std::vector<MixingWorkerBase*> edm::MixingModule::workers_
private

Definition at line 106 of file MixingModule.h.

Referenced by addSignals(), checkSignal(), createnewEDProduct(), doPileUp(), and pileAllWorkers().

◆ workersObjects_

std::vector<MixingWorkerBase*> edm::MixingModule::workersObjects_
private

Definition at line 107 of file MixingModule.h.

Referenced by checkSignal(), MixingModule(), reload(), and ~MixingModule().

◆ wrapLongTimes_

bool edm::MixingModule::wrapLongTimes_
private

Definition at line 110 of file MixingModule.h.

Referenced by MixingModule().