ATLAS Offline Software
DecisionAccess.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef TRIGGER_DECISION_TOOL_DecisionAccess_H
8 #define TRIGGER_DECISION_TOOL_DecisionAccess_H
9 
10 /**********************************************************************************
11  * @Project: TrigDecisionTool
12  * @Package: TrigDecisionTool
13  * @class : DecisionAccess
14  *
15  * @brief access to information about the trigger decision
16  *
17  * @author Michael Begel <michael.begel@cern.ch> - Brookhaven National Laboratory
18  * @author Nicolas Berger <Nicolas.Berger@cern.ch> - LAPP Annecy
19  * @author Tomasz Bold <Tomasz.Bold@cern.ch> - UC Irvine - AGH Krakow
20  *
21  ***********************************************************************************/
22 #include <string>
23 #include <sstream>
24 #include <vector>
25 
33 
35 
37 
39 
40 namespace HLT {
41  class Chain;
42 }
43 namespace TrigConf {
44  class HLTChain;
45  class HLTTriggerElement;
46 }
47 
48 class LVL1_ROI;
49 
50 namespace Trig {
51 
52  class CacheGlobalMemory;
53 
54  class DecisionAccess : public virtual Logger {
55  public:
56 
58  virtual ~DecisionAccess();
59 
65  bool isPassed(const Trig::ChainGroup* chaingroup,
66  unsigned int condition = TrigDefs::Physics) const;
72  bool isPassed(const std::string& chain,
73  unsigned int condition) const;
74 
75  bool isPassed(const std::string& chain) const;
76 
82  std::vector<bool> isPassedForEach(const Trig::ChainGroup* chainGroup,
83  unsigned int condition = TrigDefs::Physics) const;
84 
90  std::vector<bool> isPassedForEach(const std::string& chain,
91  unsigned int condition = TrigDefs::Physics) const;
92 
110  unsigned int isPassedBits(const Trig::ChainGroup* chaingroup) const;
111  unsigned int isPassedBits(const std::string& chain) const;
112 
116  std::vector<unsigned int> isPassedBitsForEach(const Trig::ChainGroup* chaingroup) const;
117  std::vector<unsigned int> isPassedBitsForEach(const std::string& chain) const;
118 
119 
125  char getBGCode() const;
126 
131  unsigned int condition = TrigDefs::Physics) const;
132 
136  FeatureContainer features(const std::string& chainName = "EF_.*",
137  unsigned int condition = TrigDefs::Physics) const;
138 
141 
147  template<class CONTAINER>
148  std::vector< TrigCompositeUtils::LinkInfo<CONTAINER> >
149  features(const Trig::FeatureRequestDescriptor& featureRequest) const;
150 
161  template<class CONTAINER>
162  std::vector< TrigCompositeUtils::LinkInfo<CONTAINER> >
164  const unsigned int condition = TrigDefs::Physics,
165  const std::string& containerSGKey = "",
166  const unsigned int featureCollectionMode = TrigDefs::lastFeatureOfType,
167  const std::string& navElementLinkKey = TrigCompositeUtils::featureString(),
168  const int restrictToLegIndex = -1) const;
169 
180  template<class CONTAINER>
181  std::vector< TrigCompositeUtils::LinkInfo<CONTAINER> >
182  features(const std::string& chainGroupName,
183  const unsigned int condition = TrigDefs::Physics,
184  const std::string& containerSGKey = "",
185  const unsigned int featureCollectionMode = TrigDefs::lastFeatureOfType,
186  const std::string& navElementLinkKey = TrigCompositeUtils::featureString(),
187  const int restrictToLegIndex = -1) const;
188 
197  template<class CONTAINER, class FEATURE_CONTAINER>
198  std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator >
201  const std::string& roiName = TrigCompositeUtils::roiString()) const;
202 
211  template<class CONTAINER>
212  std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator >
214  const TrigCompositeUtils::Decision* decisionObject,
215  const std::string& roiName = TrigCompositeUtils::roiString()) const;
216 
224  template<class CONTAINER>
225  std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator >
227  const ElementLink<TrigRoiDescriptorCollection>& matchROI) const;
228 
242  template<class CONTAINER>
243  std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator >
245  const uint32_t matchIndex,
246  const uint32_t matchKey = 0,
247  const bool isFullscan = false) const;
248 
250 
256  template<class T>
257  Feature<T> ancestor(const HLT::TriggerElement* te, std::string label = "") const;
258 
265  template<class T>
266  std::vector<Trig::Feature<T> > ancestors(const HLT::TriggerElement* te, std::string label = "", unsigned int condition=TrigDefs::Physics, const std::string& teName = "") const;
267 
268  protected:
269 
270  friend class Combination;
271 
272 
273  private:
274 
275  virtual Trig::CacheGlobalMemory* cgm() = 0;
276  virtual const Trig::CacheGlobalMemory* cgm() const = 0;
277 
278  // template<class T>
279  // const T* getL1RoI(const std::vector<T>& rois, unsigned int id) const;
280 
281 
282  //unsigned int initRoIWord(const HLT::TriggerElement* te) const;
283 
284  };
285 } // End of namespace
286 
287 #include "DecisionAccess.icc"
288 
289 #endif
TrigCompositeUtils::featureString
const std::string & featureString()
Definition: TrigCompositeUtils.h:420
Trig::FeatureRequestDescriptor
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:32
Trig::Feature
Definition: Feature.h:112
Combination.h
Trig::DecisionAccess::isPassedBitsForEach
std::vector< unsigned int > isPassedBitsForEach(const Trig::ChainGroup *chaingroup) const
Return the result of isPassedBits for each chain in the group.
Definition: DecisionAccess.cxx:79
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
Trig
The common trigger namespace for trigger analysis tools.
Definition: LArCellMonAlg.h:33
FeatureContainer.h
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Trig::DecisionAccess
Definition: DecisionAccess.h:54
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
Trig::Logger
Logging adaptor to provide interfaces required for ATH_MSG macros.
Definition: Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Logger.h:24
Trig::DecisionAccess::features
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features(const Trig::FeatureRequestDescriptor &featureRequest) const
Runs 3+.
Feature.h
Trig::DecisionAccess::getBGCode
char getBGCode() const
get the bunch group code bit X=1: BG X fired (X=0..7) use: bool BGXfired = BGCode & (0x1<<X)
Definition: DecisionAccess.cxx:103
navigation2dot.teName
def teName(teid)
Definition: navigation2dot.py:59
LArG4GenerateShowerLib.condition
condition
Definition: LArG4GenerateShowerLib.py:19
Trig::DecisionAccess::ancestors
std::vector< Trig::Feature< T > > ancestors(const HLT::TriggerElement *te, std::string label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
gives back features matching (by seeding relation) - will also flatten containers if necessary
Trig::CacheGlobalMemory
Definition: CacheGlobalMemory.h:67
ChainGroup.h
Trig::DecisionAccess::associateToEventView
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView(typename SG::ReadHandle< CONTAINER > &inViewContainer, const ElementLink< TrigRoiDescriptorCollection > &matchROI) const
Runs 3+.
TrigCompositeUtils::roiString
const std::string & roiString()
Definition: TrigCompositeUtils.h:418
trigbs_dumpPrescaleBits.HLTChain
HLTChain
Definition: trigbs_dumpPrescaleBits.py:41
Trig::DecisionAccess::isPassed
bool isPassed(const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const
true if given group of chains passed
Definition: DecisionAccess.cxx:34
Trig::DecisionAccess::associateToEventView
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView(typename SG::ReadHandle< CONTAINER > &inViewContainer, const TrigCompositeUtils::Decision *decisionObject, const std::string &roiName=TrigCompositeUtils::roiString()) const
Runs 3+.
Trig::FeatureContainer
Definition: FeatureContainer.h:54
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
Trig::DecisionAccess::cgm
virtual const Trig::CacheGlobalMemory * cgm() const =0
TrigCompositeUtils.h
Trig::DecisionAccess::associateToEventView
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView(typename SG::ReadHandle< CONTAINER > &inViewContainer, const uint32_t matchIndex, const uint32_t matchKey=0, const bool isFullscan=false) const
Runs 3+.
Trig::DecisionAccess::~DecisionAccess
virtual ~DecisionAccess()
Definition: DecisionAccess.cxx:31
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition: HLTResultReader.h:26
Trig::DecisionAccess::features
FeatureContainer features(const Trig::ChainGroup *group, unsigned int condition=TrigDefs::Physics) const
Runs 1, 2.
Definition: DecisionAccess.cxx:92
Trig::Combination
Definition: Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Combination.h:55
HLT::TriggerElement
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
Definition: TrigNavStructure/TrigNavStructure/TriggerElement.h:27
TriggerElement.h
DecisionAccess.icc
add-xsec-uncert-quadrature-N.label
label
Definition: add-xsec-uncert-quadrature-N.py:104
FeatureRequestDescriptor.h
Logger.h
Trig::DecisionAccess::features
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features(const std::string &chainGroupName, const unsigned int condition=TrigDefs::Physics, const std::string &containerSGKey="", const unsigned int featureCollectionMode=TrigDefs::lastFeatureOfType, const std::string &navElementLinkKey=TrigCompositeUtils::featureString(), const int restrictToLegIndex=-1) const
Runs 3+.
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:49
LVL1_ROI
Top level AOD object storing LVL1 RoIs.
Definition: LVL1_ROI.h:43
Trig::ChainGroup
Definition: ChainGroup.h:51
Trig::DecisionAccess::cgm
virtual Trig::CacheGlobalMemory * cgm()=0
ReadHandle.h
Handle class for reading from StoreGate.
Trig::DecisionAccess::isPassedBits
unsigned int isPassedBits(const Trig::ChainGroup *chaingroup) const
Return expert-level information about the various trigger flags as a bit mask.
Definition: DecisionAccess.cxx:67
Conditions.h
TrigCompositeUtils::LinkInfo
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
Definition: LinkInfo.h:29
Trig::DecisionAccess::DecisionAccess
DecisionAccess()
Definition: DecisionAccess.cxx:29
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
python.TriggerAPI.TriggerAPISession.chainName
chainName
Definition: TriggerAPISession.py:426
Trig::DecisionAccess::ancestor
Feature< T > ancestor(const HLT::TriggerElement *te, std::string label="") const
gives back feature matching (by seeding relation)
Trig::DecisionAccess::isPassedForEach
std::vector< bool > isPassedForEach(const Trig::ChainGroup *chainGroup, unsigned int condition=TrigDefs::Physics) const
return decision for each chain in group
Definition: DecisionAccess.cxx:53
Trig::DecisionAccess::associateToEventView
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView(typename SG::ReadHandle< CONTAINER > &inViewContainer, const TrigCompositeUtils::LinkInfo< FEATURE_CONTAINER > linkInfo, const std::string &roiName=TrigCompositeUtils::roiString()) const
Runs 3+.
Trig::DecisionAccess::features
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features(const Trig::ChainGroup *group, const unsigned int condition=TrigDefs::Physics, const std::string &containerSGKey="", const unsigned int featureCollectionMode=TrigDefs::lastFeatureOfType, const std::string &navElementLinkKey=TrigCompositeUtils::featureString(), const int restrictToLegIndex=-1) const
Runs 3+.