ATLAS Offline Software
TRT_TrackExtensionTool_xk.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 // Implementation file for class InDet::TRT_TrackExtensionTool_xk
8 // (c) ATLAS Detector software
11 // Version 1.0 21/04/2004 I.Gavrilenko
13 
14 
19 #include "TrkTrack/Track.h"
21 #include <array>
22 #include <vector>
23 #include <iostream>
24 
25 namespace{
26  constexpr size_t MAX_ROAD_SIZE(399);
27 
28  std::vector<const Trk::Surface*>
29  vectorOfSurfacesFromVectorOfElements(const std::vector<const InDetDD::TRT_BaseElement*> & v){
30  size_t roadsize{0};
31  std::vector<const Trk::Surface*> surfaces;
32  for(const auto &pThisElement: v) {
33  surfaces.emplace_back(&(pThisElement->surface()));
34  if(++roadsize==MAX_ROAD_SIZE) break;
35  }
36  return surfaces;
37  }
38 }
39 
41 // Constructor
43 
45 (const std::string& t,const std::string& n,const IInterface* p)
46  : AthAlgTool(t,n,p)
47 {
48  declareInterface<ITRT_TrackExtensionTool>(this);
49 }
50 
52 // Destructor
54 
56 = default;
57 
59 // Initialisation
61 
63 {
64 
65  // Get magnetic field service
66  //
67  if(m_fieldmode != "NoField" ) {
69  }
70 
74 
75  // Get RIO_OnTrack creator with drift time information
76  //
77  ATH_CHECK(m_riontrackD.retrieve());
78  ATH_MSG_DEBUG("Retrieved tool " << m_riontrackD);
79 
80  // Get RIO_OnTrack creator without drift time information
81  //
82  ATH_CHECK(m_riontrackN.retrieve());
83  ATH_MSG_DEBUG("Retrieved tool " << m_riontrackN ) ;
84 
85  // Get detector elements road maker tool
86  //
87  ATH_CHECK(m_roadtool.retrieve());
88  ATH_MSG_DEBUG("Retrieved tool " << m_roadtool);
89 
90  // Get propagator tool
91  //
92  ATH_CHECK(m_proptool.retrieve());
93  ATH_MSG_DEBUG("Retrieved tool " << m_proptool);
94 
95  // Get updator tool
96  //
97  ATH_CHECK(m_updatortool.retrieve());
98  ATH_MSG_DEBUG("Retrieved tool " << m_updatortool);
99 
100  // Get segment selector tool
101  //
102  ATH_CHECK(m_selectortool.retrieve(DisableTool { !m_parameterization } ));
103 
104  // TRT
105  ATH_CHECK(detStore()->retrieve(m_trtid,"TRT_ID"));
106 
107  //Initialize container
109 
110  // Get output print level
111  //
112  m_outputlevel = msg().level()-MSG::DEBUG;
113  return StatusCode::SUCCESS;
114 }
115 
117 // Finalize-
119 
121 {
122  return StatusCode::SUCCESS;
123 }
124 
126 // Dumps relevant information into the MsgStream
128 
129 MsgStream& InDet::TRT_TrackExtensionTool_xk::dump( MsgStream& out ) const
130 {
131  out<<std::endl;
132  return dumpConditions(out);
133 }
134 
135 
137 // Dumps conditions information into the MsgStream
139 
141 {
142  auto pad = [](const std::string & s)->std::string{
143  std::string s1(s.size(),' ');
144  s1+="|";
145  return s + s1 +"\n";
146  };
147  const std::array<std::string,9> fieldmode{"NoField" ,"ConstantField","SolenoidalField",
148  "ToroidalField" ,"Grid3DField" ,"RealisticField" ,
149  "UndefinedField","AthenaField" , "?????" };
151  if(mode<0 || mode>8 ) mode = 8;
152  std::string lineSeparator(90,'-');
153  lineSeparator = "|" + lineSeparator + "|\n";
154  const auto & w12 = std::setw(12);
155  const auto & sp5 = std::setprecision(5);
156  const std::string spaces = " |\n";
157  out<< lineSeparator;
158  out<<"| TRT container | "<< pad(m_trtname.key());
159  out<<"| Tool for propagation | "<< pad(m_proptool.type());
160  out<<"| Tool for updator | "<< pad(m_updatortool.type());
161  out<<"| Tool for rio on trackD | "<< pad(m_riontrackD.type());
162  out<<"| Tool for rio on trackN | "<< pad(m_riontrackN.type());
163  out<<"| Tool for road builder | "<< pad(m_roadtool.type());
164  out<<"| Magnetic field mode | "<< pad(fieldmode[mode]);
165  out<<"| Segments find mode | "<< w12 << m_segmentFindMode << spaces;
166  out<<"| TRT road half width (mm)| "<< w12 << sp5<< m_roadwidth << spaces;
167  out<<"| Min number DriftCircles | "<< w12 << m_minNumberDCs << spaces;
168  out<<"| Use drift time ? | "<< w12 << m_usedriftrad << spaces;
169  out<<"| Z vertex half width | "<< w12 << m_zVertexWidth << spaces;
170  out<<"| Scalefactor hit error | "<< w12 << m_scale_error <<spaces;
171  out<<"| Max impact parameter | "<< w12 << m_impact <<spaces;
172  out<< lineSeparator;
173  return out;
174 }
175 
177 // Dumps relevant information into the ostream
179 
180 std::ostream& InDet::TRT_TrackExtensionTool_xk::dump( std::ostream& out ) const
181 {
182  return out;
183 }
184 
186 // Overload of << operator MsgStream
188 
189 MsgStream& InDet::operator <<
190  (MsgStream& sl,const InDet::TRT_TrackExtensionTool_xk& se)
191 {
192  return se.dump(sl);
193 }
194 
196 // Overload of << operator std::ostream
198 
199 std::ostream& InDet::operator <<
200  (std::ostream& sl,const InDet::TRT_TrackExtensionTool_xk& se)
201 {
202  return se.dump(sl);
203 }
204 
206 // Track extension initiation
208 
209 std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData>
210 InDet::TRT_TrackExtensionTool_xk::newEvent(const EventContext& ctx) const
211 {
213 
214  if((not trtcontainer.isValid()) && m_outputlevel<=0) {
215  std::stringstream msg;
216  msg << "Missing TRT_DriftCircleContainer " << m_trtname.key();
217  throw std::runtime_error( msg.str() );
218  }
219 
220  // Get AtlasFieldCache
221  MagField::AtlasFieldCache fieldCache;
222 
224  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
225  if (fieldCondObj == nullptr) {
226  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
227  return nullptr;
228  }
229  fieldCondObj->getInitializedCache (fieldCache);
230 
231  Trk::MagneticFieldProperties fieldprop = ( fieldCache.solenoidOn()
232  ? m_fieldprop
234 
235  auto event_data = std::make_unique<EventData>(EventData(trtcontainer.cptr(), m_maxslope));
236  event_data->m_trajectory.set(fieldprop, fieldCondObj);
237  event_data->m_trajectory.set (m_trtid,
238  m_proptool.get(),
239  m_updatortool.get(),
240  m_riontrackD.get(),
241  m_riontrackN.get(),
242  m_roadwidth,
244  m_impact,
247  event_data->m_measurement.reserve(200);
248  return event_data;
249 }
250 
252 // Main methods for track extension to TRT
254 
255 std::vector<const Trk::MeasurementBase*>&
257  const Trk::Track& Tr,
260 {
263  event_data.m_measurement.clear();
264  const Trk::TrackStates* tsos = Tr.trackStateOnSurfaces();
265  const Trk::TrackParameters* par = tsos->back()->trackParameters(); //tsos owns this
266  if(!par ) return event_data.m_measurement;
267  const Trk::TrackParameters* parb = tsos->front()->trackParameters(); //tsos owns this
268  if(parb && par!=parb) {
269  const Amg::Vector3D& g1 = par ->position();
270  const Amg::Vector3D& g2 = parb->position();
271  if((g2.x()*g2.x()+g2.y()*g2.y()) > (g1.x()*g1.x()+g1.y()*g1.y())) par=parb;
272  }
273  return extendTrackFromParameters(ctx, par, event_data,used);
274 }
275 
277 // Main methods for track extension to TRT for pixles+sct tracks
279 
280 std::vector<const Trk::MeasurementBase*>&
282  const Trk::TrackParameters * par,
285 {
288  return extendTrackFromParameters(ctx, par, event_data, used);
289 }
290 
291 
292 std::vector<const Trk::MeasurementBase*>&
294  const Trk::TrackParameters * par,
297 {
298  event_data.m_measurement.clear();
299  if(isGoodExtension(ctx, par,event_data,used)) event_data.m_trajectory.convert(event_data.m_measurement);
300  return event_data.m_measurement;
301 }
302 
304 // Main methods for segment finding in TRT for TRT seeds
306 
309  const Trk::TrackParameters * par,
312 {
315 
316  int nCut = m_minNumberDCs;
317  if(m_parameterization) {nCut = m_selectortool->minNumberDCs(par);
318  if(nCut<m_minNumberDCs) nCut=m_minNumberDCs;}
319 
320  // Get AtlasFieldCache
321  MagField::AtlasFieldCache fieldCache;
322 
324  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
325  if (fieldCondObj == nullptr) {
326  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
327  return nullptr;
328  }
329  fieldCondObj->getInitializedCache (fieldCache);
330 
331  // TRT detector elements road builder
332  //
333  const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
334  m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum,
335  used);
336 
337  if(int(detectorElements.size())< nCut) return nullptr;
338 
339  // Array pointers to surface preparation
340  //
341  auto surfaces =vectorOfSurfacesFromVectorOfElements(detectorElements);
342 
343  // Global position on surfaces production
344  //
346  if(!Tp.production(par)) return nullptr;
347  std::vector< std::pair<Amg::Vector3D,double> > gpos;
348  m_proptool->globalPositions(ctx, Tp, surfaces, gpos, m_fieldprop);
349 
350  // Initiate trajectory
351  //
352  event_data.m_trajectory.initiateForTRTSeed(gpos,detectorElements,event_data.m_trtcontainer,Tp);
353  if(event_data.m_trajectory.naElements() < nCut) return nullptr;
354  event_data.m_maxslope = .0002 ;
355  if(event_data.m_trajectory.isFirstElementBarrel()) {
357  else event_data.m_trajectory.trackFindingWithoutDriftTime(event_data.m_maxslope);
358  if(!event_data.m_trajectory.searchStartStop()) {return nullptr;}
359  } else {
361  if(!event_data.m_trajectory.searchStartStop()) { return nullptr;}
362  event_data.m_trajectory.radiusCorrection();
364  else event_data.m_trajectory.trackFindingWithoutDriftTimeBL(event_data.m_maxslope);
365  if(!event_data.m_trajectory.searchStartStop()) { return nullptr;}
366  }
367 
368  // Track associate with clusters and holes
369  //
371  event_data.m_maxslope = m_maxslope;
372 
373  // Trajectory quality test
374  //
375  int nc = event_data.m_trajectory.nclusters();
376  int nh = event_data.m_trajectory.nholes ();
377  if( nc < nCut || (1000*nc) < (700*(nc+nh)) ) return nullptr;
378 
379  if (m_segmentFindMode==0) {
381  return nullptr;
382  }
383  else if(m_segmentFindMode==1) {
385  return nullptr;
386  }
387  else if(m_segmentFindMode==2) {
389  return nullptr;
390  }
391  else {
392  if(!event_data.m_trajectory.fitter())
393  return nullptr;
394  }
395 
396  if(event_data.m_trajectory.nclusters() < nCut) return nullptr;
397 
398  // Trk::TrackSegment production
399  //
400  return event_data.m_trajectory.convert();
401 }
402 
404 // Test possiblity extend track to TRT for pixels+sct tracks
406 
407 bool
409  const Trk::TrackParameters * par,
412 {
413  // Get AtlasFieldCache
414  MagField::AtlasFieldCache fieldCache;
415 
417  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
418  if (fieldCondObj == nullptr) {
419  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
420  return false;
421  }
422  fieldCondObj->getInitializedCache (fieldCache);
423  // TRT detector elements road builder
424  //
425  const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
426  m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum, used);
427  if (int(detectorElements.size()) < m_minNumberDCs)
428  return false;
429  // Array pointers to surface preparation
430  //
431  auto surfaces = vectorOfSurfacesFromVectorOfElements(detectorElements);
432 
433  // Global position on surfaces production
434  //
436  if(!Tp.production(par)) return false;
437  std::vector< std::pair<Amg::Vector3D,double> > gpos;
438  m_proptool->globalPositions(ctx, Tp,surfaces,gpos,m_fieldprop);
439 
440  // Initiate trajectory
441  //
442 
443  event_data.m_trajectory.initiateForPrecisionSeed(gpos,detectorElements,event_data.m_trtcontainer,Tp);
444  if(event_data.m_trajectory.naElements() < m_minNumberDCs) return false;
445 
446  // Track finding
447  //
449  else event_data.m_trajectory.trackFindingWithoutDriftTime(event_data.m_maxslope);
450 
451  // Track associate with clusters and holes
452  //
454 
455  // Final test quality
456  //
457  return event_data.m_trajectory.nclusters() >= m_minNumberDCs;
458 }
459 
461 // Methods for track extension to TRT for pixles+sct tracks
462 // and new track production
464 
465 Trk::Track*
467  const Trk::Track& Tr,
470 {
473 
474  const Trk::TrackStates* tsos = Tr.trackStateOnSurfaces();
475 
476  // Test conditions to start track extension to TRT
477  //
478  const Trk::TrackParameters* pe = tsos->back()->trackParameters();
479  if(!pe) return nullptr;
480  if(!pe->covariance()) return nullptr;
481  const Trk::TrackParameters* pb = tsos->front()->trackParameters();
482  if(!pb) return nullptr;
483  if(!pb->covariance()) return nullptr;
484 
485  // Number PIX and SCT clusters cuts
486  //
487  if(!numberPIXandSCTclustersCut(Tr)) return nullptr;
488 
489  // Test possibility extend track and new track production
490  //
491  if(isGoodExtension(ctx, pe,event_data,used)) return event_data.m_trajectory.convert(Tr);
492  return nullptr;
493 }
494 
496 // Number of SCT clusters test for start extension
498 
499 bool
501 {
502  if(m_minNumberSCT <=0 && m_minNumberPIX <=0) return true;
503  const Trk::TrackStates*tsos = Tr.trackStateOnSurfaces();
504  Trk::TrackStates::const_iterator s = tsos->begin(), se = tsos->end();
505  int npix = 0;
506  int nsct = 0;
507  for(; s!=se; ++s) {
508  if((*s)->type(Trk::TrackStateOnSurface::Measurement)) {
509  const Trk::MeasurementBase* mb = (*s)->measurementOnTrack();
510  if(!mb) continue;
511  const Trk::RIO_OnTrack* ri = dynamic_cast<const Trk::RIO_OnTrack*>(mb);
512  if(!ri) continue;
513  const Trk::PrepRawData* rd = ri->prepRawData();
514  if(!rd) continue;
515  const InDet::SiCluster* si = dynamic_cast<const InDet::SiCluster*>(rd);
516  if(si) {
517  if(dynamic_cast<const InDet::SCT_Cluster*>(si)) ++nsct;
518  else ++npix;
519  }
520  else return false;
521  }
522  }
523  return npix >= m_minNumberPIX && nsct >= m_minNumberSCT;
524 }
InDet::TRT_TrackExtensionTool_xk::numberPIXandSCTclustersCut
bool numberPIXandSCTclustersCut(const Trk::Track &) const
Definition: TRT_TrackExtensionTool_xk.cxx:500
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
used
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::TRT_Trajectory_xk::fitter
bool fitter()
Definition: TRT_Trajectory_xk.cxx:753
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
keylayer_zslicemap.pb
pb
Definition: keylayer_zslicemap.py:188
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
InDet::TRT_TrackExtensionTool_xk::m_scale_error
DoubleProperty m_scale_error
Definition: TRT_TrackExtensionTool_xk.h:169
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::TRT_TrackExtensionTool_xk::EventData::m_measurement
std::vector< const Trk::MeasurementBase * > m_measurement
Definition: TRT_TrackExtensionTool_xk.h:116
InDet::TRT_Trajectory_xk::convert
void convert(std::vector< const Trk::MeasurementBase * > &)
Definition: TRT_Trajectory_xk.cxx:526
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
InDet::TRT_TrackExtensionTool_xk::m_updatortool
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
Definition: TRT_TrackExtensionTool_xk.h:138
InDet::TRT_TrackExtensionTool_xk::m_minNumberSCT
IntegerProperty m_minNumberSCT
Definition: TRT_TrackExtensionTool_xk.h:154
InDet::TRT_TrackExtensionTool_xk::m_fieldmode
StringProperty m_fieldmode
Definition: TRT_TrackExtensionTool_xk.h:171
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
InDet::TRT_TrackExtensionTool_xk::m_trtid
const TRT_ID * m_trtid
Definition: TRT_TrackExtensionTool_xk.h:132
InDet::TRT_TrackExtensionTool_xk::dump
virtual MsgStream & dump(MsgStream &out) const override
Definition: TRT_TrackExtensionTool_xk.cxx:129
InDet::TRT_TrackExtensionTool_xk::m_outputlevel
int m_outputlevel
Definition: TRT_TrackExtensionTool_xk.h:148
InDet::TRT_TrackExtensionTool_xk::extendTrack
virtual std::vector< const Trk::MeasurementBase * > & extendTrack(const EventContext &ctx, const Trk::Track &, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
Definition: TRT_TrackExtensionTool_xk.cxx:256
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
InDet::TRT_Trajectory_xk::trackFindingWithoutDriftTime
void trackFindingWithoutDriftTime(double)
Definition: TRT_Trajectory_xk.cxx:290
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::TrackSegment
Definition: TrackSegment.h:56
InDet::TRT_TrackExtensionTool_xk::dumpConditions
MsgStream & dumpConditions(MsgStream &out) const
Definition: TRT_TrackExtensionTool_xk.cxx:140
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDet::TRT_TrackExtensionTool_xk::EventData::m_trtcontainer
const TRT_DriftCircleContainer * m_trtcontainer
Definition: TRT_TrackExtensionTool_xk.h:115
InDet::TRT_TrackExtensionTool_xk::m_parameterization
BooleanProperty m_parameterization
Definition: TRT_TrackExtensionTool_xk.h:167
keylayer_zslicemap.se
se
Definition: keylayer_zslicemap.py:194
SCT_Cluster.h
InDet::TRT_TrackExtensionTool_xk::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: TRT_TrackExtensionTool_xk.h:146
LArG4AODNtuplePlotter.pe
pe
Definition: LArG4AODNtuplePlotter.py:116
InDet::TRT_TrackExtensionTool_xk::m_minNumberPIX
IntegerProperty m_minNumberPIX
Definition: TRT_TrackExtensionTool_xk.h:156
InDet::TRT_TrackExtensionTool_xk::m_segmentFindMode
IntegerProperty m_segmentFindMode
Definition: TRT_TrackExtensionTool_xk.h:150
InDet::TRT_Trajectory_xk::buildTrajectoryForPrecisionSeed
void buildTrajectoryForPrecisionSeed(bool)
Definition: TRT_Trajectory_xk.cxx:438
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
InDet::TRT_TrackExtensionTool_xk::newTrack
virtual Trk::Track * newTrack(const EventContext &ctx, const Trk::Track &, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
Definition: TRT_TrackExtensionTool_xk.cxx:466
Track.h
InDet::TRT_TrackExtensionTool_xk::newEvent
virtual std::unique_ptr< InDet::ITRT_TrackExtensionTool::IEventData > newEvent(const EventContext &ctx) const override
Definition: TRT_TrackExtensionTool_xk.cxx:210
InDet::TRT_TrackExtensionTool_xk::m_maxslope
DoubleProperty m_maxslope
Definition: TRT_TrackExtensionTool_xk.h:160
Trk::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
InDet::TRT_Trajectory_xk::trackParametersEstimationForFirstPointWithVertexConstraint
bool trackParametersEstimationForFirstPointWithVertexConstraint()
Definition: TRT_Trajectory_xk.cxx:732
InDet::TRT_Trajectory_xk::initiateForPrecisionSeed
void initiateForPrecisionSeed(std::vector< std::pair< Amg::Vector3D, double > > &, const std::vector< const InDetDD::TRT_BaseElement * > &, const TRT_DriftCircleContainer *&, const Trk::PatternTrackParameters &)
Definition: TRT_Trajectory_xk.cxx:52
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::TRT_Trajectory_xk::trackFindingWithoutDriftTimeBL
void trackFindingWithoutDriftTimeBL(double)
Definition: TRT_Trajectory_xk.cxx:369
fitman.g1
g1
Definition: fitman.py:619
beamspotman.n
n
Definition: beamspotman.py:731
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
InDet::TRT_Trajectory_xk::trackParametersEstimationForFirstPoint
bool trackParametersEstimationForFirstPoint()
Definition: TRT_Trajectory_xk.cxx:715
InDet::TRT_TrackExtensionTool_xk::m_riontrackD
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackD
Definition: TRT_TrackExtensionTool_xk.h:142
DataVector::front
const T * front() const
Access the first element in the collection as an rvalue.
InDet::TRT_TrackExtensionTool_xk::initialize
virtual StatusCode initialize() override
Definition: TRT_TrackExtensionTool_xk.cxx:62
InDet::TRT_TrackExtensionTool_xk::m_selectortool
ToolHandle< ITrtDriftCircleCutTool > m_selectortool
Definition: TRT_TrackExtensionTool_xk.h:140
InDet::TRT_Trajectory_xk::trackFindingWithDriftTimeBL
void trackFindingWithDriftTimeBL(double)
Definition: TRT_Trajectory_xk.cxx:329
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Preparation.mode
mode
Definition: Preparation.py:94
InDet::TRT_TrackExtensionTool_xk::EventData::m_trajectory
TRT_Trajectory_xk m_trajectory
Definition: TRT_TrackExtensionTool_xk.h:117
InDet::TRT_TrackExtensionTool_xk::finalize
virtual StatusCode finalize() override
Definition: TRT_TrackExtensionTool_xk.cxx:120
InDet::TRT_TrackExtensionTool_xk::~TRT_TrackExtensionTool_xk
virtual ~TRT_TrackExtensionTool_xk()
Trk::ParametersBase
Definition: ParametersBase.h:55
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
InDet::TRT_TrackExtensionTool_xk::TRT_TrackExtensionTool_xk
TRT_TrackExtensionTool_xk(const std::string &, const std::string &, const IInterface *)
Definition: TRT_TrackExtensionTool_xk.cxx:45
InDet::SCT_Cluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SCT_Cluster.h:34
InDet::TRT_TrackExtensionTool_xk::m_impact
DoubleProperty m_impact
Definition: TRT_TrackExtensionTool_xk.h:163
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
DataVector< const Trk::TrackStateOnSurface >
InDet::TRT_TrackExtensionTool_xk::m_roadwidth
DoubleProperty m_roadwidth
Definition: TRT_TrackExtensionTool_xk.h:158
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
InDet::TRT_Trajectory_xk::nclusters
const int & nclusters() const
Definition: TRT_Trajectory_xk.h:60
InDet::TRT_TrackExtensionTool_xk::m_proptool
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
Definition: TRT_TrackExtensionTool_xk.h:136
InDet::TRT_Trajectory_xk::searchStartStop
bool searchStartStop()
Definition: TRT_Trajectory_xk.cxx:394
Trk::PrepRawData
Definition: PrepRawData.h:62
InDet::TRT_TrackExtensionTool_xk::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Definition: TRT_TrackExtensionTool_xk.h:174
InDet::TRT_TrackExtensionTool_xk::m_zVertexWidth
DoubleProperty m_zVertexWidth
Definition: TRT_TrackExtensionTool_xk.h:161
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::TRT_Trajectory_xk::initiateForTRTSeed
void initiateForTRTSeed(std::vector< std::pair< Amg::Vector3D, double > > &, const std::vector< const InDetDD::TRT_BaseElement * > &, const TRT_DriftCircleContainer *&, const Trk::PatternTrackParameters &)
Definition: TRT_Trajectory_xk.cxx:134
Trk::NoField
@ NoField
Field is set to 0., 0., 0.,.
Definition: MagneticFieldMode.h:18
InDet::TRT_Trajectory_xk::buildTrajectoryForTRTSeed
void buildTrajectoryForTRTSeed(bool)
Definition: TRT_Trajectory_xk.cxx:468
fitman.g2
g2
Definition: fitman.py:624
InDet::TRT_Trajectory_xk::trackFindingWithDriftTime
void trackFindingWithDriftTime(double)
Definition: TRT_Trajectory_xk.cxx:238
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
RIO_OnTrack.h
InDet::TRT_TrackExtensionTool_xk::m_minTRTSegmentpT
DoubleProperty m_minTRTSegmentpT
Definition: TRT_TrackExtensionTool_xk.h:177
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::TRT_TrackExtensionTool_xk::EventData
Definition: TRT_TrackExtensionTool_xk.h:106
InDet::TRT_TrackExtensionTool_xk::EventData::m_maxslope
double m_maxslope
Definition: TRT_TrackExtensionTool_xk.h:118
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MagneticFieldProperties::magneticFieldMode
MagneticFieldMode magneticFieldMode() const
Returns the MagneticFieldMode as specified.
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
InDet::ITRT_TrackExtensionTool::IEventData
Definition: ITRT_TrackExtensionTool.h:43
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
python.PyAthena.v
v
Definition: PyAthena.py:154
InDet::TRT_Trajectory_xk::naElements
const int & naElements() const
Definition: TRT_Trajectory_xk.h:63
TRT_TrackExtensionTool_xk.h
InDet::TRT_Trajectory_xk::isFirstElementBarrel
bool isFirstElementBarrel()
Definition: TRT_Trajectory_xk.h:231
TRT_PAI_physicsConstants::mb
const double mb
1mb to cm2
Definition: TRT_PAI_physicsConstants.h:15
Trk::PatternTrackParameters
Definition: PatternTrackParameters.h:32
InDet::TRT_Trajectory_xk::radiusCorrection
void radiusCorrection()
Definition: TRT_Trajectory_xk.cxx:497
DEBUG
#define DEBUG
Definition: page_access.h:11
InDet::TRT_Trajectory_xk::nholes
const int & nholes() const
Definition: TRT_Trajectory_xk.h:56
InDet::TRT_TrackExtensionTool_xk
Definition: TRT_TrackExtensionTool_xk.h:53
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
InDet::TRT_TrackExtensionTool_xk::findSegment
virtual Trk::TrackSegment * findSegment(const EventContext &ctx, const Trk::TrackParameters *, InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
Definition: TRT_TrackExtensionTool_xk.cxx:308
InDet::TRT_TrackExtensionTool_xk::m_roadtool
ToolHandle< ITRT_DetElementsRoadMaker > m_roadtool
Definition: TRT_TrackExtensionTool_xk.h:134
InDet::TRT_Trajectory_xk::trackParametersEstimationForPerigeeWithVertexConstraint
bool trackParametersEstimationForPerigeeWithVertexConstraint()
Definition: TRT_Trajectory_xk.cxx:743
Trk::PatternTrackParameters::production
bool production(const TrackParameters *)
Definition: PatternTrackParameters.cxx:42
InDet::EventData
SiSpacePointsSeedMakerEventData EventData
Definition: SiSpacePointsSeedMaker_ATLxk.h:46
InDet::TRT_TrackExtensionTool_xk::m_trtname
SG::ReadHandleKey< TRT_DriftCircleContainer > m_trtname
Definition: TRT_TrackExtensionTool_xk.h:175
Trk::EventDataBase< EventData, InDet::ITRT_TrackExtensionTool::IEventData >::getPrivateEventData
static EventData & getPrivateEventData(InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data)
Definition: EventDataBase.h:19
InDet::TRT_TrackExtensionTool_xk::extendTrackFromParameters
std::vector< const Trk::MeasurementBase * > & extendTrackFromParameters(const EventContext &ctx, const Trk::TrackParameters *, InDet::TRT_TrackExtensionTool_xk::EventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const
Definition: TRT_TrackExtensionTool_xk.cxx:293
InDet::TRT_TrackExtensionTool_xk::m_riontrackN
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackN
Definition: TRT_TrackExtensionTool_xk.h:144
AthAlgTool
Definition: AthAlgTool.h:26
InDet::TRT_TrackExtensionTool_xk::m_usedriftrad
BooleanProperty m_usedriftrad
Definition: TRT_TrackExtensionTool_xk.h:165
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
plotBeamSpotMon.nc
int nc
Definition: plotBeamSpotMon.py:83
InDet::TRT_TrackExtensionTool_xk::m_minNumberDCs
IntegerProperty m_minNumberDCs
Definition: TRT_TrackExtensionTool_xk.h:152
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
TrackStateOnSurface.h
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
InDet::TRT_TrackExtensionTool_xk::isGoodExtension
bool isGoodExtension(const EventContext &ctx, const Trk::TrackParameters *, InDet::TRT_TrackExtensionTool_xk::EventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const
Definition: TRT_TrackExtensionTool_xk.cxx:408