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
GenFilterEfficiencyProducer Class Reference

#include <GenFilterEfficiencyProducer.h>

Inheritance diagram for GenFilterEfficiencyProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 GenFilterEfficiencyProducer (const edm::ParameterSet &)
 
 ~GenFilterEfficiencyProducer ()
 
- 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 beginLuminosityBlock (edm::LuminosityBlock &, const edm::EventSetup &)
 
virtual void endLuminosityBlock (edm::LuminosityBlock &, const edm::EventSetup &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 

Private Attributes

std::string filterPath
 
unsigned int numEventsPassNeg_
 
unsigned int numEventsPassPos_
 
unsigned int numEventsTotalNeg_
 
unsigned int numEventsTotalPos_
 
unsigned int pathIndex
 
double sumpass_w2_
 
double sumpass_w_
 
double sumtotal_w2_
 
double sumtotal_w_
 
std::string thisProcess
 
edm::service::TriggerNamesServicetns_
 

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::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 36 of file GenFilterEfficiencyProducer.h.

Constructor & Destructor Documentation

GenFilterEfficiencyProducer::GenFilterEfficiencyProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 5 of file GenFilterEfficiencyProducer.cc.

References filterPath, edm::service::TriggerNamesService::getProcessName(), edm::service::TriggerNamesService::getTrigPaths(), i, cppFunctionSkipper::operator, pathIndex, thisProcess, and tns_.

5  :
6  filterPath(iConfig.getParameter<std::string>("filterPath")),
7  tns_(),
8  thisProcess(),pathIndex(100000),
13  sumpass_w_(0.),
14  sumpass_w2_(0.),
15  sumtotal_w_(0.),
16  sumtotal_w2_(0.)
17 {
18  //now do what ever initialization is needed
20  // get tns pointer
22  if (tns_!=0) {
24  std::vector<std::string> theNames = tns_->getTrigPaths();
25  for ( unsigned int i = 0; i < theNames.size(); i++ ) {
26  if ( theNames[i] == filterPath ) { pathIndex = i; continue; }
27  }
28  }
29  else
30  edm::LogError("ServiceNotAvailable") << "TriggerNamesServive not available, no filter information stored";
31  }
32 
33  produces<GenFilterInfo, edm::InLumi>();
34 
35 }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
std::string const & getProcessName() const
Strings const & getTrigPaths() const
edm::service::TriggerNamesService * tns_
GenFilterEfficiencyProducer::~GenFilterEfficiencyProducer ( )

Definition at line 38 of file GenFilterEfficiencyProducer.cc.

39 {
40 
41 }

Member Function Documentation

void GenFilterEfficiencyProducer::beginLuminosityBlock ( edm::LuminosityBlock iLumi,
const edm::EventSetup  
)
privatevirtual
void GenFilterEfficiencyProducer::endLuminosityBlock ( edm::LuminosityBlock iLumi,
const edm::EventSetup  
)
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 115 of file GenFilterEfficiencyProducer.cc.

References numEventsPassNeg_, numEventsPassPos_, numEventsTotalNeg_, numEventsTotalPos_, edm::LuminosityBlock::put(), sumpass_w2_, sumpass_w_, sumtotal_w2_, and sumtotal_w_.

115  {
116 
117  std::auto_ptr<GenFilterInfo> thisProduct(new GenFilterInfo(
122  sumpass_w_,
123  sumpass_w2_,
124  sumtotal_w_,
126  ));
127  iLumi.put(thisProduct);
128 
129 }
void put(std::auto_ptr< PROD > product)
Put a new product.
void GenFilterEfficiencyProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 50 of file GenFilterEfficiencyProducer.cc.

References edm::Event::getByLabel(), numEventsPassNeg_, numEventsPassPos_, numEventsTotalNeg_, numEventsTotalPos_, pathIndex, sumpass_w2_, sumpass_w_, sumtotal_w2_, sumtotal_w_, thisProcess, and CommonMethods::weight().

51 {
52 
53  edm::InputTag theTrig("TriggerResults","",thisProcess);
55  iEvent.getByLabel(theTrig,trigR);
57  if (!iEvent.getByLabel("generator", genEventScale))return;
58  double weight = genEventScale->weight();
59 
60  unsigned int nSize = (*trigR).size();
61  // std::cout << "Number of paths in TriggerResults = " << nSize << std::endl;
62  if ( nSize >= pathIndex ) {
63 
64  if (!trigR->wasrun(pathIndex))return;
65  if ( trigR->accept(pathIndex) ) {
66  sumpass_w_ += weight;
67  sumpass_w2_+= weight*weight;
68 
70  sumtotal_w2_+= weight*weight;
71 
72  if(weight > 0)
73  {
76  }
77  else
78  {
81  }
82 
83  }
84  else // if fail the filter
85  {
87  sumtotal_w2_+= weight*weight;
88 
89  if(weight > 0)
91  else
93  }
94  // std::cout << "Total events = " << numEventsTotal << " passed = " << numEventsPassed << std::endl;
95  }
96 
97 }
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356

Member Data Documentation

std::string GenFilterEfficiencyProducer::filterPath
private

Definition at line 50 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().

unsigned int GenFilterEfficiencyProducer::numEventsPassNeg_
private

Definition at line 58 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

unsigned int GenFilterEfficiencyProducer::numEventsPassPos_
private

Definition at line 57 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

unsigned int GenFilterEfficiencyProducer::numEventsTotalNeg_
private

Definition at line 60 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

unsigned int GenFilterEfficiencyProducer::numEventsTotalPos_
private

Definition at line 59 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

unsigned int GenFilterEfficiencyProducer::pathIndex
private

Definition at line 55 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

double GenFilterEfficiencyProducer::sumpass_w2_
private

Definition at line 62 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

double GenFilterEfficiencyProducer::sumpass_w_
private

Definition at line 61 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

double GenFilterEfficiencyProducer::sumtotal_w2_
private

Definition at line 64 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

double GenFilterEfficiencyProducer::sumtotal_w_
private

Definition at line 63 of file GenFilterEfficiencyProducer.h.

Referenced by beginLuminosityBlock(), endLuminosityBlock(), and produce().

std::string GenFilterEfficiencyProducer::thisProcess
private

Definition at line 54 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

edm::service::TriggerNamesService* GenFilterEfficiencyProducer::tns_
private

Definition at line 52 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().