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  if(istraw>element->nStraws()) continue;
112 
113  Identifier strawID = m_pTRTHelper->straw_id(id, int(istraw));
114  int i_chip;
115 
116  int tempStrawNumber = BarrelStrawNumber(istraw, idStrawLayer, idLayerWheel);
117 
118  m_TRTStrawNeighbourSvc->getChip(strawID,i_chip);
119 
120  //21 chips in mod layer 0
121  //33 chips in mod layer 1
122  //50 chips in mod layer 2
123  if (idLayerWheel == 1) i_chip+=21;
124  if (idLayerWheel == 2) i_chip+=54;
125 
126  m_mat_chip_barrel[idPhiModule][tempStrawNumber]=i_chip;
127  m_mat_chip_barrel[idPhiModule+32][tempStrawNumber]=i_chip;
128  }
129  }
130  }
131  // ENDCAP
132  else if (m_pTRTHelper->barrel_ec(id)!=1) {
133  int idSide = idBarrelEndcap?2:-2;
134  if(((m_pTRTHelper->barrel_ec(id)==-2) || (m_pTRTHelper->barrel_ec(id)==2))) {
135 
136  if (m_pTRTHelper->barrel_ec(id)==-2) idSide =0;
137  else idSide=1;
138 
139  element = m_mgr->getEndcapElement(idSide, idLayerWheel, idStrawLayer, idPhiModule);
140  if (element == nullptr) continue;
141 
142  for(unsigned int istraw = 0; istraw < element->nStraws(); istraw++) {
143  if(istraw>element->nStraws()) continue;
144 
145  int tempStrawNumber = EndcapStrawNumber(istraw, idStrawLayer, idLayerWheel, idPhiModule, idSide);
146 
147  Identifier strawID = m_pTRTHelper->straw_id(id, int(istraw));
148 
149  int i_chip = 0;
150 
151  m_TRTStrawNeighbourSvc->getChip(strawID,i_chip);
152  i_chip -= 103;
153 
154  m_mat_chip_endcap[idPhiModule][tempStrawNumber]=i_chip;
155  m_mat_chip_endcap[idPhiModule+32][tempStrawNumber]=i_chip;
156  }
157  }
158  }
159  }
160 
161  ATH_MSG_DEBUG("TrigT1TRT initilized");
162  return StatusCode::SUCCESS;
163  }
164 
165  //----------------------------------------------
166  // execute() method called once per event
167  //----------------------------------------------
168 
169  StatusCode TrigT1TRT::execute(const EventContext &ctx) const {
170 
171  // initialise and empty board score table
172  int barrel_trigger_board[2][32][9] = {{{0}}};
173  int endcap_trigger_board[2][32][20] = {{{0}}};
174 
175  // initialise and empty empty ttc score table
176  int barrel_trigger_ttc[2][8] = {{0}};
177  int endcap_trigger_ttc[2][16] = {{0}};
178 
179  // access TRT RDO hits container
181 
182  ATH_CHECK( trtRDOs.isValid() );
183 
184  for (const auto trtRDO : *trtRDOs) {
185  const InDetRawDataCollection<TRT_RDORawData>* TRT_Collection(trtRDO);
186 
187  if(!TRT_Collection) {
188  ATH_MSG_WARNING("InDetRawDataCollection<TRT_RDORawData> is empty");
189  continue;
190  }
191  else {
192  // loop over TRT RDOs
193  for (const auto p_rdo : *TRT_Collection) {// p_rdo is pointer to trt rdo data vector
194  if(!p_rdo)
195  ATH_MSG_WARNING("pointer to TRT_RDORawData is nullptr");
196  else {
197  Identifier TRT_Identifier = p_rdo->identify();
198 
199  int barrel_ec = m_pTRTHelper->barrel_ec(TRT_Identifier);
200 
201  const TRT_LoLumRawData* p_lolum = dynamic_cast<const TRT_LoLumRawData*>(p_rdo);
202  if(!p_lolum) continue;
203 
204  // get TRT Identifier (need to know phi module, module layer, straw layer, and straw # with in the layer, to get proper straw numbering.
205  TRT_Identifier = p_lolum->identify();
206  int phi_module = m_pTRTHelper->phi_module(TRT_Identifier);
207  int layer_or_wheel = m_pTRTHelper->layer_or_wheel(TRT_Identifier);
208  int straw_layer = m_pTRTHelper->straw_layer(TRT_Identifier);
209  int straw = m_pTRTHelper->straw(TRT_Identifier);
210  int strawNumber = 0;
211  int chip = 0;
212  int board = 0;
213 
214  // Require good straw status
215  if (m_ConditionsSummary->getStatus(TRT_Identifier,ctx) != TRTCond::StrawStatus::Good)
216  continue;
217 
218  if (barrel_ec == 1 || barrel_ec == -1) {
219  int side = barrel_ec>0?1:0;
220  strawNumber = BarrelStrawNumber(straw, straw_layer, layer_or_wheel);
221  chip = m_mat_chip_barrel[phi_module][strawNumber];
222  board = BarrelChipToBoard(chip);
223  if (board < 0) {
224  ATH_MSG_FATAL( "Failure in BarrelChipToBoard" );
225  return StatusCode::FAILURE;
226  }
227 
228  // check if chip is masked
229  std::vector<int> maskedChips = m_maskedChipsBarrel.at(side).at(phi_module);
230  if(std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
231  continue;
232 
233  if ( (p_lolum)->highLevel() ) {
234  barrel_trigger_board[side][phi_module][board]++;
235  }
236 
237  }
238  else if (barrel_ec == 2 || barrel_ec == -2) {
239 
240  int side = barrel_ec>0?1:0;
241  strawNumber = EndcapStrawNumber(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
242  chip = m_mat_chip_endcap[phi_module][strawNumber];
243  board = EndcapChipToBoard(chip);
244 
245  // check if chip is masked
246  std::vector<int> maskedChips = m_maskedChipsEc.at(side).at(phi_module);
247  if(std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
248  continue;
249 
250  if ( (p_lolum)->highLevel() ) {
251  endcap_trigger_board[side][phi_module][board]++;
252  }
253  }
254  }
255  }
256  }
257  }
258 
259  // analyse board score table - fill ttc score table
260  for (int i=0; i<2; i++) {
261  for (int j=0; j<32; j++) {
262  for (int k=0; k<9; k++) {
263  if (barrel_trigger_board[i][j][k]) {
264  barrel_trigger_ttc[i][j%4]++;
265  }
266  }
267  for (int k=0; k<20; k++) {
268  if (endcap_trigger_board[i][j][k]) {
269  endcap_trigger_ttc[i][j%2]++;
270  }
271  }
272  }
273  }
274 
275  unsigned int cableWord0 = 0;
276 
277  // analyse ttc score table - set cable word
278  for (int i=0; i<2; i++) {
279  for (int j=0; j<8; j++) {
280  if (barrel_trigger_ttc[i][j] >= m_TTCMultiplicity) {
281  cableWord0 |= (uint64_t(0x1) << 21); // use of hard coded cable start
282  }
283  }
284  for (int j=0; j<16; j++) {
285  if (endcap_trigger_ttc[i][j] >= m_TTCMultiplicity) {
286  cableWord0 |= (uint64_t(0x1) << 21); // use of hard coded cable start
287  }
288  }
289  }
290 
291  ATH_MSG_DEBUG( " cableWord: " << cableWord0 );
292 
293  // form CTP obejct
295 
296  // record CTP object
297  ATH_CHECK(trtCTP.record(std::make_unique<TrtCTP>(cableWord0)));
298  ATH_MSG_DEBUG("Stored TRT CTP object with bit " << std::dec << cableWord0);
299 
300  return StatusCode::SUCCESS;
301  }
302 
303 
304  //----------------------------------------------
305  // trigger logic methods
306  //----------------------------------------------
307 
308  int TrigT1TRT::BarrelChipToBoard(int chip) const {
309  // return logical board index:
310  // 0 for Board 1S (has 10 chips) 0 - 9
311  // 1 for 1L (11) 10 - 20
312  // 2 for 2S (15) 21 - 35
313  // 3 for 2L, first 9 chips 36 - 44
314  // 4 for 2L, second 9 chips 45 - 53
315  // 5 for 3S, first 11 54 - 64
316  // 6 for 3S, second 12 65 - 76
317  // 7 for 3L, first 13 77 - 89
318  // 8 for 3L, second 14 90 - 103
319 
320  int list[] = {10, 11, 15, 9, 9, 11, 12, 13, 14};
321  int count = 0;
322  chip--;
323 
324  for (int i=0; i<9; i++) {
325  count += list[i];
326  if (chip < count) return i+1;
327  else if (chip == 104) return 9;
328  }
329 
330  throw std::runtime_error("Board not found!");
331  return -1;
332  }
333 
334  int TrigT1TRT::EndcapChipToBoard(int chip) const {
335  int Board = -1;
336 
337  int remainder = (chip-1) % 12;
338  Board = int(((chip -1) - remainder) / 12);
339  return Board;
340  }
341 
342  int TrigT1TRT::EndcapStrawNumber(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const {
343 
344  // before perfoming map, corrections need to be perfomed.
346 
347  // for eca, rotate triplets by 180 for stacks 9-16, and 25-32.
348  static const int TripletOrientation[2][32] = {
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  1,1,1,1,1,1,1,1,
356  0,0,0,0,0,0,0,0}
357  };
358 
359  int phi1=-1;
360  if(side==2) phi1=phi_stack, side=1;
361  else if (side==-2) phi1=31-phi_stack, side=0;
362  if (phi1>-1){
363  if (TripletOrientation[side][phi1]){
364  // change straw number from 0-23 in straw layer to 0-192
365  if (strawLayerNumber < 8)strawNumber = strawNumber + 24*strawLayerNumber;
366  if (strawLayerNumber > 7)strawNumber = strawNumber + 24*(strawLayerNumber -8);
367  strawNumber = (192-1)*TripletOrientation[side][phi1]+strawNumber*(1-2*TripletOrientation[side][phi1]);//actual rotation
368 
369  // take strawNumber back to 0-23
370  if (strawLayerNumber<8) strawLayerNumber = int(strawNumber/24);
371  if (strawLayerNumber>7) strawLayerNumber = int(strawNumber/24) + 8;
372  strawNumber = strawNumber%24;
373  }
374 
375  // finish rotation
376 
377  // flip straw in layer.
378 
379  if (side==0) strawNumber = 23 - strawNumber;
380 
381  // finish flipping
382  }
383 
384  // done with corrections
385 
386  // start mapping from athena identifiers to TRTViewer maps
387  int strawNumberNew=0;
388 
389  if(LayerNumber<6 && strawLayerNumber>7) {
390  strawNumberNew=strawNumberNew+(384*LayerNumber);
391  strawNumberNew=strawNumberNew+192+(strawLayerNumber%8)+(strawNumber*8);
392  }
393  else if(LayerNumber<6 && strawLayerNumber<8) {
394  strawNumberNew=strawNumberNew+(384*LayerNumber);
395  strawNumberNew=strawNumberNew + (strawLayerNumber%8) + (strawNumber*8);
396  }
397  else if(LayerNumber>5 && strawLayerNumber>7) {
398  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
399  strawNumberNew = strawNumberNew + 192 + (strawLayerNumber%8) + (8*strawNumber);
400  }
401  else if(LayerNumber>5 && strawLayerNumber<8) {
402  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
403  strawNumberNew = strawNumberNew + (strawLayerNumber%8) + (8*strawNumber);
404  }
405 
406  strawNumber=strawNumberNew;
407 
408  return strawNumber;
409  }
410 
411  int TrigT1TRT::BarrelStrawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const {
412  int addToStrawNumber=0;
413  int addToStrawNumberNext=0;
414  int i=0;
415 
416  do {
417  i++;
418  addToStrawNumber+=m_numberOfStraws[i-1];
419  addToStrawNumberNext = addToStrawNumber+m_numberOfStraws[i];
420  }
421  while(BarrelStrawLayerNumber(strawlayerNumber,LayerNumber)!=i-1);
422  strawNumber = addToStrawNumberNext - strawNumber-1;
423  return strawNumber;
424  }
425 
426  int TrigT1TRT::BarrelStrawLayerNumber(int strawLayerNumber, int LayerNumber) const {
427  if(LayerNumber==0) {
428  strawLayerNumber+=0;
429  } else if(LayerNumber==1) {
430  strawLayerNumber+=19;
431  } else if(LayerNumber==2) {
432  strawLayerNumber+=43;
433  }
434  return strawLayerNumber;
435  }
436 
437 }
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:113
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:334
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:1040
LVL1::TrigT1TRT::BarrelChipToBoard
int BarrelChipToBoard(int chip) const
Definition: TrigT1TRT.cxx:308
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:411
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:342
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:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
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:129
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:169
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:362
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
Definition: IdentifierHash.h:38
LVL1::TrigT1TRT::BarrelStrawLayerNumber
int BarrelStrawLayerNumber(int strawLayerNumber, int LayerNumber) const
Definition: TrigT1TRT.cxx:426
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