CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TriggerExpressionData.h
Go to the documentation of this file.
1 #ifndef HLTrigger_HLTfilters_TriggerExpressionData_h
2 #define HLTrigger_HLTfilters_TriggerExpressionData_h
3 
8 
9 namespace edm {
10  class Event;
11  class EventSetup;
12  class TriggerResults;
13  class TriggerNames;
14 }
15 
17 class L1GtTriggerMenu;
18 class L1GtTriggerMask;
19 
20 namespace triggerExpression {
21 
22 class Data {
23 public:
24  // default c'tor
25  Data() :
26  // configuration
27  m_hltResultsTag(""),
28  m_l1tResultsTag(""),
29  m_daqPartitions(0x01),
32  m_throw(true),
33  // l1 values and status
34  m_l1tResults(0),
35  m_l1tMenu(0),
36  m_l1tAlgoMask(0),
37  m_l1tTechMask(0),
38  m_l1tCacheID(),
40  // hlt values and status
41  m_hltResults(0),
42  m_hltMenu(0),
43  m_hltCacheID(),
45  // event values
47  { }
48 
49  // explicit c'tor from a ParameterSet
50  explicit Data(const edm::ParameterSet & config) :
51  // configuration
52  m_hltResultsTag(config.getParameter<edm::InputTag>("hltResults")),
53  m_l1tResultsTag(config.getParameter<edm::InputTag>("l1tResults")),
54  m_daqPartitions(config.getParameter<unsigned int>("daqPartitions")),
55  m_l1tIgnoreMask(config.getParameter<bool>("l1tIgnoreMask")),
56  m_l1techIgnorePrescales(config.getParameter<bool>("l1techIgnorePrescales")),
57  m_throw(config.getParameter<bool>("throw")),
58  // l1 values and status
59  m_l1tResults(0),
60  m_l1tMenu(0),
61  m_l1tAlgoMask(0),
62  m_l1tTechMask(0),
63  m_l1tCacheID(),
65  // hlt values and status
66  m_hltResults(0),
67  m_hltMenu(0),
68  m_hltCacheID(),
70  // event values
72  { }
73 
74  // explicit c'tor from single arguments
76  edm::InputTag const & hltResultsTag,
77  edm::InputTag const & l1tResultsTag,
78  unsigned int daqPartitions,
79  bool l1tIgnoreMask,
80  bool l1techIgnorePrescales,
81  bool doThrow
82  ) :
83  // configuration
84  m_hltResultsTag(hltResultsTag),
85  m_l1tResultsTag(l1tResultsTag),
86  m_daqPartitions(daqPartitions),
87  m_l1tIgnoreMask(l1tIgnoreMask),
88  m_l1techIgnorePrescales(l1techIgnorePrescales),
89  m_throw(doThrow),
90  // l1 values and status
91  m_l1tResults(0),
92  m_l1tMenu(0),
93  m_l1tAlgoMask(0),
94  m_l1tTechMask(0),
95  m_l1tCacheID(),
97  // hlt values and status
98  m_hltResults(0),
99  m_hltMenu(0),
100  m_hltCacheID(),
102  // event values
103  m_eventNumber()
104  { }
105 
106  // set the new event
107  bool setEvent(const edm::Event & event, const edm::EventSetup & setup);
108 
109  // re-configuration accessors
110 
113  }
114 
117  }
118 
119  void setDaqPartitions(unsigned int daqPartitions) {
121  }
122 
123  void setL1tIgnoreMask(bool l1tIgnoreMask) {
124  m_l1tIgnoreMask = l1tIgnoreMask;
125  }
126 
127  void setL1techIgnorePrescales(bool l1techIgnorePrescales) {
128  m_l1techIgnorePrescales = l1techIgnorePrescales;
129  }
130 
131  void setThrow(bool doThrow) {
132  m_throw = doThrow;
133  }
134 
135  // read-only accessors
136 
137  bool hasL1T() const {
138  return not m_l1tResultsTag.label().empty();
139  }
140 
141  bool hasHLT() const {
142  return not m_hltResultsTag.label().empty();
143  }
144 
145  const edm::TriggerResults & hltResults() const {
146  return * m_hltResults;
147  }
148 
149  const edm::TriggerNames & hltMenu() const {
150  return * m_hltMenu;
151  }
152 
154  return * m_l1tResults;
155  }
156 
157  const L1GtTriggerMenu & l1tMenu() const {
158  return * m_l1tMenu;
159  }
160 
161  const L1GtTriggerMask & l1tAlgoMask() const {
162  return * m_l1tAlgoMask;
163  }
164 
165  const L1GtTriggerMask & l1tTechMask() const {
166  return * m_l1tTechMask;
167  }
168 
169  bool hltConfigurationUpdated() const {
170  return m_hltUpdated;
171  }
172 
173  bool l1tConfigurationUpdated() const {
174  return m_l1tUpdated;
175  }
176 
177  bool configurationUpdated() const {
179  }
180 
182  return m_eventNumber;
183  }
184 
185  bool shouldThrow() const {
186  return m_throw;
187  }
188 
189  bool ignoreL1Mask() const {
190  return m_l1tIgnoreMask;
191  }
192 
193  bool ignoreL1TechPrescales() const {
195  }
196 
197  unsigned int daqPartitions() const {
198  return m_daqPartitions;
199  }
200 
201 private:
202  // configuration
205  unsigned int m_daqPartitions;
208  bool m_throw;
209 
210  // l1 values and status
215  unsigned long long m_l1tCacheID;
217 
218  // hlt values and status
223 
224  // event values
226 };
227 
228 } // namespace triggerExpression
229 
230 #endif // HLTrigger_HLTfilters_TriggerExpressionData_h
void setDaqPartitions(unsigned int daqPartitions)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
const L1GtTriggerMask * m_l1tTechMask
unsigned int EventNumber_t
Definition: EventID.h:30
void setL1tResultsTag(edm::InputTag const &tag)
const L1GtTriggerMask & l1tTechMask() const
void setL1tIgnoreMask(bool l1tIgnoreMask)
const edm::TriggerNames & hltMenu() const
const L1GtTriggerMask * m_l1tAlgoMask
const L1GlobalTriggerReadoutRecord & l1tResults() const
const L1GtTriggerMenu & l1tMenu() const
edm::EventNumber_t eventNumber() const
const edm::TriggerResults * m_hltResults
void setHltResultsTag(edm::InputTag const &tag)
const edm::TriggerResults & hltResults() const
const edm::TriggerNames * m_hltMenu
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void setL1techIgnorePrescales(bool l1techIgnorePrescales)
const L1GlobalTriggerReadoutRecord * m_l1tResults
unsigned int daqPartitions() const
bool setEvent(const edm::Event &event, const edm::EventSetup &setup)
std::string const & label() const
Definition: InputTag.h:42
edm::ParameterSetID m_hltCacheID
edm::EventNumber_t m_eventNumber
const L1GtTriggerMenu * m_l1tMenu
unsigned long long m_l1tCacheID
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
Data(const edm::ParameterSet &config)
Data(edm::InputTag const &hltResultsTag, edm::InputTag const &l1tResultsTag, unsigned int daqPartitions, bool l1tIgnoreMask, bool l1techIgnorePrescales, bool doThrow)
const L1GtTriggerMask & l1tAlgoMask() const