CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
heppy::TriggerBitChecker Class Reference

#include <TriggerBitChecker.h>

Classes

struct  pathStruct
 

Public Member Functions

bool check (const edm::EventBase &event, const edm::TriggerResults &result) const
 
bool check_unprescaled (const edm::EventBase &event, const edm::TriggerResults &result_tr, const pat::PackedTriggerPrescales &result) const
 
int getprescale (const edm::EventBase &event, const edm::TriggerResults &result_tr, const pat::PackedTriggerPrescales &result) const
 
 TriggerBitChecker (const std::string &path="DUMMY")
 
 TriggerBitChecker (const std::vector< std::string > &paths)
 
 ~TriggerBitChecker ()
 

Private Member Functions

pathStruct returnPathStruct (const std::string &path) const
 
void rmstar ()
 executes a 'rm -rf *' in current directory More...
 
void syncIndices (const edm::EventBase &event, const edm::TriggerResults &result) const
 sync indices with path names More...
 

Private Attributes

std::vector< unsigned int > indices_
 
edm::ParameterSetID lastID_
 
std::vector< pathStructpaths_
 

Detailed Description

Definition at line 12 of file TriggerBitChecker.h.

Constructor & Destructor Documentation

heppy::TriggerBitChecker::TriggerBitChecker ( const std::string &  path = "DUMMY")

Definition at line 9 of file TriggerBitChecker.cc.

References rmstar().

void rmstar()
executes a &#39;rm -rf *&#39; in current directory
std::vector< pathStruct > paths_
pathStruct returnPathStruct(const std::string &path) const
heppy::TriggerBitChecker::TriggerBitChecker ( const std::vector< std::string > &  paths)

Definition at line 11 of file TriggerBitChecker.cc.

References mps_fire::i, paths_, returnPathStruct(), and rmstar().

11  : paths_(paths.size()) {
12  for(size_t i = 0; i < paths.size(); ++ i) paths_[i] = returnPathStruct(paths[i]);
13  rmstar();
14 }
void rmstar()
executes a &#39;rm -rf *&#39; in current directory
std::vector< pathStruct > paths_
pathStruct returnPathStruct(const std::string &path) const
heppy::TriggerBitChecker::~TriggerBitChecker ( )
inline

Definition at line 24 of file TriggerBitChecker.h.

References check(), check_unprescaled(), getprescale(), and mps_fire::result.

24 {}

Member Function Documentation

bool heppy::TriggerBitChecker::check ( const edm::EventBase event,
const edm::TriggerResults result 
) const

Definition at line 26 of file TriggerBitChecker.cc.

References edm::HLTGlobalStatus::accept(), indices_, lastID_, edm::TriggerResults::parameterSetID(), and syncIndices().

Referenced by ~TriggerBitChecker().

26  {
27  if (result.parameterSetID() != lastID_) { syncIndices(event, result); lastID_ = result.parameterSetID(); }
28  for (std::vector<unsigned int>::const_iterator it = indices_.begin(), ed = indices_.end(); it != ed; ++it) {
29  if (result.accept(*it)) return true;
30  }
31  return false;
32 }
bool accept() const
Has at least one path accepted the event?
std::vector< unsigned int > indices_
edm::ParameterSetID lastID_
const ParameterSetID & parameterSetID() const
Get stored parameter set id.
void syncIndices(const edm::EventBase &event, const edm::TriggerResults &result) const
sync indices with path names
bool heppy::TriggerBitChecker::check_unprescaled ( const edm::EventBase event,
const edm::TriggerResults result_tr,
const pat::PackedTriggerPrescales result 
) const

Definition at line 34 of file TriggerBitChecker.cc.

References pat::PackedTriggerPrescales::getPrescaleForIndex(), indices_, lastID_, edm::TriggerResults::parameterSetID(), and syncIndices().

Referenced by ~TriggerBitChecker().

34  {
35  if (result_tr.parameterSetID() != lastID_) { syncIndices(event, result_tr); lastID_ = result_tr.parameterSetID(); }
36  bool outcome = true;
37  for (std::vector<unsigned int>::const_iterator it = indices_.begin(), ed = indices_.end(); it != ed; ++it) {
38  if (result.getPrescaleForIndex(*it)!=1) {outcome = false; break;}
39  }
40  return outcome; // true only if all paths are unprescaled
41 }
std::vector< unsigned int > indices_
int getPrescaleForIndex(int index) const
edm::ParameterSetID lastID_
const ParameterSetID & parameterSetID() const
Get stored parameter set id.
void syncIndices(const edm::EventBase &event, const edm::TriggerResults &result) const
sync indices with path names
int heppy::TriggerBitChecker::getprescale ( const edm::EventBase event,
const edm::TriggerResults result_tr,
const pat::PackedTriggerPrescales result 
) const

