|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef TRIGGER_DECISION_TOOL_FeatureContainer_H
8 #define TRIGGER_DECISION_TOOL_FeatureContainer_H
24 #include "boost/range/adaptor/reversed.hpp"
36 #include <unordered_set>
41 class FeatureContainer
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;
64 return FeatureAccessImpl::typedGet<xAOD::IParticle,xAOD::IParticleContainer,xAOD::IParticleContainer>(features,
70 template<
typename CONTAINER>
using ELEMENT_OF =
typename CONTAINER::base_value_type;
72 template<
typename CONTAINER>
73 std::vector<Feature<ELEMENT_OF<CONTAINER> > >
elementFeature(
const std::string&
label =
"",
unsigned int condition = TrigDefs::Physics,
const std::string&
teName =
"")
const{
78 template<
typename CONTAINER>
81 return FeatureAccessImpl::typedGet<CONTAINER,CONTAINER,CONTAINER>(features,
navigation(),
m_cgm->
store());
84 template<
typename CONTAINER>
87 return FeatureAccessImpl::typedGet<ELEMENT_OF<CONTAINER>,CONTAINER,CONTAINER>(features,
navigation(),
m_cgm->
store());
104 #if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS) // Full Athena only
131 class ordering_by_objects_attached {
134 bool operator()(
const Feature<T>&
a,
const Feature<T>&
b)
const;
136 const void* obj_a,
const void* obj_b)
const;
150 template<
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;
175 uniqnessHelper.insert(
f);
182 return std::vector<Trig::Feature<T> >(uniqnessHelper.begin(), uniqnessHelper.end());
194 #if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS) // Full Athena only
203 std::string sourceLabel;
209 if(!success || !
flags)
std::vector< Combination >::const_iterator combination_const_iterator
std::vector< Identifier > ID
The common trigger namespace for trigger analysis tools.
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
bool weakOrder(const HLT::TriggerElement *te_a, const HLT::TriggerElement *te_b, const void *obj_a, const void *obj_b) const
std::unordered_set< Trig::Combination > m_combinations_unique
set for ensuring uniqueness in the above container
helper class to support ordered set of features
std::vector< Feature< CONTAINER > > containerFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
std::vector< Feature< ELEMENT_OF< CONTAINER > > > elementFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
const TrigPassFlags * getFlags(size_t size, const HLT::TriggerElement *te, const std::string &label, const HLT::NavigationCore *navigation)
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
The NavigationCore class, adds on top of the TrigNavStructure the EDM read-only handling.
const asg::EventStoreType * store() const
Get the event store that the object is using.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
Default, invalid implementation of ClassID_traits.
const HLT::TrigNavStructure * navigation() const
typename CONTAINER::base_value_type ELEMENT_OF
std::vector< Trig::Combination > m_combinations
container preserving insertion order
const Trig::CacheGlobalMemory * m_cgm
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
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.
TrigPassFlags getFlags(const Trig::Feature< T > &f, const std::string &flagsLabel="") const
access to TrigPassFlags for given trigger object or container in given TE
bool operator()(const Feature< T > &a, const Feature< T > &b) const
void addWithChecking(const Combination &newComb)
add new combination to the container checking for overlap
A Flag is an ordered collection of bits (vector<bool>) that can hold additional (boolean) information...
std::vector< Feature< ELEMENT_OF< CONTAINER > > > flattenedContainerFeature(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
FeatureContainer(const CacheGlobalMemory *cgm=0)
constructors, destructor
void append(const FeatureContainer &other)