ATLAS Offline Software
TRT_StrawStatus.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TRT_StrawStatus.cxx, (c) ATLAS Detector software
10 #include "Identifier/Identifier.h"
11 #include "InDetIdentifier/TRT_ID.h"
12 
16 
17 #include "TrkTrack/Track.h"
19 
21 
22 #include "VxVertex/VxContainer.h"
23 
25 
28 
29 #include "StoreGate/ReadHandle.h"
30 
32 
33 const size_t nBarrelStraws { 1642 };
34 const size_t nEndcapStraws { 3840 };
36 
37 //================ Constructor =================================================
38 
39 InDet::TRT_StrawStatus::TRT_StrawStatus(const std::string& name, ISvcLocator* pSvcLocator)
40 :
41 AthAlgorithm(name,pSvcLocator),
42 m_nEvents(0), m_runNumber(0),
43 m_accumulateHits(nullptr),
44 m_TRTHelper(nullptr)
45 {}
46 
47 //================ Destructor =================================================
48 
50 {}
51 
52 
53 //================ Initialisation =================================================
54 
56 {
57 
59  assert( (*m_accumulateHits)[0][0].size() == nAllStraws );
60  clear();
61 
62  // Code entered here will be executed once at program start.
63  // Initialize ReadHandleKey
65  ATH_CHECK(m_rdoContainerKey.initialize());
67  ATH_CHECK(m_vxContainerKey.initialize());
68  ATH_CHECK( detStore()->retrieve(m_TRTHelper, "TRT_ID"));
69  ATH_CHECK( m_TRTStrawNeighbourSvc.retrieve()) ;
70  ATH_CHECK( m_trt_hole_finder.retrieve() );
71  ATH_CHECK(m_updator.retrieve());
72  ATH_CHECK( m_mapSvc.retrieve());
73  ATH_CHECK( m_DCSSvc.retrieve());
74  ATH_MSG_DEBUG( "initialize() successful in " << name() << ", retrieved: ..., locR_cut = " << m_locR_cut << " mm." );
75  return StatusCode::SUCCESS;
76 }
77 
78 //================ Finalisation =================================================
79 
81  reportResults();
83  // Code entered here will be executed once at the end of the program run.
84  delete m_accumulateHits;
85  return StatusCode::SUCCESS;
86 }
87 
88 //================ Execution ====================================================
89 
91 
93  StatusCode sc = StatusCode::SUCCESS;
94  if (not eventInfo.isValid()) {
95  ATH_MSG_ERROR( "Unable to retrieve Event Info " );
96  return StatusCode::FAILURE;
97  }
98  int runNumber = (int) eventInfo->runNumber();
99  if (runNumber != m_runNumber) {
100  if (m_nEvents) { reportResults(); clear(); }
102  }
103  int lumiBlock0 =eventInfo->lumiBlock();
105 
106  if (not rdoContainer.isValid()) {
107  ATH_MSG_ERROR( "no TRT_RDO container available " );
108  return StatusCode::FAILURE;
109  }
111  if (not trkCollection.isValid()) {
112  ATH_MSG_ERROR( "Could not find Tracks Collection: " << m_tracksName );
113  return StatusCode::FAILURE;
114  }
115 
116  //================ Event selection
117 
119  if (not vertices.isValid()) {
120  ATH_MSG_DEBUG ("Couldn't retrieve VertexContainer with key: PrimaryVertices");
121  return StatusCode::SUCCESS; // just skip to next event in case of no vertexcontainer
122  }
123 
124  int countVertices(0);
125  for (const xAOD::Vertex* vx : *(vertices.cptr()) ) {
126  if (vx->vertexType() == xAOD::VxType::PriVtx) {
127  if ( vx-> nTrackParticles() >= 3) countVertices++;
128  }
129  }
130  if (countVertices < 1) {
131  ATH_MSG_INFO( "no vertices with at least 3 tracks found" );
132  return StatusCode::SUCCESS;
133  }
134 
135  if (m_skipBusyEvents) { // cosmic running
136  int countRDOhitsInEvent(0);
137  for (TRT_RDO_Container::const_iterator rdoIt = rdoContainer->begin(); rdoIt != rdoContainer->end(); ++rdoIt) {
138  const InDetRawDataCollection<TRT_RDORawData>* TRTCollection(*rdoIt);
139  if (not TRTCollection) continue;
140  for (DataVector<TRT_RDORawData>::const_iterator trtIt = TRTCollection->begin(); trtIt != TRTCollection->end(); ++trtIt) {
141  countRDOhitsInEvent++;
142  }
143  }
144  if (countRDOhitsInEvent>100000) {
145  ATH_MSG_INFO( "N RDO hits in event greater than 100000: " << countRDOhitsInEvent << ", exiting" );
146  return sc;
147  }
148 
149  if (trkCollection->size() > 10) {
150  ATH_MSG_INFO( "N tracks greater than 10: " << trkCollection->size() << ", exiting" );
151  return sc;
152  }
153  }
154 
155  //================ End event selection
156 
157  //================ Loop over all tracks, accumulate hits on track, also find holes on track
158 
159  std::vector<Identifier> holeIdentifiers;
160  std::vector<Identifier> holeIdentifiersWithHits; // holes on straws that have hits, it is just that the hit was not associalted to a track
161  for ( DataVector<Trk::Track>::const_iterator trackIt = trkCollection->begin(); trackIt != trkCollection->end(); ++trackIt) {
162  const Trk::Track *track = *trackIt;
163  //=== select track
164  const Trk::Perigee* perigee = (*trackIt)->perigeeParameters();
165  if ( not perigee ) { ATH_MSG_ERROR( "Trk::Perigee missing" ); continue; }
166  if ( std::abs(perigee->pT())/CLHEP::GeV < 1. ) continue; // 1 GeV pT cut
167 
168  const DataVector<const Trk::TrackStateOnSurface>* trackStates = (**trackIt).trackStateOnSurfaces();
169  if ( not trackStates ) { ATH_MSG_ERROR( "Trk::TrackStateOnSurface empty" ); continue; }
170 
171  int n_pixel_hits(0), n_sct_hits(0), n_trt_hits(0); // count hits, require minimal number of all hits
172  for ( DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStatesIt = trackStates->begin(); trackStatesIt != trackStates->end(); ++trackStatesIt ) {
173  if ( *trackStatesIt == nullptr ) { ATH_MSG_ERROR( "*trackStatesIt == 0" ); continue; }
174 
175  if ( !((*trackStatesIt)->type(Trk::TrackStateOnSurface::Measurement)) ) continue; // this skips outliers
176 
177  if ( dynamic_cast<const InDet::TRT_DriftCircleOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_trt_hits++;
178  else if ( dynamic_cast<const InDet::SCT_ClusterOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_sct_hits++;
179  else if( dynamic_cast<const InDet::PixelClusterOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_pixel_hits++;
180  }
181  if (n_pixel_hits<2 || n_sct_hits < 6 || n_trt_hits<15) continue; // end count hits
182 
183  //=== end select track
184 
185  //=== loop over all hits on track, accumulate them
186 
187  for ( DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStatesIt = trackStates->begin(); trackStatesIt != trackStates->end(); ++trackStatesIt ) {
188 
189  if ( *trackStatesIt == nullptr ) { ATH_MSG_ERROR( "*trackStatesIt == 0" ); continue; }
190 
191  if ( !((*trackStatesIt)->type(Trk::TrackStateOnSurface::Measurement)) ) continue; // this skips outliers
192 
193  const InDet::TRT_DriftCircleOnTrack *driftCircleOnTrack = dynamic_cast<const InDet::TRT_DriftCircleOnTrack *>( (*trackStatesIt)->measurementOnTrack() );
194  if ( not driftCircleOnTrack ) continue; // not TRT measurement - this way, keep both hits and outliers
195 
196  const Trk::TrackStateOnSurface& hit = **trackStatesIt;
197 
198  const Trk::TrackParameters* unbiased_track_parameters = m_updator->removeFromState( *(hit.trackParameters()),
201 
202  double unbiased_locR = unbiased_track_parameters->parameters()[Trk::locR];
203  if ( std::abs(unbiased_locR) > m_locR_cut ) continue; // same cut as the default hole search cut
204 
205  const InDet::TRT_DriftCircle *driftCircle = driftCircleOnTrack->prepRawData();
206  if ( driftCircle == nullptr ) { ATH_MSG_ERROR( "driftCircle == 0" ); continue; }
207 
208  Identifier id = driftCircle->identify();
209  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
210  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][1]++; // accumulate hits on track
211  if (driftCircle->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][3]++; // accumulate hits on track
212 
213  } // end trackStatesIt loop
214 
215  // add holeIdentifiers - fill vector
216 
217  std::unique_ptr<const Trk::TrackStates> holes (m_trt_hole_finder->getHolesOnTrack( *track ));
218  if ( holes==nullptr ) continue; // no holes found
219  for (const Trk::TrackStateOnSurface* trackStates : *holes) {
220 
221  if ( !trackStates->type( Trk::TrackStateOnSurface::Hole ) ) { ATH_MSG_ERROR( "m_trt_hole_finder returned something that is not a hole" ); continue; }
222 
223  const Trk::TrackParameters* track_parameters = trackStates->trackParameters();
224  if (!track_parameters) { ATH_MSG_WARNING( "m_trt_hole_finder track_parameters missing" ); continue; }
225 
227  if ( !(m_TRTHelper->is_trt(id)) ) { ATH_MSG_ERROR( "m_trt_hole_finder returned something that is not a TRT hole" ); continue; }
228 
229  // add se same 1.4 mm locR selection, in case it is not on by default
230  if ( std::abs( track_parameters->parameters()[Trk::locR] ) > m_locR_cut ) continue;
231 
232  holeIdentifiers.push_back( id );
233  } // end add holeIdentifiers
234 
235  } // end trackIt loop
236 
237  //================ End loop over all tracks
238 
239  //================ Loop over all hits - it includes hits from dead straws that are masked off in drift circle creation
240 
241  for (TRT_RDO_Container::const_iterator rdoIt = rdoContainer->begin(); rdoIt != rdoContainer->end(); ++rdoIt) {
242  const InDetRawDataCollection<TRT_RDORawData>* TRTCollection(*rdoIt);
243  if (TRTCollection==nullptr) continue;
244  for (DataVector<TRT_RDORawData>::const_iterator trtIt = TRTCollection->begin(); trtIt != TRTCollection->end(); ++trtIt) {
245  Identifier id = (*trtIt)->identify();
246  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
247  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][0]++; // accumulate all hits
248  if ((*trtIt)->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][2]++; // accumulate TR hits
249 
250  if (std::find(holeIdentifiers.begin(), holeIdentifiers.end(), id) != holeIdentifiers.end()) // a hole was found on the same straw, but hits is there
251  holeIdentifiersWithHits.push_back( id );
252  }
253  }
254 
255  //================ End loop over all hits
256 
257  //================ End loop over all holes, each time also save whether the straw with a hole had a hit
258 
259  for (unsigned int i=0; i<holeIdentifiers.size(); i++) {
260 
261  Identifier id = holeIdentifiers[i];
262 
263  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
264 
265  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][4]++;
266 
267  if (std::find(holeIdentifiersWithHits.begin(), holeIdentifiersWithHits.end(), id) != holeIdentifiersWithHits.end())
268  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][5]++;
269  }
270 
271  //================ End loop over all hits
272 
273  m_nEvents++;
274  last_lumiBlock0 = lumiBlock0;
275  if (m_nEvents%1000==0 && msgLvl(MSG::DEBUG)) reportResults();
276  return sc;
277 }
278 
279 //============================================================================================
280 
282  m_nEvents = 0;
283  *m_accumulateHits = {};
284  return;
285 }
286 
288  ATH_MSG_INFO( "InDet::TRT_StrawStatus::reportResults() for " << m_nEvents << " events." );
289  char fileName[300];
290  snprintf(fileName, 299,"%s.%07d_newFormat.txt", m_fileName.value().c_str(), m_runNumber);
291  FILE *f = fopen(fileName, "w");
292  fprintf(f, "%d %d %d %d %d %d %d %d %d \n", 0, 0, 0, 0, 0, 0, 0, 0, m_nEvents);
293  for (size_t i=0; i<2; i++) for (size_t j=0; j<32; j++) for (size_t k=0; k<nAllStraws; k++) {
294  int side = (i>0)?-1:1;
295  if (k>=1642) side *= 2;
296  fprintf(f, "%d %zu %zu", side, j, k);
297  for (int m=0; m<6; m++) fprintf(f, " %d", (*m_accumulateHits)[i][j][k][m]);
298  fprintf(f, "\n");
299  }
300  fclose(f);
301  return;
302 }
303 
305  ATH_MSG_INFO( "InDet::TRT_StrawStatus::printDetailedInformation() " );
306  char fileName[300];
307  snprintf(fileName, 299,"%s.%07d_printDetailedInformation.txt", m_fileName.value().c_str(), m_runNumber);
308  FILE *f = fopen(fileName, "w");
309  for (std::vector<Identifier>::const_iterator it = m_TRTHelper->straw_layer_begin(); it != m_TRTHelper->straw_layer_end(); ++it ) {
310  for (int i=0; i<=m_TRTHelper->straw_max( *it); i++) {
311  Identifier id = m_TRTHelper->straw_id( *it, i);
312  int index[6];
313  myStrawIndex(id, index);
314  int chip, HVpad;
315  m_TRTStrawNeighbourSvc->getChip(id, chip);
316  m_TRTStrawNeighbourSvc->getPad(id, HVpad);
317  if (!m_printStatusCount) {
318  ATH_MSG_INFO( "if the code crashes on the next line, there is a problem with m_TRTStrawStatusSummarySvc not being loaded " );
319  ATH_MSG_INFO( "in that case, running with reco turned on normally solves the problem, know of no better solution at the moment" );
320  ATH_MSG_INFO( "if you do not need the detailed print information, you can also just set printDetailedInformation to 0 to avoid this crash" );
322  }
323  int status = m_TRTStrawStatusSummaryTool->get_status( id );
324  int statusTemporary = m_TRTStrawStatusSummaryTool->getStatus( id );
325  int statusPermanent = m_TRTStrawStatusSummaryTool->getStatusPermanent( id );
326  for (int j=0; j<6; j++) fprintf(f, "%d ", index[j]);
327  fprintf(f, "%d %d %d %d %d\n", chip, HVpad, status, statusTemporary, statusPermanent);
328  }
329  }
330  fclose(f);
331  return;
332 }
333 
335  int side = m_TRTHelper->barrel_ec(id);
336  int layerNumber = m_TRTHelper->layer_or_wheel(id);
337  int strawLayerNumber = m_TRTHelper->straw_layer(id);
338  int strawNumber = m_TRTHelper->straw(id);
339  int straw(0);
340 
341  const int numberOfStraws[74] = { 0, 15, 31, 47, 63, 79, 96, 113, 130, 147, 164, 182, 200, 218, 236, 254, 273, 292, 311, 329, // layer 0, 329 straws, strawlayers 0-18
342  348, 368, 388, 408, 428, 448, 469, 490, 511, 532, 553, 575, 597, 619, 641, 663, 686, 709, 732, 755, 778, 802, 826, 849, // layer 1, 520 straws, strawLayers 0-23
343  872, 896, 920, 944, 968, 993, 1018, 1043, 1068, 1093, 1119, 1145, 1171, 1197, 1223, 1250, 1277, 1304, 1331, 1358, 1386, 1414, 1442, 1470, 1498, 1527, 1556, 1585, 1614, 1642 }; // layer 2
344 
345  if (abs(side)==1) { // barrel unique straw number
346  if (layerNumber==1) strawLayerNumber+= 19;
347  else if (layerNumber==2) strawLayerNumber+= 43;
348  straw = ( numberOfStraws[strawLayerNumber+1] - strawNumber -1 );
349  } else { // end-cap unique straw number
350  int board = layerNumber;
351  if (board<6) { board *= 2; if (strawLayerNumber>7) board++; }
352  else { board += 6; }
353  straw = board * 192 + strawNumber * 8 + strawLayerNumber % 8 ;
354  straw += 1642;
355  }
356  index[0] = side;
357  index[1] = layerNumber;
358  index[2] = m_TRTHelper->phi_module(id);
359  index[3] = strawLayerNumber;
360  index[4] = strawNumber;
361  index[5] = straw;
362  return;
363 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDet::TRT_StrawStatus::m_rdoContainerKey
SG::ReadHandleKey< TRT_RDO_Container > m_rdoContainerKey
Definition: TRT_StrawStatus.h:89
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
SCT_ClusterOnTrack.h
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
InDet::TRT_StrawStatus::ACCHITS_t
std::array< std::array< std::array< std::array< int, 6 >, 5482 >, 32 >, 2 > ACCHITS_t
accumulate hits, last index: 0 - all hits, 1 - hits on track, 2 - all HT (TR) hits,...
Definition: TRT_StrawStatus.h:113
TRT_RDO_Container.h
TRT_ID::straw_max
int straw_max(const Identifier &id) const
Definition: TRT_ID.cxx:1001
InDet::TRT_StrawStatus::m_DCSSvc
ServiceHandle< ITRT_DCS_ConditionsSvc > m_DCSSvc
Definition: TRT_StrawStatus.h:76
InDet::TRT_StrawStatus::m_mapSvc
ServiceHandle< ITRT_HWMappingSvc > m_mapSvc
Definition: TRT_StrawStatus.h:75
TrackParameters.h
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
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
nEndcapStraws
const size_t nEndcapStraws
Definition: TRT_StrawStatus.cxx:34
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
Trk::ParametersBase::associatedSurface
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
InDetDD::holes
@ holes
Definition: InDetDD_Defs.h:17
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::Surface::associatedDetectorElementIdentifier
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
InDet::TRT_StrawStatus::initialize
StatusCode initialize()
standard Athena-Algorithm method
Definition: TRT_StrawStatus.cxx:55
last_lumiBlock0
int last_lumiBlock0
Definition: TRT_StrawStatus.cxx:31
skel.it
it
Definition: skel.GENtoEVGEN.py:423
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
InDet::TRT_StrawStatus::clear
void clear()
Definition: TRT_StrawStatus.cxx:281
Trk::locR
@ locR
Definition: ParamDefs.h:50
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
InDet::TRT_StrawStatus::m_fileName
Gaudi::Property< std::string > m_fileName
Definition: TRT_StrawStatus.h:85
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::TRT_StrawStatus::m_accumulateHits
ACCHITS_t * m_accumulateHits
Definition: TRT_StrawStatus.h:114
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
TRT_ID::straw_layer_end
const_id_iterator straw_layer_end(void) const
Definition: TRT_ID.h:961
InDet::TRT_StrawStatus::m_TRTStrawStatusSummaryTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawStatusSummaryTool
Definition: TRT_StrawStatus.h:78
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
InDet::TRT_StrawStatus::TRT_StrawStatus
TRT_StrawStatus(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: TRT_StrawStatus.cxx:39
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::TRT_StrawStatus::m_nEvents
int m_nEvents
returns index of hardware units: board, chip, pad private fix for now, will call TRTStrawNeighbourSvc...
Definition: TRT_StrawStatus.h:109
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TRT::Hit::side
@ side
Definition: HitInfo.h:83
Track.h
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
nAllStraws
const size_t nAllStraws
Definition: TRT_StrawStatus.cxx:35
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::TrackStateOnSurface::Hole
@ Hole
A hole on the track - this is defined in the following way.
Definition: TrackStateOnSurface.h:128
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
TrackCollection.h
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
InDet::TRT_StrawStatus::execute
StatusCode execute()
standard Athena-Algorithm method
Definition: TRT_StrawStatus.cxx:90
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:242
VxContainer.h
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
Trk::ParametersBase
Definition: ParametersBase.h:55
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:236
TRT_DriftCircleOnTrack.h
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
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
InDet::TRT_StrawStatus::myStrawIndex
void myStrawIndex(Identifier id, int *index)
function that returns straw index (in range 0-5481; 0-1641 for barrel, the rest for endcap) same conv...
Definition: TRT_StrawStatus.cxx:334
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TRT_DriftCircle.h
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
InDet::TRT_StrawStatus::m_vxContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vxContainerKey
Definition: TRT_StrawStatus.h:91
InDet::TRT_StrawStatus::m_tracksName
SG::ReadHandleKey< DataVector< Trk::Track > > m_tracksName
Definition: TRT_StrawStatus.h:90
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::TRT_StrawStatus::m_updator
PublicToolHandle< Trk::IUpdator > m_updator
Definition: TRT_StrawStatus.h:80
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
nBarrelStraws
const size_t nBarrelStraws
Definition: TRT_StrawStatus.cxx:33
InDet::TRT_StrawStatus::m_TRTHelper
const TRT_ID * m_TRTHelper
Definition: TRT_StrawStatus.h:116
EventInfo.h
InDet::TRT_StrawStatus::m_skipBusyEvents
Gaudi::Property< int > m_skipBusyEvents
Definition: TRT_StrawStatus.h:83
InDet::TRT_StrawStatus::reportResults
void reportResults()
Definition: TRT_StrawStatus.cxx:287
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
DataVector< RawDataT >::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
InDet::TRT_StrawStatus::m_runNumber
int m_runNumber
Definition: TRT_StrawStatus.h:110
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::PixelClusterOnTrack
Definition: PixelClusterOnTrack.h:51
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
InDet::TRT_StrawStatus::finalize
StatusCode finalize()
standard Athena-Algorithm method
Definition: TRT_StrawStatus.cxx:80
TRT_StrawStatus.h
InDet::TRT_StrawStatus::m_TRTStrawNeighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_TRTStrawNeighbourSvc
Definition: TRT_StrawStatus.h:77
InDet::TRT_StrawStatus::m_printDetailedInformation
Gaudi::Property< int > m_printDetailedInformation
Definition: TRT_StrawStatus.h:84
merge.status
status
Definition: merge.py:17
TRT_ID::straw_layer_begin
const_id_iterator straw_layer_begin(void) const
Iterators over full set of straw_layer ids. Straw_layer ids are sorted.
Definition: TRT_ID.h:953
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
ReadHandle.h
Handle class for reading from StoreGate.
InDet::TRT_StrawStatus::m_trt_hole_finder
ToolHandle< Trk::ITrackHoleSearchTool > m_trt_hole_finder
Definition: TRT_StrawStatus.h:79
InDet::TRT_StrawStatus::m_locR_cut
Gaudi::Property< double > m_locR_cut
Definition: TRT_StrawStatus.h:82
PixelClusterOnTrack.h
InDet::TRT_StrawStatus::m_printStatusCount
std::atomic< int > m_printStatusCount
Definition: TRT_StrawStatus.h:117
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
Trk::driftCircle
@ driftCircle
Definition: MeasurementType.h:25
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
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
InDet::SCT_ClusterOnTrack
Definition: SCT_ClusterOnTrack.h:44
InDet::TRT_StrawStatus::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: TRT_StrawStatus.h:88
InDet::TRT_StrawStatus::~TRT_StrawStatus
~TRT_StrawStatus()
Default Destructor.
Definition: TRT_StrawStatus.cxx:49
InDet::TRT_StrawStatus::printDetailedInformation
void printDetailedInformation()
Definition: TRT_StrawStatus.cxx:304