CMS 3D CMS Logo

TriggerVariables.h
Go to the documentation of this file.
2 
4 
6 public:
8  : VariableComputer(arg, iC) {
10  edm::Service<InputTagDistributorService>()->retrieve("src", arg.iConfig));
11  for (int i = 0; i != 128; i++) {
12  std::stringstream ss;
13  ss << i;
14  declare(ss.str(), iC);
15  }
16 
17  for (int i = 0; i != 64; i++) {
18  std::stringstream ss;
19  ss << "TechTrig_";
20  ss << i;
21  declare(ss.str(), iC);
22  }
23  }
24  ~L1BitComputer() override{};
25 
26  void compute(const edm::Event& iEvent) const override {
28  iEvent.getByToken(src_, l1Handle);
29  if (l1Handle.failedToGet())
31  const DecisionWord& dWord = l1Handle->decisionWord();
32  for (int i = 0; i != 128; i++) {
33  std::stringstream ss;
34  ss << i;
35  double r = dWord.at(i);
36  assign(ss.str(), r);
37  }
38 
39  const TechnicalTriggerWord& tTWord = l1Handle->technicalTriggerWord();
40  for (int i = 0; i != 64; i++) {
41  std::stringstream ss;
42  ss << "TechTrig_";
43  ss << i;
44  double r = tTWord.at(i);
45  assign(ss.str(), r);
46  }
47  }
48 
49 private:
51 };
52 
56 
58 public:
60  : VariableComputer(arg, iC) {
62  HLTConfigProvider provider;
63  //the function will not work anymore until a major redesign is performed. so long for HLT variables.
64  //provider.init(src_.process());
65  validTriggerNames_ = provider.triggerNames();
66  for (unsigned int iT = 0; iT != validTriggerNames_.size(); ++iT) {
67  TString tname(validTriggerNames_[iT]);
68  tname.ReplaceAll("HLT_", ""); //remove the "HLT_" prefix
69  declare(std::string(static_cast<const char*>(tname)), iC);
70  }
71  }
72  ~HLTBitComputer() override {}
73  void compute(const edm::Event& iEvent) const override {
75  iEvent.getByToken(src_, trh);
76  if (!trh.isValid())
78  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*trh);
79  for (unsigned int iT = 0; iT != validTriggerNames_.size(); ++iT) {
80  TString tname(validTriggerNames_[iT]);
81  tname.ReplaceAll("HLT_", "");
82  double r = trh->accept(triggerNames.triggerIndex(validTriggerNames_[iT]));
83  assign(std::string(static_cast<const char*>(tname)), r);
84  }
85  }
86 
87 private:
89  std::vector<std::string> validTriggerNames_;
90 };
91 
93 public:
95  : CachingVariable("HLTBitVariable", arg.n, arg.iConfig, iC),
96  src_(
97  iC.consumes<edm::TriggerResults>(edm::Service<InputTagDistributorService>()->retrieve("src", arg.iConfig))),
98  bitName_(arg.n) {
99  arg.m[arg.n] = this;
100  }
103  iEvent.getByToken(src_, hltHandle);
104  if (hltHandle.failedToGet())
105  return std::make_pair(false, 0);
106  const edm::TriggerNames& trgNames = iEvent.triggerNames(*hltHandle);
107  unsigned int index = trgNames.triggerIndex(bitName_);
108  if (index == trgNames.size())
109  return std::make_pair(false, 0);
110  else
111  return std::make_pair(true, hltHandle->accept(index));
112  }
113 
114 private:
117 };
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
bool accept() const
Has at least one path accepted the event?
std::vector< std::string > validTriggerNames_
HLTBitComputer(CachingVariable::CachingVariableFactoryArg arg, edm::ConsumesCollector &iC)
edm::EDGetTokenT< edm::TriggerResults > src_
const DecisionWord & decisionWord(int bxInEventValue) const
A arg
Definition: Factorize.h:31
void assign(std::string var, double &value) const
unsigned int triggerIndex(std::string_view name) const
Definition: TriggerNames.cc:52
bool failedToGet() const
Definition: HandleBase.h:72
void compute(const edm::Event &iEvent) const override
int iEvent
Definition: GenABIO.cc:224
L1BitComputer(CachingVariable::CachingVariableFactoryArg arg, edm::ConsumesCollector &iC)
std::vector< bool > DecisionWord
typedefs
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
HLTBitVariable(CachingVariableFactoryArg arg, edm::ConsumesCollector &iC)
CachingVariable::evalType eval(const edm::Event &iEvent) const override
void doesNotCompute() const
std::size_t size() const
Definition: TriggerNames.cc:59
~HLTBitComputer() override
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::TriggerResults > src_
~L1BitComputer() override
HLT enums.
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > src_
std::string tname(const std::string &tableName, const std::string &schemaVersion)
void compute(const edm::Event &iEvent) const override
void declare(std::string var, edm::ConsumesCollector &iC)
std::string bitName_
std::pair< bool, valueType > evalType