CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
TriggerHelper Class Reference

Provides a code based selection for trigger and DCS information in order to have no failing filters in the CMSSW path. More...

#include <TriggerHelper.h>

Public Member Functions

bool accept (const edm::Event &event, const edm::EventSetup &setup)
 To be called from analyze/filter() methods. More...
 
void initRun (const edm::Run &run, const edm::EventSetup &setup)
 To be called from beginedm::Run() methods. More...
 
bool off ()
 
bool on ()
 
template<typename T >
 TriggerHelper (const edm::ParameterSet &config, edm::ConsumesCollector &&iC, T &module)
 
template<typename T >
 TriggerHelper (const edm::ParameterSet &config, edm::ConsumesCollector &iC, T &module)
 
 ~TriggerHelper ()
 To be called from d'tors by 'delete'. More...
 

Private Member Functions

bool acceptDcs (const edm::Event &event)
 
bool acceptDcsPartition (const edm::Handle< DcsStatusCollection > &dcsStatus, const edm::Handle< DCSRecord > &dcsRecord, bool useDCSRecord, int dcsPartition) const
 
bool acceptGt (const edm::Event &event)
 
bool acceptGtLogicalExpression (const edm::Handle< L1GlobalTriggerReadoutRecord > &gtReadoutRecord, std::string gtLogicalExpression)
 Does this event fulfill this particular GT status bits' logical expression? More...
 
bool acceptHlt (const edm::Event &event)
 
bool acceptHltLogicalExpression (const edm::Handle< edm::TriggerResults > &hltTriggerResults, std::string hltLogicalExpression) const
 Was this event accepted by this particular HLT paths' logical expression? More...
 
bool acceptL1 (const edm::Event &event, const edm::EventSetup &setup)
 Was this event accepted by the configured L1 logical expression combination? More...
 
bool acceptL1LogicalExpression (const edm::Event &event, std::string l1LogicalExpression)
 
std::vector< std::string > expressionsFromDB (const std::string &key, const edm::EventSetup &setup)
 Reads and returns logical expressions from DB. More...
 
bool negate (std::string &word) const
 Checks for negated words. More...
 
 TriggerHelper (const edm::ParameterSet &config, edm::ConsumesCollector &iC)
 To be called from the ED module's c'tor. More...
 

Private Attributes

edm::ESGetToken< AlCaRecoTriggerBits, AlCaRecoTriggerBitsRcdalcaRecotriggerBitsToken_
 
bool andOr_
 
bool andOrDcs_
 
bool andOrGt_
 
bool andOrHlt_
 
bool andOrL1_
 
const std::string configError_
 
edm::InputTag dcsInputTag_
 
edm::EDGetTokenT< DcsStatusCollectiondcsInputToken_
 
std::vector< int > dcsPartitions_
 
edm::InputTag dcsRecordInputTag_
 
edm::EDGetTokenT< DCSRecorddcsRecordToken_
 
bool errorReplyDcs_
 
bool errorReplyGt_
 
bool errorReplyHlt_
 
bool errorReplyL1_
 
std::string gtDBKey_
 
edm::InputTag gtInputTag_
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordgtInputToken_
 
std::vector< std::string > gtLogicalExpressions_
 
HLTConfigProvider hltConfig_
 
bool hltConfigInit_
 
std::string hltDBKey_
 
edm::InputTag hltInputTag_
 
edm::EDGetTokenT< edm::TriggerResultshltInputToken_
 
std::vector< std::string > hltLogicalExpressions_
 
std::string l1DBKey_
 
std::unique_ptr< L1GtUtilsl1Gt_
 
std::vector< std::string > l1LogicalExpressions_
 
bool on_
 
bool onDcs_
 
bool onGt_
 
bool onHlt_
 
bool onL1_
 
edm::ESWatcher< AlCaRecoTriggerBitsRcd > * watchDB_
 

Detailed Description

Provides a code based selection for trigger and DCS information in order to have no failing filters in the CMSSW path.

"DQM/TrackerCommon/interface/TriggerHelper.h" [...]

Author
Volker Adler

Definition at line 43 of file TriggerHelper.h.

Constructor & Destructor Documentation

◆ TriggerHelper() [1/3]

template<typename T >
TriggerHelper::TriggerHelper ( const edm::ParameterSet config,
edm::ConsumesCollector &&  iC,
T module 
)

Definition at line 134 of file TriggerHelper.h.

References alcaRecotriggerBitsToken_, gtInputTag_, and gtInputToken_.

