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 Attributes
edm::PileUp Class Reference

#include <PileUp.h>

Public Member Functions

double averageNumber () const
 
void CalculatePileup (int MinBunch, int MaxBunch, std::vector< int > &PileupSelection, std::vector< float > &TrueNumInteractions)
 
bool doPileUp ()
 
void dropUnwantedBranches (std::vector< std::string > const &wantedBranches)
 
void endJob ()
 
const unsigned int & input () const
 
void input (unsigned int s)
 
 PileUp (ParameterSet const &pset, double averageNumber, TH1F *const histo, const bool playback)
 
template<typename T >
void playPileUp (const std::vector< edm::EventID > &ids, T eventOperator)
 
bool poisson () const
 
template<typename T >
void readPileUp (edm::EventID const &signal, std::vector< edm::EventID > &ids, T eventOperator, const int NumPU)
 
void reload (const edm::EventSetup &setup)
 
 ~PileUp ()
 

Private Attributes

double averageNumber_
 
bool fixed_
 
bool fixed_OOT_
 
TH1F * h1f
 
TH1F * histo_
 
bool histoDistribution_
 
TH1F * hprobFunction
 
VectorInputSource *const input_
 
unsigned int inputType_
 
int const intAverage_
 
int intFixed_ITPU_
 
int intFixed_OOT_
 
bool manage_OOT_
 
bool none_
 
bool playback_
 
bool poisson_
 
bool poisson_OOT_
 
CLHEP::RandPoisson * poissonDistr_OOT_
 
CLHEP::RandPoissonQ * poissonDistribution_
 
TFile * probFileHisto
 
bool probFunctionDistribution_
 
bool PU_Study_
 
bool samelumi_
 
int seed_
 
bool sequential_
 
std::string Study_type_
 
std::string type_
 

Detailed Description

Definition at line 31 of file PileUp.h.

Constructor & Destructor Documentation

edm::PileUp::PileUp ( ParameterSet const &  pset,
double  averageNumber,
TH1F *const  histo,
const bool  playback 
)
explicit

Definition at line 20 of file PileUp.cc.

References averageNumber_, edm::hlt::Exception, edm::ParameterSet::exists(), fixed_, fixed_OOT_, edm::RandomNumberGenerator::getEngine(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), histoDistribution_, intFixed_ITPU_, intFixed_OOT_, edm::Service< T >::isAvailable(), manage_OOT_, none_, poisson_, poisson_OOT_, poissonDistr_OOT_, poissonDistribution_, probFunctionDistribution_, PU_Study_, seed_, Study_type_, and type_.

