CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
HepMCFilterDriver Class Reference

#include <HepMCFilterDriver.h>

Public Member Functions

bool filter (const HepMC::GenEvent *evt, double weight=1.)
 
 HepMCFilterDriver (const edm::ParameterSet &)
 
unsigned int numEventsPassNeg () const
 
unsigned int numEventsPassPos () const
 
unsigned int numEventsTotalNeg () const
 
unsigned int numEventsTotalPos () const
 
void resetStatistics ()
 
void statistics () const
 
double sumpass_w () const
 
double sumpass_w2 () const
 
double sumtotal_w () const
 
double sumtotal_w2 () const
 
 ~HepMCFilterDriver ()
 

Private Attributes

BaseHepMCFilterfilter_
 
unsigned int numEventsPassNeg_
 
unsigned int numEventsPassPos_
 
unsigned int numEventsTotalNeg_
 
unsigned int numEventsTotalPos_
 
double sumpass_w2_
 
double sumpass_w_
 
double sumtotal_w2_
 
double sumtotal_w_
 

Detailed Description

Definition at line 18 of file HepMCFilterDriver.h.

Constructor & Destructor Documentation

HepMCFilterDriver::HepMCFilterDriver ( const edm::ParameterSet pset)

Definition at line 10 of file HepMCFilterDriver.cc.

References edm::errors::Configuration, Exception, filter_, diMuonOutputModule_cfi::filterName, EmbeddingPythia8Hadronizer_cfi::filterParameters, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

10  :
11  filter_(nullptr),
16  sumpass_w_(0.),
17  sumpass_w2_(0.),
18  sumtotal_w_(0.),
19  sumtotal_w2_(0.)
20 {
21 
22  std::string filterName = pset.getParameter<std::string>("filterName");
24 
25  if (filterName=="GenericDauHepMCFilter") {
26  filter_ = new GenericDauHepMCFilter(filterParameters);
27  }
28  else if (filterName=="PartonShowerBsHepMCFilter") {
29  filter_ = new PartonShowerBsHepMCFilter(filterParameters);
30  }
31  else if (filterName=="PartonShowerCsHepMCFilter") {
32  filter_ = new PartonShowerCsHepMCFilter(filterParameters);
33  }
34 
35  else if (filterName=="EmbeddingHepMCFilter") {
36  filter_ = new EmbeddingHepMCFilter(filterParameters);
37  }
38  else if (filterName=="PythiaHepMCFilterGammaGamma") {
39  filter_ = new PythiaHepMCFilterGammaGamma(filterParameters);
40  }
41  else {
42  throw edm::Exception(edm::errors::Configuration,"HepMCFilterDriver") << "Invalid HepMCFilter name:" << filterName;
43  }
44 
45 }
T getParameter(std::string const &) const
unsigned int numEventsPassPos_
unsigned int numEventsTotalPos_
unsigned int numEventsPassNeg_
BaseHepMCFilter * filter_
unsigned int numEventsTotalNeg_
HepMCFilterDriver::~HepMCFilterDriver ( )

Definition at line 47 of file HepMCFilterDriver.cc.

References filter_.

48 {
49  if (filter_) delete filter_;
50 
51 }
BaseHepMCFilter * filter_

Member Function Documentation

bool HepMCFilterDriver::filter ( const HepMC::GenEvent evt,
double  weight = 1. 
)

Definition at line 53 of file HepMCFilterDriver.cc.

References cms::dd::accepted(), BaseHepMCFilter::filter(), filter_, numEventsPassNeg_, numEventsPassPos_, numEventsTotalNeg_, numEventsTotalPos_, sumpass_w2_, sumpass_w_, sumtotal_w2_, sumtotal_w_, and mps_merge::weight.

Referenced by edm::HadronizerFilter< HAD, DEC >::filter().

54 {
55  if(weight>0)
57  else
59 
62 
63 
64  bool accepted = filter_->filter(evt);
65 
66  if (accepted) {
67 
68  if(weight>0)
70  else
72  sumpass_w_ += weight;
73  sumpass_w2_ += weight*weight;
74 
75  }
76 
77  return accepted;
78 }
unsigned int numEventsPassPos_
unsigned int numEventsTotalPos_
Definition: weight.py:1
unsigned int numEventsPassNeg_
BaseHepMCFilter * filter_
bool accepted(std::vector< std::string_view > const &, std::string_view)
unsigned int numEventsTotalNeg_
virtual bool filter(const HepMC::GenEvent *evt)=0
unsigned int HepMCFilterDriver::numEventsPassNeg ( ) const
inline

