ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1TGC::TGCEIFICoincidenceMap Class Reference

#include <TGCEIFICoincidenceMap.h>

Inheritance diagram for LVL1TGC::TGCEIFICoincidenceMap:
Collaboration diagram for LVL1TGC::TGCEIFICoincidenceMap:

Public Member Functions

 TGCEIFICoincidenceMap (LVL1TGCTrigger::TGCArguments *, const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey)
 TGCEIFICoincidenceMap (LVL1TGCTrigger::TGCArguments *, const SG::ReadCondHandleKey< TGCTriggerData > &readCondKey, const std::string &version, int sideId=0)
 TGCEIFICoincidenceMap (const TGCEIFICoincidenceMap &right)
TGCEIFICoincidenceMapoperator= (const TGCEIFICoincidenceMap &right)
const LVL1TGCTrigger::TGCInnerTrackletSlotgetInnerTrackletMask (const unsigned int input, const unsigned int ssc, const unsigned int sec) const
int getFlagPT (const unsigned int pt, const unsigned int ssc, const unsigned int sec) const
int getFlagROI (const unsigned int roi, const unsigned int ssc, const unsigned int sec) const
int getTriggerBit (const int slot, const int ssc, const int sec, const int reg, const int read, const int bit) const
const std::string & getVersion () const
int getSideId () const
bool isFullCW () const
void setFullCW (bool val)
bool readMap ()
void dumpMap () const
const LVL1TGCTrigger::TGCArgumentstgcArgs () const
LVL1TGCTrigger::TGCArgumentstgcArgs ()
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.

Static Protected Attributes

static constexpr unsigned int N_INNER_SECTORS = 4

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

std::bitset< kNThresholdsR2m_flagPT [kNMaxSSC][kNEndcapTrigSector]
int m_flagROI [kNRoiInSSC][kNMaxSSC][kNEndcapTrigSector]
LVL1TGCTrigger::TGCInnerTrackletSlot m_map [N_INNER_SECTORS][kNMaxSSC][kNEndcapTrigSector]
std::string m_verName
int m_side
bool m_fullCW
LVL1TGCTrigger::TGCArgumentsm_tgcArgs {}
const SG::ReadCondHandleKey< TGCTriggerData > & m_readCondKey
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Detailed Description

Definition at line 22 of file TGCEIFICoincidenceMap.h.

Constructor & Destructor Documentation

◆ TGCEIFICoincidenceMap() [1/3]

LVL1TGC::TGCEIFICoincidenceMap::TGCEIFICoincidenceMap ( LVL1TGCTrigger::TGCArguments * tgcargs,
const SG::ReadCondHandleKey< TGCTriggerData > & readCondKey )

Definition at line 18 of file TGCEIFICoincidenceMap.cxx.