20  :
21  type_(pset.getParameter<std::string>("type")),
23  intAverage_(static_cast<int>(averageNumber)),
24  histo_(histo),
25  histoDistribution_(type_ == "histo"),
26  probFunctionDistribution_(type_ == "probFunction"),
27  poisson_(type_ == "poisson"),
28  fixed_(type_ == "fixed"),
29  none_(type_ == "none"),
30  input_(VectorInputSourceFactory::get()->makeVectorInputSource(pset, InputSourceDescription()).release()),
34  sequential_(pset.getUntrackedParameter<bool>("sequential", false)),
35  samelumi_(pset.getUntrackedParameter<bool>("sameLumiBlock", false)),
36  seed_(0)
37  {
38  if (pset.exists("nbPileupEvents"))
39  seed_=pset.getParameter<edm::ParameterSet>("nbPileupEvents").getUntrackedParameter<int>("seed",0);
40 
41  bool DB=type_=="readDB";
42 
44  if (!rng.isAvailable()) {
45  throw cms::Exception("Configuration")
46  << "PileUp requires the RandomNumberGeneratorService\n"
47  "which is not present in the configuration file. You must add the service\n"
48  "in the configuration file or remove the modules that require it.";
49  }
50 
51  CLHEP::HepRandomEngine& engine = rng->getEngine();
52  poissonDistribution_ = new CLHEP::RandPoissonQ(engine, averageNumber_);
53 
54  // Get seed for the case when using user histogram or probability function
56  if(seed_ !=0) {
57  gRandom->SetSeed(seed_);
58  LogInfo("MixingModule") << " Change seed for " << type_ << " mode. The seed is set to " << seed_;
59  }
60  else {
61  gRandom->SetSeed(engine.getSeed());
62  }
63  }
64 
65 
67  throw cms::Exception("Illegal parameter value","PileUp::PileUp(ParameterSet const& pset)")
68  << "'type' parameter (a string) has a value of '" << type_ << "'.\n"
69  << "Legal values are 'poisson', 'fixed', or 'none'\n";
70  }
71 
72  if (!DB){
73  manage_OOT_ = pset.getUntrackedParameter<bool>("manage_OOT", false);
74 
75  // Check for string describing special processing. Add these here for individual cases
76 
77  PU_Study_ = false;
78  Study_type_ = "";
79 
80  Study_type_ = pset.getUntrackedParameter<std::string>("Special_Pileup_Studies", "");
81 
82  if(Study_type_ == "Fixed_ITPU_Vary_OOTPU") {
83 
84  PU_Study_ = true;
85  intFixed_ITPU_ = pset.getUntrackedParameter<int>("intFixed_ITPU", 0);
86 
87  }
88 
89  if(manage_OOT_) { // figure out what the parameters are
90 
91  // if (playback_) throw cms::Exception("Illegal parameter clash","PileUp::PileUp(ParameterSet const& pset)")
92  // << " manage_OOT option not allowed with playback ";
93 
94  std::string OOT_type = pset.getUntrackedParameter<std::string>("OOT_type");
95 
96  if(OOT_type == "Poisson" || OOT_type == "poisson") {
97  poisson_OOT_ = true;
98  poissonDistr_OOT_ = new CLHEP::RandPoisson(engine);
99  }
100  else if(OOT_type == "Fixed" || OOT_type == "fixed") {
101  fixed_OOT_ = true;
102  // read back the fixed number requested out-of-time
103  intFixed_OOT_ = pset.getUntrackedParameter<int>("intFixed_OOT", -1);
104  if(intFixed_OOT_ < 0) {
105  throw cms::Exception("Illegal parameter value","PileUp::PileUp(ParameterSet const& pset)")
106  << " Fixed out-of-time pileup requested, but no fixed value given ";
107  }
108  }
109  else {
110  throw cms::Exception("Illegal parameter value","PileUp::PileUp(ParameterSet const& pset)")
111  << "'OOT_type' parameter (a string) has a value of '" << OOT_type << "'.\n"
112  << "Legal values are 'poisson' or 'fixed'\n";
113  }
114  edm::LogInfo("MixingModule") <<" Out-of-time pileup will be generated with a " << OOT_type << " distribution. " ;
115  }
116  }
117 
118  }
bool manage_OOT_
Definition: PileUp.h:74
T getUntrackedParameter(std::string const &, T const &) const
TH1F * histo_
Definition: PileUp.h:68
bool fixed_
Definition: PileUp.h:72
VectorInputSource *const input_
Definition: PileUp.h:84
int const intAverage_
Definition: PileUp.h:67
bool probFunctionDistribution_
Definition: PileUp.h:70
std::string Study_type_
Definition: PileUp.h:79
bool histoDistribution_
Definition: PileUp.h:69
bool poisson_
Definition: PileUp.h:71
double averageNumber() const
Definition: PileUp.h:42
bool playback_
Definition: PileUp.h:94
bool samelumi_
Definition: PileUp.h:100
bool poisson_OOT_
Definition: PileUp.h:75
bool isAvailable() const
Definition: Service.h:47
int intFixed_ITPU_
Definition: PileUp.h:82
virtual CLHEP::HepRandomEngine & getEngine() const =0
Use this to get the random number engine, this is the only function most users should call...
bool PU_Study_
Definition: PileUp.h:78
bool fixed_OOT_
Definition: PileUp.h:76
CLHEP::RandPoisson * poissonDistr_OOT_
Definition: PileUp.h:86
static VectorInputSourceFactory * get()
std::string type_
Definition: PileUp.h:65
bool sequential_
Definition: PileUp.h:97
int seed_
Definition: PileUp.h:103
bool none_
Definition: PileUp.h:73
tuple playback
Definition: Playback_cff.py:20
int intFixed_OOT_
Definition: PileUp.h:81
CLHEP::RandPoissonQ * poissonDistribution_
Definition: PileUp.h:85
double averageNumber_
Definition: PileUp.h:66
edm::PileUp::~PileUp ( )

