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

#include <HLTPrescaleRecorder.h>

Inheritance diagram for HLTPrescaleRecorder:
edm::one::EDProducer< edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginLuminosityBlock (edm::LuminosityBlock const &iLumi, const edm::EventSetup &iSetup) overridefinal
 
virtual void beginRun (edm::Run const &iRun, const edm::EventSetup &iSetup) overridefinal
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &iLumi, const edm::EventSetup &iSetup) overridefinal
 
virtual void endLuminosityBlockProduce (edm::LuminosityBlock &iLumi, const edm::EventSetup &iSetup) overridefinal
 
virtual void endRun (edm::Run const &iRun, const edm::EventSetup &iSetup) overridefinal
 
virtual void endRunProduce (edm::Run &iRun, const edm::EventSetup &iSetup) overridefinal
 
 HLTPrescaleRecorder (const edm::ParameterSet &)
 
virtual void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) overridefinal
 
virtual ~HLTPrescaleRecorder ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks >
 EDProducer ()=default
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
 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
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

bool condDB_
 
cond::service::PoolDBOutputServicedb_
 Pool DB service. More...
 
bool event_
 
trigger::HLTPrescaleTable hlt_
 payload HLT object More...
 
std::string hltDBTag_
 Tag of DB entry (HLT Key Name) (src=4) More...
 
edm::ESHandle
< trigger::HLTPrescaleTableCond
hltESHandle_
 
edm::Handle
< trigger::HLTPrescaleTable
hltHandle_
 Handle and ESHandle for existing HLT object. More...
 
edm::InputTag hltInputTag_
 InputTag of HLTPrescaleTable product (src=1,2,3) More...
 
bool lumi_
 
edm::service::PrescaleServiceps_
 Prescale service. More...
 
std::string psetName_
 
bool run_
 (Multiple) Destinations More...
 
int src_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
typedef WorkerT< EDProducerBaseWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- 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::one::EDProducerBase
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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

This class is an EDProducer making the HLTPrescaleTable object

Date:
2013/05/17 20:33:54
Revision:
1.6
Author
Martin Grunewald

See header file for documentation

Date:
2013/05/17 20:33:55
Revision:
1.8
Author
Martin Grunewald

Definition at line 41 of file HLTPrescaleRecorder.h.

Constructor & Destructor Documentation

HLTPrescaleRecorder::HLTPrescaleRecorder ( const edm::ParameterSet ps)
explicit

Definition at line 37 of file HLTPrescaleRecorder.cc.

References condDB_, db_, edm::InputTag::encode(), event_, hltDBTag_, hltInputTag_, lumi_, cppFunctionSkipper::operator, ps_, psetName_, run_, and src_.

37  :
38  src_(ps.getParameter<int>("src")),
39  run_(ps.getParameter<bool>("run")),
40  lumi_(ps.getParameter<bool>("lumi")),
41  event_(ps.getParameter<bool>("event")),
42  condDB_(ps.getParameter<bool>("condDB")),
43  psetName_(ps.getParameter<string>("psetName")),
44  hltInputTag_(ps.getParameter<InputTag>("hltInputTag")),
45  hltDBTag_(ps.getParameter<string>("hltDBTag")),
46  ps_(0),
47  db_(0),
48  hltHandle_(),
49  hltESHandle_(),
50  hlt_()
51 {
52 
53  LogInfo("HLTPrescaleRecorder")
54  << "src:run-lumi-event-condDB+psetName+tags: "
55  << src_ << ":" << run_ << "-" << lumi_ << "-" << event_ << "-"
56  << condDB_ << "+" << psetName_ << "+"
57  << hltInputTag_.encode() << "+" << hltDBTag_;
58 
61  } else if (src_==0) {
62  LogError("HLTPrescaleRecorder")<<"PrescaleService requested as source but unavailable!";
63  }
64 
67  } else if (condDB_) {
68  LogError("HLTPrescaleRecorder")<<"PoolDBOutputService requested as destination but unavailable!";
69  }
70 
71  if (run_) produces<HLTPrescaleTable,edm::InRun>("Run");
72  if (lumi_) produces<HLTPrescaleTable,edm::InLumi>("Lumi");
73  if (event_) produces<HLTPrescaleTable,edm::InEvent>("Event");
74 
75 }
T getParameter(std::string const &) const
edm::service::PrescaleService * ps_
Prescale service.
std::string hltDBTag_
Tag of DB entry (HLT Key Name) (src=4)
edm::ESHandle< trigger::HLTPrescaleTableCond > hltESHandle_
std::string encode() const
Definition: InputTag.cc:164
cond::service::PoolDBOutputService * db_
Pool DB service.
trigger::HLTPrescaleTable hlt_
payload HLT object
edm::Handle< trigger::HLTPrescaleTable > hltHandle_
Handle and ESHandle for existing HLT object.
bool run_
(Multiple) Destinations
edm::InputTag hltInputTag_
InputTag of HLTPrescaleTable product (src=1,2,3)
HLTPrescaleRecorder::~HLTPrescaleRecorder ( )
virtual

