CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::DataMixingModule Class Reference

#include <DataMixingModule.h>

Inheritance diagram for edm::DataMixingModule:
edm::BMixingModule edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void addSignals (const edm::Event &e, const edm::EventSetup &ES)
 
virtual void beginJob ()
 
virtual void checkSignal (const edm::Event &e)
 
virtual void createnewEDProduct ()
 
 DataMixingModule (const edm::ParameterSet &ps)
 
virtual void doPileUp (edm::Event &e, const edm::EventSetup &ES)
 
void pileWorker (const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES)
 
virtual void put (edm::Event &e, const edm::EventSetup &ES)
 
virtual ~DataMixingModule ()
 
- 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
 
virtual void beginLuminosityBlock (edm::LuminosityBlock &, edm::EventSetup const &)
 
virtual void beginRun (edm::Run &r, const edm::EventSetup &setup)
 
 BMixingModule (const edm::ParameterSet &ps)
 
virtual void getEventStartInfo (edm::Event &e, const unsigned int source)
 
bool poisson () const
 
virtual void produce (edm::Event &e1, const edm::EventSetup &c)
 
virtual void reload (const edm::EventSetup &setup)
 
virtual void setBcrOffset ()
 
virtual void setEventStartInfo (const unsigned int s)
 
virtual void setSourceOffset (const unsigned int s)
 
virtual ~BMixingModule ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual void getSubdetectorNames ()
 

Private Attributes

std::string CSCComparatorDigiCollectionDM_
 
std::string CSCStripDigiCollectionDM_
 
std::string CSCWireDigiCollectionDM_
 
bool DoFastSim_
 
std::string DTDigiCollectionDM_
 
std::string EBDigiCollectionDM_
 
std::string EBRecHitCollectionDM_
 
std::string EEDigiCollectionDM_
 
std::string EERecHitCollectionDM_
 
DataMixingEMDigiWorkerEMDigiWorker_
 
DataMixingEMWorkerEMWorker_
 
std::string ESDigiCollectionDM_
 
std::string ESRecHitCollectionDM_
 
std::string GeneralTrackCollectionDM_
 
DataMixingGeneralTrackWorkerGeneralTrackWorker_
 
std::string HBHEDigiCollectionDM_
 
std::string HBHERecHitCollectionDM_
 
DataMixingHcalDigiWorkerHcalDigiWorker_
 
DataMixingHcalDigiWorkerProdHcalDigiWorkerProd_
 
DataMixingHcalWorkerHcalWorker_
 
std::string HFDigiCollectionDM_
 
std::string HFRecHitCollectionDM_
 
std::string HODigiCollectionDM_
 
std::string HORecHitCollectionDM_
 
std::string label_
 
bool MergeEMDigis_
 
bool MergeHcalDigis_
 
bool MergeHcalDigisProd_
 
DataMixingMuonWorkerMuonWorker_
 
std::string PixelDigiCollectionDM_
 
std::string RPCDigiCollectionDM_
 
Selectorsel_
 
DataMixingSiPixelWorkerSiPixelWorker_
 
std::string SiStripDigiCollectionDM_
 
std::string siStripRawDigiSource_
 
DataMixingSiStripRawWorkerSiStripRawWorker_
 
DataMixingSiStripWorkerSiStripWorker_
 
std::vector< std::string > Subdetectors_
 
bool useSiStripRawDigi_
 
std::string ZDCDigiCollectionDM_
 
std::string ZDCRecHitCollectionDM_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::BMixingModule
void dropUnwantedBranches (std::vector< std::string > const &wantedBranches)
 
virtual void endJob ()
 
