ATLAS Offline Software
Loading...
Searching...
No Matches
HLTSequenceList.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TrigConf_HLTSequenceList
6#define TrigConf_HLTSequenceList
7
8#include <iosfwd>
9#include <string>
10#include <vector>
11#include <map>
12
14
15#include <boost/multi_index_container.hpp>
16#include <boost/multi_index/mem_fun.hpp>
17#include <boost/multi_index/hashed_index.hpp>
18#include <boost/multi_index/ordered_index.hpp>
19
20namespace TrigConf {
21
22 class HLTSequenceList;
23 class DiffStruct;
24 class HLTSequence;
25
26 std::ostream & operator<<(std::ostream &, const HLTSequenceList &);
27
28 struct seq_name_hash{};
29 struct seq_hash_id{};
30
31 typedef boost::multi_index::multi_index_container<HLTSequence*, boost::multi_index::indexed_by<
32 boost::multi_index::ordered_unique< boost::multi_index::identity<HLTSequence> >,
33 boost::multi_index::ordered_unique< boost::multi_index::tag<seq_hash_id>, boost::multi_index::const_mem_fun<HLTSequence, unsigned int, &HLTSequence::hashId> >,
34 boost::multi_index::hashed_unique< boost::multi_index::tag<seq_name_hash>, boost::multi_index::const_mem_fun<TrigConfData, const std::string&, &TrigConfData::name> >
35 >
37
38
41 public:
42
45
50 HLTSequenceList( std::vector<HLTSequence*>& HLTSequenceList );
51
54
59 void addHLTSequence( HLTSequence * sequence);
60
61 void clear();
62
63// std::vector<HLTSequence*>& sequences() { return m_HLTSequenceList; } ///< accessor to the list of sequences
64// const std::vector<HLTSequence*>& sequences() const { return m_HLTSequenceList; } ///< const accessor to the list of sequences
65
67 void print(const std::string& indent="", unsigned int detail=1) const;
68
69 bool hasTE(const std::string& name);
70
75 HLTSequence* getSequence(unsigned int id) const;
76 HLTSequence* getSequence(const std::string& tename) const;
77
84 bool getLabel(unsigned int hashId, std::string & label);
85
92 bool getHashIdFromLabel(const char * label, unsigned int & hashId);
93
94 DiffStruct* compareTo(const HLTSequenceList* o) const;
95
96 private:
97
98 friend std::ostream & operator<<(std::ostream &, const HLTSequenceList &);
99 };
100
101}
102
103#endif
104
list of HLT sequences
DiffStruct * compareTo(const HLTSequenceList *o) const
bool hasTE(const std::string &name)
HLTSequence * getSequence(unsigned int id) const
counts the number of sequences in the menu
HLTSequenceList()
default constructor
void addHLTSequence(HLTSequence *sequence)
adds an HLTSequence to the menu
friend std::ostream & operator<<(std::ostream &, const HLTSequenceList &)
void print(const std::string &indent="", unsigned int detail=1) const
print the sequence list
bool getLabel(unsigned int hashId, std::string &label)
find name from ID in the map m_IdToLabel
bool getHashIdFromLabel(const char *label, unsigned int &hashId)
find ID from name in the map m_IdToLabel
HLT sequence configuration information.
Definition HLTSequence.h:28
std::string label(const std::string &format, int i)
Definition label.h:19
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22
boost::multi_index::multi_index_container< HLTSequence *, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::identity< HLTSequence > >, boost::multi_index::ordered_unique< boost::multi_index::tag< seq_hash_id >, boost::multi_index::const_mem_fun< HLTSequence, unsigned int, &HLTSequence::hashId > >, boost::multi_index::hashed_unique< boost::multi_index::tag< seq_name_hash >, boost::multi_index::const_mem_fun< TrigConfData, const std::string &, &TrigConfData::name > > > > HLTSequenceContainer
std::ostream & operator<<(std::ostream &os, const TrigConf::IsolationLegacy &iso)