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 | Static Private Attributes
HLTPrescaler Class Reference

#include <HLTPrescaler.h>

Inheritance diagram for HLTPrescaler:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual bool beginLuminosityBlock (edm::LuminosityBlock &lb, edm::EventSetup const &iSetup)
 
virtual void endJob ()
 
virtual bool filter (edm::Event &iEvent, edm::EventSetup const &iSetup)
 
 HLTPrescaler (edm::ParameterSet const &iConfig)
 
virtual ~HLTPrescaler ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- 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 Attributes

unsigned int acceptCount_
 accept counter More...
 
unsigned int eventCount_
 event counter More...
 
edm::InputTag gtDigi_
 GT payload, to extract the prescale column index. More...
 
bool newLumi_
 check for (re)initialization of the prescale More...
 
unsigned int offsetCount_
 initial offset More...
 
unsigned int offsetPhase_
 
unsigned int prescaleFactor_
 accept one in prescaleFactor_; 0 means never to accept an event More...
 
edm::service::PrescaleServiceprescaleService_
 prescale service More...
 
unsigned int prescaleSet_
 l1 prescale set index More...
 

Static Private Attributes

static const unsigned int prescaleSeed_ = 65537
 "seed" used to initialize the prescale counter More...
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

This class is an EDFilter implementing an HLT Prescaler module with associated book keeping.

Date:
2012/01/23 10:15:21
Revision:
1.23
Author
Martin Grunewald
Philipp Schieferdecker

Definition at line 24 of file HLTPrescaler.h.

Constructor & Destructor Documentation

HLTPrescaler::HLTPrescaler ( edm::ParameterSet const &  iConfig)
explicit

Definition at line 29 of file HLTPrescaler.cc.

References LogDebug, cppFunctionSkipper::operator, and prescaleService_.

29  :
30  prescaleSet_(0)
31  , prescaleFactor_(1)
32  , eventCount_(0)
33  , acceptCount_(0)
34  , offsetCount_(0)
35  , offsetPhase_(iConfig.existsAs<unsigned int>("offset") ? iConfig.getParameter<unsigned int>("offset") : 0)
36  , prescaleService_(0)
37  , newLumi_(true)
38  , gtDigi_ (iConfig.getParameter<edm::InputTag>("L1GtReadoutRecordTag"))
39 {
42  else
43  LogDebug("NoPrescaleService")<<"PrescaleService unavailable, prescaleFactor=1!";
44 }
#define LogDebug(id)
edm::InputTag gtDigi_
GT payload, to extract the prescale column index.
Definition: HLTPrescaler.h:71
edm::service::PrescaleService * prescaleService_
prescale service
Definition: HLTPrescaler.h:65
unsigned int acceptCount_
accept counter
Definition: HLTPrescaler.h:58
unsigned int eventCount_
event counter
Definition: HLTPrescaler.h:55
bool newLumi_
check for (re)initialization of the prescale
Definition: HLTPrescaler.h:68
unsigned int prescaleSet_
l1 prescale set index
Definition: HLTPrescaler.h:49
unsigned int offsetPhase_
Definition: HLTPrescaler.h:62
unsigned int offsetCount_
initial offset
Definition: HLTPrescaler.h:61
unsigned int prescaleFactor_
accept one in prescaleFactor_; 0 means never to accept an event
Definition: HLTPrescaler.h:52
HLTPrescaler::~HLTPrescaler ( )
virtual

Definition at line 47 of file HLTPrescaler.cc.

48 {
49 
50 }

Member Function Documentation

bool HLTPrescaler::beginLuminosityBlock ( edm::LuminosityBlock lb,
edm::EventSetup const &  iSetup 
)
virtual

Reimplemented from edm::EDFilter.

Definition at line 58 of file HLTPrescaler.cc.

References newLumi_.

60 {
61  newLumi_ = true;
62 
63  return true;
64 }
bool newLumi_
check for (re)initialization of the prescale
Definition: HLTPrescaler.h:68
void HLTPrescaler::endJob ( void  )
virtual

Reimplemented from edm::EDFilter.

Definition at line 121 of file HLTPrescaler.cc.

References acceptCount_, eventCount_, and max().

122 {
123  edm::LogInfo("PrescaleSummary")
124  << acceptCount_<< "/" <<eventCount_
125  << " ("
126  << 100.*acceptCount_/static_cast<double>(std::max(1u,eventCount_))
127  << "% of events accepted).";
128  return;
129 }
unsigned int acceptCount_
accept counter
Definition: HLTPrescaler.h:58
const T & max(const T &a, const T &b)
unsigned int eventCount_
event counter
Definition: HLTPrescaler.h:55
bool HLTPrescaler::filter ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
virtual

Implements edm::EDFilter.

Definition at line 68 of file HLTPrescaler.cc.

References acceptCount_, edm::EDFilter::currentContext(), edm::EventID::event(), eventCount_, edm::Event::getByLabel(), edm::Event::getLuminosityBlock(), edm::service::PrescaleService::getPrescale(), gtDigi_, patZpeak::handle, edm::LuminosityBlockBase::id(), edm::EventBase::id(), edm::HandleBase::isValid(), edm::LuminosityBlockID::luminosityBlock(), newLumi_, offsetCount_, offsetPhase_, edm::CurrentProcessingContext::pathName(), EgammaValidation_cff::pathName, prescaleFactor_, prescaleSeed_, prescaleService_, prescaleSet_, and query::result.

