ATLAS Offline Software
Loading...
Searching...
No Matches
L1CTPFiles.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGCONFDATA_L1CTPFiles_H
6#define TRIGCONFDATA_L1CTPFiles_H
16#include "TrigConfData/L1CTP.h"
17#include "boost/property_tree/ptree.hpp"
18
19#include <vector>
20#include <map>
21
22namespace TrigConf {
23
29 class L1CTPFiles final {
30 public:
31
32 using ptree = boost::property_tree::ptree;
33
34 static const size_t CTPCORE_LUT_SIZE {725248};
35 static const size_t CTPCORE_CAM_SIZE {55296};
36 static const size_t CTPCORE_SMX_SIZE {0};
37
38 static const size_t CTPIN_MONSEL_SIZE {124};
39 static const size_t CTPIN_MONDEC_SIZE {4096};
40
41 static const size_t CTPMON_MUX_OUTPUT_NUMBER {9};
42 static const size_t CTPMON_ADDRESS_SELECTOR_NUMBER {24};
44 static const size_t CTPMON_DECODER_SIZE {6656};
45 static const size_t CTPMON_DMX_SIZE {160};
46
48 static const std::map<MuctpiAccess, std::string> s_keyMap;
49
50 // Register the multiplexed inputs (phase) to the CTPCORE (direct electrical and from CTPIN)
52 public:
53 enum InputType { PIT, DIR, NONE };
56 size_t inputNumber() const { return m_inputNumber; }
57 const std::string& name() const { return m_name; }
58 size_t bit() const { return m_bit; }
59 size_t phase() const { return m_phase; }
60 InputType inputType() const { return m_inputType; }
61 private:
62 size_t m_inputNumber; // internal Trigger Menu Compiler index
63 std::string m_name; // trigger threshold name, a label for input to the CTP
64 size_t m_bit; // number of multiplicity bits of the threshold (it can typically have multiplicity up to 7, so up to 3 bits)
65 size_t m_phase; // double data rate flag, a parameter saying if the input comes on the rising or falling edge
66 InputType m_inputType; // input tag, clarifying the origin or a group of the inputs
67 };
68
69 // Register the CTPCORE inputs to the CTPCORE switch matrix
71 public:
72 enum InputType { CTPX, NONE };
75 size_t inputNumber() const { return m_inputNumber; }
76 const std::string& name() const { return m_name; }
77 size_t bit() const { return m_bit; }
78 InputType inputType() const { return m_inputType; }
79 private:
80 size_t m_inputNumber; // internal Trigger Menu Compiler index
81 std::string m_name; // trigger threshold name, a label for input to the CTP
82 size_t m_bit; // number of multiplicity bits of the threshold (it can typically have multiplicity up to 7, so up to 3 bits)
83 InputType m_inputType; // input tag, clarifying the origin or a group of the inputs
84 };
85
87 public:
88 CTPInCounter(const std::string& name, size_t slot, size_t cable, size_t number) :
90 const std::string& name() const { return m_name; }
91 size_t slot() const { return m_slot; }
92 size_t cable() const { return m_cable; }
93 size_t number() const { return m_number; }
94 private:
95 std::string m_name;
96 size_t m_slot;
97 size_t m_cable;
98 size_t m_number;
99 };
100
102 public:
103 CTPMonCounter(const std::string& name, size_t number) :
105 const std::string& name() const { return m_name; }
106 size_t number() const { return m_number; }
107 private:
108 std::string m_name;
109 size_t m_number;
110 };
111
113 L1CTPFiles();
114
118 bool hasCompleteCtpData() const;
119 bool hasCompleteSmxData() const;
120 bool hasCompleteMuctpiData() const;
121 bool hasCompleteTmcData() const;
122
123 const std::vector<uint32_t> & ctpcore_LUT() const;
124 const std::vector<uint32_t> & ctpcore_CAM() const;
125 const std::vector<uint32_t> & ctpcore_SMX() const;
126
127 const std::vector<uint32_t> & ctpin_MonSelector_Slot7() const;
128 const std::vector<uint32_t> & ctpin_MonSelector_Slot8() const;
129 const std::vector<uint32_t> & ctpin_MonSelector_Slot9() const;
130 const std::vector<uint32_t> & ctpin_MonDecoder_Slot7() const;
131 const std::vector<uint32_t> & ctpin_MonDecoder_Slot8() const;
132 const std::vector<uint32_t> & ctpin_MonDecoder_Slot9() const;
133
134 const std::vector<uint32_t> & ctpmon_MonSelector() const;
135 const std::vector<uint32_t> & ctpmon_MonDecoder() const;
136 const std::vector<uint32_t> & ctpmon_DMX() const;
137
138 const std::string & smx_Output() const;
139 const std::string & smx_Vhdl_Slot7() const;
140 const std::string & smx_Vhdl_Slot8() const;
141 const std::string & smx_Vhdl_Slot9() const;
142 const std::string & smx_Svfi_Slot7() const;
143 const std::string & smx_Svfi_Slot8() const;
144 const std::string & smx_Svfi_Slot9() const;
145
146 const std::vector<uint32_t> & muctpiRoi(MuctpiAccess key) const;
147 const std::vector<uint32_t> & muctpi_Extra_Ptlut(const std::string & sector) const;
148 const std::vector<uint32_t> & muctpi_Nbits() const;
149
150 const std::vector<TrigConf::L1CTPFiles::CTPCoreInput> & tmc_CtpcoreInputs() const;
151 const std::vector<TrigConf::L1CTPFiles::CTPInCounter> & tmc_CtpinCounters() const;
152 const std::vector<TrigConf::L1CTPFiles::CTPMonCounter> & tmc_CtpmonCounters() const;
153
157
158 void set_HasCompleteCtpData(bool flag);
159 void set_HasCompleteSmxData(bool flag);
160 void set_HasCompleteMuctpiData(bool flag);
161 void set_HasCompleteTmcData(bool flag);
162
163 void set_Ctpcore_LUT(std::vector<uint32_t> data);
164 void set_Ctpcore_CAM(std::vector<uint32_t> data);
165 void set_Ctpcore_SMX(std::vector<uint32_t> data);
166
167 void set_Ctpin_MonSelector_Slot7(std::vector<uint32_t> data);
168 void set_Ctpin_MonSelector_Slot8(std::vector<uint32_t> data);
169 void set_Ctpin_MonSelector_Slot9(std::vector<uint32_t> data);
170 void set_Ctpin_MonDecoder_Slot7(std::vector<uint32_t> data);
171 void set_Ctpin_MonDecoder_Slot8(std::vector<uint32_t> data);
172 void set_Ctpin_MonDecoder_Slot9(std::vector<uint32_t> data);
173
174 void set_Ctpmon_MonSelector(std::vector<uint32_t> data);
175 void set_Ctpmon_MonDecoder(std::vector<uint32_t> data);
176 void set_Ctpmon_DMX(std::vector<uint32_t> data);
177
178 void set_Smx_Output(const std::string & data);
179 void set_Smx_Vhdl_Slot7(const std::string & data);
180 void set_Smx_Vhdl_Slot8(const std::string & data);
181 void set_Smx_Vhdl_Slot9(const std::string & data);
182 void set_Smx_Svfi_Slot7(const std::string & data);
183 void set_Smx_Svfi_Slot8(const std::string & data);
184 void set_Smx_Svfi_Slot9(const std::string & data);
185
186 void set_Muctpi(MuctpiAccess key, std::vector<uint32_t> data);
187 void set_Muctpi_Extra_Ptlut(const std::string & key, std::vector<uint32_t> data);
188 void set_Muctpi_Nbits(std::vector<uint32_t> data);
189
190 void set_Tmc_CtpcoreInputs(std::vector<TrigConf::L1CTPFiles::CTPCoreInput> data);
191 void set_Tmc_CtpcoreCTPXInputs(std::vector<TrigConf::L1CTPFiles::CTPCoreCTPXInput> data);
192 void set_Tmc_CtpinCounters(std::vector<TrigConf::L1CTPFiles::CTPInCounter> data);
193 void set_Tmc_CtpmonCounters(std::vector<TrigConf::L1CTPFiles::CTPMonCounter> data);
194
196
197 void print() const;
198
199 private:
200
205
206
210 std::vector<uint32_t> m_Ctpcore_LUT;
211 std::vector<uint32_t> m_Ctpcore_CAM;
212 std::vector<uint32_t> m_Ctpcore_SMX;
213
214 std::vector<uint32_t> m_Ctpin_MonSelector_Slot7;
215 std::vector<uint32_t> m_Ctpin_MonSelector_Slot8;
216 std::vector<uint32_t> m_Ctpin_MonSelector_Slot9;
217 std::vector<uint32_t> m_Ctpin_MonDecoder_Slot7;
218 std::vector<uint32_t> m_Ctpin_MonDecoder_Slot8;
219 std::vector<uint32_t> m_Ctpin_MonDecoder_Slot9;
220
221 std::vector<uint32_t> m_Ctpmon_MonSelector;
222 std::vector<uint32_t> m_Ctpmon_MonDecoder;
223 std::vector<uint32_t> m_Ctpmon_DMX;
224
228 std::string m_Smx_Output {};
229 std::string m_Smx_Vhdl_Slot7 {};
230 std::string m_Smx_Vhdl_Slot8 {};
231 std::string m_Smx_Vhdl_Slot9 {};
232 std::string m_Smx_Svfi_Slot7 {};
233 std::string m_Smx_Svfi_Slot8 {};
234 std::string m_Smx_Svfi_Slot9 {};
235
239 std::map<std::string, std::vector<uint32_t>> m_muctpi;
240 std::map<std::string, std::vector<uint32_t>> m_muctpi_Extra_Ptlut;
241 std::vector<uint32_t> m_muctpi_Nbits;
242
243
247 std::vector<TrigConf::L1CTPFiles::CTPCoreInput> m_Tmc_CtpcoreInputs;
248 std::vector<TrigConf::L1CTPFiles::CTPCoreCTPXInput> m_Tmc_CtpcoreCTPXInputs;
249 std::vector<TrigConf::L1CTPFiles::CTPInCounter> m_Tmc_CtpinCounters;
250 std::vector<TrigConf::L1CTPFiles::CTPMonCounter> m_Tmc_CtpmonCounters;
252
253 };
254}
255
256#endif
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Base class for Trigger configuration data and wrapper around underlying representation.
CTPCoreCTPXInput(size_t inputNumber, const std::string &name, size_t bit, InputType inputType)
Definition L1CTPFiles.h:73
const std::string & name() const
Definition L1CTPFiles.h:76
CTPCoreInput(size_t inputNumber, const std::string &name, size_t bit, size_t phase, InputType inputType)
Definition L1CTPFiles.h:54
const std::string & name() const
Definition L1CTPFiles.h:57
const std::string & name() const
Definition L1CTPFiles.h:90
CTPInCounter(const std::string &name, size_t slot, size_t cable, size_t number)
Definition L1CTPFiles.h:88
CTPMonCounter(const std::string &name, size_t number)
Definition L1CTPFiles.h:103
const std::string & name() const
Definition L1CTPFiles.h:105
std::string m_Smx_Vhdl_Slot8
Definition L1CTPFiles.h:230
const std::vector< uint32_t > & ctpcore_SMX() const
L1CTPFiles()
Constructor.
std::vector< uint32_t > m_Ctpmon_DMX
Definition L1CTPFiles.h:223
void set_Muctpi(MuctpiAccess key, std::vector< uint32_t > data)
void set_Ctpmon_MonSelector(std::vector< uint32_t > data)
const std::vector< uint32_t > & muctpiRoi(MuctpiAccess key) const
std::vector< uint32_t > m_Ctpcore_SMX
Definition L1CTPFiles.h:212
void set_Tmc_CtpmonCounters(std::vector< TrigConf::L1CTPFiles::CTPMonCounter > data)
const std::vector< uint32_t > & ctpin_MonSelector_Slot7() const
static const size_t CTPMON_ADDRESS_SELECTOR_NUMBER
Definition L1CTPFiles.h:42
const std::string & smx_Svfi_Slot7() const
std::map< std::string, std::vector< uint32_t > > m_muctpi
L1 Muon files.
Definition L1CTPFiles.h:239
void set_Ctpin_MonSelector_Slot9(std::vector< uint32_t > data)
void set_HasCompleteCtpData(bool flag)
Setters of the various CTP data.
std::vector< uint32_t > m_Ctpin_MonDecoder_Slot8
Definition L1CTPFiles.h:218
std::vector< uint32_t > m_Ctpmon_MonDecoder
Definition L1CTPFiles.h:222
void set_HasCompleteSmxData(bool flag)
std::vector< TrigConf::L1CTPFiles::CTPInCounter > m_Tmc_CtpinCounters
Definition L1CTPFiles.h:249
const std::vector< uint32_t > & ctpin_MonDecoder_Slot8() const
static const size_t CTPIN_MONDEC_SIZE
Definition L1CTPFiles.h:39
std::string m_Smx_Svfi_Slot9
Definition L1CTPFiles.h:234
const std::vector< uint32_t > & ctpin_MonDecoder_Slot7() const
void set_Tmc_Data(DataStructure data)
const std::string & smx_Vhdl_Slot9() const
void set_Ctpin_MonDecoder_Slot8(std::vector< uint32_t > data)
const std::string & smx_Svfi_Slot9() const
static const std::map< MuctpiAccess, std::string > s_keyMap
Definition L1CTPFiles.h:7
std::vector< uint32_t > m_Ctpmon_MonSelector
Definition L1CTPFiles.h:221
std::vector< TrigConf::L1CTPFiles::CTPMonCounter > m_Tmc_CtpmonCounters
Definition L1CTPFiles.h:250
void set_Ctpin_MonSelector_Slot8(std::vector< uint32_t > data)
const std::string & smx_Output() const
std::string m_Smx_Svfi_Slot7
Definition L1CTPFiles.h:232
std::vector< uint32_t > m_Ctpin_MonDecoder_Slot9
Definition L1CTPFiles.h:219
void set_Tmc_CtpcoreInputs(std::vector< TrigConf::L1CTPFiles::CTPCoreInput > data)
std::vector< uint32_t > m_Ctpin_MonSelector_Slot7
Definition L1CTPFiles.h:214
bool hasCompleteSmxData() const
std::map< std::string, std::vector< uint32_t > > m_muctpi_Extra_Ptlut
Definition L1CTPFiles.h:240
const std::string & smx_Vhdl_Slot7() const
void set_Smx_Svfi_Slot8(const std::string &data)
const std::vector< uint32_t > & ctpin_MonSelector_Slot8() const
const std::vector< uint32_t > & ctpcore_LUT() const
const std::vector< uint32_t > & muctpi_Nbits() const
void set_Ctpmon_MonDecoder(std::vector< uint32_t > data)
DataStructure m_Tmc
Definition L1CTPFiles.h:251
std::vector< uint32_t > m_Ctpcore_LUT
L1_CTP_FILES.
Definition L1CTPFiles.h:210
void set_Smx_Svfi_Slot9(const std::string &data)
bool hasCompleteTmcData() const
const std::string & smx_Vhdl_Slot8() const
std::vector< uint32_t > m_Ctpin_MonDecoder_Slot7
Definition L1CTPFiles.h:217
void set_Tmc_CtpinCounters(std::vector< TrigConf::L1CTPFiles::CTPInCounter > data)
void set_Muctpi_Nbits(std::vector< uint32_t > data)
static const size_t CTPCORE_SMX_SIZE
Definition L1CTPFiles.h:36
const std::vector< uint32_t > & ctpcore_CAM() const
std::vector< TrigConf::L1CTPFiles::CTPCoreInput > m_Tmc_CtpcoreInputs
L1 TMC output informaion.
Definition L1CTPFiles.h:247
std::vector< uint32_t > m_Ctpcore_CAM
Definition L1CTPFiles.h:211
static const size_t CTPMON_SELECTOR_SIZE
Definition L1CTPFiles.h:43
const std::vector< TrigConf::L1CTPFiles::CTPInCounter > & tmc_CtpinCounters() const
void set_Ctpcore_LUT(std::vector< uint32_t > data)
void set_Ctpmon_DMX(std::vector< uint32_t > data)
static const size_t CTPMON_DMX_SIZE
Definition L1CTPFiles.h:45
static const size_t CTPMON_MUX_OUTPUT_NUMBER
Definition L1CTPFiles.h:41
bool hasCompleteCtpData() const
Accessors to the various CTP data.
std::vector< uint32_t > m_Ctpin_MonSelector_Slot9
Definition L1CTPFiles.h:216
void set_Smx_Vhdl_Slot7(const std::string &data)
void set_Ctpin_MonDecoder_Slot7(std::vector< uint32_t > data)
std::string m_Smx_Svfi_Slot8
Definition L1CTPFiles.h:233
const std::vector< uint32_t > & ctpmon_DMX() const
void set_Muctpi_Extra_Ptlut(const std::string &key, std::vector< uint32_t > data)
void set_HasCompleteMuctpiData(bool flag)
static const size_t CTPIN_MONSEL_SIZE
Definition L1CTPFiles.h:38
void set_Ctpcore_SMX(std::vector< uint32_t > data)
const std::vector< TrigConf::L1CTPFiles::CTPMonCounter > & tmc_CtpmonCounters() const
std::vector< TrigConf::L1CTPFiles::CTPCoreCTPXInput > m_Tmc_CtpcoreCTPXInputs
Definition L1CTPFiles.h:248
void set_Smx_Output(const std::string &data)
const std::string & smx_Svfi_Slot8() const
const std::vector< uint32_t > & ctpmon_MonSelector() const
std::string m_Smx_Vhdl_Slot9
Definition L1CTPFiles.h:231
void set_Smx_Vhdl_Slot9(const std::string &data)
bool hasCompleteMuctpiData() const
const std::vector< uint32_t > & ctpmon_MonDecoder() const
void set_Tmc_CtpcoreCTPXInputs(std::vector< TrigConf::L1CTPFiles::CTPCoreCTPXInput > data)
void set_Ctpin_MonSelector_Slot7(std::vector< uint32_t > data)
const std::vector< uint32_t > & ctpin_MonDecoder_Slot9() const
void set_Smx_Svfi_Slot7(const std::string &data)
void set_Ctpin_MonDecoder_Slot9(std::vector< uint32_t > data)
static const size_t CTPMON_DECODER_SIZE
Definition L1CTPFiles.h:44
std::string m_Smx_Vhdl_Slot7
Definition L1CTPFiles.h:229
std::vector< uint32_t > m_muctpi_Nbits
Definition L1CTPFiles.h:241
std::string m_Smx_Output
L1_SMX files.
Definition L1CTPFiles.h:228
boost::property_tree::ptree ptree
Definition L1CTPFiles.h:32
void set_Ctpcore_CAM(std::vector< uint32_t > data)
const std::vector< uint32_t > & ctpin_MonSelector_Slot9() const
const std::vector< TrigConf::L1CTPFiles::CTPCoreInput > & tmc_CtpcoreInputs() const
static const size_t CTPCORE_CAM_SIZE
Definition L1CTPFiles.h:35
void set_Smx_Vhdl_Slot8(const std::string &data)
void set_HasCompleteTmcData(bool flag)
std::vector< uint32_t > m_Ctpin_MonSelector_Slot8
Definition L1CTPFiles.h:215
const std::vector< uint32_t > & muctpi_Extra_Ptlut(const std::string &sector) const
static const size_t CTPCORE_LUT_SIZE
Definition L1CTPFiles.h:34
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22