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::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 GenFilterEfficiencyProducer (const edm::ParameterSet &)
 
 ~GenFilterEfficiencyProducer ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks >
 EDProducer ()=default
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void beginLuminosityBlock (edm::LuminosityBlock const &, const edm::EventSetup &) override
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, const edm::EventSetup &) override
 
virtual void endLuminosityBlockProduce (edm::LuminosityBlock &, const edm::EventSetup &) override
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::string filterPath
 
edm::EDGetTokenT
< GenEventInfoProduct
genEventInfoToken_
 
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_
 
edm::EDGetTokenT
< edm::TriggerResults
triggerResultsToken_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 36 of file GenFilterEfficiencyProducer.h.

Constructor & Destructor Documentation

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

Definition at line 4 of file GenFilterEfficiencyProducer.cc.

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

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

Definition at line 40 of file GenFilterEfficiencyProducer.cc.

41 {
42 
43 }

Member Function Documentation

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

Definition at line 116 of file GenFilterEfficiencyProducer.cc.

116  {
117 }
void GenFilterEfficiencyProducer::endLuminosityBlockProduce ( edm::LuminosityBlock iLumi,
const edm::EventSetup  
)
overrideprivatevirtual

Definition at line 120 of file GenFilterEfficiencyProducer.cc.

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

120  {
121 
122  std::auto_ptr<GenFilterInfo> thisProduct(new GenFilterInfo(
127  sumpass_w_,
128  sumpass_w2_,
129  sumtotal_w_,
131  ));
132  iLumi.put(thisProduct);
133 }
void put(std::auto_ptr< PROD > product)
Put a new product.
void GenFilterEfficiencyProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDProducerBase.

Definition at line 52 of file GenFilterEfficiencyProducer.cc.

References genEventInfoToken_, edm::Event::getByToken(), edm::HandleBase::isValid(), numEventsPassNeg_, numEventsPassPos_, numEventsTotalNeg_, numEventsTotalPos_, pathIndex, sumpass_w2_, sumpass_w_, sumtotal_w2_, sumtotal_w_, triggerResultsToken_, and puppiForMET_cff::weight.

53 {
54 
56  iEvent.getByToken(triggerResultsToken_,trigR);
58  iEvent.getByToken(genEventInfoToken_,genEventScale);
59  if (!genEventScale.isValid()) return;
60  double weight = genEventScale->weight();
61 
62  unsigned int nSize = (*trigR).size();
63  // std::cout << "Number of paths in TriggerResults = " << nSize << std::endl;
64  if ( nSize >= pathIndex ) {
65 
66  if (!trigR->wasrun(pathIndex))return;
67  if ( trigR->accept(pathIndex) ) {
68  sumpass_w_ += weight;
69  sumpass_w2_+= weight*weight;
70 
72  sumtotal_w2_+= weight*weight;
73 
74  if(weight > 0)
75  {
78  }
79  else
80  {
83  }
84 
85  }
86  else // if fail the filter
87  {
89  sumtotal_w2_+= weight*weight;
90 
91  if(weight > 0)
93  else
95  }
96  // std::cout << "Total events = " << numEventsTotal << " passed = " << numEventsPassed << std::endl;
97 
98  }
99 
100 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
edm::EDGetTokenT< GenEventInfoProduct > genEventInfoToken_
bool isValid() const
Definition: HandleBase.h:75
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken_

Member Data Documentation

std::string GenFilterEfficiencyProducer::filterPath
private

Definition at line 55 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().

edm::EDGetTokenT<GenEventInfoProduct> GenFilterEfficiencyProducer::genEventInfoToken_
private

Definition at line 53 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

unsigned int GenFilterEfficiencyProducer::numEventsPassNeg_
private
unsigned int GenFilterEfficiencyProducer::numEventsPassPos_
private
unsigned int GenFilterEfficiencyProducer::numEventsTotalNeg_
private
unsigned int GenFilterEfficiencyProducer::numEventsTotalPos_
private
unsigned int GenFilterEfficiencyProducer::pathIndex
private

Definition at line 60 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

double GenFilterEfficiencyProducer::sumpass_w2_
private
double GenFilterEfficiencyProducer::sumpass_w_
private
double GenFilterEfficiencyProducer::sumtotal_w2_
private
double GenFilterEfficiencyProducer::sumtotal_w_
private
std::string GenFilterEfficiencyProducer::thisProcess
private

Definition at line 59 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().

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

Definition at line 57 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().

edm::EDGetTokenT<edm::TriggerResults> GenFilterEfficiencyProducer::triggerResultsToken_
private

Definition at line 52 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().