ATLAS Offline Software
Menu.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TrigConf_Menu
6 #define TrigConf_Menu
7 
12 #include "TrigConfL1Data/PIT.h"
13 #include "TrigConfL1Data/TIP.h"
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 #include <boost/multi_index/sequenced_index.hpp>
20 #include <boost/multi_index/random_access_index.hpp>
21 
22 #include <iosfwd>
23 #include <vector>
24 #include <string>
25 
26 
27 namespace TrigConf {
28 
29  // trigger items multi index container
30  struct tag_ctpid{};
31  struct tag_name_hash{};
32 
33  typedef boost::multi_index::multi_index_container<TriggerItem*, boost::multi_index::indexed_by<
34  boost::multi_index::random_access<>,
35  boost::multi_index::ordered_unique< boost::multi_index::identity<TriggerItem> >,
36  boost::multi_index::ordered_unique< boost::multi_index::tag<tag_ctpid>, boost::multi_index::const_mem_fun<TriggerItem, int, &TriggerItem::ctpId> >,
37  boost::multi_index::hashed_unique < boost::multi_index::tag<tag_name_hash>, boost::multi_index::const_mem_fun<TrigConfData, const std::string&, &TrigConfData::name> >
38  >
40 
43 
46 
47  class DiffStruct;
48 
49  class Menu : public L1DataBaseclass {
50  public:
51  Menu();
52  virtual ~Menu() override;
53 
55  const item_by_ctpid_t& item_by_ctpid() const;
56 
58  const item_by_name_t& item_by_name() const;
59 
60  // setter and getters
61  void addTriggerItem(TriggerItem* ti);
62  const ItemContainer& itemVector() const;
63  const ItemContainer& items() const;
64  TriggerItem* findTriggerItem(int ctpid) const { return item(ctpid); }
65  TriggerItem* item(int ctpid) const;
66  TriggerItem* item(const std::string& name) const;
67 
68 
69  const std::vector<ThresholdMonitor*>& moncountVector() const { return m_ThresholdMonitorVector; }
70  const std::vector<PIT*>& pitVector() const { return m_PITs; }
71  const std::vector<TIP*>& tipVector() const { return m_TIPs; }
72  const std::map<unsigned int, std::string>& lutOutputNames() const { return m_LUT; }
74  const CaloInfo& caloInfo() const { return m_ThresholdConfig.caloInfo(); }
75 
77 
78  std::vector<uint16_t> bunchgroupMask() const;
79 
80  // setters
82 
83  // another interface to access the TriggerThreshold vector
84  const std::vector<TriggerThreshold*>& thresholdVector() const;
86 
88  ThresholdMonitor* findThresholdMonitor(unsigned int id);
89 
90  void addLutOutputName(unsigned int, const std::string &);
91  void setLutOutputNames(const std::map<unsigned int, std::string>& lut) { m_LUT = lut; }
92 
93  void addPit(PIT* pit);
94  PIT* findPIT(unsigned int id);
95 
96  void addTip(TIP* tip);
97  TIP* findTIP(unsigned int id);
98 
99  int size() const;
100 
101  virtual void print(const std::string& indent="", unsigned int detail=1) const override;
102 
103  void writeXMLItems(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
104  void writeXMLThresholds(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
105  void writeXMLMonCounters(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
106 
107  DiffStruct* compareTo(const Menu* o) const;
108 
109  void clear();
110 
111  std::vector<TrigConf::TriggerItem*> itemsV() const;
112 
113  private:
115 #ifndef __COVERITY__
117 #endif
118  std::vector<ThresholdMonitor*> m_ThresholdMonitorVector;
119  std::vector<PIT*> m_PITs;
120  std::vector<TIP*> m_TIPs;
121  std::map<unsigned int, std::string> m_LUT; // contains the conditions out of each LUT output
122 
123  };
124 
125 
126 #ifndef __COVERITY__
127  inline
129  inline
131 
132  inline
134  inline
136 
137  inline
139  inline
140  const ItemContainer& Menu::items() const { return m_TriggerItemVector; }
141 
142  inline
143  int Menu::size() const { return m_TriggerItemVector.size(); }
144 #endif
145 
146 }
147 
148 #endif
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TrigConf::Menu::pitVector
const std::vector< PIT * > & pitVector() const
Definition: Menu.h:70
TrigConf::Menu::setLutOutputNames
void setLutOutputNames(const std::map< unsigned int, std::string > &lut)
Definition: Menu.h:91
TriggerItem.h
TrigConf::ThresholdConfig
Definition: ThresholdConfig.h:17
TrigConf::Menu::thresholdConfig
ThresholdConfig & thresholdConfig()
Definition: Menu.h:76
TrigConf::Menu::lutOutputNames
const std::map< unsigned int, std::string > & lutOutputNames() const
Definition: Menu.h:72
TrigConf::Menu::addPit
void addPit(PIT *pit)
Definition: Menu.cxx:64
TrigConf::PIT
Definition: PIT.h:13
TrigConf::item_by_name_t
ItemContainer::index< tag_name_hash >::type item_by_name_t
Definition: Menu.h:44
TrigConf::Menu::bunchgroupMask
std::vector< uint16_t > bunchgroupMask() const
Definition: Menu.cxx:40
TrigConf::Menu::findThresholdMonitor
ThresholdMonitor * findThresholdMonitor(unsigned int id)
Definition: Menu.cxx:100
TrigConf::Menu::caloInfo
const CaloInfo & caloInfo() const
Definition: Menu.h:74
TrigConf::Menu::print
virtual void print(const std::string &indent="", unsigned int detail=1) const override
Definition: Menu.cxx:211
TrigConf::Menu::findTriggerItem
TriggerItem * findTriggerItem(int ctpid) const
Definition: Menu.h:64
TrigConf::tag_ctpid
Definition: Menu.h:30
TrigConf::TIP
Definition: TIP.h:13
TrigConf::DiffStruct
Definition: DiffStruct.h:14
TrigConf::Menu::writeXMLThresholds
void writeXMLThresholds(std::ostream &xmlfile, int indentLevel=0, int indentWidth=2) const
Definition: Menu.cxx:301
TrigConf::Menu::tipVector
const std::vector< TIP * > & tipVector() const
Definition: Menu.h:71
detail
Definition: extract_histogram_tag.cxx:14
TrigConf::Menu::item
TriggerItem * item(int ctpid) const
Definition: Menu.cxx:84
TrigConf::item_by_ctpid_t
ItemContainer::index< tag_ctpid >::type item_by_ctpid_t
Definition: Menu.h:41
ThresholdMonitor.h
TrigConf::Menu::thresholdVector
const std::vector< TriggerThreshold * > & thresholdVector() const
Definition: Menu.cxx:123
TrigConf::Menu::item_by_name
item_by_name_t & item_by_name()
Definition: Menu.h:133
TrigConf::Menu::m_PITs
std::vector< PIT * > m_PITs
Definition: Menu.h:119
TrigConf::ThresholdMonitor
Definition: ThresholdMonitor.h:18
ThresholdConfig.h
TrigConf::ThresholdConfig::caloInfo
const CaloInfo & caloInfo() const
Definition: ThresholdConfig.h:64
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TrigConf::Menu::m_LUT
std::map< unsigned int, std::string > m_LUT
Definition: Menu.h:121
TrigConf::Menu::moncountVector
const std::vector< ThresholdMonitor * > & moncountVector() const
Definition: Menu.h:69
TrigConf::Menu
Definition: Menu.h:49
TrigConf::Menu::clear
void clear()
Definition: Menu.cxx:160
TrigConf::Menu::findPIT
PIT * findPIT(unsigned int id)
Definition: Menu.cxx:107
TrigConf::Menu::itemsV
std::vector< TrigConf::TriggerItem * > itemsV() const
Definition: Menu.cxx:330
TrigConf::Menu::setCaloInfo
void setCaloInfo(const CaloInfo &ci)
Definition: Menu.h:81
TrigConf::CaloInfo
Definition: CaloInfo.h:35
TrigConf::Menu::thresholdConfig
const ThresholdConfig & thresholdConfig() const
Definition: Menu.h:73
TrigConf::Menu::m_ThresholdMonitorVector
std::vector< ThresholdMonitor * > m_ThresholdMonitorVector
Definition: Menu.h:118
TrigConf::Menu::itemVector
const ItemContainer & itemVector() const
Definition: Menu.h:138
TrigConf::Menu::compareTo
DiffStruct * compareTo(const Menu *o) const
Definition: Menu.cxx:134
TrigConf::Menu::m_ThresholdConfig
ThresholdConfig m_ThresholdConfig
Definition: Menu.h:114
TrigConf::Menu::addLutOutputName
void addLutOutputName(unsigned int, const std::string &)
Definition: Menu.cxx:74
TrigConf::ThresholdConfig::setCaloInfo
void setCaloInfo(const CaloInfo &ci)
Definition: ThresholdConfig.h:65
TrigConf::Menu::addTriggerThreshold
void addTriggerThreshold(TriggerThreshold *tt)
Definition: Menu.cxx:128
TrigConf::name
Definition: HLTChainList.h:35
TrigConf::Menu::addTip
void addTip(TIP *tip)
Definition: Menu.cxx:69
TrigConf::item_by_ctpid_iterator
item_by_ctpid_t::iterator item_by_ctpid_iterator
Definition: Menu.h:42
TIP.h
TrigConf::Menu::m_TriggerItemVector
ItemContainer m_TriggerItemVector
Definition: Menu.h:116
TrigConf::ItemContainer
boost::multi_index::multi_index_container< TriggerItem *, boost::multi_index::indexed_by< boost::multi_index::random_access<>, boost::multi_index::ordered_unique< boost::multi_index::identity< TriggerItem > >, boost::multi_index::ordered_unique< boost::multi_index::tag< tag_ctpid >, boost::multi_index::const_mem_fun< TriggerItem, int, &TriggerItem::ctpId > >, boost::multi_index::hashed_unique< boost::multi_index::tag< tag_name_hash >, boost::multi_index::const_mem_fun< TrigConfData, const std::string &, &TrigConfData::name > > > > ItemContainer
Definition: Menu.h:39
TrigConf::Menu::addThresholdMonitor
void addThresholdMonitor(ThresholdMonitor *thrm)
Definition: Menu.cxx:60
PIT.h
TrigConf::item_by_name_iterator
ItemContainer::index< tag_name_hash >::type::iterator item_by_name_iterator
Definition: Menu.h:45
TrigConf::Menu::items
const ItemContainer & items() const
Definition: Menu.h:140
TrigConf::Menu::m_TIPs
std::vector< TIP * > m_TIPs
Definition: Menu.h:120
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigConf::TrigConfData::indent
std::ostream & indent(std::ostream &o, int lvl, int size) const
Definition: TrigConfData.cxx:23
TrigConf::Menu::writeXMLMonCounters
void writeXMLMonCounters(std::ostream &xmlfile, int indentLevel=0, int indentWidth=2) const
Definition: Menu.cxx:315
TrigConf::L1DataBaseclass
Definition: L1DataBaseclass.h:22
TrigConf::tag_name_hash
Definition: Menu.h:31
TrigConf::Menu::findTIP
TIP * findTIP(unsigned int id)
Definition: Menu.cxx:114
TrigConf::Menu::~Menu
virtual ~Menu() override
Definition: Menu.cxx:19
TrigConf::Menu::addTriggerItem
void addTriggerItem(TriggerItem *ti)
Definition: Menu.cxx:48
L1DataBaseclass.h
TrigConf::Menu::Menu
Menu()
Definition: Menu.cxx:15
TrigConf::Menu::writeXMLItems
void writeXMLItems(std::ostream &xmlfile, int indentLevel=0, int indentWidth=2) const
Definition: Menu.cxx:289
TrigConf::Menu::size
int size() const
Definition: Menu.h:143
TrigConf::TriggerThreshold
Definition: TriggerThreshold.h:20
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
TrigConf::Menu::item_by_ctpid
item_by_ctpid_t & item_by_ctpid()
Definition: Menu.h:128
TrigConf::TriggerItem
Definition: TriggerItem.h:25