Definition at line 221 of file PileUp.cc.

References poissonDistr_OOT_, and poissonDistribution_.

221  {
222  delete poissonDistribution_;
223  delete poissonDistr_OOT_ ;
224  }
CLHEP::RandPoisson * poissonDistr_OOT_
Definition: PileUp.h:86
CLHEP::RandPoissonQ * poissonDistribution_
Definition: PileUp.h:85

Member Function Documentation

double edm::PileUp::averageNumber ( ) const
inline

Definition at line 42 of file PileUp.h.

References averageNumber_.

Referenced by reload().

42 {return averageNumber_;}
double averageNumber_
Definition: PileUp.h:66
void edm::PileUp::CalculatePileup ( int  MinBunch,
int  MaxBunch,
std::vector< int > &  PileupSelection,
std::vector< float > &  TrueNumInteractions 
)

Definition at line 226 of file PileUp.cc.

References averageNumber_, fixed_, histo_, histoDistribution_, intAverage_, intFixed_ITPU_, intFixed_OOT_, manage_OOT_, none_, poisson_, poisson_OOT_, poissonDistr_OOT_, poissonDistribution_, probFunctionDistribution_, PU_Study_, and Study_type_.

226  {
227 
228  // if we are managing the distribution of out-of-time pileup separately, select the distribution for bunch
229  // crossing zero first, save it for later.
230 
231  int nzero_crossing = -1;
232  double Fnzero_crossing = -1;
233 
234  if(manage_OOT_) {
235  if (none_){
236  nzero_crossing = 0;
237  }else if (poisson_){
238  nzero_crossing = poissonDistribution_->fire() ;
239  }else if (fixed_){
240  nzero_crossing = intAverage_ ;
242  double d = histo_->GetRandom();
243  //n = (int) floor(d + 0.5); // incorrect for bins with integer edges
244  Fnzero_crossing = d;
245  nzero_crossing = int(d);
246  }
247 
248  }
249 
250  for(int bx = MinBunch; bx < MaxBunch+1; ++bx) {
251 
252  if(manage_OOT_) {
253  if(bx==0 && !poisson_OOT_) {
254  PileupSelection.push_back(nzero_crossing) ;
255  TrueNumInteractions.push_back( nzero_crossing );
256  }
257  else{
258  if(poisson_OOT_) {
259  if(PU_Study_ && (Study_type_ == "Fixed_ITPU_Vary_OOTPU" ) && bx==0 ) {
260  PileupSelection.push_back(intFixed_ITPU_) ;
261  }
262  else{
263  PileupSelection.push_back(poissonDistr_OOT_->fire(Fnzero_crossing)) ;
264  }
265  TrueNumInteractions.push_back( Fnzero_crossing );
266  }
267  else {
268  PileupSelection.push_back(intFixed_OOT_) ;
269  TrueNumInteractions.push_back( intFixed_OOT_ );
270  }
271  }
272  }
273  else {
274  if (none_){
275  PileupSelection.push_back(0);
276  TrueNumInteractions.push_back( 0. );
277  }else if (poisson_){
278  PileupSelection.push_back(poissonDistribution_->fire());
279  TrueNumInteractions.push_back( averageNumber_ );
280  }else if (fixed_){
281  PileupSelection.push_back(intAverage_);
282  TrueNumInteractions.push_back( intAverage_ );
284  double d = histo_->GetRandom();
285  PileupSelection.push_back(int(d));
286  TrueNumInteractions.push_back( d );
287  }
288  }
289 
290  }
291  }
bool manage_OOT_
Definition: PileUp.h:74
TH1F * histo_
Definition: PileUp.h:68
bool fixed_
Definition: PileUp.h:72
int const intAverage_
Definition: PileUp.h:67
bool probFunctionDistribution_
Definition: PileUp.h:70
std::string Study_type_
Definition: PileUp.h:79
bool histoDistribution_
Definition: PileUp.h:69
bool poisson_
Definition: PileUp.h:71
bool poisson_OOT_
Definition: PileUp.h:75
int intFixed_ITPU_
Definition: PileUp.h:82
bool PU_Study_
Definition: PileUp.h:78
CLHEP::RandPoisson * poissonDistr_OOT_
Definition: PileUp.h:86
bool none_
Definition: PileUp.h:73
int intFixed_OOT_
Definition: PileUp.h:81
CLHEP::RandPoissonQ * poissonDistribution_
Definition: PileUp.h:85
double averageNumber_
Definition: PileUp.h:66
bool edm::PileUp::doPileUp ( )
inline