Definition at line 43 of file TriggerBitChecker.cc.

References gather_cfg::cout, pat::PackedTriggerPrescales::getPrescaleForIndex(), indices_, lastID_, edm::TriggerResults::parameterSetID(), and syncIndices().

Referenced by ~TriggerBitChecker().

43  {
44  if (result_tr.parameterSetID() != lastID_) { syncIndices(event, result_tr); lastID_ = result_tr.parameterSetID(); }
45  if (indices_.empty() ){
46  // std::cout << " trying to check an inexistent trigger" << std::endl;
47  return -999;
48  }
49  if (indices_.size() > 1 ){
50  std::cout << " trying to get prescale for multiple trigger objects at the same time" << std::endl;
51  assert(0);
52  }
53 
54  return result.getPrescaleForIndex(*(indices_.begin())) ;
55 }
std::vector< unsigned int > indices_
int getPrescaleForIndex(int index) const
edm::ParameterSetID lastID_
const ParameterSetID & parameterSetID() const
Get stored parameter set id.
void syncIndices(const edm::EventBase &event, const edm::TriggerResults &result) const
sync indices with path names
TriggerBitChecker::pathStruct heppy::TriggerBitChecker::returnPathStruct ( const std::string &  path) const
private

Definition at line 16 of file TriggerBitChecker.cc.

References heppy::TriggerBitChecker::pathStruct::first, heppy::TriggerBitChecker::pathStruct::last, and heppy::TriggerBitChecker::pathStruct::pathName.

Referenced by TriggerBitChecker().

16  {
17  pathStruct newPathStruct(path);
18  if( path[0] > 48 /*'0'*/ && path[0] <= 57 /*'9'*/ ) {
19  newPathStruct.first = atoi(path.substr(0,path.find('-')).c_str());
20  newPathStruct.last = atoi(path.substr(path.find('-')+1,path.find(':')-path.find('-')-1).c_str());
21  newPathStruct.pathName = path.substr(path.find(':')+1);
22  }
23  return newPathStruct;
24 }
void heppy::TriggerBitChecker::rmstar ( )
private

executes a 'rm -rf *' in current directory

Definition at line 70 of file TriggerBitChecker.cc.

References training_settings::idx, and paths_.

Referenced by TriggerBitChecker().

70  {
71  std::vector<pathStruct>::iterator itp, bgp = paths_.begin(), edp = paths_.end();
72  for (itp = bgp; itp != edp; ++itp) {
73  std::string::size_type idx = itp->pathName.find("*");
74  if (idx != std::string::npos) itp->pathName.erase(idx);
75  }
76 }
uint16_t size_type
std::vector< pathStruct > paths_
void heppy::TriggerBitChecker::syncIndices ( const edm::EventBase event,
const edm::TriggerResults result 
) const
private

sync indices with path names

Definition at line 58 of file TriggerBitChecker.cc.

References mps_fire::i, indices_, gen::n, cscdqm::h::names, paths_, edm::TriggerNames::size(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::TriggerNames::triggerName().

Referenced by check(), check_unprescaled(), and getprescale().

58  {
59  indices_.clear();
60  const edm::TriggerNames &names = event.triggerNames(result);
61  std::vector<pathStruct>::const_iterator itp, bgp = paths_.begin(), edp = paths_.end();
62  for (size_t i = 0, n = names.size(); i < n; ++i) {
63  const std::string &thispath = names.triggerName(i);
64  for (itp = bgp; itp != edp; ++itp) {
65  if (thispath.find(itp->pathName) == 0 && event.id().run() >= itp->first && event.id().run() <= itp->last) indices_.push_back(i);
66  }
67  }
68 }
static const HistoName names[]
Strings::size_type size() const
Definition: TriggerNames.cc:39
std::vector< pathStruct > paths_
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:27
std::vector< unsigned int > indices_

Member Data Documentation

std::vector<unsigned int> heppy::TriggerBitChecker::indices_
mutableprivate

Definition at line 35 of file TriggerBitChecker.h.

Referenced by check(), check_unprescaled(), getprescale(), and syncIndices().

edm::ParameterSetID heppy::TriggerBitChecker::lastID_
mutableprivate

Definition at line 34 of file TriggerBitChecker.h.

Referenced by check(), check_unprescaled(), and getprescale().

std::vector<pathStruct> heppy::TriggerBitChecker::paths_
private