Definition at line 77 of file HLTPrescaleRecorder.cc.

78 {
79 }

Member Function Documentation

void HLTPrescaleRecorder::beginLuminosityBlock ( edm::LuminosityBlock const &  iLumi,
const edm::EventSetup iSetup 
)
finaloverridevirtual

From PrescaleService default index updated at lumi block boundaries

From Lumi Block

Definition at line 138 of file HLTPrescaleRecorder.cc.

References edm::LuminosityBlock::getByLabel(), edm::service::PrescaleService::getLvl1IndexDefault(), edm::service::PrescaleService::getLvl1Labels(), edm::service::PrescaleService::getPrescaleTable(), hlt_, hltHandle_, hltInputTag_, ps_, and src_.

138  {
139 
140  if (src_==0) {
143  if (ps_!=0) {
145  } else {
147  LogError("HLTPrescaleRecorder")<<"PrescaleService not found!";
148  }
149  } else if (src_==2) {
151  if (iLumi.getByLabel(hltInputTag_,hltHandle_)) {
152  hlt_=*hltHandle_;
153  } else {
155  LogError("HLTPrescaleRecorder")<<"HLTPrescaleTable not found in LumiBlock!";
156  }
157  }
158 
159  return;
160 }
edm::service::PrescaleService * ps_
Prescale service.
unsigned int getLvl1IndexDefault() const
The single EDProduct containing the HLT Prescale Table.
const PrescaleTable_t & getPrescaleTable() const
trigger::HLTPrescaleTable hlt_
payload HLT object
const VString_t & getLvl1Labels() const
edm::Handle< trigger::HLTPrescaleTable > hltHandle_
Handle and ESHandle for existing HLT object.
edm::InputTag hltInputTag_
InputTag of HLTPrescaleTable product (src=1,2,3)
void HLTPrescaleRecorder::beginRun ( edm::Run const &  iRun,
const edm::EventSetup iSetup 
)
finaloverridevirtual

From PrescaleTable tracked PSet

From PrescaleService default index updated at lumi block boundaries

From Run Block

From CondDB (needs ESProducer module as well)

Definition at line 85 of file HLTPrescaleRecorder.cc.

References edm::EventSetup::get(), edm::eventsetup::EventSetupRecord::get(), edm::Run::getByLabel(), edm::service::PrescaleService::getLvl1IndexDefault(), edm::service::PrescaleService::getLvl1Labels(), edm::ParameterSet::getParameter(), edm::service::PrescaleService::getPrescaleTable(), edm::getProcessParameterSet(), hlt_, hltDBTag_, hltESHandle_, hltHandle_, hltInputTag_, i, reco_calib_source_client_cfg::labels, m, n, ps_, psetName_, src_, AlCaHLTBitMon_QueryRunRegistry::string, and asciidump::table.

