ATLAS Offline Software
Loading...
Searching...
No Matches
Navigation.h
Go to the documentation of this file.
1// Emacs -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7
8#ifndef TRIGNAVIGATION_HLTNAVIGATION_H
9#define TRIGNAVIGATION_HLTNAVIGATION_H
10
11#include "GaudiKernel/ClassID.h"
12#include "GaudiKernel/MsgStream.h"
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/IConversionSvc.h"
15
19
24
25
26namespace HLT {
99
100 class Navigation : public AthAlgTool, public NavigationCore {
101 public:
102 // resolve ambiguity between base classes
103 using AthAlgTool::msg;
104 using AthAlgTool::msgLvl;
105
106 Navigation( const std::string& type,
107 const std::string& name,
108 const IInterface* parent );
109
110 virtual ~Navigation();
111
112 virtual StatusCode initialize() override;
113
124 template<class T>
125 bool attachFeature( TriggerElement* te, const T* feature,
126 MemoryManagement, std::string& key,
127 const std::string& label="" );
128
129 template<class T>
131 MemoryManagement, std::string& key,
132 const std::string& label="" );
133
134
135
136 template<class T>
137 bool associateExternalCollection(const std::string& label);
147 template<class T> bool findOwners(const T* obj, std::vector<const TriggerElement*>& owners, unsigned int id = 0);
148
152 template<class T> const std::string getNextKey( const std::string& label = "" );
153
157 template<class T> const std::string getUniqueKey( const std::string& label = "" );
158
159 protected:
160 Navigation(); //> not implemented
161 Navigation (const Navigation&); //> not implemented
162 Navigation& operator= (const Navigation&); //> not implemented
163
165 private:
166 // private stuff of Navigation class
169 Gaudi::Property<std::vector<std::string>> m_dlls{this, "Dlls", {}, "Libraries to load (with trigger EDM)", "OrderedSet<T>"};
172 StatusCode classKey2CLIDKey(const std::vector<std::string>& property, std::vector<CSPair>& decoded);
173
174 };
175
176 MsgStream& operator<< ( MsgStream& m, const Navigation& nav ); //<! printing helper
177
178} // eof namespace
179
180#endif //#ifndef HLTNAVIGATION_H
DataVector adapter that acts like it holds const pointers.
An STL vector of pointers that by default owns its pointed-to elements.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
bool msgLvl(const MSG::Level lvl) const
MsgStream & msg() const
DataVector adapter that acts like it holds const pointers.
NavigationCore(const AthAlgTool &logger)
constructor with parent AlgTool for printing
MemoryManagement
defines 3 possible origins of the objects which are attached to TEs This should be used like this:
The Navigation class, organizes TriggerElements into the tree structure.
Definition Navigation.h:100
ServiceHandle< IClassIDSvc > m_clidSvc
Definition Navigation.h:168
bool associateExternalCollection(const std::string &label)
StatusCode classKey2CLIDKey(const std::vector< std::string > &property, std::vector< CSPair > &decoded)
bool findOwners(const T *obj, std::vector< const TriggerElement * > &owners, unsigned int id=0)
find all TriggerElements which have this object attached given feature
bool attachFeature(TriggerElement *te, const ConstDataVector< T > *feature, MemoryManagement, std::string &key, const std::string &label="")
Navigation & operator=(const Navigation &)
bool attachFeature(TriggerElement *te, const T *feature, MemoryManagement, std::string &key, const std::string &label="")
attaches feature to given TriggerElement
FullHolderFactory m_fullholderfactory
Definition Navigation.h:170
virtual StatusCode initialize() override
Gaudi::Property< std::vector< std::string > > m_dlls
Definition Navigation.h:169
Navigation(const Navigation &)
virtual ~Navigation()
const std::string getUniqueKey(const std::string &label="")
Get a unique key (not in the usual series) for a given object.
Navigation(const std::string &type, const std::string &name, const IInterface *parent)
ServiceHandle< IConversionSvc > m_serializerServiceHandle
Definition Navigation.h:167
const std::string getNextKey(const std::string &label="")
Get the next key for a given object.
std::string label(class_id_type clid, const index_or_label_type &sti_or_label) const
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
MsgStream & operator<<(MsgStream &m, const Navigation &nav)