20 :AthMessaging("LVL1TGC::TGCEIFICoincidenceMap"),
21 m_verName("NA"),
22 m_side(0),
23 m_fullCW(false),
24 m_tgcArgs(tgcargs),
25 m_readCondKey(readCondKey)
26{
27 setLevel(tgcArgs()->MSGLEVEL());
28
29 // intialize map
30 ATH_MSG_DEBUG("initialising the map");
31 for (size_t sec=0; sec < kNEndcapTrigSector; sec++) {
32 for (size_t ssc=0; ssc < kNMaxSSC; ssc++) {
33 for (size_t input=0; input < N_INNER_SECTORS; input++) {
34 m_map[input][ssc][sec].setTriggerBits(true);
35 }
36 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x30); // 6b'110000
37
38 for (size_t pos=0; pos < kNRoiInSSC; pos++){
39 m_flagROI[pos][ssc][sec] = 1;
40 }
41 }
42 }
43 ATH_MSG_DEBUG("end of initialisation");
44
45 return;
46}
#define ATH_MSG_DEBUG(x)
void setLevel(MSG::Level lvl)
Change the current logging level.
AthMessaging()
Default constructor:
const LVL1TGCTrigger::TGCArguments * tgcArgs() const
LVL1TGCTrigger::TGCInnerTrackletSlot m_map[N_INNER_SECTORS][kNMaxSSC][kNEndcapTrigSector]
LVL1TGCTrigger::TGCArguments * m_tgcArgs
int m_flagROI[kNRoiInSSC][kNMaxSSC][kNEndcapTrigSector]
static constexpr unsigned int N_INNER_SECTORS
std::bitset< kNThresholdsR2 > m_flagPT[kNMaxSSC][kNEndcapTrigSector]
const SG::ReadCondHandleKey< TGCTriggerData > & m_readCondKey
static constexpr unsigned int kNEndcapTrigSector
The number of endcap trigger sectors per side.
static constexpr unsigned int kNMaxSSC
The maximim number of SubSector-Clusters (SSC) (i.e.
static constexpr unsigned int kNRoiInSSC
The default number of ROIs in SSC.

◆ TGCEIFICoincidenceMap() [2/3]

LVL1TGC::TGCEIFICoincidenceMap::TGCEIFICoincidenceMap ( LVL1TGCTrigger::TGCArguments * tgcargs,
const SG::ReadCondHandleKey< TGCTriggerData > & readCondKey,
const std::string & version,
int sideId = 0 )

Definition at line 48 of file TGCEIFICoincidenceMap.cxx.

52 : AthMessaging("LVL1TGC::TGCEIFICoincidenceMap"),
53 m_verName(version),
54 m_side(sideID),
55 m_fullCW(false),
56 m_tgcArgs(tgcargs),
57 m_readCondKey(readCondKey)
58{
59 setLevel(tgcArgs()->MSGLEVEL());
60
61 // initialize map
62 ATH_MSG_DEBUG("initialising the map");
63 for (size_t sec=0; sec < kNEndcapTrigSector; sec++) {
64 for (size_t ssc=0; ssc < kNMaxSSC; ssc++) {
65 for (size_t input=0; input < N_INNER_SECTORS; input++) {
66 m_map[input][ssc][sec].setTriggerBits(true);
67 }
68 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x30); // 6b'110000
69
70 for (size_t pos=0; pos < kNRoiInSSC; pos++){
71 m_flagROI[pos][ssc][sec] = 1;
72 }
73 }
74 }
75 ATH_MSG_INFO("USE_INNER = " << tgcArgs()->USE_INNER());
76
77 if (!tgcArgs()->USE_INNER()) return;
78
79 ATH_MSG_INFO("USE_CONDDB = " << tgcArgs()->USE_CONDDB());
80
81 if (tgcArgs()->USE_CONDDB()) return;
82
83 // use full CW (i.e. different maps for each side)
84 m_fullCW = (m_verName == "v07");
85
86 // read Inner Coincidence Map
87 if (this->readMap()) {
88 ATH_MSG_INFO(" TGC EIFI CW version of " << m_verName << " is selected.");
89 } else {
90 ATH_MSG_INFO(" NOT use inner station ");
91 tgcArgs()->set_USE_INNER( false );
92 for (size_t sec=0; sec < kNEndcapTrigSector; sec++){
93 for (size_t ssc=0; ssc < kNMaxSSC; ssc++){
94 m_flagPT[ssc][sec] = std::bitset<kNThresholdsR2>(0x00); // 6b'000000
95 }
96 }
97 }
98
99 // for debug
100 //dumpMap();
101}
#define ATH_MSG_INFO(x)

◆ TGCEIFICoincidenceMap() [3/3]

LVL1TGC::TGCEIFICoincidenceMap::TGCEIFICoincidenceMap ( const TGCEIFICoincidenceMap & right)

Definition at line 104 of file TGCEIFICoincidenceMap.cxx.

105 : AthMessaging("LVL1TGC::TGCEIFICoincidenceMap"),
106 m_readCondKey(right.m_readCondKey)
107{
108 ATH_MSG_DEBUG("copy constructor");
109
110 for (size_t sec=0; sec < kNEndcapTrigSector; sec++){
111 for (size_t ssc=0; ssc < kNMaxSSC; ssc++){
112 for (size_t input=0; input < N_INNER_SECTORS; input++){
113 m_map[input][ssc][sec] = right.m_map[input][ssc][sec];
114 }
115 m_flagPT[ssc][sec] = right.m_flagPT[ssc][sec];
116
117 for (size_t pos=0; pos < kNRoiInSSC; pos++){
118 m_flagROI[pos][ssc][sec] = right.m_flagROI[pos][ssc][sec];
119 }
120 }
121 }
122 m_verName = right.m_verName;
123 m_side=right.m_side;
124 m_fullCW=right.m_fullCW;
125}

Member Function Documentation