85  {
86 
88 
89  if (src_==-1) {
92  ParameterSet iPS(pPSet.getParameter<ParameterSet>(psetName_));
93 
94  string defaultLabel(iPS.getParameter<std::string>("lvl1DefaultLabel"));
95  vector<string> labels(iPS.getParameter<std::vector<std::string> >("lvl1Labels"));
96  vector<ParameterSet> vpTable(iPS.getParameter<std::vector<ParameterSet> >("prescaleTable"));
97 
98  unsigned int set(0);
99  const unsigned int n(labels.size());
100  for (unsigned int i=0; i!=n; ++i) {
101  if (labels[i]==defaultLabel) set=i;
102  }
103 
104  map<string,vector<unsigned int> > table;
105  const unsigned int m (vpTable.size());
106  for (unsigned int i=0; i!=m; ++i) {
107  table[vpTable[i].getParameter<std::string>("pathName")] =
108  vpTable[i].getParameter<std::vector<unsigned int> >("prescales");
109  }
110  hlt_=HLTPrescaleTable(set,labels,table);
111 
112  } else if (src_==0) {
115  if (ps_!=0) {
117  } else {
119  LogError("HLTPrescaleRecorder")<<"PrescaleService not found!";
120  }
121  } else if (src_==1) {
123  if (iRun.getByLabel(hltInputTag_,hltHandle_)) {
124  hlt_=*hltHandle_;
125  } else {
126  LogError("HLTPrescaleRecorder")<<"HLTPrescaleTable not found in Run!";
127  }
128  } else if (src_==4) {
130  const HLTPrescaleTableRcd& hltRecord(iSetup.get<HLTPrescaleTableRcd>());
131  hltRecord.get(hltDBTag_,hltESHandle_);
132  hlt_=hltESHandle_->hltPrescaleTable();
133  }
134 
135  return;
136 }
list table
Definition: asciidump.py:386
int i
Definition: DBlmapReader.cc:9
edm::service::PrescaleService * ps_
Prescale service.
unsigned int getLvl1IndexDefault() const
The single EDProduct containing the HLT Prescale Table.
std::string hltDBTag_
Tag of DB entry (HLT Key Name) (src=4)
const PrescaleTable_t & getPrescaleTable() const
edm::ESHandle< trigger::HLTPrescaleTableCond > hltESHandle_
trigger::HLTPrescaleTable hlt_
payload HLT object
const VString_t & getLvl1Labels() const
ParameterSet const & getProcessParameterSet()
Definition: Registry.cc:34
const T & get() const
Definition: EventSetup.h:55
edm::Handle< trigger::HLTPrescaleTable > hltHandle_
Handle and ESHandle for existing HLT object.
edm::InputTag hltInputTag_
InputTag of HLTPrescaleTable product (src=1,2,3)
void HLTPrescaleRecorder::endLuminosityBlock ( edm::LuminosityBlock const &  iLumi,
const edm::EventSetup iSetup 
)
finaloverridevirtual

Definition at line 182 of file HLTPrescaleRecorder.cc.

182  {
183 }
void HLTPrescaleRecorder::endLuminosityBlockProduce ( edm::LuminosityBlock iLumi,
const edm::EventSetup iSetup 
)
finaloverridevirtual

Writing to Lumi Block

Definition at line 185 of file HLTPrescaleRecorder.cc.

References hlt_, lumi_, and edm::LuminosityBlock::put().

185  {
186 
187  if (lumi_) {
189  auto_ptr<HLTPrescaleTable> product (new HLTPrescaleTable(hlt_));
190  iLumi.put(product,"Lumi");
191  }
192  return;
193 }
The single EDProduct containing the HLT Prescale Table.
trigger::HLTPrescaleTable hlt_
payload HLT object
void put(std::auto_ptr< PROD > product)
Put a new product.
void HLTPrescaleRecorder::endRun ( edm::Run const &  iRun,
const edm::EventSetup iSetup 
)
finaloverridevirtual

