CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

GenFilterEfficiencyProducer Class Reference

#include <GenFilterEfficiencyProducer.h>

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

List of all members.

Public Member Functions

 GenFilterEfficiencyProducer (const edm::ParameterSet &)
 ~GenFilterEfficiencyProducer ()

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
int numEventsPassed
int numEventsTotal
unsigned int pathIndex
std::string thisProcess
edm::service::TriggerNamesServicetns_

Detailed Description

Definition at line 35 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, cmsCodeRules::cppFunctionSkipper::operator, pathIndex, thisProcess, and tns_.

                                                                                       :
  filterPath(iConfig.getParameter<std::string>("filterPath")),
  tns_(),
  thisProcess(),pathIndex(100000),
  numEventsTotal(0),numEventsPassed(0)
{
   //now do what ever initialization is needed
  if (edm::Service<edm::service::TriggerNamesService>().isAvailable()) {
    // get tns pointer
    tns_ = edm::Service<edm::service::TriggerNamesService>().operator->();
    if (tns_!=0) {
      thisProcess = tns_->getProcessName();
      std::vector<std::string> theNames = tns_->getTrigPaths();
      for ( unsigned int i = 0; i < theNames.size(); i++ ) {
        if ( theNames[i] == filterPath ) { pathIndex = i; continue; }
      }
    }
    else
      edm::LogError("ServiceNotAvailable") << "TriggerNamesServive not available, no filter information stored";
  }

  produces<GenFilterInfo, edm::InLumi>(); 

}
GenFilterEfficiencyProducer::~GenFilterEfficiencyProducer ( )

Definition at line 31 of file GenFilterEfficiencyProducer.cc.

{

} 

Member Function Documentation

void GenFilterEfficiencyProducer::beginLuminosityBlock ( edm::LuminosityBlock iLumi,
const edm::EventSetup  
) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 62 of file GenFilterEfficiencyProducer.cc.

References numEventsPassed, and numEventsTotal.

void GenFilterEfficiencyProducer::endLuminosityBlock ( edm::LuminosityBlock iLumi,
const edm::EventSetup  
) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 70 of file GenFilterEfficiencyProducer.cc.

References numEventsPassed, numEventsTotal, and edm::LuminosityBlock::put().

                                                                                                {

  std::auto_ptr<GenFilterInfo> thisProduct(new GenFilterInfo(numEventsTotal,numEventsPassed));
  iLumi.put(thisProduct);
  
}
void GenFilterEfficiencyProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDProducer.

Definition at line 43 of file GenFilterEfficiencyProducer.cc.

References edm::Event::getByLabel(), numEventsPassed, numEventsTotal, pathIndex, and thisProcess.

{

  edm::InputTag theTrig("TriggerResults","",thisProcess);
  edm::Handle<edm::TriggerResults> trigR;
  iEvent.getByLabel(theTrig,trigR); 
 
  unsigned int nSize = (*trigR).size();
  // std::cout << "Number of paths in TriggerResults = " << nSize  << std::endl;
  if ( nSize >= pathIndex ) {
    if ( trigR->wasrun(pathIndex) ) { numEventsTotal++; }
    if ( trigR->accept(pathIndex) ) { numEventsPassed++; }
    //    std::cout << "Total events = " << numEventsTotal << " passed = " << numEventsPassed << std::endl;
  }

}

Member Data Documentation

Definition at line 49 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().

Definition at line 57 of file GenFilterEfficiencyProducer.h.

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

Definition at line 56 of file GenFilterEfficiencyProducer.h.

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

Definition at line 54 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

Definition at line 53 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer(), and produce().

Definition at line 51 of file GenFilterEfficiencyProducer.h.

Referenced by GenFilterEfficiencyProducer().