Definition at line 28 of file HepMCFilterDriver.h.

References numEventsPassNeg_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce().

28 {return numEventsPassNeg_;}
unsigned int numEventsPassNeg_
unsigned int HepMCFilterDriver::numEventsPassPos ( ) const
inline

Definition at line 27 of file HepMCFilterDriver.h.

References numEventsPassPos_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce().

27 {return numEventsPassPos_;}
unsigned int numEventsPassPos_
unsigned int HepMCFilterDriver::numEventsTotalNeg ( ) const
inline
unsigned int HepMCFilterDriver::numEventsTotalPos ( ) const
inline
void HepMCFilterDriver::resetStatistics ( )
void HepMCFilterDriver::statistics ( ) const

Definition at line 80 of file HepMCFilterDriver.cc.

References numEventsPassNeg_, numEventsPassPos_, numEventsTotalNeg_, numEventsTotalPos_, sumpass_w_, and sumtotal_w_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endRunProduce().

81 {
82 
83  unsigned int ntried_ = numEventsTotalPos_ + numEventsTotalNeg_;
84  unsigned int naccepted_ = numEventsPassPos_ + numEventsPassNeg_;
85  printf("ntried = %i, naccepted = %i, efficiency = %5f\n",ntried_,naccepted_,(double)naccepted_/(double)ntried_);
86  printf("weighttried = %5f, weightaccepted = %5f, efficiency = %5f\n",sumtotal_w_,sumpass_w_,sumpass_w_/sumtotal_w_);
87 
88 }
unsigned int numEventsPassPos_
unsigned int numEventsTotalPos_
unsigned int numEventsPassNeg_
unsigned int numEventsTotalNeg_
double HepMCFilterDriver::sumpass_w ( ) const
inline

Definition at line 31 of file HepMCFilterDriver.h.

References sumpass_w_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce().

31 {return sumpass_w_;}
double HepMCFilterDriver::sumpass_w2 ( ) const
inline

Definition at line 32 of file HepMCFilterDriver.h.

References sumpass_w2_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce().

32 {return sumpass_w2_;}
double HepMCFilterDriver::sumtotal_w ( ) const
inline

Definition at line 33 of file HepMCFilterDriver.h.

References sumtotal_w_.

Referenced by edm::HadronizerFilter< HAD, DEC >::endLuminosityBlockProduce().

33 {return sumtotal_w_;}
double HepMCFilterDriver::sumtotal_w2 ( ) const
inline

Member Data Documentation

BaseHepMCFilter* HepMCFilterDriver::filter_
private

Definition at line 37 of file HepMCFilterDriver.h.

Referenced by filter(), HepMCFilterDriver(), and ~HepMCFilterDriver().

unsigned int HepMCFilterDriver::numEventsPassNeg_
private

Definition at line 39 of file HepMCFilterDriver.h.

Referenced by filter(), numEventsPassNeg(), resetStatistics(), and statistics().

unsigned int HepMCFilterDriver::numEventsPassPos_
private

Definition at line 38 of file HepMCFilterDriver.h.

Referenced by filter(), numEventsPassPos(), resetStatistics(), and statistics().

unsigned int HepMCFilterDriver::numEventsTotalNeg_
private

Definition at line 41 of file HepMCFilterDriver.h.

Referenced by filter(), numEventsTotalNeg(), resetStatistics(), and statistics().

unsigned int HepMCFilterDriver::numEventsTotalPos_
private

Definition at line 40 of file HepMCFilterDriver.h.

Referenced by filter(), numEventsTotalPos(), resetStatistics(), and statistics().

double HepMCFilterDriver::sumpass_w2_
private

Definition at line 43 of file HepMCFilterDriver.h.

Referenced by filter(), resetStatistics(), and sumpass_w2().

double HepMCFilterDriver::sumpass_w_
private

Definition at line 42 of file HepMCFilterDriver.h.

Referenced by filter(), resetStatistics(), statistics(), and sumpass_w().

double HepMCFilterDriver::sumtotal_w2_
private

Definition at line 45 of file HepMCFilterDriver.h.

Referenced by filter(), resetStatistics(), and sumtotal_w2().

double HepMCFilterDriver::sumtotal_w_
private

Definition at line 44 of file HepMCFilterDriver.h.

Referenced by filter(), resetStatistics(), statistics(), and sumtotal_w().