Definition at line 44 of file PileUp.h.

References averageNumber_, and none_.

44 {return none_ ? false : averageNumber_>0.;}
bool none_
Definition: PileUp.h:73
double averageNumber_
Definition: PileUp.h:66
void edm::PileUp::dropUnwantedBranches ( std::vector< std::string > const &  wantedBranches)
inline

Definition at line 45 of file PileUp.h.

References edm::VectorInputSource::dropUnwantedBranches(), and input_.

45  {
46  input_->dropUnwantedBranches(wantedBranches);
47  }
void dropUnwantedBranches(std::vector< std::string > const &wantedBranches)
VectorInputSource *const input_
Definition: PileUp.h:84
void edm::PileUp::endJob ( void  )
inline

Definition at line 48 of file PileUp.h.

References edm::InputSource::doEndJob(), and input_.

48  {
49  input_->doEndJob();
50  }
void doEndJob()
Called by framework at end of job.
Definition: InputSource.cc:235
VectorInputSource *const input_
Definition: PileUp.h:84
const unsigned int& edm::PileUp::input ( ) const
inline

Definition at line 60 of file PileUp.h.

References inputType_.

60 {return inputType_;}
unsigned int inputType_
Definition: PileUp.h:64
void edm::PileUp::input ( unsigned int  s)
inline

Definition at line 61 of file PileUp.h.

References inputType_, and alignCSCRings::s.

61 {inputType_=s;}
unsigned int inputType_
Definition: PileUp.h:64
template<typename T >
void edm::PileUp::playPileUp ( const std::vector< edm::EventID > &  ids,
T  eventOperator 
)

Definition at line 178 of file PileUp.h.

References input_, and edm::VectorInputSource::loopSpecified().

178  {
179  //TrueNumInteractions.push_back( ids.size() ) ;
180  input_->loopSpecified(ids,eventOperator);
181  }
VectorInputSource *const input_
Definition: PileUp.h:84
size_t loopSpecified(Collection const &events, T eventOperator)
bool edm::PileUp::poisson ( ) const
inline

Definition at line 43 of file PileUp.h.

References poisson_.

43 {return poisson_;}
bool poisson_
Definition: PileUp.h:71
template<typename T >
void edm::PileUp::readPileUp ( edm::EventID const &  signal,
std::vector< edm::EventID > &  ids,
T  eventOperator,
const int  pileEventCnt 
)

Generates events from a VectorInputSource. This function decides which method of VectorInputSource to call: sequential, random, or pre-specified. The ids are either ids to read or ids to store while reading. eventOperator has a type that matches the eventOperator in VectorInputSource::loopRandom.

The "signal" event is optionally used to restrict the secondary events used for pileup and mixing.

Definition at line 137 of file PileUp.h.