◆ dumpMap()

void LVL1TGC::TGCEIFICoincidenceMap::dumpMap ( ) const

Definition at line 227 of file TGCEIFICoincidenceMap.cxx.

228{
229 // select right database according to a set of thresholds
230 std::string fullName="InnerCoincidenceMap."+m_verName+"._12.out";
231
232 std::ofstream file(fullName.c_str());
233
234 for (size_t sec=0; sec < kNEndcapTrigSector; sec++){
235 for (size_t ssc=0; ssc < kNMaxSSC; ssc++){
236 file << "# " << sec << " " << ssc << " ";
237 for(int i=0; i<6; i++) file << m_flagPT[ssc][sec].test(i) << " ";
238 for(int i=0; i<8; i++) file << m_flagROI[i][ssc][sec] << " ";
239 file << std::endl;
240 file << m_map[0][ssc][sec].getTriggerWord() << " "
241 << m_map[1][ssc][sec].getTriggerWord() << " "
242 << m_map[2][ssc][sec].getTriggerWord() << " "
243 << m_map[3][ssc][sec].getTriggerWord() << " "
244 << std::endl;
245 }
246 }
247 file.close();
248}
TFile * file

◆ getFlagPT()

int LVL1TGC::TGCEIFICoincidenceMap::getFlagPT ( const unsigned int pt,
const unsigned int ssc,
const unsigned int sec ) const

Definition at line 250 of file TGCEIFICoincidenceMap.cxx.

253{
254 if (pt == 0 || pt > kNThresholdsR2) return -1;
255 if (ssc >= kNMaxSSC) return 0;
256 if (sec >= kNEndcapTrigSector) return -1;
257
258 if (tgcArgs()->USE_CONDDB()) {
259 SG::ReadCondHandle<TGCTriggerData> readHandle{m_readCondKey};
260 const TGCTriggerData* readCdo{*readHandle};
261 return readCdo->getFlagPtEifi(m_side,ssc,sec)>>(pt-1) & 0x1; /* only 1st bit needed (0x1) */
262 } else {
263 return m_flagPT[ssc][sec].test(pt-1);
264 }
265}
unsigned char getFlagPtEifi(int side, int ssc, int sectorId) const
static constexpr unsigned int kNThresholdsR2
The number of pT thresholds in Run-2.

◆ getFlagROI()

int LVL1TGC::TGCEIFICoincidenceMap::getFlagROI ( const unsigned int roi,
const unsigned int ssc,
const unsigned int sec ) const

Definition at line 267 of file TGCEIFICoincidenceMap.cxx.

270{
271 if (roi >= kNRoiInSSC) return -1;
272 if (ssc >= kNMaxSSC) return 0;
273 if (sec >= kNEndcapTrigSector) return -1;
274
275 if (tgcArgs()->USE_CONDDB()) {
276 SG::ReadCondHandle<TGCTriggerData> readHandle{m_readCondKey};
277 const TGCTriggerData* readCdo{*readHandle};
278 return readCdo->getFlagRoiEifi(m_side,ssc,sec)>>roi & 0x1; /* only 1st bit needed (0x1) */
279 } else {
280 return m_flagROI[roi][ssc][sec];
281 }
282}
unsigned char getFlagRoiEifi(int side, int ssc, int sectorId) const

◆ getInnerTrackletMask()

const LVL1TGCTrigger::TGCInnerTrackletSlot * LVL1TGC::TGCEIFICoincidenceMap::getInnerTrackletMask ( const unsigned int input,
const unsigned int ssc,
const unsigned int sec ) const
inline

Definition at line 86 of file TGCEIFICoincidenceMap.h.

89{
90 if (input >= N_INNER_SECTORS) return 0;
91 if (ssc >= kNMaxSSC) return 0;
92 if (sec >= kNEndcapTrigSector) return 0;
93
94 return &(m_map[input][ssc][sec]);
95}

◆ getSideId()

int LVL1TGC::TGCEIFICoincidenceMap::getSideId ( ) const
inline

Definition at line 51 of file TGCEIFICoincidenceMap.h.

51{ return m_side; }

◆ getTriggerBit()

int LVL1TGC::TGCEIFICoincidenceMap::getTriggerBit ( const int slot,
const int ssc,
const int sec,
const int reg,
const int read,
const int bit ) const