135  : TriggerHelper(config, iC, module) {
136  gtInputTag_ = config.getParameter<edm::InputTag>("gtInputTag");
139 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: config.py:1
TriggerHelper(const edm::ParameterSet &config, edm::ConsumesCollector &&iC, T &module)
edm::ESGetToken< AlCaRecoTriggerBits, AlCaRecoTriggerBitsRcd > alcaRecotriggerBitsToken_
Definition: TriggerHelper.h:66
edm::InputTag gtInputTag_
Definition: TriggerHelper.h:59
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtInputToken_
Definition: TriggerHelper.h:60

◆ TriggerHelper() [2/3]

template<typename T >
TriggerHelper::TriggerHelper ( const edm::ParameterSet config,
edm::ConsumesCollector iC,
T module 
)

Definition at line 142 of file TriggerHelper.h.

References DMR_cfg::config, L1GtUtils::Event, l1DBKey_, l1Gt_, l1LogicalExpressions_, callgraph::module, and onL1_.

143  : TriggerHelper(config, iC) {
144  if (onL1_ && (!l1DBKey_.empty() || !l1LogicalExpressions_.empty())) {
145  l1Gt_ = std::make_unique<L1GtUtils>(config, iC, false, module, L1GtUtils::UseEventSetupIn::Event);
146  }
147 }
std::unique_ptr< L1GtUtils > l1Gt_
Definition: TriggerHelper.h:46
std::vector< std::string > l1LogicalExpressions_
Definition: TriggerHelper.h:67
dictionary config
Read in AllInOne config in JSON format.
Definition: DMR_cfg.py:21
std::string l1DBKey_
Definition: TriggerHelper.h:65
Definition: config.py:1
TriggerHelper(const edm::ParameterSet &config, edm::ConsumesCollector &&iC, T &module)

◆ ~TriggerHelper()

TriggerHelper::~TriggerHelper ( )

To be called from d'tors by 'delete'.

Definition at line 83 of file TriggerHelper.cc.

References on_, and watchDB_.

83  {
84  if (on_)
85  delete watchDB_;
86 }
edm::ESWatcher< AlCaRecoTriggerBitsRcd > * watchDB_
Definition: TriggerHelper.h:45

◆ TriggerHelper() [3/3]

TriggerHelper::TriggerHelper ( const edm::ParameterSet config,
edm::ConsumesCollector iC 
)
private

To be called from the ED module's c'tor.

Definition at line 12 of file TriggerHelper.cc.

References andOr_, andOrDcs_, andOrGt_, andOrHlt_, andOrL1_, dcsInputTag_, dcsInputToken_, dcsPartitions_, dcsRecordInputTag_, dcsRecordToken_, errorReplyDcs_, errorReplyGt_, errorReplyHlt_, errorReplyL1_, gtDBKey_, gtLogicalExpressions_, hltDBKey_, hltInputTag_, hltInputToken_, hltLogicalExpressions_, l1DBKey_, l1LogicalExpressions_, edm::ConsumesCollector::mayConsume(), on_, onDcs_, onGt_, onHlt_, onL1_, AlCaHLTBitMon_QueryRunRegistry::string, and watchDB_.

13  : watchDB_(nullptr),
14  gtDBKey_(""),
15  l1DBKey_(""),
16  hltDBKey_(""),
17  on_(true),
18  onDcs_(true),
19  onGt_(true),
20  onL1_(true),
21  onHlt_(true),
22  configError_("CONFIG_ERROR") {
23  // General switch(es)
24  if (config.exists("andOr")) {
25  andOr_ = config.getParameter<bool>("andOr");
26  } else {
27  on_ = false;
28  onDcs_ = false;
29  onGt_ = false;
30  onL1_ = false;
31  onHlt_ = false;
32  }
33 
34  if (on_) {
35  if (config.exists("andOrDcs")) {
36  andOrDcs_ = config.getParameter<bool>("andOrDcs");
37  dcsInputTag_ = config.getParameter<edm::InputTag>("dcsInputTag");
39  dcsRecordInputTag_ = config.getParameter<edm::InputTag>("dcsRecordInputTag");
41  dcsPartitions_ = config.getParameter<std::vector<int>>("dcsPartitions");
42  errorReplyDcs_ = config.getParameter<bool>("errorReplyDcs");
43  } else {
44  onDcs_ = false;
45  }
46  if (config.exists("andOrGt")) {
47  andOrGt_ = config.getParameter<bool>("andOrGt");
48  gtLogicalExpressions_ = config.getParameter<std::vector<std::string>>("gtStatusBits");
49  errorReplyGt_ = config.getParameter<bool>("errorReplyGt");
50  if (config.exists("gtDBKey"))
51  gtDBKey_ = config.getParameter<std::string>("gtDBKey");
52  } else {
53  onGt_ = false;
54  }
55  if (config.exists("andOrL1")) {
56  andOrL1_ = config.getParameter<bool>("andOrL1");
57  l1LogicalExpressions_ = config.getParameter<std::vector<std::string>>("l1Algorithms");
58  errorReplyL1_ = config.getParameter<bool>("errorReplyL1");
59  if (config.exists("l1DBKey"))
60  l1DBKey_ = config.getParameter<std::string>("l1DBKey");
61  } else {
62  onL1_ = false;
63  }
64  if (config.exists("andOrHlt")) {
65  andOrHlt_ = config.getParameter<bool>("andOrHlt");
66  hltInputTag_ = config.getParameter<edm::InputTag>("hltInputTag");
68  hltLogicalExpressions_ = config.getParameter<std::vector<std::string>>("hltPaths");
69  errorReplyHlt_ = config.getParameter<bool>("errorReplyHlt");
70  if (config.exists("hltDBKey"))
71  hltDBKey_ = config.getParameter<std::string>("hltDBKey");
72  } else {
73  onHlt_ = false;
74  }
75  if (!onDcs_ && !onGt_ && !onL1_ && !onHlt_)
76  on_ = false;
77  else
79  }
80 }
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
edm::InputTag dcsRecordInputTag_
Definition: TriggerHelper.h:53
std::vector< std::string > l1LogicalExpressions_
Definition: TriggerHelper.h:67
std::string l1DBKey_
Definition: TriggerHelper.h:65
Definition: config.py:1
Class to contain DCS information from soft FED 1022.
Definition: DCSRecord.h:20
edm::EDGetTokenT< DcsStatusCollection > dcsInputToken_
Definition: TriggerHelper.h:54
const std::string configError_
Definition: TriggerHelper.h:82
edm::ESWatcher< AlCaRecoTriggerBitsRcd > * watchDB_
Definition: TriggerHelper.h:45
std::vector< std::string > hltLogicalExpressions_
Definition: TriggerHelper.h:73
std::string gtDBKey_
Definition: TriggerHelper.h:61
std::vector< std::string > gtLogicalExpressions_
Definition: TriggerHelper.h:62
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: TriggerHelper.h:55
edm::InputTag hltInputTag_
Definition: TriggerHelper.h:70
std::vector< DcsStatus > DcsStatusCollection
Definition: DcsStatus.h:110
edm::EDGetTokenT< edm::TriggerResults > hltInputToken_
Definition: TriggerHelper.h:71
std::vector< int > dcsPartitions_
Definition: TriggerHelper.h:56
edm::InputTag dcsInputTag_
Definition: TriggerHelper.h:52
std::string hltDBKey_
Definition: TriggerHelper.h:72

Member Function Documentation

◆ accept()

bool TriggerHelper::accept ( const edm::Event event,
const edm::EventSetup setup 
)

To be called from analyze/filter() methods.

Definition at line 129 of file TriggerHelper.cc.

References acceptDcs(), acceptGt(), acceptHlt(), acceptL1(), andOr_, on_, and singleTopDQM_cfi::setup.

Referenced by esMonitoring.FDJsonServer::handle_accept().

129  {
130  if (!on_)
131  return true;
132 
133  // Determine decision
134  if (andOr_)
137 }
bool acceptHlt(const edm::Event &event)
bool acceptL1(const edm::Event &event, const edm::EventSetup &setup)
Was this event accepted by the configured L1 logical expression combination?
bool acceptDcs(const edm::Event &event)
bool acceptGt(const edm::Event &event)
Definition: event.py:1

◆ acceptDcs()

bool TriggerHelper::acceptDcs ( const edm::Event event)
private

Definition at line 139 of file TriggerHelper.cc.

References acceptDcsPartition(), andOr_, andOrDcs_, dcsInputTag_, dcsInputToken_, dcsPartitions_, DQMOffline_cff::dcsRecord, dcsRecordInputTag_, dcsRecordToken_, edm::InputTag::encode(), errorReplyDcs_, edm::HandleBase::isValid(), and onDcs_.

Referenced by accept().

139  {
140  // An empty DCS partitions list acts as switch.
141  if (!onDcs_ || dcsPartitions_.empty())
142  return (!andOr_); // logically neutral, depending on base logical connective
143 
144  bool useDCSRecord(false);
145 
146  // Accessing the DcsStatusCollection
148  event.getByToken(dcsInputToken_, dcsStatus);
149 
151  event.getByToken(dcsRecordToken_, dcsRecord);
152 
153  // none of the DCS products is valid
154  if (!dcsStatus.isValid() && !dcsRecord.isValid()) {
155  edm::LogWarning("TriggerHelper") << "DcsStatusCollection product with InputTag \"" << dcsInputTag_.encode()
156  << "\" not in event \n"
157  << "DCSRecord product with InputTag \"" << dcsRecordInputTag_.encode()
158  << "\" not in event \n"
159  << " ==> decision: " << errorReplyDcs_;
160  return errorReplyDcs_;
161  }
162  if (dcsStatus.isValid() && (*dcsStatus).empty()) {
163  if (event.eventAuxiliary().isRealData()) {
164  // this is the Data case for >= Run3, DCSStatus is available (unpacked), but empty
165  // becasue SCAL is not in data-taking. In this case we fall back to s/w FED 1022
166  if (dcsRecord.isValid()) {
167  useDCSRecord = true;
168  } else {
169  edm::LogWarning("TriggerHelper") << "DCSRecord product with InputTag \"" << dcsRecordInputTag_.encode()
170  << "\" empty ==> decision: " << errorReplyDcs_;
171  return errorReplyDcs_;
172  }
173  } else {
174  // this is the case in which the DCS status is empty, but it's not real data.
175  edm::LogInfo("TriggerHelper") << "DcsStatusCollection product with InputTag \"" << dcsInputTag_.encode()
176  << "\" empty ==> decision: " << errorReplyDcs_;
177  return errorReplyDcs_;
178  }
179  }
180 
181  // Determine decision of DCS partition combination and return
182  if (andOrDcs_) { // OR combination
183  for (std::vector<int>::const_iterator partitionNumber = dcsPartitions_.begin();
184  partitionNumber != dcsPartitions_.end();
185  ++partitionNumber) {
186  if (acceptDcsPartition(dcsStatus, dcsRecord, useDCSRecord, *partitionNumber))
187  return true;
188  }
189  return false;
190  }
191  for (std::vector<int>::const_iterator partitionNumber = dcsPartitions_.begin();
192  partitionNumber != dcsPartitions_.end();
193  ++partitionNumber) {
194  if (!acceptDcsPartition(dcsStatus, dcsRecord, useDCSRecord, *partitionNumber))
195  return false;
196  }
197  return true;
198 }
edm::InputTag dcsRecordInputTag_
Definition: TriggerHelper.h:53
std::string encode() const
Definition: InputTag.cc:159
edm::EDGetTokenT< DcsStatusCollection > dcsInputToken_
Definition: TriggerHelper.h:54
edm::EDGetTokenT< DCSRecord > dcsRecordToken_
Definition: TriggerHelper.h:55
Log< level::Info, false > LogInfo
std::vector< int > dcsPartitions_
Definition: TriggerHelper.h:56
edm::InputTag dcsInputTag_
Definition: TriggerHelper.h:52
bool isValid() const
Definition: HandleBase.h:70
Log< level::Warning, false > LogWarning
bool acceptDcsPartition(const edm::Handle< DcsStatusCollection > &dcsStatus, const edm::Handle< DCSRecord > &dcsRecord, bool useDCSRecord, int dcsPartition) const
Definition: event.py:1

◆ acceptDcsPartition()

bool TriggerHelper::acceptDcsPartition ( const edm::Handle< DcsStatusCollection > &  dcsStatus,
const edm::Handle< DCSRecord > &  dcsRecord,
bool  useDCSRecord,
int  dcsPartition 
) const
private

Definition at line 200 of file TriggerHelper.cc.

References DCSRecord::BPIX, DcsStatus::BPIX, DCSRecord::CASTOR, DcsStatus::CASTOR, DCSRecord::CSCm, DcsStatus::CSCm, DCSRecord::CSCp, DcsStatus::CSCp, DCSRecord::DT0, DcsStatus::DT0, DCSRecord::DTm, DcsStatus::DTm, DCSRecord::DTp, DcsStatus::DTp, DCSRecord::EBm, DcsStatus::EBm, DCSRecord::EBp, DcsStatus::EBp, DcsStatus::EEm, DCSRecord::EEp, DcsStatus::EEp, errorReplyDcs_, DCSRecord::ESm, DcsStatus::ESm, DCSRecord::ESp, DcsStatus::ESp, DCSRecord::FPIX, DcsStatus::FPIX, DCSRecord::HBHEa, DcsStatus::HBHEa, DCSRecord::HBHEb, DcsStatus::HBHEb, DCSRecord::HBHEc, DcsStatus::HBHEc, DCSRecord::HF, DcsStatus::HF, DCSRecord::HO, DcsStatus::HO, LogDebug, DCSRecord::RPC, DcsStatus::RPC, DCSRecord::TECm, DcsStatus::TECm, DCSRecord::TECp, DcsStatus::TECp, DCSRecord::TIBTID, DcsStatus::TIBTID, DCSRecord::TOB, and DcsStatus::TOB.

Referenced by acceptDcs().

203  {
204  int theDCSRecordPartition;
205  // Error checks
206  switch (dcsPartition) {
207  case DcsStatus::EBp:
208  theDCSRecordPartition = DCSRecord::EBp;
209  break;
210  case DcsStatus::EBm:
211  theDCSRecordPartition = DCSRecord::EBm;
212  break;
213  case DcsStatus::EEp:
214  theDCSRecordPartition = DCSRecord::EEp;
215  break;
216  case DcsStatus::EEm:
217  theDCSRecordPartition = DCSRecord::EBm;
218  break;
219  case DcsStatus::HBHEa:
220  theDCSRecordPartition = DCSRecord::HBHEa;
221  break;
222  case DcsStatus::HBHEb:
223  theDCSRecordPartition = DCSRecord::HBHEb;
224  break;
225  case DcsStatus::HBHEc:
226  theDCSRecordPartition = DCSRecord::HBHEc;
227  break;
228  case DcsStatus::HF:
229  theDCSRecordPartition = DCSRecord::HF;
230  break;
231  case DcsStatus::HO:
232  theDCSRecordPartition = DCSRecord::HO;
233  break;
234  case DcsStatus::RPC:
235  theDCSRecordPartition = DCSRecord::RPC;
236  break;
237  case DcsStatus::DT0:
238  theDCSRecordPartition = DCSRecord::DT0;
239  break;
240  case DcsStatus::DTp:
241  theDCSRecordPartition = DCSRecord::DTp;
242  break;
243  case DcsStatus::DTm:
244  theDCSRecordPartition = DCSRecord::DTm;
245  break;
246  case DcsStatus::CSCp:
247  theDCSRecordPartition = DCSRecord::CSCp;
248  break;
249  case DcsStatus::CSCm:
250  theDCSRecordPartition = DCSRecord::CSCm;
251  break;
252  case DcsStatus::CASTOR:
253  theDCSRecordPartition = DCSRecord::CASTOR;
254  break;
255  case DcsStatus::TIBTID:
256  theDCSRecordPartition = DCSRecord::TIBTID;
257  break;
258  case DcsStatus::TOB:
259  theDCSRecordPartition = DCSRecord::TOB;
260  break;
261  case DcsStatus::TECp:
262  theDCSRecordPartition = DCSRecord::TECp;
263  break;
264  case DcsStatus::TECm:
265  theDCSRecordPartition = DCSRecord::TECm;
266  break;
267  case DcsStatus::BPIX:
268  theDCSRecordPartition = DCSRecord::BPIX;
269  break;
270  case DcsStatus::FPIX:
271  theDCSRecordPartition = DCSRecord::FPIX;
272  break;
273  case DcsStatus::ESp:
274  theDCSRecordPartition = DCSRecord::ESp;
275  break;
276  case DcsStatus::ESm:
277  theDCSRecordPartition = DCSRecord::ESm;
278  break;
279  default:
280  edm::LogWarning("TriggerHelper") << "DCS partition number \"" << dcsPartition
281  << "\" does not exist ==> decision: " << errorReplyDcs_;
282  return errorReplyDcs_;
283  }
284 
285  // Determine decision
286  if (!useDCSRecord) {
287  return dcsStatus->at(0).ready(dcsPartition);
288  } else {
289  LogDebug("TriggerHelper") << "using dcs record, dcsPartition:" << dcsPartition << " " << theDCSRecordPartition
290  << " " << (*dcsRecord).partitionName(theDCSRecordPartition) << " "
291  << (*dcsRecord).highVoltageReady(theDCSRecordPartition) << std::endl;
292  return (*dcsRecord).highVoltageReady(theDCSRecordPartition);
293  }
294 }
Log< level::Warning, false > LogWarning
#define LogDebug(id)

◆ acceptGt()

bool TriggerHelper::acceptGt ( const edm::Event event)
private

Does this event fulfill the configured GT status logical expression combination?

Definition at line 298 of file TriggerHelper.cc.

References acceptGtLogicalExpression(), andOr_, andOrGt_, errorReplyGt_, gtInputToken_, gtLogicalExpressions_, edm::HandleBase::isValid(), and onGt_.

Referenced by accept().

298  {
299  // An empty GT status bits logical expressions list acts as switch.
300  if (!onGt_ || gtLogicalExpressions_.empty())
301  return (!andOr_); // logically neutral, depending on base logical connective
302 
303  // Accessing the L1GlobalTriggerReadoutRecord
305  event.getByToken(gtInputToken_, gtReadoutRecord);
306  if (!gtReadoutRecord.isValid()) {
307  //edm::LogError("TriggerHelper") << "L1GlobalTriggerReadoutRecord product with InputTag \"" << gtInputTag_.encode()
308  // << "\" not in event ==> decision: " << errorReplyGt_;
309  return errorReplyGt_;
310  }
311 
312  // Determine decision of GT status bits logical expression combination and
313  // return
314  if (andOrGt_) { // OR combination
315  for (std::vector<std::string>::const_iterator gtLogicalExpression = gtLogicalExpressions_.begin();
316  gtLogicalExpression != gtLogicalExpressions_.end();
317  ++gtLogicalExpression) {
318  if (acceptGtLogicalExpression(gtReadoutRecord, *gtLogicalExpression))
319  return true;
320  }
321  return false;
322  }
323  for (std::vector<std::string>::const_iterator gtLogicalExpression = gtLogicalExpressions_.begin();
324  gtLogicalExpression != gtLogicalExpressions_.end();
325  ++gtLogicalExpression) {
326  if (!acceptGtLogicalExpression(gtReadoutRecord, *gtLogicalExpression))
327  return false;
328  }
329  return true;
330 }
bool acceptGtLogicalExpression(const edm::Handle< L1GlobalTriggerReadoutRecord > &gtReadoutRecord, std::string gtLogicalExpression)
Does this event fulfill this particular GT status bits&#39; logical expression?
std::vector< std::string > gtLogicalExpressions_
Definition: TriggerHelper.h:62
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtInputToken_
Definition: TriggerHelper.h:60

◆ acceptGtLogicalExpression()

bool TriggerHelper::acceptGtLogicalExpression ( const edm::Handle< L1GlobalTriggerReadoutRecord > &  gtReadoutRecord,
std::string  gtLogicalExpression 
)
private

Does this event fulfill this particular GT status bits' logical expression?

Definition at line 333 of file TriggerHelper.cc.

References errorReplyDcs_, errorReplyGt_, L1GtLogicParser::expressionResult(), L1GlobalTriggerReadoutRecord::gtFdlWord(), negate(), L1GtLogicParser::operandTokenVector(), L1GtFdlWord::physicsDeclared(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by acceptGt().

334  {
335  // Check empty std::strings
336  if (gtLogicalExpression.empty()) {
337  edm::LogError("TriggerHelper") << "Empty logical expression ==> decision: " << errorReplyGt_;
338  return errorReplyGt_;
339  }
340 
341  // Negated paths
342  bool negExpr(negate(gtLogicalExpression));
343  if (negExpr && gtLogicalExpression.empty()) {
344  edm::LogError("TriggerHelper") << "Empty (negated) logical expression ==> decision: " << errorReplyGt_;
345  return errorReplyGt_;
346  }
347 
348  // Parse logical expression and determine GT status bit decision
349  L1GtLogicParser gtAlgoLogicParser(gtLogicalExpression);
350  // Loop over status bits
351  for (size_t iStatusBit = 0; iStatusBit < gtAlgoLogicParser.operandTokenVector().size(); ++iStatusBit) {
352  const std::string gtStatusBit(gtAlgoLogicParser.operandTokenVector().at(iStatusBit).tokenName);
353  // Manipulate status bit decision as stored in the parser
354  bool decision;
355  // Hard-coded status bits!!!
356  if (gtStatusBit == "PhysDecl" || gtStatusBit == "PhysicsDeclared") {
357  decision = (gtReadoutRecord->gtFdlWord().physicsDeclared() == 1);
358  } else {
359  edm::LogError("TriggerHelper") << "GT status bit \"" << gtStatusBit
360  << "\" is not defined ==> decision: " << errorReplyGt_;
361  decision = errorReplyDcs_;
362  }
363  gtAlgoLogicParser.operandTokenVector().at(iStatusBit).tokenResult = decision;
364  }
365 
366  // Determine decision
367  const bool gtDecision(gtAlgoLogicParser.expressionResult());
368  return negExpr ? (!gtDecision) : gtDecision;
369 }
const cms_uint16_t physicsDeclared() const
get/set "physics declared" bit
Definition: L1GtFdlWord.h:169
bool negate(std::string &word) const
Checks for negated words.
Log< level::Error, false > LogError
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record

◆ acceptHlt()

bool TriggerHelper::acceptHlt ( const edm::Event event)
private

Was this event accepted by the configured HLT logical expression combination?

Definition at line 444 of file TriggerHelper.cc.

References acceptHltLogicalExpression(), andOr_, andOrHlt_, edm::InputTag::encode(), errorReplyHlt_, hltConfigInit_, hltInputTag_, hltInputToken_, hltLogicalExpressions_, edm::HandleBase::isValid(), and onHlt_.

Referenced by accept().

444  {
445  // An empty HLT logical expressions list acts as switch.
446  if (!onHlt_ || hltLogicalExpressions_.empty())
447  return (!andOr_); // logically neutral, depending on base logical connective
448 
449  // Checking the HLT configuration,
450  if (!hltConfigInit_) {
451  edm::LogError("TriggerHelper") << "HLT config error ==> decision: " << errorReplyHlt_;
452  return errorReplyHlt_;
453  }
454 
455  // Accessing the TriggerResults
456  edm::Handle<edm::TriggerResults> hltTriggerResults;
457  event.getByToken(hltInputToken_, hltTriggerResults);
458  if (!hltTriggerResults.isValid()) {
459  edm::LogError("TriggerHelper") << "TriggerResults product with InputTag \"" << hltInputTag_.encode()
460  << "\" not in event ==> decision: " << errorReplyHlt_;
461  return errorReplyHlt_;
462  }
463 
464  // Determine decision of HLT logical expression combination and return
465  if (andOrHlt_) { // OR combination
466  for (std::vector<std::string>::const_iterator hltLogicalExpression = hltLogicalExpressions_.begin();
467  hltLogicalExpression != hltLogicalExpressions_.end();
468  ++hltLogicalExpression) {
469  if (acceptHltLogicalExpression(hltTriggerResults, *hltLogicalExpression))
470  return true;
471  }
472  return false;
473  }
474  for (std::vector<std::string>::const_iterator hltLogicalExpression = hltLogicalExpressions_.begin();
475  hltLogicalExpression != hltLogicalExpressions_.end();
476  ++hltLogicalExpression) {
477  if (!acceptHltLogicalExpression(hltTriggerResults, *hltLogicalExpression))
478  return false;
479  }
480  return true;
481 }
std::string encode() const
Definition: InputTag.cc:159
Log< level::Error, false > LogError
std::vector< std::string > hltLogicalExpressions_
Definition: TriggerHelper.h:73
edm::InputTag hltInputTag_
Definition: TriggerHelper.h:70
edm::EDGetTokenT< edm::TriggerResults > hltInputToken_
Definition: TriggerHelper.h:71
bool isValid() const
Definition: HandleBase.h:70
bool acceptHltLogicalExpression(const edm::Handle< edm::TriggerResults > &hltTriggerResults, std::string hltLogicalExpression) const
Was this event accepted by this particular HLT paths&#39; logical expression?

◆ acceptHltLogicalExpression()

bool TriggerHelper::acceptHltLogicalExpression ( const edm::Handle< edm::TriggerResults > &  hltTriggerResults,
std::string  hltLogicalExpression 
) const
private

Was this event accepted by this particular HLT paths' logical expression?

Definition at line 484 of file TriggerHelper.cc.

References edm::HLTGlobalStatus::accept(), edm::HLTGlobalStatus::error(), errorReplyHlt_, L1GtLogicParser::expressionResult(), hltConfig_, hltInputTag_, negate(), L1GtLogicParser::operandTokenVector(), edm::InputTag::process(), HLTConfigProvider::size(), AlCaHLTBitMon_QueryRunRegistry::string, and HLTConfigProvider::triggerIndex().

Referenced by acceptHlt().

485  {
486  // Check empty std::strings
487  if (hltLogicalExpression.empty()) {
488  edm::LogError("TriggerHelper") << "Empty logical expression ==> decision: " << errorReplyHlt_;
489  return errorReplyHlt_;
490  }
491 
492  // Negated paths
493  bool negExpr(negate(hltLogicalExpression));
494  if (negExpr && hltLogicalExpression.empty()) {
495  edm::LogError("TriggerHelper") << "Empty (negated) logical expression ==> decision: " << errorReplyHlt_;
496  return errorReplyHlt_;
497  }
498 
499  // Parse logical expression and determine HLT decision
500  L1GtLogicParser hltAlgoLogicParser(hltLogicalExpression);
501  // Loop over paths
502  for (size_t iPath = 0; iPath < hltAlgoLogicParser.operandTokenVector().size(); ++iPath) {
503  const std::string hltPathName(hltAlgoLogicParser.operandTokenVector().at(iPath).tokenName);
504  const unsigned indexPath(hltConfig_.triggerIndex(hltPathName));
505  // Further error checks
506  if (indexPath == hltConfig_.size()) {
507  edm::LogError("TriggerHelper") << "HLT path \"" << hltPathName << "\" is not found in process "
508  << hltInputTag_.process() << " ==> decision: " << errorReplyHlt_;
509  hltAlgoLogicParser.operandTokenVector().at(iPath).tokenResult = errorReplyHlt_;
510  continue;
511  }
512  if (hltTriggerResults->error(indexPath)) {
513  edm::LogError("TriggerHelper") << "HLT path \"" << hltPathName << "\" in error ==> decision: " << errorReplyHlt_;
514  hltAlgoLogicParser.operandTokenVector().at(iPath).tokenResult = errorReplyHlt_;
515  continue;
516  }
517  // Manipulate algo decision as stored in the parser
518  const bool decision(hltTriggerResults->accept(indexPath));
519  hltAlgoLogicParser.operandTokenVector().at(iPath).tokenResult = decision;
520  }
521 
522  // Determine decision
523  const bool hltDecision(hltAlgoLogicParser.expressionResult());
524  return negExpr ? (!hltDecision) : hltDecision;
525 }
bool accept() const
Has at least one path accepted the event?
bool error() const
Has any path encountered an error (exception)
bool negate(std::string &word) const
Checks for negated words.
Log< level::Error, false > LogError
unsigned int size() const
number of trigger paths in trigger table
edm::InputTag hltInputTag_
Definition: TriggerHelper.h:70
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
HLTConfigProvider hltConfig_
Definition: TriggerHelper.h:47
std::string const & process() const
Definition: InputTag.h:40

◆ acceptL1()

bool TriggerHelper::acceptL1 ( const edm::Event event,
const edm::EventSetup setup 
)
private

Was this event accepted by the configured L1 logical expression combination?

Definition at line 372 of file TriggerHelper.cc.

References acceptL1LogicalExpression(), andOr_, andOrL1_, l1Gt_, l1LogicalExpressions_, onL1_, and singleTopDQM_cfi::setup.

Referenced by accept().

372  {
373  // An empty L1 logical expressions list acts as switch.
374  if (!onL1_ || l1LogicalExpressions_.empty())
375  return (!andOr_); // logically neutral, depending on base logical connective
376 
377  // Getting the L1 event setup
378  l1Gt_->retrieveL1EventSetup(setup); // FIXME This can possibly go to initRun()
379 
380  // Determine decision of L1 logical expression combination and return
381  if (andOrL1_) { // OR combination
382  for (std::vector<std::string>::const_iterator l1LogicalExpression = l1LogicalExpressions_.begin();
383  l1LogicalExpression != l1LogicalExpressions_.end();
384  ++l1LogicalExpression) {
385  if (acceptL1LogicalExpression(event, *l1LogicalExpression))
386  return true;
387  }
388  return false;
389  }
390  for (std::vector<std::string>::const_iterator l1LogicalExpression = l1LogicalExpressions_.begin();
391  l1LogicalExpression != l1LogicalExpressions_.end();
392  ++l1LogicalExpression) {
393  if (!acceptL1LogicalExpression(event, *l1LogicalExpression))
394  return false;
395  }
396  return true;
397 }
std::unique_ptr< L1GtUtils > l1Gt_
Definition: TriggerHelper.h:46
std::vector< std::string > l1LogicalExpressions_
Definition: TriggerHelper.h:67
bool acceptL1LogicalExpression(const edm::Event &event, std::string l1LogicalExpression)
Definition: event.py:1

◆ acceptL1LogicalExpression()

bool TriggerHelper::acceptL1LogicalExpression ( const edm::Event event,
std::string  l1LogicalExpression 
)
private

Was this event accepted by this particular L1 algorithms' logical expression?

Definition at line 401 of file TriggerHelper.cc.

References relativeConstraints::error, errorReplyL1_, L1GtLogicParser::expressionResult(), l1Gt_, negate(), L1GtLogicParser::operandTokenVector(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by acceptL1().

401  {
402  // Check empty std::strings
403  if (l1LogicalExpression.empty()) {
404  edm::LogError("TriggerHelper") << "Empty logical expression ==> decision: " << errorReplyL1_;
405  return errorReplyL1_;
406  }
407 
408  // Negated logical expression
409  bool negExpr(negate(l1LogicalExpression));
410  if (negExpr && l1LogicalExpression.empty()) {
411  edm::LogError("TriggerHelper") << "Empty (negated) logical expression ==> decision: " << errorReplyL1_;
412  return errorReplyL1_;
413  }
414 
415  // Parse logical expression and determine L1 decision
416  L1GtLogicParser l1AlgoLogicParser(l1LogicalExpression);
417  // Loop over algorithms
418  for (size_t iAlgorithm = 0; iAlgorithm < l1AlgoLogicParser.operandTokenVector().size(); ++iAlgorithm) {
419  const std::string l1AlgoName(l1AlgoLogicParser.operandTokenVector().at(iAlgorithm).tokenName);
420  int error(-1);
421  const bool decision(l1Gt_->decision(event, l1AlgoName, error));
422  // Error checks
423  if (error != 0) {
424  if (error == 1)
425  edm::LogError("TriggerHelper") << "L1 algorithm \"" << l1AlgoName
426  << "\" does not exist in the L1 menu ==> decision: " << errorReplyL1_;
427  else
428  edm::LogError("TriggerHelper") << "L1 algorithm \"" << l1AlgoName << "\" received error code " << error
429  << " from L1GtUtils::decisionBeforeMask ==> decision: " << errorReplyL1_;
430  l1AlgoLogicParser.operandTokenVector().at(iAlgorithm).tokenResult = errorReplyL1_;
431  continue;
432  }
433  // Manipulate algo decision as stored in the parser
434  l1AlgoLogicParser.operandTokenVector().at(iAlgorithm).tokenResult = decision;
435  }
436 
437  // Return decision
438  const bool l1Decision(l1AlgoLogicParser.expressionResult());
439  return negExpr ? (!l1Decision) : l1Decision;
440 }
std::unique_ptr< L1GtUtils > l1Gt_
Definition: TriggerHelper.h:46
bool negate(std::string &word) const
Checks for negated words.
Log< level::Error, false > LogError
Definition: event.py:1

◆ expressionsFromDB()

std::vector< std::string > TriggerHelper::expressionsFromDB ( const std::string &  key,
const edm::EventSetup setup 
)
private

Reads and returns logical expressions from DB.

Definition at line 528 of file TriggerHelper.cc.

References alcaRecotriggerBitsToken_, configError_, AlCaRecoTriggerBits::decompose(), crabWrapper::key, AlCaRecoTriggerBits::m_alcarecoToTrig, and singleTopDQM_cfi::setup.

Referenced by initRun().

528  {
529  const AlCaRecoTriggerBits *logicalExpressions = &(setup.getData(alcaRecotriggerBitsToken_));
530  const std::map<std::string, std::string> &expressionMap = logicalExpressions->m_alcarecoToTrig;
531  std::map<std::string, std::string>::const_iterator listIter = expressionMap.find(key);
532  if (listIter == expressionMap.end()) {
533  edm::LogError("TriggerHelper") << "No logical expressions found under key " << key
534  << " in 'AlCaRecoTriggerBitsRcd'";
535  return std::vector<std::string>(1, configError_);
536  }
537  return logicalExpressions->decompose(listIter->second);
538 }
std::map< std::string, std::string > m_alcarecoToTrig
std::vector< std::string > decompose(const std::string &concatPaths) const
Decompose one value of map from concatenated string.
const std::string configError_
Definition: TriggerHelper.h:82
Log< level::Error, false > LogError
edm::ESGetToken< AlCaRecoTriggerBits, AlCaRecoTriggerBitsRcd > alcaRecotriggerBitsToken_
Definition: TriggerHelper.h:66

◆ initRun()

void TriggerHelper::initRun ( const edm::Run run,
const edm::EventSetup setup 
)

To be called from beginedm::Run() methods.

Definition at line 89 of file TriggerHelper.cc.

References edm::ESWatcher< T >::check(), configError_, edm::InputTag::encode(), expressionsFromDB(), gtDBKey_, gtLogicalExpressions_, hltConfig_, hltConfigInit_, hltDBKey_, hltInputTag_, hltLogicalExpressions_, HLTConfigProvider::init(), l1DBKey_, l1LogicalExpressions_, onGt_, onHlt_, onL1_, edm::InputTag::process(), writedatasetfile::run, singleTopDQM_cfi::setup, HLTConfigProvider::size(), and watchDB_.

89  {
90  // FIXME Can this stay safely in the run loop, or does it need to go to the
91  // event loop? Means: Are the event setups identical?
92  if (watchDB_->check(setup)) {
93  if (onGt_ && !gtDBKey_.empty()) {
94  const std::vector<std::string> exprs(expressionsFromDB(gtDBKey_, setup));
95  if (exprs.empty() || exprs.at(0) != configError_)
96  gtLogicalExpressions_ = exprs;
97  }
98  if (onL1_ && !l1DBKey_.empty()) {
99  const std::vector<std::string> exprs(expressionsFromDB(l1DBKey_, setup));
100  if (exprs.empty() || exprs.at(0) != configError_)
101  l1LogicalExpressions_ = exprs;
102  }
103  if (onHlt_ && !hltDBKey_.empty()) {
104  const std::vector<std::string> exprs(expressionsFromDB(hltDBKey_, setup));
105  if (exprs.empty() || exprs.at(0) != configError_)
106  hltLogicalExpressions_ = exprs;
107  }
108  }
109 
110  hltConfigInit_ = false;
111  if (onHlt_) {
112  if (hltInputTag_.process().empty()) {
113  edm::LogError("TriggerHelper") << "HLT TriggerResults InputTag \"" << hltInputTag_.encode()
114  << "\" specifies no process";
115  } else {
116  bool hltChanged(false);
117  if (!hltConfig_.init(run, setup, hltInputTag_.process(), hltChanged)) {
118  edm::LogError("TriggerHelper") << "HLT config initialization error with process name \""
119  << hltInputTag_.process() << "\"";
120  } else if (hltConfig_.size() <= 0) {
121  edm::LogError("TriggerHelper") << "HLT config size error";
122  } else
123  hltConfigInit_ = true;
124  }
125  }
126 }
std::string encode() const
Definition: InputTag.cc:159
std::vector< std::string > l1LogicalExpressions_
Definition: TriggerHelper.h:67
std::string l1DBKey_
Definition: TriggerHelper.h:65
const std::string configError_
Definition: TriggerHelper.h:82
Log< level::Error, false > LogError
edm::ESWatcher< AlCaRecoTriggerBitsRcd > * watchDB_
Definition: TriggerHelper.h:45
std::vector< std::string > hltLogicalExpressions_
Definition: TriggerHelper.h:73
std::string gtDBKey_
Definition: TriggerHelper.h:61
unsigned int size() const
number of trigger paths in trigger table
std::vector< std::string > gtLogicalExpressions_
Definition: TriggerHelper.h:62
edm::InputTag hltInputTag_
Definition: TriggerHelper.h:70
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
HLTConfigProvider hltConfig_
Definition: TriggerHelper.h:47
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
std::vector< std::string > expressionsFromDB(const std::string &key, const edm::EventSetup &setup)
Reads and returns logical expressions from DB.
std::string const & process() const
Definition: InputTag.h:40
std::string hltDBKey_
Definition: TriggerHelper.h:72

◆ negate()

bool TriggerHelper::negate ( std::string &  word) const
private

Checks for negated words.

Definition at line 541 of file TriggerHelper.cc.

Referenced by acceptGtLogicalExpression(), acceptHltLogicalExpression(), and acceptL1LogicalExpression().

541  {
542  bool negate(false);
543  if (word.at(0) == '~') {
544  negate = true;
545  word.erase(0, 1);
546  }
547  return negate;
548 }
bool negate(std::string &word) const
Checks for negated words.
uint64_t word

◆ off()

bool TriggerHelper::off ( )
inline

Definition at line 96 of file TriggerHelper.h.

References on_.

96 { return (!on_); }

◆ on()

bool TriggerHelper::on ( )
inline

Definition at line 95 of file TriggerHelper.h.

References on_.

95 { return on_; }

Member Data Documentation

◆ alcaRecotriggerBitsToken_

edm::ESGetToken<AlCaRecoTriggerBits, AlCaRecoTriggerBitsRcd> TriggerHelper::alcaRecotriggerBitsToken_
private

Definition at line 66 of file TriggerHelper.h.

Referenced by expressionsFromDB(), and TriggerHelper().

◆ andOr_

bool TriggerHelper::andOr_
private

Definition at line 50 of file TriggerHelper.h.

Referenced by accept(), acceptDcs(), acceptGt(), acceptHlt(), acceptL1(), and TriggerHelper().

◆ andOrDcs_

bool TriggerHelper::andOrDcs_
private

Definition at line 51 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ andOrGt_

bool TriggerHelper::andOrGt_
private

Definition at line 58 of file TriggerHelper.h.

Referenced by acceptGt(), and TriggerHelper().

◆ andOrHlt_

bool TriggerHelper::andOrHlt_
private

Definition at line 69 of file TriggerHelper.h.

Referenced by acceptHlt(), and TriggerHelper().

◆ andOrL1_

bool TriggerHelper::andOrL1_
private

Definition at line 64 of file TriggerHelper.h.

Referenced by acceptL1(), and TriggerHelper().

◆ configError_

const std::string TriggerHelper::configError_
private

Definition at line 82 of file TriggerHelper.h.

Referenced by expressionsFromDB(), and initRun().

◆ dcsInputTag_

edm::InputTag TriggerHelper::dcsInputTag_
private

Definition at line 52 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ dcsInputToken_

edm::EDGetTokenT<DcsStatusCollection> TriggerHelper::dcsInputToken_
private

Definition at line 54 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ dcsPartitions_

std::vector<int> TriggerHelper::dcsPartitions_
private

Definition at line 56 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ dcsRecordInputTag_

edm::InputTag TriggerHelper::dcsRecordInputTag_
private

Definition at line 53 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ dcsRecordToken_

edm::EDGetTokenT<DCSRecord> TriggerHelper::dcsRecordToken_
private

Definition at line 55 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ errorReplyDcs_

bool TriggerHelper::errorReplyDcs_
private

◆ errorReplyGt_

bool TriggerHelper::errorReplyGt_
private

Definition at line 63 of file TriggerHelper.h.

Referenced by acceptGt(), acceptGtLogicalExpression(), and TriggerHelper().

◆ errorReplyHlt_

bool TriggerHelper::errorReplyHlt_
private

Definition at line 74 of file TriggerHelper.h.

Referenced by acceptHlt(), acceptHltLogicalExpression(), and TriggerHelper().

◆ errorReplyL1_

bool TriggerHelper::errorReplyL1_
private

Definition at line 68 of file TriggerHelper.h.

Referenced by acceptL1LogicalExpression(), and TriggerHelper().

◆ gtDBKey_

std::string TriggerHelper::gtDBKey_
private

Definition at line 61 of file TriggerHelper.h.

Referenced by initRun(), and TriggerHelper().

◆ gtInputTag_

edm::InputTag TriggerHelper::gtInputTag_
private

Definition at line 59 of file TriggerHelper.h.

Referenced by TriggerHelper().

◆ gtInputToken_

edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> TriggerHelper::gtInputToken_
private

Definition at line 60 of file TriggerHelper.h.

Referenced by acceptGt(), and TriggerHelper().

◆ gtLogicalExpressions_

std::vector<std::string> TriggerHelper::gtLogicalExpressions_
private

Definition at line 62 of file TriggerHelper.h.

Referenced by acceptGt(), initRun(), and TriggerHelper().

◆ hltConfig_

HLTConfigProvider TriggerHelper::hltConfig_
private

Definition at line 47 of file TriggerHelper.h.

Referenced by acceptHltLogicalExpression(), and initRun().

◆ hltConfigInit_

bool TriggerHelper::hltConfigInit_
private

Definition at line 48 of file TriggerHelper.h.

Referenced by acceptHlt(), and initRun().

◆ hltDBKey_

std::string TriggerHelper::hltDBKey_
private

Definition at line 72 of file TriggerHelper.h.

Referenced by initRun(), and TriggerHelper().

◆ hltInputTag_

edm::InputTag TriggerHelper::hltInputTag_
private

Definition at line 70 of file TriggerHelper.h.

Referenced by acceptHlt(), acceptHltLogicalExpression(), initRun(), and TriggerHelper().

◆ hltInputToken_

edm::EDGetTokenT<edm::TriggerResults> TriggerHelper::hltInputToken_
private

Definition at line 71 of file TriggerHelper.h.

Referenced by acceptHlt(), and TriggerHelper().

◆ hltLogicalExpressions_

std::vector<std::string> TriggerHelper::hltLogicalExpressions_
private

Definition at line 73 of file TriggerHelper.h.

Referenced by acceptHlt(), initRun(), and TriggerHelper().

◆ l1DBKey_

std::string TriggerHelper::l1DBKey_
private

Definition at line 65 of file TriggerHelper.h.

Referenced by initRun(), and TriggerHelper().

◆ l1Gt_

std::unique_ptr<L1GtUtils> TriggerHelper::l1Gt_
private

Definition at line 46 of file TriggerHelper.h.

Referenced by acceptL1(), acceptL1LogicalExpression(), and TriggerHelper().

◆ l1LogicalExpressions_

std::vector<std::string> TriggerHelper::l1LogicalExpressions_
private

Definition at line 67 of file TriggerHelper.h.

Referenced by acceptL1(), initRun(), and TriggerHelper().

◆ on_

bool TriggerHelper::on_
private

Definition at line 76 of file TriggerHelper.h.

Referenced by accept(), off(), on(), TriggerHelper(), and ~TriggerHelper().

◆ onDcs_

bool TriggerHelper::onDcs_
private

Definition at line 77 of file TriggerHelper.h.

Referenced by acceptDcs(), and TriggerHelper().

◆ onGt_

bool TriggerHelper::onGt_
private

Definition at line 78 of file TriggerHelper.h.

Referenced by acceptGt(), initRun(), and TriggerHelper().

◆ onHlt_

bool TriggerHelper::onHlt_
private

Definition at line 80 of file TriggerHelper.h.

Referenced by acceptHlt(), initRun(), and TriggerHelper().

◆ onL1_

bool TriggerHelper::onL1_
private

Definition at line 79 of file TriggerHelper.h.

Referenced by acceptL1(), initRun(), and TriggerHelper().

◆ watchDB_

edm::ESWatcher<AlCaRecoTriggerBitsRcd>* TriggerHelper::watchDB_
private

Definition at line 45 of file TriggerHelper.h.

Referenced by initRun(), TriggerHelper(), and ~TriggerHelper().