References input_, edm::VectorInputSource::loopRandom(), edm::VectorInputSource::loopRandomWithID(), edm::VectorInputSource::loopSequential(), edm::VectorInputSource::loopSequentialWithID(), fjr2json::lumi, edm::EventID::luminosityBlock(), SiPixelLorentzAngle_cfi::read, edm::EventID::run(), samelumi_, and sequential_.

137  {
138 
139  // One reason PileUp is responsible for recording event IDs is
140  // that it is the one that knows how many events will be read.
141  ids.reserve(pileEventCnt);
142  RecordEventID<T> recorder(ids,eventOperator);
143  int read;
144  if (samelumi_) {
145  const edm::LuminosityBlockID lumi(signal.run(), signal.luminosityBlock());
146  if (sequential_)
147  read = input_->loopSequentialWithID(lumi, pileEventCnt, recorder);
148  else
149  read = input_->loopRandomWithID(lumi, pileEventCnt, recorder);
150  } else {
151  if (sequential_) {
152  // boost::bind creates a functor from recordEventForPlayback
153  // so that recordEventForPlayback can insert itself before
154  // the original eventOperator.
155 
156  read = input_->loopSequential(pileEventCnt, recorder);
157  //boost::bind(&PileUp::recordEventForPlayback<T>,
158  // boost::ref(*this), _1, boost::ref(ids),
159  // boost::ref(eventOperator))
160  // );
161 
162  } else {
163  read = input_->loopRandom(pileEventCnt, recorder);
164  // boost::bind(&PileUp::recordEventForPlayback<T>,
165  // boost::ref(*this), _1, boost::ref(ids),
166  // boost::ref(eventOperator))
167  // );
168  }
169  }
170  if (read != pileEventCnt)
171  edm::LogWarning("PileUp") << "Could not read enough pileup events: only " << read << " out of " << pileEventCnt << " requested.";
172  }
size_t loopRandomWithID(LuminosityBlockID const &id, size_t number, T eventOperator)
tuple lumi
Definition: fjr2json.py:35
size_t loopRandom(size_t number, T eventOperator)
size_t loopSequential(size_t number, T eventOperator)
VectorInputSource *const input_
Definition: PileUp.h:84
bool samelumi_
Definition: PileUp.h:100
bool sequential_
Definition: PileUp.h:97
size_t loopSequentialWithID(LuminosityBlockID const &id, size_t number, T eventOperator)
void edm::PileUp::reload ( const edm::EventSetup setup)

Definition at line 120 of file PileUp.cc.

References MixingInputConfig::averageNumber(), averageNumber(), averageNumber_, HDQMDatabaseProducer::config, alignCSCRings::e, edm::hlt::Exception, fixed_, fixed_OOT_, MixingInputConfig::fixedOutOfTime(), edm::EventSetup::get(), edm::RandomNumberGenerator::getEngine(), histo_, histoDistribution_, i, inputType_, intFixed_OOT_, j, LogDebug, manage_OOT_, none_, MixingInputConfig::outOfTime(), poisson_, poisson_OOT_, poissonDistr_OOT_, poissonDistribution_, probFunctionDistribution_, MixingInputConfig::probFunctionVariable(), MixingInputConfig::probValue(), MixingInputConfig::type(), and type_.