void update (edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 
- Protected Attributes inherited from edm::BMixingModule
int bunchSpace_
 
bool checktof_
 
bool doit_ [4]
 
unsigned int eventId_
 
std::vector< boost::shared_ptr
< PileUp > > 
inputSources_
 
int maxBunch_
 
int minBunch_
 
bool const mixProdStep1_
 
bool const mixProdStep2_
 
edm::ESWatcher< MixingRcdparameterWatcher_
 
bool playback_
 
bool readDB_
 
std::vector< std::string > sourceNames_
 
std::vector< float > TrueNumInteractions_
 
- Static Protected Attributes inherited from edm::BMixingModule
static const unsigned int maxNbSources_ =4
 
static int vertexoffset = 0
 

Detailed Description

Definition at line 43 of file DataMixingModule.h.

Constructor & Destructor Documentation

DataMixingModule::DataMixingModule ( const edm::ParameterSet ps)
explicit

standard constructor

Definition at line 28 of file DataMixingModule.cc.

References CSCComparatorDigiCollectionDM_, CSCStripDigiCollectionDM_, CSCWireDigiCollectionDM_, DoFastSim_, DTDigiCollectionDM_, EBDigiCollectionDM_, EBRecHitCollectionDM_, EEDigiCollectionDM_, EERecHitCollectionDM_, EMDigiWorker_, EMWorker_, ESDigiCollectionDM_, ESRecHitCollectionDM_, edm::ParameterSet::exists(), GeneralTrackCollectionDM_, GeneralTrackWorker_, edm::ParameterSet::getParameter(), getSubdetectorNames(), HBHEDigiCollectionDM_, HBHERecHitCollectionDM_, HcalDigiWorker_, HcalDigiWorkerProd_, HcalWorker_, HFDigiCollectionDM_, HFRecHitCollectionDM_, HODigiCollectionDM_, HORecHitCollectionDM_, label_, MergeEMDigis_, MergeHcalDigis_, MergeHcalDigisProd_, MuonWorker_, PixelDigiCollectionDM_, RPCDigiCollectionDM_, sel_, SiPixelWorker_, SiStripDigiCollectionDM_, SiStripRawWorker_, SiStripWorker_, useSiStripRawDigi_, ZDCDigiCollectionDM_, and ZDCRecHitCollectionDM_.

28  : BMixingModule(ps),
29  label_(ps.getParameter<std::string>("Label"))
30 
31  { // what's "label_"?
32 
33  // get the subdetector names
34  this->getSubdetectorNames(); //something like this may be useful to check what we are supposed to do...
35 
36  // create input selector
37  if (label_.size()>0){
38  sel_=new Selector( ModuleLabelSelector(label_));
39  }
40  else {
41  sel_=new Selector( MatchAllSelector());
42  }
43 
44  // For now, list all of them here. Later, make this selectable with input parameters
45  //
46 
47  // Check to see if we are working in Full or Fast Simulation
48 
49  DoFastSim_ = (ps.getParameter<std::string>("IsThisFastSim")).compare("YES") == 0;
50  MergeEMDigis_ = (ps.getParameter<std::string>("EcalMergeType")).compare("Digis") == 0;
51  MergeHcalDigis_ = (ps.getParameter<std::string>("HcalMergeType")).compare("Digis") == 0;
52  if(MergeHcalDigis_) MergeHcalDigisProd_ = (ps.getParameter<std::string>("HcalDigiMerge")=="FullProd");
53 
54  // Put Fast Sim Sequences here for Simplification: Fewer options!
55 
56  if(DoFastSim_) {
57 
58  // declare the products to produce
59 
60  //Ecal:
61 
62  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
63  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
64  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
65 
66  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
67  produces< EERecHitCollection >(EERecHitCollectionDM_);
68  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
69 
70  EMWorker_ = new DataMixingEMWorker(ps);
71 
72  //Hcal:
73 
74  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
75  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
76  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
77  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
78 
79  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
80  produces< HORecHitCollection >(HORecHitCollectionDM_);
81  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
82  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
83 
85 
86  //Muons:
87 
88  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
89  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
90  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
91  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
92  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
93 
94  produces< DTDigiCollection >();
95  produces< RPCDigiCollection >();
96  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
97  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
98  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
99 
101 
102  //Tracks:
103 
104  GeneralTrackCollectionDM_ = ps.getParameter<std::string>("GeneralTrackDigiCollectionDM");
105  produces< reco::TrackCollection >(GeneralTrackCollectionDM_);
107 
108  }
109  else{ // Full Simulation options
110 
111  //cout<<"FastSim False!!!"<<endl;
112 
113  // declare the products to produce
114  // Start with EM
115  if(MergeEMDigis_) {
116 
117  // cout<<"EM Digis TRUE!!!"<<endl;
118 
119  EBDigiCollectionDM_ = ps.getParameter<std::string>("EBDigiCollectionDM");
120  EEDigiCollectionDM_ = ps.getParameter<std::string>("EEDigiCollectionDM");
121  ESDigiCollectionDM_ = ps.getParameter<std::string>("ESDigiCollectionDM");
122  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
123 
124  produces< EBDigiCollection >(EBDigiCollectionDM_);
125  produces< EEDigiCollection >(EEDigiCollectionDM_);
126  produces< ESDigiCollection >(ESDigiCollectionDM_);
127 
129  }
130  else { // merge RecHits
131  EBRecHitCollectionDM_ = ps.getParameter<std::string>("EBRecHitCollectionDM");
132  EERecHitCollectionDM_ = ps.getParameter<std::string>("EERecHitCollectionDM");
133  ESRecHitCollectionDM_ = ps.getParameter<std::string>("ESRecHitCollectionDM");
134  // nMaxPrintout_ = ps.getUntrackedParameter<int>("nMaxPrintout",10);
135 
136  produces< EBRecHitCollection >(EBRecHitCollectionDM_);
137  produces< EERecHitCollection >(EERecHitCollectionDM_);
138  produces< ESRecHitCollection >(ESRecHitCollectionDM_);
139 
140  EMWorker_ = new DataMixingEMWorker(ps);
141  }
142  // Hcal next
143 
144  if(MergeHcalDigis_){
145  // cout<<"Hcal Digis TRUE!!!"<<endl;
146 
147  HBHEDigiCollectionDM_ = ps.getParameter<std::string>("HBHEDigiCollectionDM");
148  HODigiCollectionDM_ = ps.getParameter<std::string>("HODigiCollectionDM");
149  HFDigiCollectionDM_ = ps.getParameter<std::string>("HFDigiCollectionDM");
150  ZDCDigiCollectionDM_ = ps.getParameter<std::string>("ZDCDigiCollectionDM");
151 
152  produces< HBHEDigiCollection >();
153  produces< HODigiCollection >();
154  produces< HFDigiCollection >();
155  produces< ZDCDigiCollection >();
156 
157  if(MergeHcalDigisProd_) {
159  }
161  }
162 
163 
164  }
165  else{
166  HBHERecHitCollectionDM_ = ps.getParameter<std::string>("HBHERecHitCollectionDM");
167  HORecHitCollectionDM_ = ps.getParameter<std::string>("HORecHitCollectionDM");
168  HFRecHitCollectionDM_ = ps.getParameter<std::string>("HFRecHitCollectionDM");
169  ZDCRecHitCollectionDM_ = ps.getParameter<std::string>("ZDCRecHitCollectionDM");
170 
171  produces< HBHERecHitCollection >(HBHERecHitCollectionDM_);
172  produces< HORecHitCollection >(HORecHitCollectionDM_);
173  produces< HFRecHitCollection >(HFRecHitCollectionDM_);
174  produces< ZDCRecHitCollection >(ZDCRecHitCollectionDM_);
175 
177  }
178 
179  // Muons
180 
181  DTDigiCollectionDM_ = ps.getParameter<std::string>("DTDigiCollectionDM");
182  RPCDigiCollectionDM_ = ps.getParameter<std::string>("RPCDigiCollectionDM");
183  CSCStripDigiCollectionDM_ = ps.getParameter<std::string>("CSCStripDigiCollectionDM");
184  CSCWireDigiCollectionDM_ = ps.getParameter<std::string>("CSCWireDigiCollectionDM");
185  CSCComparatorDigiCollectionDM_ = ps.getParameter<std::string>("CSCComparatorDigiCollectionDM");
186 
187 
188  produces< DTDigiCollection >();
189  produces< RPCDigiCollection >();
190  produces< CSCStripDigiCollection >(CSCStripDigiCollectionDM_);
191  produces< CSCWireDigiCollection >(CSCWireDigiCollectionDM_);
192  produces< CSCComparatorDigiCollection >(CSCComparatorDigiCollectionDM_);
193 
195 
196  // Si-Strips
197 
198  useSiStripRawDigi_ = ps.exists("SiStripRawDigiSource")?
199  ps.getParameter<std::string>("SiStripRawDigiSource")=="PILEUP" ||
200  ps.getParameter<std::string>("SiStripRawDigiSource")=="SIGNAL" : false;
201 
202  SiStripDigiCollectionDM_ = ps.getParameter<std::string>("SiStripDigiCollectionDM");
203 
204  if(useSiStripRawDigi_) {
205 
206  produces< edm::DetSetVector<SiStripRawDigi> > (SiStripDigiCollectionDM_);
208 
209  } else {
210 
211  produces< edm::DetSetVector<SiStripDigi> > (SiStripDigiCollectionDM_);
213 
214  }
215 
216  // Pixels
217 
218  PixelDigiCollectionDM_ = ps.getParameter<std::string>("PixelDigiCollectionDM");
219 
220  produces< edm::DetSetVector<PixelDigi> > (PixelDigiCollectionDM_);
221 
223 
224  }
225 
226  }
T getParameter(std::string const &) const
std::string HFDigiCollectionDM_
std::string HBHERecHitCollectionDM_
std::string ZDCRecHitCollectionDM_
DataMixingGeneralTrackWorker * GeneralTrackWorker_
std::string CSCStripDigiCollectionDM_
BMixingModule(const edm::ParameterSet &ps)
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::string SiStripDigiCollectionDM_
std::string CSCWireDigiCollectionDM_
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
std::string RPCDigiCollectionDM_
std::string ZDCDigiCollectionDM_
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
std::string GeneralTrackCollectionDM_
Functor that operates on &lt;T&gt;
Definition: Selector.h:25
std::string HORecHitCollectionDM_
DataMixingMuonWorker * MuonWorker_
virtual void getSubdetectorNames()
std::string EEDigiCollectionDM_
std::string HFRecHitCollectionDM_
std::string HBHEDigiCollectionDM_
std::string EBRecHitCollectionDM_
std::string CSCComparatorDigiCollectionDM_
DataMixingSiStripWorker * SiStripWorker_
std::string ESRecHitCollectionDM_
std::string EERecHitCollectionDM_
std::string ESDigiCollectionDM_
std::string DTDigiCollectionDM_
std::string EBDigiCollectionDM_
DataMixingHcalWorker * HcalWorker_
std::string HODigiCollectionDM_
std::string PixelDigiCollectionDM_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
DataMixingEMDigiWorker * EMDigiWorker_
DataMixingModule::~DataMixingModule ( )
virtual