69 {
70  // during the first event of a LumiSection, read from the GT the prescale index for this
71  // LumiSection and get the corresponding prescale factor from the PrescaleService
72  if (newLumi_) {
73  newLumi_ = false;
74 
75  bool needsInit (eventCount_==0);
76 
77  if (prescaleService_) {
78  std::string const & pathName = * currentContext()->pathName();
79  const unsigned int oldSet(prescaleSet_);
80  const unsigned int oldPrescale(prescaleFactor_);
81 
83  iEvent.getByLabel(gtDigi_ , handle);
84  if (handle.isValid()) {
85  prescaleSet_ = handle->gtFdlWord().gtPrescaleFactorIndexAlgo();
86  // gtPrescaleFactorIndexTech() is also available
87  // by construction, they should always return the same index
89  } else {
90  edm::LogWarning("HLT") << "Cannot read prescale column index from GT data: using default as defined by configuration or DAQ";
92  }
93 
94  if (prescaleSet_ != oldSet) {
95  edm::LogInfo("ChangedPrescale")
96  << "lumiBlockNb = " << iEvent.getLuminosityBlock().id().luminosityBlock()
97  << ", set = " << prescaleSet_ << " [" << oldSet <<"]"
98  << ", path = "<< pathName
99  << ": " << prescaleFactor_ << " [" <<oldPrescale<<"]";
100  // reset the prescale counter
101  needsInit = true;
102  }
103  }
104 
105  if (needsInit && (prescaleFactor_ != 0)) {
106  // initialize the prescale counter to the first event number multiplied by a big "seed"
108  }
109  }
110 
111  const bool result ( (prescaleFactor_ == 0) ?
112  false : ((eventCount_ + offsetCount_) % prescaleFactor_ == 0) );
113 
114  ++eventCount_;
115  if (result) ++acceptCount_;
116  return result;
117 }
LuminosityBlockID id() const
EventNumber_t event() const
Definition: EventID.h:44
edm::InputTag gtDigi_
GT payload, to extract the prescale column index.
Definition: HLTPrescaler.h:71
edm::service::PrescaleService * prescaleService_
prescale service
Definition: HLTPrescaler.h:65
static const unsigned int prescaleSeed_
&quot;seed&quot; used to initialize the prescale counter
Definition: HLTPrescaler.h:75
unsigned int acceptCount_
accept counter
Definition: HLTPrescaler.h:58
tuple result
Definition: query.py:137
unsigned int eventCount_
event counter
Definition: HLTPrescaler.h:55
bool newLumi_
check for (re)initialization of the prescale
Definition: HLTPrescaler.h:68
tuple handle
Definition: patZpeak.py:22
unsigned int prescaleSet_
l1 prescale set index
Definition: HLTPrescaler.h:49
LuminosityBlock const & getLuminosityBlock() const
Definition: Event.h:59
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
unsigned long long uint64_t
Definition: Time.h:15
LuminosityBlockNumber_t luminosityBlock() const
unsigned int offsetPhase_
Definition: HLTPrescaler.h:62
edm::EventID id() const
Definition: EventBase.h:56
unsigned int offsetCount_
initial offset
Definition: HLTPrescaler.h:61
std::string const * pathName() const
CurrentProcessingContext const * currentContext() const
Definition: EDFilter.cc:115
unsigned int prescaleFactor_
accept one in prescaleFactor_; 0 means never to accept an event
Definition: HLTPrescaler.h:52
unsigned int getPrescale(unsigned int lvl1Index, std::string const &prescaledPath)

Member Data Documentation

unsigned int HLTPrescaler::acceptCount_
private

accept counter

Definition at line 58 of file HLTPrescaler.h.

Referenced by endJob(), and filter().

unsigned int HLTPrescaler::eventCount_
private

event counter

Definition at line 55 of file HLTPrescaler.h.

Referenced by endJob(), and filter().

edm::InputTag HLTPrescaler::gtDigi_
private

GT payload, to extract the prescale column index.

Definition at line 71 of file HLTPrescaler.h.

Referenced by filter().

bool HLTPrescaler::newLumi_
private

check for (re)initialization of the prescale

Definition at line 68 of file HLTPrescaler.h.

Referenced by beginLuminosityBlock(), and filter().

unsigned int HLTPrescaler::offsetCount_
private

initial offset

Definition at line 61 of file HLTPrescaler.h.

Referenced by filter().

unsigned int HLTPrescaler::offsetPhase_
private

Definition at line 62 of file HLTPrescaler.h.

Referenced by filter().

unsigned int HLTPrescaler::prescaleFactor_
private

accept one in prescaleFactor_; 0 means never to accept an event

Definition at line 52 of file HLTPrescaler.h.

Referenced by filter().

const unsigned int HLTPrescaler::prescaleSeed_ = 65537
staticprivate

"seed" used to initialize the prescale counter

Definition at line 75 of file HLTPrescaler.h.

Referenced by filter().

edm::service::PrescaleService* HLTPrescaler::prescaleService_
private

prescale service

Definition at line 65 of file HLTPrescaler.h.

Referenced by filter(), and HLTPrescaler().

unsigned int HLTPrescaler::prescaleSet_
private

l1 prescale set index

Definition at line 49 of file HLTPrescaler.h.

Referenced by filter().