7#ifndef TRIGGER_DECISION_TOOL_Combination_H
8#define TRIGGER_DECISION_TOOL_Combination_H
32#if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS)
38#include "boost/container_hash/hash_fwd.hpp"
81 std::vector<Trig::Feature<T> >
get(
const std::string&
label =
"",
unsigned int condition=
TrigDefs::Physics,
const std::string& teName =
"")
const;
84 template<
typename CONTAINER>
using ELEMENT_OF =
typename CONTAINER::base_value_type;
102 template<
typename CONTAINER>
111 template<
typename CONTAINER>
120 template<
typename CONTAINER>
141 const std::vector<const HLT::TriggerElement*>&
tes()
const {
return m_tes; }
149 const std::string&
label,
unsigned int condition,
const std::string& teName)
const;
156 friend class ::HltNaviChecker;
163 std::vector<const HLT::TriggerElement*>
m_tes;
172 std::vector<Feature<T> >
data;
174#if !defined(XAOD_STANDALONE) && !defined(XAOD_ANALYSIS)
179 m_cgm->deleteAtTheEndOfEvent( f.cptr() );
183 std::cerr <<
"WARNING: Trig::Combination::get is only available in Athena proper" << std::endl;
197 return boost::hash_range(comb.
tes().begin(), comb.
tes().end());
202MsgStream&
operator<< ( MsgStream& m,
const Trig::Combination& c );
std::vector< Identifier > ID
char data[hepevt_bytes_allocation_ATLAS]
This class provides a combination very quickly.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
is a connector between chains and object It store single combination of trigger elements.
unsigned int size() const
Size of combination.
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
Experimental flattened get for IParticle types.
bool operator==(const Combination &other) const
void collect(const HLT::TriggerElement *te, std::vector< Trig::Feature< T > > &data, const std::string &label, unsigned int condition, const std::string &teName) const
Method used to get objects.
std::vector< Feature< ELEMENT_OF< CONTAINER > > > elementFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
get element type features (those attached to TE as single instance of a trigger type)
std::vector< Trig::Feature< T > > get(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
Method used to get objects.
std::vector< Feature< ELEMENT_OF< CONTAINER > > > flattenedContainerFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
get container type features flattened as Features (those attached to TE as container of a trigger typ...
bool operator<(const Combination &other) const
const std::vector< const HLT::TriggerElement * > & tes() const
trigger elements in the combination can be used directly with ancestor method
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 method.
const Trig::CacheGlobalMemory * m_cgm
std::vector< const HLT::TriggerElement * > m_tes
const HLT::TrigNavStructure * navigation() const
bool active() const
Returns the state of the combination i.e.
typename CONTAINER::base_value_type ELEMENT_OF
std::vector< Feature< CONTAINER > > containerFeature(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
get container type features (those attached to TE as container of a trigger type)
is basic vehicle of object access in TDT
std::string label(const std::string &format, int i)
static const unsigned int Physics
void collect(const HLT::TriggerElement *te, std::vector< Trig::Feature< T > > &data, const std::string &label, unsigned int condition, const std::string &teName, const HLT::TrigNavStructure *navstructure)
actual feature acceess implementation It has (thanks to the ClassTraits) functionality to flatten con...
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.
std::ostream & operator<<(std::ostream &, const Trig::TypelessFeature &)
Default, invalid implementation of ClassID_traits.
std::size_t operator()(const Trig::Combination &comb) const