CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTPrescaleProvider.h
Go to the documentation of this file.
1 #ifndef HLTcore_HLTPrescaleProvider_h
2 #define HLTcore_HLTPrescaleProvider_h
3 
22 
23 #include <string>
24 #include <utility>
25 #include <vector>
26 
27 namespace edm {
28  class ConsumesCollector;
29  class Event;
30  class EventSetup;
31  class ParameterSet;
32  class Run;
33 }
34 
36 
37 public:
38 
39  template <typename T>
42  T& module);
43 
44  template <typename T>
47  T& module);
48 
52  bool init(const edm::Run& iRun, const edm::EventSetup& iSetup,
53  const std::string& processName, bool& changed);
54 
56  L1GtUtils const& l1GtUtils() const { return l1GtUtils_; }
57  l1t::L1TGlobalUtil const& l1tGlobalUtil() const { return l1tGlobalUtil_; }
58 
61  int prescaleSet(const edm::Event& iEvent, const edm::EventSetup& iSetup);
62  // negative == error
63 
65  unsigned int prescaleValue(const edm::Event& iEvent,
66  const edm::EventSetup& iSetup,
67  const std::string& trigger);
68 
70  std::pair<int,int> prescaleValues(const edm::Event& iEvent,
71  const edm::EventSetup& iSetup,
72  const std::string& trigger);
73  // any one negative => error in retrieving this (L1T or HLT) prescale
74 
75  // In case of a complex Boolean expression as L1 seed
76  std::pair<std::vector<std::pair<std::string,int> >,int> prescaleValuesInDetail(const edm::Event& iEvent,
77  const edm::EventSetup& iSetup,
78  const std::string& trigger);
79 
80  private:
81 
85  unsigned char count_[5] = {0,0,0,0,0};
86 
87 };
88 
89 template <typename T>
92  T& module) :
93  HLTPrescaleProvider(pset, iC, module) { }
94 
95 template <typename T>
98  T& module) :
99  l1GtUtils_(pset, iC, false, module), l1tGlobalUtil_(pset, iC, module) { }
100 #endif
HLTConfigProvider hltConfigProvider_
std::pair< std::vector< std::pair< std::string, int > >, int > prescaleValuesInDetail(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
int iEvent
Definition: GenABIO.cc:230
l1t::L1TGlobalUtil const & l1tGlobalUtil() const
l1t::L1TGlobalUtil l1tGlobalUtil_
int prescaleSet(const edm::Event &iEvent, const edm::EventSetup &iSetup)
L1GtUtils const & l1GtUtils() const
HLTPrescaleProvider(edm::ParameterSet const &pset, edm::ConsumesCollector &&iC, T &module)
std::pair< int, int > prescaleValues(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
Combined L1T (pair.first) and HLT (pair.second) prescales per HLT path.
HLTConfigProvider const & hltConfigProvider() const
unsigned char count_[5]
unsigned int prescaleValue(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
combining the two methods above
volatile std::atomic< bool > shutdown_flag false
long double T
Definition: vlib.h:208
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
Definition: Run.h:43