Definition at line 284 of file TGCEIFICoincidenceMap.cxx.

290{
291 if (tgcArgs()->USE_CONDDB()) {
292 SG::ReadCondHandle<TGCTriggerData> readHandle{m_readCondKey};
293 const TGCTriggerData* readCdo{*readHandle};
294 unsigned int shift = (reg<<3) + (read<<2) + bit;
295 return readCdo->getTrigBitEifi(m_side,slot,ssc,sec)>>shift & 0x1; /* only 1st bit needed (0x1) */
296 } else {
297 return m_map[slot][ssc][sec].getTriggerBit(reg,read,bit);
298 }
299}
unsigned short getTrigBitEifi(int side, int slot, int ssc, int sectorId) const
IovVectorMap_t read(const Folder &theFolder, const SelectionCriterion &choice, const unsigned int limit=10)

◆ getVersion()

const std::string & LVL1TGC::TGCEIFICoincidenceMap::getVersion ( ) const
inline

Definition at line 50 of file TGCEIFICoincidenceMap.h.

50{ return m_verName; }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ isFullCW()

bool LVL1TGC::TGCEIFICoincidenceMap::isFullCW ( ) const
inline

Definition at line 52 of file TGCEIFICoincidenceMap.h.

52{ return m_fullCW; }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 163 of file AthMessaging.h.

164{
165 MsgStream* ms = m_msg_tls.get();
166 if (!ms) {
167 if (!m_initialized.test_and_set()) initMessaging();
168 ms = new MsgStream(m_imsg,m_nm);
169 m_msg_tls.reset( ms );
170 }
171
172 ms->setLevel (m_lvl);
173 return *ms;
174}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 178 of file AthMessaging.h.