Default destructor

Definition at line 268 of file DataMixingModule.cc.

References DoFastSim_, EMDigiWorker_, EMWorker_, GeneralTrackWorker_, HcalDigiWorker_, HcalDigiWorkerProd_, HcalWorker_, MergeEMDigis_, MergeHcalDigis_, MergeHcalDigisProd_, MuonWorker_, sel_, SiPixelWorker_, SiStripRawWorker_, SiStripWorker_, and useSiStripRawDigi_.

268  {
269  delete sel_;
270  if(MergeEMDigis_){ delete EMDigiWorker_;}
271  else {delete EMWorker_;}
272  if(MergeHcalDigis_) {
274  else { delete HcalDigiWorker_; }}
275  else {delete HcalWorker_;}
276  if(MuonWorker_) delete MuonWorker_;
277  if(DoFastSim_){
278  delete GeneralTrackWorker_;
279  }else{
281  delete SiStripRawWorker_;
282  else
283  delete SiStripWorker_;
284  delete SiPixelWorker_;
285  }
286  }
DataMixingGeneralTrackWorker * GeneralTrackWorker_
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
DataMixingMuonWorker * MuonWorker_
DataMixingSiStripWorker * SiStripWorker_
DataMixingHcalWorker * HcalWorker_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
DataMixingEMDigiWorker * EMDigiWorker_

Member Function Documentation

void DataMixingModule::addSignals ( const edm::Event e,
const edm::EventSetup ES 
)
virtual

Reimplemented from edm::BMixingModule.

Definition at line 288 of file DataMixingModule.cc.

References edm::DataMixingEMWorker::addEMSignals(), edm::DataMixingEMDigiWorker::addEMSignals(), edm::DataMixingGeneralTrackWorker::addGeneralTrackSignals(), edm::DataMixingHcalWorker::addHcalSignals(), edm::DataMixingHcalDigiWorkerProd::addHcalSignals(), edm::DataMixingHcalDigiWorker::addHcalSignals(), edm::DataMixingMuonWorker::addMuonSignals(), edm::DataMixingSiPixelWorker::addSiPixelSignals(), edm::DataMixingSiStripWorker::addSiStripSignals(), edm::DataMixingSiStripRawWorker::addSiStripSignals(), DoFastSim_, EMDigiWorker_, EMWorker_, GeneralTrackWorker_, HcalDigiWorker_, HcalDigiWorkerProd_, HcalWorker_, edm::EventBase::id(), LogDebug, MergeEMDigis_, MergeHcalDigis_, MergeHcalDigisProd_, MuonWorker_, SiPixelWorker_, SiStripRawWorker_, SiStripWorker_, and useSiStripRawDigi_.

288  {
289  // fill in maps of hits
290 
291  LogDebug("DataMixingModule")<<"===============> adding MC signals for "<<e.id();
292 
293  // Ecal
294  if(MergeEMDigis_) { EMDigiWorker_->addEMSignals(e, ES); }
295  else{ EMWorker_->addEMSignals(e);}
296 
297  // Hcal
298  if(MergeHcalDigis_) {
301  }
302  else{
304  }
305  }
306  else {HcalWorker_->addHcalSignals(e);}
307 
308  // Muon
310 
311  if(DoFastSim_){
313  }else{
314  // SiStrips
317 
318  // SiPixels
320  }
321  } // end of addSignals
#define LogDebug(id)
void addMuonSignals(const edm::Event &e)
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
void addSiStripSignals(const edm::Event &e)
void addHcalSignals(const edm::Event &e)
void addEMSignals(const edm::Event &e)
DataMixingGeneralTrackWorker * GeneralTrackWorker_
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
DataMixingMuonWorker * MuonWorker_
edm::EventID id() const
Definition: EventBase.h:56
DataMixingSiStripWorker * SiStripWorker_
void addSiStripSignals(const edm::Event &e)
DataMixingHcalWorker * HcalWorker_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
void addEMSignals(const edm::Event &e, const edm::EventSetup &ES)
void addHcalSignals(const edm::Event &e, const edm::EventSetup &ES)
DataMixingEMDigiWorker * EMDigiWorker_
void addSiPixelSignals(const edm::Event &e)
virtual void edm::DataMixingModule::beginJob ( void  )
inlinevirtual

Reimplemented from edm::EDProducer.

Definition at line 53 of file DataMixingModule.h.

53 {}
virtual void edm::DataMixingModule::checkSignal ( const edm::Event e)
inlinevirtual

Reimplemented from edm::BMixingModule.

Definition at line 56 of file DataMixingModule.h.

56 {}
virtual void edm::DataMixingModule::createnewEDProduct ( )
inlinevirtual

Reimplemented from edm::BMixingModule.

Definition at line 57 of file DataMixingModule.h.

57 {}
void DataMixingModule::doPileUp ( edm::Event e,
const edm::EventSetup ES 
)
virtual

Reimplemented from edm::BMixingModule.

Definition at line 365 of file DataMixingModule.cc.

References edm::EventBase::id(), edm::BMixingModule::inputSources_, edm::BMixingModule::maxBunch_, edm::BMixingModule::maxNbSources_, edm::BMixingModule::minBunch_, or, pileWorker(), LaserTracksInput_cfi::source, and edm::BMixingModule::TrueNumInteractions_.

366  {
367  std::vector<edm::EventID> recordEventID;
368  std::vector<int> PileupList;
369  PileupList.clear();
370  TrueNumInteractions_.clear();
371 
372  for (int bunchCrossing=minBunch_;bunchCrossing<=maxBunch_;++bunchCrossing) {
373  for (unsigned int isource=0;isource<maxNbSources_;++isource) {
374  boost::shared_ptr<PileUp> source = inputSources_[isource];
375  if (not source or not source->doPileUp())
376  continue;
377 
378  if (isource==0)
379  source->CalculatePileup(minBunch_, maxBunch_, PileupList, TrueNumInteractions_);
380 
381  int NumPU_Events = 0;
382  if (isource ==0) {
383  NumPU_Events = PileupList[bunchCrossing - minBunch_];
384  } else {
385  // non-minbias pileup only gets one event for now. Fix later if desired.
386  NumPU_Events = 1;
387  }
388 
389  source->readPileUp(
390  e.id(),
391  recordEventID,
392  boost::bind(&DataMixingModule::pileWorker, boost::ref(*this),
393  _1, bunchCrossing, _2, boost::cref(ES)),
394  NumPU_Events
395  );
396  }
397  }
398  }
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
std::vector< float > TrueNumInteractions_
Definition: BMixingModule.h:82
static const unsigned int maxNbSources_
Definition: BMixingModule.h:79
std::vector< boost::shared_ptr< PileUp > > inputSources_
Definition: BMixingModule.h:87
edm::EventID id() const
Definition: EventBase.h:56
void pileWorker(const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES)
void DataMixingModule::getSubdetectorNames ( )
privatevirtual

Definition at line 228 of file DataMixingModule.cc.

Referenced by DataMixingModule().

228  {
229  // get subdetector names
230  // edm::Service<edm::ConstProductRegistry> reg;
231  // Loop over provenance of products in registry.
232  //for (edm::ProductRegistry::ProductList::const_iterator it = reg->productList().begin(); it != reg->productList().end(); ++it) {
233 
234  // **** Check this out.... ****
235 
236  // See FWCore/Framework/interface/BranchDescription.h
237  // BranchDescription contains all the information for the product.
238 
239  // This section not very backwards-compatible in terms of digi-merging. Need to be able to specify here which data format
240  // to look at...
241 
242  // edm::BranchDescription desc = it->second;
243  //if (!desc.friendlyClassName_.compare(0,9,"EBRecHitC")) {
244  // Subdetectors_.push_back(desc.productInstanceName_);
245  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
246  //}
247  //else if (!desc.friendlyClassName_.compare(0,9,"EERecHitC")) {
248  // else if (!desc.friendlyClassName_.compare(0,9,"EErechitC") && desc.productInstanceName_.compare(0,11,"TrackerHits")) {
249  // Subdetectors_.push_back(desc.productInstanceName_);
250  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
251  //}
252  //else if (!desc.friendlyClassName_.compare(0,9,"HBRecHitC")) {
253  // Subdetectors_.push_back(desc.productInstanceName_);
254  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
255  //}
256  //else if (!desc.friendlyClassName_.compare(0,9,"HERecHitC")) {
257  // Subdetectors_.push_back(desc.productInstanceName_);
258  //LogInfo("DataMixingModule") <<"Adding container "<<desc.productInstanceName_ <<" for pileup treatment";
259  // }
260  // and so on with other detector types...
261  // }
262  }
void DataMixingModule::pileWorker ( const edm::EventPrincipal ep,
int  bcr,
int  EventId,
const edm::EventSetup ES 
)

Definition at line 326 of file DataMixingModule.cc.

References edm::DataMixingEMWorker::addEMPileups(), edm::DataMixingEMDigiWorker::addEMPileups(), edm::DataMixingGeneralTrackWorker::addGeneralTrackPileups(), edm::DataMixingHcalWorker::addHcalPileups(), edm::DataMixingHcalDigiWorkerProd::addHcalPileups(), edm::DataMixingHcalDigiWorker::addHcalPileups(), edm::DataMixingMuonWorker::addMuonPileups(), edm::DataMixingSiPixelWorker::addSiPixelPileups(), edm::DataMixingSiStripWorker::addSiStripPileups(), edm::DataMixingSiStripRawWorker::addSiStripPileups(), DoFastSim_, EMDigiWorker_, EMWorker_, GeneralTrackWorker_, HcalDigiWorker_, HcalDigiWorkerProd_, HcalWorker_, edm::EventPrincipal::id(), LogDebug, MergeEMDigis_, MergeHcalDigis_, MergeHcalDigisProd_, MuonWorker_, SiPixelWorker_, SiStripRawWorker_, SiStripWorker_, and useSiStripRawDigi_.

Referenced by doPileUp().