120  {
121  //get the required parameters from DB.
123  setup.get<MixingRcd>().get(configM);
124 
125  const MixingInputConfig & config=configM->config(inputType_);
126 
127  //get the type
128  type_=config.type();
129  //set booleans
130  histoDistribution_=type_ == "histo";
131  probFunctionDistribution_=type_ == "probFunction";
132  poisson_=type_ == "poisson";
133  fixed_=type_ == "fixed";
134  none_=type_ == "none";
135 
136  if (histoDistribution_) edm::LogError("MisConfiguration")<<"type histo cannot be reloaded from DB, yet";
137 
138  if (fixed_){
140  }
141  else if (poisson_)
142  {
143  averageNumber_=config.averageNumber();
145  CLHEP::HepRandomEngine& engine = rng->getEngine();
146  delete poissonDistribution_;
147  poissonDistribution_ = new CLHEP::RandPoissonQ(engine, averageNumber_);
148  }
149  else if (probFunctionDistribution_)
150  {
151  //need to reload the histogram from DB
152  const std::vector<int> & dataProbFunctionVar = config.probFunctionVariable();
153  std::vector<double> dataProb = config.probValue();
154 
155  int varSize = (int) dataProbFunctionVar.size();
156  int probSize = (int) dataProb.size();
157 
158  if ((dataProbFunctionVar[0] != 0) || (dataProbFunctionVar[varSize - 1] != (varSize - 1)))
159  throw cms::Exception("BadProbFunction") << "Please, check the variables of the probability function! The first variable should be 0 and the difference between two variables should be 1." << std::endl;
160 
161  // Complete the vector containing the probability function data
162  // with the values "0"
163  if (probSize < varSize){
164  edm::LogWarning("MixingModule") << " The probability function data will be completed with " <<(varSize - probSize) <<" values 0.";
165 
166  for (int i=0; i<(varSize - probSize); i++) dataProb.push_back(0);
167 
168  probSize = dataProb.size();
169  edm::LogInfo("MixingModule") << " The number of the P(x) data set after adding the values 0 is " << probSize;
170  }
171 
172  // Create an histogram with the data from the probability function provided by the user
173  int xmin = (int) dataProbFunctionVar[0];
174  int xmax = (int) dataProbFunctionVar[varSize-1]+1; // need upper edge to be one beyond last value
175  int numBins = varSize;
176 
177  edm::LogInfo("MixingModule") << "An histogram will be created with " << numBins << " bins in the range ("<< xmin << "," << xmax << ")." << std::endl;
178 
179  if (histo_) delete histo_;
180  histo_ = new TH1F("h","Histo from the user's probability function",numBins,xmin,xmax);
181 
182  LogDebug("MixingModule") << "Filling histogram with the following data:" << std::endl;
183 
184  for (int j=0; j < numBins ; j++){
185  LogDebug("MixingModule") << " x = " << dataProbFunctionVar[j ]<< " P(x) = " << dataProb[j];
186  histo_->Fill(dataProbFunctionVar[j]+0.5,dataProb[j]); // assuming integer values for the bins, fill bin centers, not edges
187  }
188 
189  // Check if the histogram is normalized
190  if ( ((histo_->Integral() - 1) > 1.0e-02) && ((histo_->Integral() - 1) < -1.0e-02)){
191  throw cms::Exception("BadProbFunction") << "The probability function should be normalized!!! " << std::endl;
192  }
193  averageNumber_=histo_->GetMean();
194  }
195 
196  int oot=config.outOfTime();
197  manage_OOT_=false;
198  if (oot==1)
199  {
200  manage_OOT_=true;
201  poisson_OOT_ = false;
203  fixed_OOT_ = true;
204  intFixed_OOT_=config.fixedOutOfTime();
205  }
206  else if (oot==2)
207  {
208  manage_OOT_=true;
209  poisson_OOT_ = true;
210  fixed_OOT_ = false;
211  if (!poissonDistr_OOT_) {
212  //no need to trash the previous one if already there
214  CLHEP::HepRandomEngine& engine = rng->getEngine();
215  poissonDistr_OOT_ = new CLHEP::RandPoisson(engine);
216  }
217  }
218 
219 
220  }
#define LogDebug(id)
bool manage_OOT_
Definition: PileUp.h:74
int i
Definition: DBlmapReader.cc:9
unsigned int inputType_
Definition: PileUp.h:64
const int fixedOutOfTime() const
TH1F * histo_
Definition: PileUp.h:68
bool fixed_
Definition: PileUp.h:72
const std::vector< double > & probValue() const
const double averageNumber() const
bool probFunctionDistribution_
Definition: PileUp.h:70
bool histoDistribution_
Definition: PileUp.h:69
bool poisson_
Definition: PileUp.h:71
double averageNumber() const
Definition: PileUp.h:42
const int outOfTime() const
bool poisson_OOT_
Definition: PileUp.h:75
int j
Definition: DBlmapReader.cc:9
virtual CLHEP::HepRandomEngine & getEngine() const =0
Use this to get the random number engine, this is the only function most users should call...
bool fixed_OOT_
Definition: PileUp.h:76
CLHEP::RandPoisson * poissonDistr_OOT_
Definition: PileUp.h:86
std::string type_
Definition: PileUp.h:65
const T & get() const
Definition: EventSetup.h:55
const std::vector< int > & probFunctionVariable() const
bool none_
Definition: PileUp.h:73
int intFixed_OOT_
Definition: PileUp.h:81
std::string type() const
CLHEP::RandPoissonQ * poissonDistribution_
Definition: PileUp.h:85
double averageNumber_
Definition: PileUp.h:66