179{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 if (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ operator=()

TGCEIFICoincidenceMap & LVL1TGC::TGCEIFICoincidenceMap::operator= ( const TGCEIFICoincidenceMap & right)

Definition at line 127 of file TGCEIFICoincidenceMap.cxx.

128{
129 ATH_MSG_INFO("operator = ");
130
131 if (this != &right) {
132 m_tgcArgs = right.m_tgcArgs;
133 for (size_t sec=0; sec < kNEndcapTrigSector; sec++){
134 for (size_t ssc=0; ssc < kNMaxSSC; ssc++){
135 for (size_t input=0; input< N_INNER_SECTORS; input++){
136 m_map[input][ssc][sec] = right.m_map[input][ssc][sec];
137 }
138 m_flagPT[ssc][sec] = right.m_flagPT[ssc][sec];
139
140 for (size_t pos=0; pos < kNRoiInSSC; pos++){
141 m_flagROI[pos][ssc][sec] = right.m_flagROI[pos][ssc][sec];
142 }
143 }
144 }
145 m_verName = right.m_verName;
146 m_side=right.m_side;
147 m_fullCW=right.m_fullCW;
148 }
149 return *this;
150}

◆ readMap()

bool LVL1TGC::TGCEIFICoincidenceMap::readMap ( )

Definition at line 153 of file TGCEIFICoincidenceMap.cxx.

154{
155 ATH_MSG_DEBUG("readMap");
156 const std::string SideName[kNSide] = {"A","C"};
157
158 // select right database according to a set of thresholds
159 std::string dbname="";
160 if (!m_fullCW) {
161 dbname = "InnerCoincidenceMap." + m_verName + "._12.db";
162 } else {
163 dbname = "InnerCoincidenceMap." + SideName[m_side]
164 + "." + m_verName + "._12.db";
165 }
166
167 //-----
168
169 std::string fullName;
170 fullName = PathResolver::FindCalibDirectory("dev")+"/TrigT1TGC/EIFI/"+dbname;
171 bool isFound =( fullName.length() > 0 );
172 if( !isFound) {
173 ATH_MSG_WARNING(" Could not found " << dbname);
174 return false ;
175 }
176
177 std::ifstream file(fullName.c_str(),std::ios::in);
178
179 static constexpr unsigned int BufferSize = 512;
180 char buf[BufferSize];
181 std::string tag;
182
183 while(file.getline(buf,BufferSize)){
184 unsigned int sectorId = 999;
185 unsigned int sscId = 999;
186 int use[kNThresholdsR2] = {0, 0, 0, 0, 0, 0};
187 int roi[kNRoiInSSC] = {1, 1, 1, 1, 1, 1, 1, 1};
188 std::istringstream header(buf);
189 header >> tag;
190 if(tag == "#"){ // read header part.
191 header >> sectorId >> sscId
192 >> use[0] >> use[1] >> use[2]
193 >> use[3] >> use[4] >> use[5]
194 >> roi[0] >> roi[1] >> roi[2] >> roi[3]
195 >> roi[4] >> roi[5] >> roi[6] >> roi[7];
196 }
197 // check Id
198 if (sectorId >= kNEndcapTrigSector ||
199 sscId >= kNMaxSSC) {
200 ATH_MSG_WARNING(" illegal parameter in database header : " << header.str()
201 << " in file " << dbname);
202 file.close();
203 return false;
204 }
205 for (size_t pt=0; pt < kNThresholdsR2; pt++){
206 m_flagPT[sscId][sectorId][pt] = use[pt];
207 }
208 for (size_t pos=0; pos < kNRoiInSSC; pos++){
209 m_flagROI[pos][sscId][sectorId] = roi[pos];
210 }
211
212 // get trigger word
213 file.getline(buf,BufferSize);
214 std::istringstream cont(buf);
215 unsigned int word;
216 for (size_t pos=0; pos < N_INNER_SECTORS; pos++) {
217 cont >> word;
218 m_map[pos][sscId][sectorId].setTriggerWord(word);
219 }
220 }
221 file.close();
222
223 return true;
224}
#define ATH_MSG_WARNING(x)
static std::string FindCalibDirectory(const std::string &logical_file_name)

◆ setFullCW()

void LVL1TGC::TGCEIFICoincidenceMap::setFullCW ( bool val)
inline

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

◆ tgcArgs() [1/2]

LVL1TGCTrigger::TGCArguments * LVL1TGC::TGCEIFICoincidenceMap::tgcArgs ( )
inline

Definition at line 59 of file TGCEIFICoincidenceMap.h.

59{ return m_tgcArgs; }

◆ tgcArgs() [2/2]

const LVL1TGCTrigger::TGCArguments * LVL1TGC::TGCEIFICoincidenceMap::tgcArgs ( ) const
inline

Definition at line 58 of file TGCEIFICoincidenceMap.h.

58{ return m_tgcArgs; }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_flagPT

std::bitset<kNThresholdsR2> LVL1TGC::TGCEIFICoincidenceMap::m_flagPT[kNMaxSSC][kNEndcapTrigSector]
private

Definition at line 68 of file TGCEIFICoincidenceMap.h.

◆ m_flagROI

int LVL1TGC::TGCEIFICoincidenceMap::m_flagROI[kNRoiInSSC][kNMaxSSC][kNEndcapTrigSector]
private

Definition at line 70 of file TGCEIFICoincidenceMap.h.

◆ m_fullCW

bool LVL1TGC::TGCEIFICoincidenceMap::m_fullCW
private

Definition at line 77 of file TGCEIFICoincidenceMap.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_map

LVL1TGCTrigger::TGCInnerTrackletSlot LVL1TGC::TGCEIFICoincidenceMap::m_map[N_INNER_SECTORS][kNMaxSSC][kNEndcapTrigSector]
private

Definition at line 73 of file TGCEIFICoincidenceMap.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_readCondKey

const SG::ReadCondHandleKey<TGCTriggerData>& LVL1TGC::TGCEIFICoincidenceMap::m_readCondKey
private

Definition at line 81 of file TGCEIFICoincidenceMap.h.

◆ m_side

int LVL1TGC::TGCEIFICoincidenceMap::m_side
private

Definition at line 76 of file TGCEIFICoincidenceMap.h.

◆ m_tgcArgs

LVL1TGCTrigger::TGCArguments* LVL1TGC::TGCEIFICoincidenceMap::m_tgcArgs {}
private

Definition at line 79 of file TGCEIFICoincidenceMap.h.

79{};

◆ m_verName

std::string LVL1TGC::TGCEIFICoincidenceMap::m_verName
private

Definition at line 75 of file TGCEIFICoincidenceMap.h.

◆ N_INNER_SECTORS

unsigned int LVL1TGC::TGCEIFICoincidenceMap::N_INNER_SECTORS = 4
staticconstexprprotected

Definition at line 62 of file TGCEIFICoincidenceMap.h.


The documentation for this class was generated from the following files: