ATLAS Offline Software
TrigT1TRT.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <stdint.h>
6 #include <fstream>
7 
8 #include "TrigT1TRT.h"
9 
11 #include "nlohmann/json.hpp"
12 
13 namespace LVL1 {
14 
15  //--------------------------------
16  // Constructors and destructors
17  //--------------------------------
18 
19  TrigT1TRT::TrigT1TRT(const std::string& name, ISvcLocator* pSvcLocator) :
20  AthReentrantAlgorithm(name, pSvcLocator),
21  m_ConditionsSummary("TRT_StrawStatusSummaryTool", this),
22  m_TRTStrawNeighbourSvc("TRT_StrawNeighbourSvc", name)
23  {
24  declareProperty("ConditionsSummaryTool",m_ConditionsSummary);
25  }
26 
27  //---------------------------------
28  // initialise()
29  //---------------------------------
30 
32 
33  ATH_CHECK( m_trtCTPLocation.initialize() );
34 
35  ATH_CHECK( m_trtRDOKey.initialize() );
36 
37  ATH_CHECK( detStore()->retrieve(m_mgr, "TRT") );
38  ATH_MSG_DEBUG( "Connected to TRT DetectorManager" );
39 
40  ATH_CHECK( detStore()->retrieve(m_pTRTHelper, "TRT_ID") );
41  ATH_MSG_DEBUG( "Connected to TRT Helper" );
42 
43  ATH_CHECK( m_ConditionsSummary.retrieve() );
44 
45  ATH_CHECK( m_TRTStrawNeighbourSvc.retrieve() );
46 
47  ATH_MSG_INFO("Setting Fast-OR trigger multiplicity" << m_TTCMultiplicity );
48 
49  // Find the full path to filename:
50  std::string file = PathResolver::find_file(m_maskedChipsFile, "DATAPATH");
51  ATH_MSG_INFO("Reading file " << file);
52  std::ifstream fin(file.c_str());
53  if(!fin){
54  ATH_MSG_ERROR("Can not read file: " << file);
55  return StatusCode::FAILURE;
56  }
58 
59  m_maskedChipsBarrel = data["Barrel"].template get<std::array<std::array<std::vector<int>, 32>, 2>>();
60  m_maskedChipsEc = data["Endcap"].template get<std::array<std::array<std::vector<int>, 32>, 2>>();
61 
62  // initialize numberOfStraws array for use in strawNumber function.
63  for(int j=0; j<75; j++) {
64  m_numberOfStraws[j]=0;
65  }
66 
67  // numberofstraws in a phi module layer. m_numberOfStraws[<layer number>]
68  m_numberOfStraws[1]=15;
73  m_numberOfStraws[19]=18;
74  m_numberOfStraws[20]=19;
80  m_numberOfStraws[43]=23;
81  m_numberOfStraws[44]=23;
88  m_numberOfStraws[73]=28;
89 
90  // loop over straw hash index to create straw number mapping for TRTViewer
91  unsigned int maxHash = m_pTRTHelper->straw_layer_hash_max();
92  for (unsigned int index = 0; index < maxHash; index++) {
93  IdentifierHash idHash = index;
94  Identifier id = m_pTRTHelper->layer_id(idHash);
95 
96  int idBarrelEndcap = m_pTRTHelper->barrel_ec(id);
97  int idLayerWheel = m_pTRTHelper->layer_or_wheel(id);
98  int idPhiModule = m_pTRTHelper->phi_module(id);
99  int idStrawLayer = m_pTRTHelper->straw_layer(id);
100 
101  const InDetDD::TRT_BaseElement * element= nullptr;
102 
103  // BARREL
104  if (m_pTRTHelper->is_barrel(id)) {
105  int idSide = idBarrelEndcap?1:-1;
106  if(m_pTRTHelper->barrel_ec(id)==-1) {
107  element = m_mgr->getBarrelElement(idSide, idLayerWheel, idPhiModule, idStrawLayer);
108  if (element == nullptr) continue;
109 
110  for(unsigned int istraw = 0; istraw < element->nStraws(); istraw++) {
111 
112  Identifier strawID = m_pTRTHelper->straw_id(id, int(istraw));
113  int i_chip;
114 
115  int tempStrawNumber = BarrelStrawNumber(istraw, idStrawLayer, idLayerWheel);
116 
117  m_TRTStrawNeighbourSvc->getChip(strawID,i_chip);
118 
119  //21 chips in mod layer 0
120  //33 chips in mod layer 1
121  //50 chips in mod layer 2
122  if (idLayerWheel == 1) i_chip+=21;
123  if (idLayerWheel == 2) i_chip+=54;
124 
125  m_mat_chip_barrel[idPhiModule][tempStrawNumber]=i_chip;
126  m_mat_chip_barrel[idPhiModule+32][tempStrawNumber]=i_chip;
127  }
128  }
129  }
130  // ENDCAP
131  else if (m_pTRTHelper->barrel_ec(id)!=1) {
132  int idSide = idBarrelEndcap?2:-2;
133  if(((m_pTRTHelper->barrel_ec(id)==-2) || (m_pTRTHelper->barrel_ec(id)==2))) {
134 
135  if (m_pTRTHelper->barrel_ec(id)==-2) idSide =0;
136  else idSide=1;
137 
138  element = m_mgr->getEndcapElement(idSide, idLayerWheel, idStrawLayer, idPhiModule);
139  if (element == nullptr) continue;
140 
141  for(unsigned int istraw = 0; istraw < element->nStraws(); istraw++) {
142 
143  int tempStrawNumber = EndcapStrawNumber(istraw, idStrawLayer, idLayerWheel, idPhiModule, idSide);
144 
145  Identifier strawID = m_pTRTHelper->straw_id(id, int(istraw));
146 
147  int i_chip = 0;
148 
149  m_TRTStrawNeighbourSvc->getChip(strawID,i_chip);
150  i_chip -= 103;
151 
152  m_mat_chip_endcap[idPhiModule][tempStrawNumber]=i_chip;
153  m_mat_chip_endcap[idPhiModule+32][tempStrawNumber]=i_chip;
154  }
155  }
156  }
157  }
158 
159  ATH_MSG_DEBUG("TrigT1TRT initilized");
160  return StatusCode::SUCCESS;
161  }
162 
163  //----------------------------------------------
164  // execute() method called once per event
165  //----------------------------------------------
166 
167  StatusCode TrigT1TRT::execute(const EventContext &ctx) const {
168 
169  // initialise and empty board score table
170  int barrel_trigger_board[2][32][9] = {{{0}}};
171  int endcap_trigger_board[2][32][20] = {{{0}}};
172 
173  // initialise and empty empty ttc score table
174  int barrel_trigger_ttc[2][8] = {{0}};
175  int endcap_trigger_ttc[2][16] = {{0}};
176 
177  // access TRT RDO hits container
179 
180  ATH_CHECK( trtRDOs.isValid() );
181 
182  for (const auto trtRDO : *trtRDOs) {
183  const InDetRawDataCollection<TRT_RDORawData>* TRT_Collection(trtRDO);
184 
185  if(!TRT_Collection) {
186  ATH_MSG_WARNING("InDetRawDataCollection<TRT_RDORawData> is empty");
187  continue;
188  }
189  else {
190  // loop over TRT RDOs
191  for (const auto p_rdo : *TRT_Collection) {// p_rdo is pointer to trt rdo data vector
192  if(!p_rdo)
193  ATH_MSG_WARNING("pointer to TRT_RDORawData is nullptr");
194  else {
195  Identifier TRT_Identifier = p_rdo->identify();
196 
197  int barrel_ec = m_pTRTHelper->barrel_ec(TRT_Identifier);
198 
199  const TRT_LoLumRawData* p_lolum = dynamic_cast<const TRT_LoLumRawData*>(p_rdo);
200  if(!p_lolum) continue;
201 
202  // get TRT Identifier (need to know phi module, module layer, straw layer, and straw # with in the layer, to get proper straw numbering.
203  TRT_Identifier = p_lolum->identify();
204  int phi_module = m_pTRTHelper->phi_module(TRT_Identifier);
205  int layer_or_wheel = m_pTRTHelper->layer_or_wheel(TRT_Identifier);
206  int straw_layer = m_pTRTHelper->straw_layer(TRT_Identifier);
207  int straw = m_pTRTHelper->straw(TRT_Identifier);
208  int strawNumber = 0;
209  int chip = 0;
210  int board = 0;
211 
212  // Require good straw status
213  if (m_ConditionsSummary->getStatus(TRT_Identifier,ctx) != TRTCond::StrawStatus::Good)
214  continue;
215 
216  if (barrel_ec == 1 || barrel_ec == -1) {
217  int side = barrel_ec>0?1:0;
218  strawNumber = BarrelStrawNumber(straw, straw_layer, layer_or_wheel);
219  chip = m_mat_chip_barrel[phi_module][strawNumber];
220  board = BarrelChipToBoard(chip);
221  if (board < 0) {
222  ATH_MSG_FATAL( "Failure in BarrelChipToBoard" );
223  return StatusCode::FAILURE;
224  }
225 
226  // check if chip is masked
227  std::vector<int> maskedChips = m_maskedChipsBarrel.at(side).at(phi_module);
228  if(std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
229  continue;
230 
231  if ( (p_lolum)->highLevel() ) {
232  barrel_trigger_board[side][phi_module][board]++;
233  }
234 
235  }
236  else if (barrel_ec == 2 || barrel_ec == -2) {
237 
238  int side = barrel_ec>0?1:0;
239  strawNumber = EndcapStrawNumber(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
240  chip = m_mat_chip_endcap[phi_module][strawNumber];
241  board = EndcapChipToBoard(chip);
242 
243  // check if chip is masked
244  std::vector<int> maskedChips = m_maskedChipsEc.at(side).at(phi_module);
245  if(std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
246  continue;
247 
248  if ( (p_lolum)->highLevel() ) {
249  endcap_trigger_board[side][phi_module][board]++;
250  }
251  }
252  }
253  }
254  }
255  }
256 
257  // analyse board score table - fill ttc score table
258  for (int i=0; i<2; i++) {
259  for (int j=0; j<32; j++) {
260  for (int k=0; k<9; k++) {
261  if (barrel_trigger_board[i][j][k]) {
262  barrel_trigger_ttc[i][j%4]++;
263  }
264  }
265  for (int k=0; k<20; k++) {
266  if (endcap_trigger_board[i][j][k]) {
267  endcap_trigger_ttc[i][j%2]++;
268  }
269  }
270  }
271  }
272 
273  unsigned int cableWord0 = 0;
274 
275  // analyse ttc score table - set cable word
276  for (int i=0; i<2; i++) {
277  for (int j=0; j<8; j++) {
278  if (barrel_trigger_ttc[i][j] >= m_TTCMultiplicity) {
279  cableWord0 |= (uint64_t(0x1) << 21); // use of hard coded cable start
280  }
281  }
282  for (int j=0; j<16; j++) {
283  if (endcap_trigger_ttc[i][j] >= m_TTCMultiplicity) {
284  cableWord0 |= (uint64_t(0x1) << 21); // use of hard coded cable start
285  }
286  }
287  }
288 
289  ATH_MSG_DEBUG( " cableWord: " << cableWord0 );
290 
291  // form CTP obejct
293 
294  // record CTP object
295  ATH_CHECK(trtCTP.record(std::make_unique<TrtCTP>(cableWord0)));
296  ATH_MSG_DEBUG("Stored TRT CTP object with bit " << std::dec << cableWord0);
297 
298  return StatusCode::SUCCESS;
299  }
300 
301 
302  //----------------------------------------------
303  // trigger logic methods
304  //----------------------------------------------
305 
306  int TrigT1TRT::BarrelChipToBoard(int chip) const {
307  // return logical board index:
308  // 0 for Board 1S (has 10 chips) 0 - 9
309  // 1 for 1L (11) 10 - 20
310  // 2 for 2S (15) 21 - 35
311  // 3 for 2L, first 9 chips 36 - 44
312  // 4 for 2L, second 9 chips 45 - 53
313  // 5 for 3S, first 11 54 - 64
314  // 6 for 3S, second 12 65 - 76
315  // 7 for 3L, first 13 77 - 89
316  // 8 for 3L, second 14 90 - 103
317 
318  int list[] = {10, 11, 15, 9, 9, 11, 12, 13, 14};
319  int count = 0;
320  chip--;
321 
322  for (int i=0; i<9; i++) {
323  count += list[i];
324  if (chip < count) return i+1;
325  else if (chip == 104) return 9;
326  }
327 
328  throw std::runtime_error("Board not found!");
329  return -1;
330  }
331 
332  int TrigT1TRT::EndcapChipToBoard(int chip) const {
333  int Board = -1;
334 
335  int remainder = (chip-1) % 12;
336  Board = int(((chip -1) - remainder) / 12);
337  return Board;
338  }
339 
340  int TrigT1TRT::EndcapStrawNumber(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const {
341 
342  // before perfoming map, corrections need to be perfomed.
344 
345  // for eca, rotate triplets by 180 for stacks 9-16, and 25-32.
346  static const int TripletOrientation[2][32] = {
347  {1,1,1,1,1,1,1,1,
348  0,0,0,0,0,0,0,0,
349  1,1,1,1,1,1,1,1,
350  0,0,0,0,0,0,0,0},
351  {1,1,1,1,1,1,1,1,
352  0,0,0,0,0,0,0,0,
353  1,1,1,1,1,1,1,1,
354  0,0,0,0,0,0,0,0}
355  };
356 
357  int phi1=-1;
358  if(side==2) phi1=phi_stack, side=1;
359  else if (side==-2) phi1=31-phi_stack, side=0;
360  if (phi1>-1){
361  if (TripletOrientation[side][phi1]){
362  // change straw number from 0-23 in straw layer to 0-192
363  if (strawLayerNumber < 8)strawNumber = strawNumber + 24*strawLayerNumber;
364  if (strawLayerNumber > 7)strawNumber = strawNumber + 24*(strawLayerNumber -8);
365  strawNumber = (192-1)*TripletOrientation[side][phi1]+strawNumber*(1-2*TripletOrientation[side][phi1]);//actual rotation
366 
367  // take strawNumber back to 0-23
368  if (strawLayerNumber<8) strawLayerNumber = int(strawNumber/24);
369  if (strawLayerNumber>7) strawLayerNumber = int(strawNumber/24) + 8;
370  strawNumber = strawNumber%24;
371  }
372 
373  // finish rotation
374 
375  // flip straw in layer.
376 
377  if (side==0) strawNumber = 23 - strawNumber;
378 
379  // finish flipping
380  }
381 
382  // done with corrections
383 
384  // start mapping from athena identifiers to TRTViewer maps
385  int strawNumberNew=0;
386 
387  if(LayerNumber<6 && strawLayerNumber>7) {
388  strawNumberNew=strawNumberNew+(384*LayerNumber);
389  strawNumberNew=strawNumberNew+192+(strawLayerNumber%8)+(strawNumber*8);
390  }
391  else if(LayerNumber<6 && strawLayerNumber<8) {
392  strawNumberNew=strawNumberNew+(384*LayerNumber);
393  strawNumberNew=strawNumberNew + (strawLayerNumber%8) + (strawNumber*8);
394  }
395  else if(LayerNumber>5 && strawLayerNumber>7) {
396  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
397  strawNumberNew = strawNumberNew + 192 + (strawLayerNumber%8) + (8*strawNumber);
398  }
399  else if(LayerNumber>5 && strawLayerNumber<8) {
400  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
401  strawNumberNew = strawNumberNew + (strawLayerNumber%8) + (8*strawNumber);
402  }
403 
404  strawNumber=strawNumberNew;
405 
406  return strawNumber;
407  }
408 
409  int TrigT1TRT::BarrelStrawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const {
410  int addToStrawNumber=0;
411  int addToStrawNumberNext=0;
412  int i=0;
413 
414  do {
415  i++;
416  addToStrawNumber+=m_numberOfStraws[i-1];
417  addToStrawNumberNext = addToStrawNumber+m_numberOfStraws[i];
418  }
419  while(BarrelStrawLayerNumber(strawlayerNumber,LayerNumber)!=i-1);
420  strawNumber = addToStrawNumberNext - strawNumber-1;
421  return strawNumber;
422  }
423 
424  int TrigT1TRT::BarrelStrawLayerNumber(int strawLayerNumber, int LayerNumber) const {
425  if(LayerNumber==0) {
426  strawLayerNumber+=0;
427  } else if(LayerNumber==1) {
428  strawLayerNumber+=19;
429  } else if(LayerNumber==2) {
430  strawLayerNumber+=43;
431  }
432  return strawLayerNumber;
433  }
434 
435 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LVL1::TrigT1TRT::m_numberOfStraws
int m_numberOfStraws[75]
Definition: TrigT1TRT.h:77
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
TRT_ID::layer_id
Identifier layer_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer) const
For an individual straw layer.
Definition: TRT_ID.h:500
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
json
nlohmann::json json
Definition: HistogramDef.cxx:9
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
TRT_LoLumRawData
Definition: TRT_LoLumRawData.h:25
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetDD::TRT_DetectorManager::getBarrelElement
const TRT_BarrelElement * getBarrelElement(unsigned int positive, unsigned int moduleIndex, unsigned int phiIndex, unsigned int strawLayerIndex) const
Access Barrel Elements:---------------—(Fast)-------------------------—.
Definition: TRT_DetectorManager.cxx:103
TRT_ID::straw_layer_hash_max
size_type straw_layer_hash_max(void) const
Definition: TRT_ID.h:920
LVL1::TrigT1TRT::EndcapChipToBoard
int EndcapChipToBoard(int chip) const
Definition: TrigT1TRT.cxx:332
InDetDD::TRT_BaseElement::nStraws
unsigned int nStraws() const
Number of straws in the element.
parse
std::map< std::string, std::string > parse(const std::string &list)
Definition: egammaLayerRecalibTool.cxx:1054
LVL1::TrigT1TRT::BarrelChipToBoard
int BarrelChipToBoard(int chip) const
Definition: TrigT1TRT.cxx:306
LVL1::TrigT1TRT::m_maskedChipsBarrel
std::array< std::array< std::vector< int >, 32 >, 2 > m_maskedChipsBarrel
Definition: TrigT1TRT.h:64
LVL1::TrigT1TRT::BarrelStrawNumber
int BarrelStrawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const
Definition: TrigT1TRT.cxx:409
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::TrigT1TRT::TrigT1TRT
TrigT1TRT(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigT1TRT.cxx:19
LVL1::TrigT1TRT::m_mat_chip_endcap
unsigned char m_mat_chip_endcap[64][3840]
Definition: TrigT1TRT.h:75
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
LVL1::TrigT1TRT::EndcapStrawNumber
int EndcapStrawNumber(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const
Definition: TrigT1TRT.cxx:340
TRT::Hit::side
@ side
Definition: HitInfo.h:83
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
TrigT1TRT.h
highLevel
bool highLevel(unsigned int m_word)
Definition: driftCircle.h:88
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
file
TFile * file
Definition: tile_monitor.h:29
LVL1::TrigT1TRT::m_maskedChipsEc
std::array< std::array< std::vector< int >, 32 >, 2 > m_maskedChipsEc
Definition: TrigT1TRT.h:65
LVL1::TrigT1TRT::m_pTRTHelper
const TRT_ID * m_pTRTHelper
Definition: TrigT1TRT.h:57
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::TrigT1TRT::m_mgr
const InDetDD::TRT_DetectorManager * m_mgr
Definition: TrigT1TRT.h:56
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TrigConf::name
Definition: HLTChainList.h:35
TRTCond::StrawStatus::Good
@ Good
Definition: StrawStatus.h:18
InDetDD::TRT_DetectorManager::getEndcapElement
const TRT_EndcapElement * getEndcapElement(unsigned int positive, unsigned int wheelIndex, unsigned int strawLayerIndex, unsigned int phiIndex) const
Access Endcap Elements:---------------—(Fast)--------------------------—.
Definition: TRT_DetectorManager.cxx:119
PathResolver.h
LVL1::TrigT1TRT::initialize
virtual StatusCode initialize() override
Definition: TrigT1TRT.cxx:31
remainder
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
list of entries in a vector that are not in another
Definition: compareFlatTrees.cxx:44
LVL1::TrigT1TRT::m_trtCTPLocation
SG::WriteHandleKey< TrtCTP > m_trtCTPLocation
Definition: TrigT1TRT.h:44
LVL1::TrigT1TRT::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TrigT1TRT.cxx:167
LVL1::TrigT1TRT::m_TTCMultiplicity
Gaudi::Property< int > m_TTCMultiplicity
Definition: TrigT1TRT.h:60
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
DeMoScan.index
string index
Definition: DeMoScan.py:364
TRT_ID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel.
Definition: TRT_ID.h:857
LVL1::TrigT1TRT::m_maskedChipsFile
Gaudi::Property< std::string > m_maskedChipsFile
Definition: TrigT1TRT.h:61
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LVL1::TrigT1TRT::m_mat_chip_barrel
unsigned char m_mat_chip_barrel[64][1642]
Definition: TrigT1TRT.h:74
compute_lumi.fin
fin
Definition: compute_lumi.py:19
LVL1::TrigT1TRT::m_TRTStrawNeighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_TRTStrawNeighbourSvc
Definition: TrigT1TRT.h:53
InDetRawData::identify
virtual Identifier identify() const override final
Definition: InDetRawData.h:41
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
LVL1::TrigT1TRT::BarrelStrawLayerNumber
int BarrelStrawLayerNumber(int strawLayerNumber, int LayerNumber) const
Definition: TrigT1TRT.cxx:424
LVL1::TrigT1TRT::m_trtRDOKey
SG::ReadHandleKey< TRT_RDO_Container > m_trtRDOKey
Definition: TrigT1TRT.h:47
LVL1::TrigT1TRT::m_ConditionsSummary
ToolHandle< ITRT_StrawStatusSummaryTool > m_ConditionsSummary
Definition: TrigT1TRT.h:50
fitman.k
k
Definition: fitman.py:528
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
TRT_ID::straw_id
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
Definition: TRT_ID.h:581
Identifier
Definition: IdentifierFieldParser.cxx:14