Member Data Documentation

double edm::PileUp::averageNumber_
private

Definition at line 66 of file PileUp.h.

Referenced by averageNumber(), CalculatePileup(), doPileUp(), PileUp(), and reload().

bool edm::PileUp::fixed_
private

Definition at line 72 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

bool edm::PileUp::fixed_OOT_
private

Definition at line 76 of file PileUp.h.

Referenced by PileUp(), and reload().

TH1F* edm::PileUp::h1f
private

Definition at line 89 of file PileUp.h.

TH1F* edm::PileUp::histo_
private

Definition at line 68 of file PileUp.h.

Referenced by CalculatePileup(), and reload().

bool edm::PileUp::histoDistribution_
private

Definition at line 69 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

TH1F* edm::PileUp::hprobFunction
private

Definition at line 90 of file PileUp.h.

VectorInputSource* const edm::PileUp::input_
private

Definition at line 84 of file PileUp.h.

Referenced by dropUnwantedBranches(), endJob(), playPileUp(), and readPileUp().

unsigned int edm::PileUp::inputType_
private

Definition at line 64 of file PileUp.h.

Referenced by input(), and reload().

int const edm::PileUp::intAverage_
private

Definition at line 67 of file PileUp.h.

Referenced by CalculatePileup().

int edm::PileUp::intFixed_ITPU_
private

Definition at line 82 of file PileUp.h.

Referenced by CalculatePileup(), and PileUp().

int edm::PileUp::intFixed_OOT_
private

Definition at line 81 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

bool edm::PileUp::manage_OOT_
private

Definition at line 74 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

bool edm::PileUp::none_
private

Definition at line 73 of file PileUp.h.

Referenced by CalculatePileup(), doPileUp(), PileUp(), and reload().

bool edm::PileUp::playback_
private

Definition at line 94 of file PileUp.h.

bool edm::PileUp::poisson_
private

Definition at line 71 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), poisson(), and reload().

bool edm::PileUp::poisson_OOT_
private

Definition at line 75 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

CLHEP::RandPoisson* edm::PileUp::poissonDistr_OOT_
private

Definition at line 86 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), reload(), and ~PileUp().

CLHEP::RandPoissonQ* edm::PileUp::poissonDistribution_
private

Definition at line 85 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), reload(), and ~PileUp().

TFile* edm::PileUp::probFileHisto
private

Definition at line 91 of file PileUp.h.

bool edm::PileUp::probFunctionDistribution_
private

Definition at line 70 of file PileUp.h.

Referenced by CalculatePileup(), PileUp(), and reload().

bool edm::PileUp::PU_Study_
private

Definition at line 78 of file PileUp.h.

Referenced by CalculatePileup(), and PileUp().

bool edm::PileUp::samelumi_
private

Definition at line 100 of file PileUp.h.

Referenced by readPileUp().

int edm::PileUp::seed_
private

Definition at line 103 of file PileUp.h.

Referenced by PileUp().

bool edm::PileUp::sequential_
private

Definition at line 97 of file PileUp.h.

Referenced by readPileUp().

std::string edm::PileUp::Study_type_
private

Definition at line 79 of file PileUp.h.

Referenced by CalculatePileup(), and PileUp().

std::string edm::PileUp::type_
private