326  {
327 
328 
329  LogDebug("DataMixingModule") <<"\n===============> adding pileups from event "<<ep.id()<<" for bunchcrossing "<<bcr;
330 
331  // fill in maps of hits; same code as addSignals, except now applied to the pileup events
332 
333  // Ecal
334  if(MergeEMDigis_) { EMDigiWorker_->addEMPileups(bcr, &ep, eventNr, ES);}
335  else {EMWorker_->addEMPileups(bcr, &ep, eventNr); }
336 
337  // Hcal
338  if(MergeHcalDigis_) {
339  if(MergeHcalDigisProd_) {
340  HcalDigiWorkerProd_->addHcalPileups(bcr, &ep, eventNr, ES);
341  }
342  else{
343  HcalDigiWorker_->addHcalPileups(bcr, &ep, eventNr, ES);}
344  }
345  else {HcalWorker_->addHcalPileups(bcr, &ep, eventNr);}
346 
347  // Muon
348  MuonWorker_->addMuonPileups(bcr, &ep, eventNr);
349 
350  if(DoFastSim_){
351  GeneralTrackWorker_->addGeneralTrackPileups(bcr, &ep, eventNr);
352  }else{
353 
354  // SiStrips
356  else SiStripWorker_->addSiStripPileups(bcr, &ep, eventNr);
357 
358  // SiPixels
359  SiPixelWorker_->addSiPixelPileups(bcr, &ep, eventNr);
360  }
361  }
#define LogDebug(id)
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES)
void addSiPixelPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
DataMixingGeneralTrackWorker * GeneralTrackWorker_
EventID const & id() const
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
void addGeneralTrackPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
void addHcalPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES)
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId, const edm::EventSetup &ES)
void addEMPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
void addSiStripPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
DataMixingMuonWorker * MuonWorker_
void addMuonPileups(const int bcr, const edm::EventPrincipal *, unsigned int EventId)
DataMixingSiStripWorker * SiStripWorker_
DataMixingHcalWorker * HcalWorker_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
DataMixingEMDigiWorker * EMDigiWorker_
void DataMixingModule::put ( edm::Event e,
const edm::EventSetup ES 
)
virtual

Reimplemented from edm::BMixingModule.

Definition at line 401 of file DataMixingModule.cc.

References DoFastSim_, EMDigiWorker_, EMWorker_, GeneralTrackWorker_, HcalDigiWorker_, HcalDigiWorkerProd_, HcalWorker_, MergeEMDigis_, MergeHcalDigis_, MergeHcalDigisProd_, MuonWorker_, edm::DataMixingEMWorker::putEM(), edm::DataMixingEMDigiWorker::putEM(), edm::DataMixingGeneralTrackWorker::putGeneralTrack(), edm::DataMixingHcalWorker::putHcal(), edm::DataMixingHcalDigiWorkerProd::putHcal(), edm::DataMixingHcalDigiWorker::putHcal(), edm::DataMixingMuonWorker::putMuon(), edm::DataMixingSiPixelWorker::putSiPixel(), edm::DataMixingSiStripWorker::putSiStrip(), edm::DataMixingSiStripRawWorker::putSiStrip(), SiPixelWorker_, SiStripRawWorker_, SiStripWorker_, and useSiStripRawDigi_.

401  {
402 
403  // individual workers...
404 
405  // Ecal
406  if(MergeEMDigis_) {EMDigiWorker_->putEM(e,ES);}
407  else {EMWorker_->putEM(e);}
408 
409  // Hcal
410  if(MergeHcalDigis_) {
411  if(MergeHcalDigisProd_) {
413  }
414  else{
415  HcalDigiWorker_->putHcal(e,ES);
416  }
417  }
418  else {HcalWorker_->putHcal(e);}
419 
420  // Muon
421  MuonWorker_->putMuon(e);
422 
423  if(DoFastSim_){
425  }else{
426  // SiStrips
428  else SiStripWorker_->putSiStrip(e);
429 
430  // SiPixels
432  }
433  }
void putEM(edm::Event &e)
DataMixingGeneralTrackWorker * GeneralTrackWorker_
void putEM(edm::Event &e, const edm::EventSetup &ES)
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
void putHcal(edm::Event &e, const edm::EventSetup &ES)
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
DataMixingMuonWorker * MuonWorker_
void putHcal(edm::Event &e, const edm::EventSetup &ES)
DataMixingSiStripWorker * SiStripWorker_
DataMixingHcalWorker * HcalWorker_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
DataMixingEMDigiWorker * EMDigiWorker_

