ATLAS Offline Software
Loading...
Searching...
No Matches
CTPConfig.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef TrigConf_CTPConfig
8#define TrigConf_CTPConfig
9
10#include <iosfwd>
11#include <memory>
12
13#include "TrigConfL1Data/Menu.h"
23
24namespace TrigConf {
25
26 class DiffStruct;
27
28 class CTPConfig : public L1DataBaseclass {
29 public:
30 CTPConfig();
31 virtual ~CTPConfig() override;
32
33 // getters
34 unsigned int ctpVersion() const { return m_ctpVersion; }
35 unsigned int l1Version() const { return m_l1Version; }
36 int prescaleSetId() const { return m_PrescaleSetId; }
37 int bunchGroupSetId() const { return m_BunchGroupSetId; }
38
39 const Menu& menu() const { return m_Menu; }
40 const PrescaleSet& prescaleSet(unsigned int partition=0) const { return m_PrescaleSets[partition]; }
41 const BunchGroupSet& bunchGroupSet() const { return m_BunchGroupSet; }
43 const DeadTime& deadTime() const { return m_DeadTime; }
44 const Random& random() const { return m_Random; }
45 const CTPFiles* ctpfiles() const { return m_CTPFiles.get(); }
46 const PrioritySet& prioritySet() const { return m_PrioritySet; }
47 const Muctpi& muCTPi() const { return m_MuCTPi; }
48
49
50 Menu& menu() { return m_Menu; }
51 PrescaleSet& prescaleSet(unsigned int partition=0) { return m_PrescaleSets[partition]; }
55 Random& random() { return m_Random; }
56 CTPFiles* ctpfiles() { return m_CTPFiles.get(); }
58 Muctpi& muCTPi() { return m_MuCTPi; }
59
60 bool loadCtpFiles() const { return m_LoadCtpFiles; }
61 bool loadCtpcoreFiles() const { return m_LoadCtpcoreFiles; }
62 bool loadCtpinFiles() const { return m_LoadCtpinFiles; }
63 bool loadCtpmonFiles() const { return m_LoadCtpmonFiles; }
64
65 // setters
66 void setCTPVersion( unsigned int v );
67 void setL1Version( unsigned int v );
70
71 void clearPrescaleSets();
72 void setPrescaleSet( const PrescaleSet& pss );
73
76 void setDeadTime( const DeadTime& m ) { m_DeadTime = m; }
77 void setRandom( const Random& m ) { m_Random = m; }
78 void setCTPFiles( std::unique_ptr<CTPFiles> ctp ) { m_CTPFiles = std::move(ctp); }
79 void setPrioritySet( const PrioritySet& m ) { m_PrioritySet = m; }
80 void setMuCTPi( const Muctpi& m ) { m_MuCTPi = m; }
81 void setLoadCtpFiles (bool flag = true) {
82 m_LoadCtpFiles=flag;
86 }
87 void setLoadCtpcoreFiles (bool flag = true) { m_LoadCtpcoreFiles=flag; }
88 void setLoadCtpinFiles (bool flag = true) { m_LoadCtpinFiles=flag; }
89 void setLoadCtpmonFiles (bool flag = true) { m_LoadCtpmonFiles=flag; }
90
91
92 // helpers
93 virtual void print(const std::string& indent="", unsigned int detail=1) const override;
94
95 void writeXML(const std::string & filename, int indentWidth=2) const;
96 void writeXML(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
97
98 bool equals(const CTPConfig* other, const std::string& filename) const;
99
100 DiffStruct* compareTo(const CTPConfig* o) const;
101
102
103 private:
104
105 unsigned int m_ctpVersion;
106 unsigned int m_l1Version;
117
122 std::unique_ptr<CTPFiles> m_CTPFiles;
123
124 };
125}
126
127#endif
void setPrescaleSetId(int id)
Definition CTPConfig.h:68
const PrescaledClock & prescaledClock() const
Definition CTPConfig.h:42
unsigned int ctpVersion() const
Definition CTPConfig.h:34
CTPFiles * ctpfiles()
Definition CTPConfig.h:56
std::unique_ptr< CTPFiles > m_CTPFiles
Definition CTPConfig.h:122
virtual ~CTPConfig() override
Definition CTPConfig.cxx:25
const CTPFiles * ctpfiles() const
Definition CTPConfig.h:45
void setCTPFiles(std::unique_ptr< CTPFiles > ctp)
Definition CTPConfig.h:78
const Random & random() const
Definition CTPConfig.h:44
int prescaleSetId() const
Definition CTPConfig.h:36
const DeadTime & deadTime() const
Definition CTPConfig.h:43
unsigned int l1Version() const
Definition CTPConfig.h:35
void setPrescaleSet(const PrescaleSet &pss)
Definition CTPConfig.cxx:49
void setDeadTime(const DeadTime &m)
Definition CTPConfig.h:76
const BunchGroupSet & bunchGroupSet() const
Definition CTPConfig.h:41
int bunchGroupSetId() const
Definition CTPConfig.h:37
virtual void print(const std::string &indent="", unsigned int detail=1) const override
Definition CTPConfig.cxx:91
unsigned int m_l1Version
Definition CTPConfig.h:106
PrescaleSet m_PrescaleSets[4]
Definition CTPConfig.h:110
void setBunchGroupSet(const BunchGroupSet &m)
Definition CTPConfig.h:74
void setLoadCtpinFiles(bool flag=true)
Definition CTPConfig.h:88
BunchGroupSet & bunchGroupSet()
Definition CTPConfig.h:52
const Menu & menu() const
Definition CTPConfig.h:39
void setPrioritySet(const PrioritySet &m)
Definition CTPConfig.h:79
PrioritySet m_PrioritySet
Definition CTPConfig.h:115
const Muctpi & muCTPi() const
Definition CTPConfig.h:47
void setRandom(const Random &m)
Definition CTPConfig.h:77
Random & random()
Definition CTPConfig.h:55
const PrescaleSet & prescaleSet(unsigned int partition=0) const
Definition CTPConfig.h:40
const PrioritySet & prioritySet() const
Definition CTPConfig.h:46
void setLoadCtpmonFiles(bool flag=true)
Definition CTPConfig.h:89
PrescaledClock & prescaledClock()
Definition CTPConfig.h:53
void setMuCTPi(const Muctpi &m)
Definition CTPConfig.h:80
PrescaleSet & prescaleSet(unsigned int partition=0)
Definition CTPConfig.h:51
DeadTime & deadTime()
Definition CTPConfig.h:54
void setLoadCtpFiles(bool flag=true)
Definition CTPConfig.h:81
void setBunchGroupSetId(int id)
Definition CTPConfig.h:69
Muctpi & muCTPi()
Definition CTPConfig.h:58
bool loadCtpmonFiles() const
Definition CTPConfig.h:63
PrioritySet & prioritySet()
Definition CTPConfig.h:57
bool loadCtpinFiles() const
Definition CTPConfig.h:62
BunchGroupSet m_BunchGroupSet
Definition CTPConfig.h:111
void writeXML(const std::string &filename, int indentWidth=2) const
void setL1Version(unsigned int v)
Definition CTPConfig.cxx:37
DiffStruct * compareTo(const CTPConfig *o) const
Definition CTPConfig.cxx:76
unsigned int m_ctpVersion
Definition CTPConfig.h:105
void setCTPVersion(unsigned int v)
Definition CTPConfig.cxx:31
bool loadCtpFiles() const
Definition CTPConfig.h:60
PrescaledClock m_PrescaledClock
Definition CTPConfig.h:112
bool loadCtpcoreFiles() const
Definition CTPConfig.h:61
bool equals(const CTPConfig *other, const std::string &filename) const
Definition CTPConfig.cxx:59
void setLoadCtpcoreFiles(bool flag=true)
Definition CTPConfig.h:87
void setPrescaledClock(const PrescaledClock &m)
Definition CTPConfig.h:75
unsigned int id() const
std::ostream & indent(std::ostream &o, int lvl, int size) const
static std::vector< std::string > xmlfile
Definition iLumiCalc.h:29
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22