Dump to logfile

Writing to CondDB (needs PoolDBOutputService)

Definition at line 195 of file HLTPrescaleRecorder.cc.

References cond::service::PoolDBOutputService::appendSinceTime(), cond::service::PoolDBOutputService::beginOfTime(), condDB_, cond::service::PoolDBOutputService::createNewIOV(), db_, cond::service::PoolDBOutputService::endOfTime(), hlt_, i, cond::service::PoolDBOutputService::isNewTagRequest(), trigger::HLTPrescaleTable::labels(), reco_calib_source_client_cfg::labels, Association::map, n, trigger::HLTPrescaleTable::size(), trigger::HLTPrescaleTable::table(), asciidump::table, and edm::Timestamp::value().

195  {
196 
198  ostringstream oss;
199  const unsigned int n(hlt_.size());
200  oss << "PrescaleTable: # of labels = " << n << endl;
201  const vector<string>& labels(hlt_.labels());
202  for (unsigned int i=0; i!=n; ++i) {
203  oss << " " << i << "/'" << labels.at(i) << "'";
204  }
205  oss << endl;
206  const map<string,vector<unsigned int> >& table(hlt_.table());
207  oss << "PrescaleTable: # of paths = " << table.size() << endl;
208  const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
209  const map<string,vector<unsigned int> >::const_iterator te(table.end());
210  for (map<string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
211  for (unsigned int i=0; i!=n; ++i) {
212  oss << " " << ti->second.at(i);
213  }
214  oss << " " << ti->first << endl;
215  }
216  LogVerbatim("HLTPrescaleRecorder") << oss.str();
217 
218  if (condDB_) {
220  if (db_!=0) {
222  const string rcdName("HLTPrescaleTableRcd");
223  if ( db_->isNewTagRequest(rcdName) ) {
225  db_->beginOfTime(),db_->endOfTime(),rcdName);
226  } else {
227  ::timeval tv;
228  gettimeofday(&tv,0);
229  edm::Timestamp tstamp((unsigned long long)tv.tv_sec);
231 // db_->currentTime()
232  tstamp.value()
233  ,rcdName);
234  }
235  } else {
236  LogError("HLTPrescaleRecorder") << "PoolDBOutputService not available!";
237  }
238  }
239 
240  return;
241 }
list table
Definition: asciidump.py:386
int i
Definition: DBlmapReader.cc:9
const std::map< std::string, std::vector< unsigned int > > & table() const
dictionary map
Definition: Association.py:205
void appendSinceTime(T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
bool isNewTagRequest(const std::string &recordName)
const std::vector< std::string > & labels() const
cond::service::PoolDBOutputService * db_
Pool DB service.
trigger::HLTPrescaleTable hlt_
payload HLT object
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
unsigned int size() const
consistency condition: all vectors must have the same length
void HLTPrescaleRecorder::endRunProduce ( edm::Run iRun,
const edm::EventSetup iSetup 
)
finaloverridevirtual

Writing to Run Block

Definition at line 243 of file HLTPrescaleRecorder.cc.

References hlt_, edm::Run::put(), and run_.

243  {
244  if (run_) {
246  auto_ptr<HLTPrescaleTable> product (new HLTPrescaleTable(hlt_));
247  iRun.put(product,"Run");
248  }
249 }
The single EDProduct containing the HLT Prescale Table.
trigger::HLTPrescaleTable hlt_
payload HLT object
bool run_
(Multiple) Destinations
void put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Run.h:86
void HLTPrescaleRecorder::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
finaloverridevirtual

From Event Block

Writing to Event

Implements edm::one::EDProducerBase.

Definition at line 162 of file HLTPrescaleRecorder.cc.

References event_, edm::Event::getByLabel(), hlt_, hltHandle_, hltInputTag_, edm::Event::put(), and src_.

162  {
163 
164  if (src_==3) {
166  if (iEvent.getByLabel(hltInputTag_,hltHandle_)) {
167  hlt_=*hltHandle_;
168  } else {
170  LogError("HLTPrescaleRecorder")<<"HLTPrescaleTable not found in Event!";
171  }
172  }
173 
174  if (event_) {
176  auto_ptr<HLTPrescaleTable> product (new HLTPrescaleTable(hlt_));
177  iEvent.put(product,"Event");
178  }
179 
180  return;
181 }
The single EDProduct containing the HLT Prescale Table.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:94
trigger::HLTPrescaleTable hlt_
payload HLT object
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
edm::Handle< trigger::HLTPrescaleTable > hltHandle_
Handle and ESHandle for existing HLT object.
edm::InputTag hltInputTag_
InputTag of HLTPrescaleTable product (src=1,2,3)

Member Data Documentation

bool HLTPrescaleRecorder::condDB_
private

Definition at line 67 of file HLTPrescaleRecorder.h.

Referenced by endRun(), and HLTPrescaleRecorder().

cond::service::PoolDBOutputService* HLTPrescaleRecorder::db_
private

Pool DB service.

Definition at line 80 of file HLTPrescaleRecorder.h.

Referenced by endRun(), and HLTPrescaleRecorder().

bool HLTPrescaleRecorder::event_
private

Definition at line 66 of file HLTPrescaleRecorder.h.

Referenced by HLTPrescaleRecorder(), and produce().

trigger::HLTPrescaleTable HLTPrescaleRecorder::hlt_
private

payload HLT object

Definition at line 87 of file HLTPrescaleRecorder.h.

Referenced by beginLuminosityBlock(), beginRun(), endLuminosityBlockProduce(), endRun(), endRunProduce(), and produce().

std::string HLTPrescaleRecorder::hltDBTag_
private

Tag of DB entry (HLT Key Name) (src=4)

Definition at line 75 of file HLTPrescaleRecorder.h.

Referenced by beginRun(), and HLTPrescaleRecorder().

edm::ESHandle<trigger::HLTPrescaleTableCond> HLTPrescaleRecorder::hltESHandle_
private

Definition at line 84 of file HLTPrescaleRecorder.h.

Referenced by beginRun().

edm::Handle<trigger::HLTPrescaleTable> HLTPrescaleRecorder::hltHandle_
private

Handle and ESHandle for existing HLT object.

Definition at line 83 of file HLTPrescaleRecorder.h.

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

edm::InputTag HLTPrescaleRecorder::hltInputTag_
private

InputTag of HLTPrescaleTable product (src=1,2,3)

Definition at line 73 of file HLTPrescaleRecorder.h.

Referenced by beginLuminosityBlock(), beginRun(), HLTPrescaleRecorder(), and produce().

bool HLTPrescaleRecorder::lumi_
private

Definition at line 65 of file HLTPrescaleRecorder.h.

Referenced by endLuminosityBlockProduce(), and HLTPrescaleRecorder().

edm::service::PrescaleService* HLTPrescaleRecorder::ps_
private

Prescale service.

Definition at line 78 of file HLTPrescaleRecorder.h.

Referenced by beginLuminosityBlock(), beginRun(), and HLTPrescaleRecorder().

std::string HLTPrescaleRecorder::psetName_
private

Source configs name of PrescaleServicePSet (src=-1)

Definition at line 71 of file HLTPrescaleRecorder.h.

Referenced by beginRun(), and HLTPrescaleRecorder().

bool HLTPrescaleRecorder::run_
private

(Multiple) Destinations

Definition at line 64 of file HLTPrescaleRecorder.h.

Referenced by endRunProduce(), and HLTPrescaleRecorder().

int HLTPrescaleRecorder::src_
private

(Single) source: -1:PrescaleServicePSet 0:PrescaleService, 1:Run, 2:Lumi, 3:Event, 4:CondDB

Definition at line 61 of file HLTPrescaleRecorder.h.

Referenced by beginLuminosityBlock(), beginRun(), HLTPrescaleRecorder(), and produce().