Member Data Documentation

std::string edm::DataMixingModule::CSCComparatorDigiCollectionDM_
private

Definition at line 98 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::CSCStripDigiCollectionDM_
private

Definition at line 96 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::CSCWireDigiCollectionDM_
private

Definition at line 97 of file DataMixingModule.h.

Referenced by DataMixingModule().

bool edm::DataMixingModule::DoFastSim_
private

Definition at line 110 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::DTDigiCollectionDM_
private

Definition at line 94 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::EBDigiCollectionDM_
private

Definition at line 74 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::EBRecHitCollectionDM_
private

Definition at line 69 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::EEDigiCollectionDM_
private

Definition at line 75 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::EERecHitCollectionDM_
private

Definition at line 70 of file DataMixingModule.h.

Referenced by DataMixingModule().

DataMixingEMDigiWorker* edm::DataMixingModule::EMDigiWorker_
private

Definition at line 115 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

DataMixingEMWorker* edm::DataMixingModule::EMWorker_
private

Definition at line 114 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::ESDigiCollectionDM_
private

Definition at line 76 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::ESRecHitCollectionDM_
private

Definition at line 71 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::GeneralTrackCollectionDM_
private

Definition at line 107 of file DataMixingModule.h.

Referenced by DataMixingModule().

DataMixingGeneralTrackWorker* edm::DataMixingModule::GeneralTrackWorker_
private

Definition at line 144 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::HBHEDigiCollectionDM_
private

Definition at line 87 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::HBHERecHitCollectionDM_
private

Definition at line 81 of file DataMixingModule.h.

Referenced by DataMixingModule().

DataMixingHcalDigiWorker* edm::DataMixingModule::HcalDigiWorker_
private

Definition at line 121 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

DataMixingHcalDigiWorkerProd* edm::DataMixingModule::HcalDigiWorkerProd_
private

Definition at line 122 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

DataMixingHcalWorker* edm::DataMixingModule::HcalWorker_
private

Definition at line 120 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::HFDigiCollectionDM_
private

Definition at line 89 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::HFRecHitCollectionDM_
private

Definition at line 83 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::HODigiCollectionDM_
private

Definition at line 88 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::HORecHitCollectionDM_
private

Definition at line 82 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::label_
private
bool edm::DataMixingModule::MergeEMDigis_
private

Definition at line 116 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

bool edm::DataMixingModule::MergeHcalDigis_
private

Definition at line 124 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

bool edm::DataMixingModule::MergeHcalDigisProd_
private

Definition at line 125 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

DataMixingMuonWorker* edm::DataMixingModule::MuonWorker_
private

Definition at line 129 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::PixelDigiCollectionDM_
private

Definition at line 104 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::RPCDigiCollectionDM_
private

Definition at line 95 of file DataMixingModule.h.

Referenced by DataMixingModule().

Selector* edm::DataMixingModule::sel_
private

Definition at line 153 of file DataMixingModule.h.

Referenced by DataMixingModule(), and ~DataMixingModule().

DataMixingSiPixelWorker* edm::DataMixingModule::SiPixelWorker_
private

Definition at line 140 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::SiStripDigiCollectionDM_
private

Definition at line 101 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::siStripRawDigiSource_
private

Definition at line 136 of file DataMixingModule.h.

DataMixingSiStripRawWorker* edm::DataMixingModule::SiStripRawWorker_
private

Definition at line 134 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

DataMixingSiStripWorker* edm::DataMixingModule::SiStripWorker_
private

Definition at line 133 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::vector<std::string> edm::DataMixingModule::Subdetectors_
private

Definition at line 149 of file DataMixingModule.h.

bool edm::DataMixingModule::useSiStripRawDigi_
private

Definition at line 135 of file DataMixingModule.h.

Referenced by addSignals(), DataMixingModule(), pileWorker(), put(), and ~DataMixingModule().

std::string edm::DataMixingModule::ZDCDigiCollectionDM_
private

Definition at line 90 of file DataMixingModule.h.

Referenced by DataMixingModule().

std::string edm::DataMixingModule::ZDCRecHitCollectionDM_
private

Definition at line 84 of file DataMixingModule.h.

Referenced by DataMixingModule().