7#ifndef TRIGGER_DECISION_TOOL_FeatureContainer_H
8#define TRIGGER_DECISION_TOOL_FeatureContainer_H
36#include <unordered_set>
58 template<
class T>
const std::vector<Trig::Feature<T> >
get(
const std::string&
label =
"",
unsigned int condition =
TrigDefs::Physics,
59 const std::string& teName =
"")
const;
70 template<
typename CONTAINER>
using ELEMENT_OF =
typename CONTAINER::base_value_type;
72 template<
typename CONTAINER>
78 template<
typename CONTAINER>
84 template<
typename CONTAINER>
104#if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS)
136 const void* obj_a,
const void* obj_b)
const;
147 return weakOrder(
a.te(), b.te(),
a.cptr(), b.cptr());
150template<
class T>
const std::vector<Trig::Feature<T> >
154 throw std::runtime_error(
"Only two flags can be supplied to features");
166 if (!comb.active())
continue;
168 std::vector<Trig::Feature<T> > features = comb.get<T>(
label, condition, teName);
175 uniqnessHelper.insert(f);
182 return std::vector<Trig::Feature<T> >(uniqnessHelper.begin(), uniqnessHelper.end());
194#if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS)
203 std::string sourceLabel;
207 bool success = fullnavi->
getRecentFeature(f.te(), flags, flagsLabel, sourceTE, sourceLabel);
209 if(!success || !flags)
std::vector< Identifier > ID
The NavigationCore class, adds on top of the TrigNavStructure the EDM read-only handling.
bool getRecentFeature(const TriggerElement *te, const T *&feature, const std::string &label="", const TriggerElement *&source=::HLT::TrigNavStructure::m_unspecifiedTE, std::string &sourcelabel=::HLT::TrigNavStructure::m_unspecifiedLabel) const
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
A Flag is an ordered collection of bits (vector<bool>) that can hold additional (boolean) information...
is a connector between chains and object It store single combination of trigger elements.
helper class to support ordered set of features
bool weakOrder(const HLT::TriggerElement *te_a, const HLT::TriggerElement *te_b, const void *obj_a, const void *obj_b) const
bool operator()(const Feature< T > &a, const Feature< T > &b) const
const std::vector< Trig::Feature< T > > get(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
returns flattened vector of Features of given type This method is in fact sullied by 3 arguments.
std::vector< Feature< ELEMENT_OF< CONTAINER > > > elementFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
std::vector< Trig::Combination > m_combinations
container preserving insertion order
std::vector< Feature< ELEMENT_OF< CONTAINER > > > flattenedContainerFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
std::vector< Feature< CONTAINER > > containerFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
const std::vector< Trig::Combination > & getCombinations() const
gives back reference to combinations collected through append
TrigPassFlags getFlags(const Trig::Feature< T > &f, const std::string &flagsLabel="") const
access to TrigPassFlags for given trigger object or container in given TE
typename CONTAINER::base_value_type ELEMENT_OF
void append(const FeatureContainer &other)
const std::vector< Trig::TypelessFeature > typelessGet(HLT::class_id_type clid, const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
typeless version of get
FeatureContainer(const CacheGlobalMemory *cgm=0)
constructors, destructor
std::unordered_set< Trig::Combination > m_combinations_unique
set for ensuring uniqueness in the above container
std::vector< Trig::Feature< xAOD::IParticle > > getIParticle(HLT::class_id_type clid, const std::string &container_name, const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
std::vector< Combination >::const_iterator combination_const_iterator
const Trig::CacheGlobalMemory * m_cgm
const HLT::TrigNavStructure * navigation() const
void addWithChecking(const Combination &newComb)
add new combination to the container checking for overlap
is basic vehicle of object access in TDT
std::string label(const std::string &format, int i)
static const unsigned int Physics
static const unsigned int alsoDeactivateTEs
const TrigPassFlags * getFlags(size_t size, const HLT::TriggerElement *te, const std::string &label, const HLT::NavigationCore *navigation)
std::vector< Trig::Feature< REQUESTED > > typedGet(const std::vector< TypelessFeature > &features, const HLT::TrigNavStructure *navigation, const asg::EventStoreType *store, const std::string &container_name=ClassID_traits< CONTAINER >::typeName())
The common trigger namespace for trigger analysis tools.
Default, invalid implementation of ClassID_traits.