ATLAS Offline Software
TRT_TrackExtensionTool_xk.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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  m_segmentFindMode (3),
48  m_minNumberDCs (9),
49  m_minNumberSCT (5),
50  m_minNumberPIX (2),
51  m_roadwidth (10.),
52  m_maxslope (.00005),
53  m_zVertexWidth (150.),
54  m_impact (50.),
55  m_usedriftrad (true),
56  m_parameterization(true),
57  m_scale_error (2.),
58  m_fieldmode ("MapSolenoid")
59 {
60  declareInterface<ITRT_TrackExtensionTool>(this);
61  declareProperty("RoadWidth" ,m_roadwidth );
62  declareProperty("ZVertexHalfWidth" ,m_zVertexWidth );
63  declareProperty("maxImpactParameter" ,m_impact );
64  declareProperty("Maxslope" ,m_maxslope );
65  declareProperty("MinNumberDriftCircles" ,m_minNumberDCs );
66  declareProperty("UseParameterization" ,m_parameterization);
67  declareProperty("UseDriftRadius" ,m_usedriftrad );
68  declareProperty("ScaleHitUncertainty" ,m_scale_error );
69  declareProperty("SegmentFindMode" ,m_segmentFindMode );
70  declareProperty("MagneticFieldMode" ,m_fieldmode );
71  declareProperty("MinNumberSCTclusters" ,m_minNumberSCT );
72  declareProperty("MinNumberPIXclusters" ,m_minNumberPIX );
73  declareProperty("minTRTSegmentpT" ,m_minTRTSegmentpT=300. );
74 }
75 
77 // Destructor
79 
81 = default;
82 
84 // Initialisation
86 
88 {
89 
90  // Get tTools service
91  //
92  IToolSvc* toolSvc;
93  ATH_CHECK(service("ToolSvc", toolSvc));
94 
95  // Get magnetic field service
96  //
97  if(m_fieldmode != "NoField" ) {
99  }
100 
104 
105  // Get RIO_OnTrack creator with drift time information
106  //
107  ATH_CHECK(m_riontrackD.retrieve());
108  ATH_MSG_DEBUG("Retrieved tool " << m_riontrackD);
109 
110  // Get RIO_OnTrack creator without drift time information
111  //
112  ATH_CHECK(m_riontrackN.retrieve());
113  ATH_MSG_DEBUG("Retrieved tool " << m_riontrackN ) ;
114 
115  // Get detector elements road maker tool
116  //
117  ATH_CHECK(m_roadtool.retrieve());
118  ATH_MSG_DEBUG("Retrieved tool " << m_roadtool);
119 
120  // Get propagator tool
121  //
122  ATH_CHECK(m_proptool.retrieve());
123  ATH_MSG_DEBUG("Retrieved tool " << m_proptool);
124 
125  // Get updator tool
126  //
127  ATH_CHECK(m_updatortool.retrieve());
128  ATH_MSG_DEBUG("Retrieved tool " << m_updatortool);
129 
130  // Get segment selector tool
131  //
132  ATH_CHECK(m_selectortool.retrieve(DisableTool { !m_parameterization } ));
133 
134  // TRT
135  ATH_CHECK(detStore()->retrieve(m_trtid,"TRT_ID"));
136 
137  //Initialize container
139 
140  // Get output print level
141  //
142  m_outputlevel = msg().level()-MSG::DEBUG;
143  return StatusCode::SUCCESS;
144 }
145 
147 // Finalize-
149 
151 {
152  return StatusCode::SUCCESS;
153 }
154 
156 // Dumps relevant information into the MsgStream
158 
159 MsgStream& InDet::TRT_TrackExtensionTool_xk::dump( MsgStream& out ) const
160 {
161  out<<std::endl;
162  if(m_nprint) return dumpEvent(out);
163  return dumpConditions(out);
164 }
165 
166 
168 // Dumps conditions information into the MsgStream
170 
172 {
173  auto pad = [](const std::string & s)->std::string{
174  std::string s1(s.size(),' ');
175  s1+="|";
176  return s + s1 +"\n";
177  };
178  const std::array<std::string,9> fieldmode{"NoField" ,"ConstantField","SolenoidalField",
179  "ToroidalField" ,"Grid3DField" ,"RealisticField" ,
180  "UndefinedField","AthenaField" , "?????" };
182  if(mode<0 || mode>8 ) mode = 8;
183  std::string lineSeparator(90,'-');
184  lineSeparator = "|" + lineSeparator + "|\n";
185  const auto & w12 = std::setw(12);
186  const auto & sp5 = std::setprecision(5);
187  const std::string spaces = " |\n";
188  out<< lineSeparator;
189  out<<"| TRT container | "<< pad(m_trtname.key());
190  out<<"| Tool for propagation | "<< pad(m_proptool.type());
191  out<<"| Tool for updator | "<< pad(m_updatortool.type());
192  out<<"| Tool for rio on trackD | "<< pad(m_riontrackD.type());
193  out<<"| Tool for rio on trackN | "<< pad(m_riontrackN.type());
194  out<<"| Tool for road builder | "<< pad(m_roadtool.type());
195  out<<"| Magnetic field mode | "<< pad(fieldmode[mode]);
196  out<<"| Segments find mode | "<< w12 << m_segmentFindMode << spaces;
197  out<<"| TRT road half width (mm)| "<< w12 << sp5<< m_roadwidth << spaces;
198  out<<"| Min number DriftCircles | "<< w12 << m_minNumberDCs << spaces;
199  out<<"| Use drift time ? | "<< w12 << m_usedriftrad << spaces;
200  out<<"| Z vertex half width | "<< w12 << m_zVertexWidth << spaces;
201  out<<"| Scalefactor hit error | "<< w12 << m_scale_error <<spaces;
202  out<<"| Max impact parameter | "<< w12 << m_impact <<spaces;
203  out<< lineSeparator;
204  return out;
205 }
206 
208 // Dumps event information into the ostream
210 
212 {
213  return out;
214 }
215 
217 // Dumps relevant information into the ostream
219 
220 std::ostream& InDet::TRT_TrackExtensionTool_xk::dump( std::ostream& out ) const
221 {
222  return out;
223 }
224 
226 // Overload of << operator MsgStream
228 
229 MsgStream& InDet::operator <<
230  (MsgStream& sl,const InDet::TRT_TrackExtensionTool_xk& se)
231 {
232  return se.dump(sl);
233 }
234 
236 // Overload of << operator std::ostream
238 
239 std::ostream& InDet::operator <<
240  (std::ostream& sl,const InDet::TRT_TrackExtensionTool_xk& se)
241 {
242  return se.dump(sl);
243 }
244 
246 // Track extension initiation
248 
249 std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData>
250 InDet::TRT_TrackExtensionTool_xk::newEvent(const EventContext& ctx) const
251 {
253 
254  if((not trtcontainer.isValid()) && m_outputlevel<=0) {
255  std::stringstream msg;
256  msg << "Missing TRT_DriftCircleContainer " << m_trtname.key();
257  throw std::runtime_error( msg.str() );
258  }
259 
260  // Get AtlasFieldCache
261  MagField::AtlasFieldCache fieldCache;
262 
264  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
265  if (fieldCondObj == nullptr) {
266  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
267  return nullptr;
268  }
269  fieldCondObj->getInitializedCache (fieldCache);
270 
271  Trk::MagneticFieldProperties fieldprop = ( fieldCache.solenoidOn()
272  ? m_fieldprop
274 
275  auto event_data = std::make_unique<EventData>(EventData(trtcontainer.cptr(), m_maxslope));
276  event_data->m_trajectory.set(fieldprop, fieldCondObj);
277  event_data->m_trajectory.set (m_trtid,
278  m_proptool.get(),
279  m_updatortool.get(),
280  m_riontrackD.get(),
281  m_riontrackN.get(),
282  m_roadwidth,
284  m_impact,
287  event_data->m_measurement.reserve(200);
288  return event_data;
289 }
290 
292 // Main methods for track extension to TRT
294 
295 std::vector<const Trk::MeasurementBase*>&
297  const Trk::Track& Tr,
300 {
303  event_data.m_measurement.clear();
304  const Trk::TrackStates* tsos = Tr.trackStateOnSurfaces();
305  const Trk::TrackParameters* par = tsos->back()->trackParameters(); //tsos owns this
306  if(!par ) return event_data.m_measurement;
307  const Trk::TrackParameters* parb = tsos->front()->trackParameters(); //tsos owns this
308  if(parb && par!=parb) {
309  const Amg::Vector3D& g1 = par ->position();
310  const Amg::Vector3D& g2 = parb->position();
311  if((g2.x()*g2.x()+g2.y()*g2.y()) > (g1.x()*g1.x()+g1.y()*g1.y())) par=parb;
312  }
313  return extendTrackFromParameters(ctx, par, event_data,used);
314 }
315 
317 // Main methods for track extension to TRT for pixles+sct tracks
319 
320 std::vector<const Trk::MeasurementBase*>&
322  const Trk::TrackParameters * par,
325 {
328  return extendTrackFromParameters(ctx, par, event_data, used);
329 }
330 
331 
332 std::vector<const Trk::MeasurementBase*>&
334  const Trk::TrackParameters * par,
337 {
338  event_data.m_measurement.clear();
339  if(isGoodExtension(ctx, par,event_data,used)) event_data.m_trajectory.convert(event_data.m_measurement);
340  return event_data.m_measurement;
341 }
342 
344 // Main methods for segment finding in TRT for TRT seeds
346 
349  const Trk::TrackParameters * par,
352 {
355 
356  int nCut = m_minNumberDCs;
357  if(m_parameterization) {nCut = m_selectortool->minNumberDCs(par);
358  if(nCut<m_minNumberDCs) nCut=m_minNumberDCs;}
359 
360  // Get AtlasFieldCache
361  MagField::AtlasFieldCache fieldCache;
362 
364  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
365  if (fieldCondObj == nullptr) {
366  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
367  return nullptr;
368  }
369  fieldCondObj->getInitializedCache (fieldCache);
370 
371  // TRT detector elements road builder
372  //
373  const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
374  m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum,
375  used);
376 
377  if(int(detectorElements.size())< nCut) return nullptr;
378 
379  // Array pointers to surface preparation
380  //
381  auto surfaces =vectorOfSurfacesFromVectorOfElements(detectorElements);
382 
383  // Global position on surfaces production
384  //
386  if(!Tp.production(par)) return nullptr;
387  std::vector< std::pair<Amg::Vector3D,double> > gpos;
388  m_proptool->globalPositions(ctx, Tp, surfaces, gpos, m_fieldprop);
389 
390  // Initiate trajectory
391  //
392  event_data.m_trajectory.initiateForTRTSeed(gpos,detectorElements,event_data.m_trtcontainer,Tp);
393  if(event_data.m_trajectory.naElements() < nCut) return nullptr;
394  event_data.m_maxslope = .0002 ;
395  if(event_data.m_trajectory.isFirstElementBarrel()) {
397  else event_data.m_trajectory.trackFindingWithoutDriftTime(event_data.m_maxslope);
398  if(!event_data.m_trajectory.searchStartStop()) {return nullptr;}
399  } else {
401  if(!event_data.m_trajectory.searchStartStop()) { return nullptr;}
402  event_data.m_trajectory.radiusCorrection();
404  else event_data.m_trajectory.trackFindingWithoutDriftTimeBL(event_data.m_maxslope);
405  if(!event_data.m_trajectory.searchStartStop()) { return nullptr;}
406  }
407 
408  // Track associate with clusters and holes
409  //
411  event_data.m_maxslope = m_maxslope;
412 
413  // Trajectory quality test
414  //
415  int nc = event_data.m_trajectory.nclusters();
416  int nh = event_data.m_trajectory.nholes ();
417  if( nc < nCut || (1000*nc) < (700*(nc+nh)) ) return nullptr;
418 
419  if (m_segmentFindMode==0) {
421  return nullptr;
422  }
423  else if(m_segmentFindMode==1) {
425  return nullptr;
426  }
427  else if(m_segmentFindMode==2) {
429  return nullptr;
430  }
431  else {
432  if(!event_data.m_trajectory.fitter())
433  return nullptr;
434  }
435 
436  if(event_data.m_trajectory.nclusters() < nCut) return nullptr;
437 
438  // Trk::TrackSegment production
439  //
440  return event_data.m_trajectory.convert();
441 }
442 
444 // Test possiblity extend track to TRT for pixels+sct tracks
446 
447 bool
449  const Trk::TrackParameters * par,
452 {
453  // Get AtlasFieldCache
454  MagField::AtlasFieldCache fieldCache;
455 
457  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
458  if (fieldCondObj == nullptr) {
459  ATH_MSG_ERROR("InDet::TRT_TrackExtensionTool_xk::findSegment: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
460  return false;
461  }
462  fieldCondObj->getInitializedCache (fieldCache);
463  // TRT detector elements road builder
464  //
465  const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
466  m_roadtool->detElementsRoad(ctx, fieldCache, *par, Trk::alongMomentum, used);
467  if (int(detectorElements.size()) < m_minNumberDCs)
468  return false;
469  // Array pointers to surface preparation
470  //
471  auto surfaces = vectorOfSurfacesFromVectorOfElements(detectorElements);
472 
473  // Global position on surfaces production
474  //
476  if(!Tp.production(par)) return false;
477  std::vector< std::pair<Amg::Vector3D,double> > gpos;
478  m_proptool->globalPositions(ctx, Tp,surfaces,gpos,m_fieldprop);
479 
480  // Initiate trajectory
481  //
482 
483  event_data.m_trajectory.initiateForPrecisionSeed(gpos,detectorElements,event_data.m_trtcontainer,Tp);
484  if(event_data.m_trajectory.naElements() < m_minNumberDCs) return false;
485 
486  // Track finding
487  //
489  else event_data.m_trajectory.trackFindingWithoutDriftTime(event_data.m_maxslope);
490 
491  // Track associate with clusters and holes
492  //
494 
495  // Final test quality
496  //
497  return event_data.m_trajectory.nclusters() >= m_minNumberDCs;
498 }
499 
501 // Methods for track extension to TRT for pixles+sct tracks
502 // and new track production
504 
505 Trk::Track*
507  const Trk::Track& Tr,
510 {
513 
514  const Trk::TrackStates* tsos = Tr.trackStateOnSurfaces();
515 
516  // Test conditions to start track extension to TRT
517  //
518  const Trk::TrackParameters* pe = tsos->back()->trackParameters();
519  if(!pe) return nullptr;
520  if(!pe->covariance()) return nullptr;
521  const Trk::TrackParameters* pb = tsos->front()->trackParameters();
522  if(!pb) return nullptr;
523  if(!pb->covariance()) return nullptr;
524 
525  // Number PIX and SCT clusters cuts
526  //
527  if(!numberPIXandSCTclustersCut(Tr)) return nullptr;
528 
529  // Test possibility extend track and new track production
530  //
531  if(isGoodExtension(ctx, pe,event_data,used)) return event_data.m_trajectory.convert(Tr);
532  return nullptr;
533 }
534 
536 // Number of SCT clusters test for start extension
538 
539 bool
541 {
542  if(m_minNumberSCT <=0 && m_minNumberPIX <=0) return true;
543  const Trk::TrackStates*tsos = Tr.trackStateOnSurfaces();
544  Trk::TrackStates::const_iterator s = tsos->begin(), se = tsos->end();
545  int npix = 0;
546  int nsct = 0;
547  for(; s!=se; ++s) {
548  if((*s)->type(Trk::TrackStateOnSurface::Measurement)) {
549  const Trk::MeasurementBase* mb = (*s)->measurementOnTrack();
550  if(!mb) continue;
551  const Trk::RIO_OnTrack* ri = dynamic_cast<const Trk::RIO_OnTrack*>(mb);
552  if(!ri) continue;
553  const Trk::PrepRawData* rd = ri->prepRawData();
554  if(!rd) continue;
555  const InDet::SiCluster* si = dynamic_cast<const InDet::SiCluster*>(rd);
556  if(si) {
557  if(dynamic_cast<const InDet::SCT_Cluster*>(si)) ++nsct;
558  else ++npix;
559  }
560  else return false;
561  }
562  }
563  return npix >= m_minNumberPIX && nsct >= m_minNumberSCT;
564 }
InDet::TRT_TrackExtensionTool_xk::numberPIXandSCTclustersCut
bool numberPIXandSCTclustersCut(const Trk::Track &) const
Definition: TRT_TrackExtensionTool_xk.cxx:540
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_TrackExtensionTool_xk::m_scale_error
double m_scale_error
Definition: TRT_TrackExtensionTool_xk.h:161
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
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
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
InDet::TRT_TrackExtensionTool_xk::m_segmentFindMode
int m_segmentFindMode
Definition: TRT_TrackExtensionTool_xk.h:149
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::TRT_TrackExtensionTool_xk::m_minNumberSCT
int m_minNumberSCT
Definition: TRT_TrackExtensionTool_xk.h:153
InDet::TRT_TrackExtensionTool_xk::m_usedriftrad
bool m_usedriftrad
Definition: TRT_TrackExtensionTool_xk.h:159
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
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:159
InDet::TRT_TrackExtensionTool_xk::m_outputlevel
int m_outputlevel
Definition: TRT_TrackExtensionTool_xk.h:150
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:296
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:171
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
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_Trajectory_xk::buildTrajectoryForPrecisionSeed
void buildTrajectoryForPrecisionSeed(bool)
Definition: TRT_Trajectory_xk.cxx:438
InDet::TRT_TrackExtensionTool_xk::m_maxslope
double m_maxslope
Definition: TRT_TrackExtensionTool_xk.h:156
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:506
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:250
Trk::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
InDet::TRT_TrackExtensionTool_xk::m_parameterization
bool m_parameterization
Definition: TRT_TrackExtensionTool_xk.h:160
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
Trk::PatternTrackParameters::production
bool production(const ParametersBase< 5, Trk::Charged > *)
Definition: PatternTrackParameters.cxx:42
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:87
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:95
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:150
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
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
DataVector< const Trk::TrackStateOnSurface >
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:57
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:164
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::TRT_TrackExtensionTool_xk::m_selectortool
PublicToolHandle< ITrtDriftCircleCutTool > m_selectortool
Definition: TRT_TrackExtensionTool_xk.h:140
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_nprint
int m_nprint
Definition: TRT_TrackExtensionTool_xk.h:151
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
InDet::TRT_TrackExtensionTool_xk::m_minNumberPIX
int m_minNumberPIX
Definition: TRT_TrackExtensionTool_xk.h:154
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:157
InDet::TRT_Trajectory_xk::naElements
const int & naElements() const
Definition: TRT_Trajectory_xk.h:60
TRT_TrackExtensionTool_xk.h
InDet::TRT_Trajectory_xk::isFirstElementBarrel
bool isFirstElementBarrel()
Definition: TRT_Trajectory_xk.h:261
InDet::TRT_TrackExtensionTool_xk::m_minTRTSegmentpT
double m_minTRTSegmentpT
Definition: TRT_TrackExtensionTool_xk.h:167
InDet::TRT_TrackExtensionTool_xk::m_zVertexWidth
double m_zVertexWidth
Definition: TRT_TrackExtensionTool_xk.h:157
TRT_PAI_physicsConstants::mb
const double mb
1mb to cm2
Definition: TRT_PAI_physicsConstants.h:15
Trk::PatternTrackParameters
Definition: PatternTrackParameters.h:38
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:53
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::dumpEvent
static MsgStream & dumpEvent(MsgStream &out)
Definition: TRT_TrackExtensionTool_xk.cxx:211
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:348
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
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:165
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:333
InDet::TRT_TrackExtensionTool_xk::m_riontrackN
ToolHandle< Trk::IRIO_OnTrackCreator > m_riontrackN
Definition: TRT_TrackExtensionTool_xk.h:144
InDet::TRT_TrackExtensionTool_xk::m_impact
double m_impact
Definition: TRT_TrackExtensionTool_xk.h:158
AthAlgTool
Definition: AthAlgTool.h:26
InDet::TRT_TrackExtensionTool_xk::m_roadwidth
double m_roadwidth
Definition: TRT_TrackExtensionTool_xk.h:155
InDet::TRT_TrackExtensionTool_xk::m_fieldmode
std::string m_fieldmode
Definition: TRT_TrackExtensionTool_xk.h:162
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
plotBeamSpotMon.nc
int nc
Definition: plotBeamSpotMon.py:83
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::m_minNumberDCs
int m_minNumberDCs
Definition: TRT_TrackExtensionTool_xk.h:152
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:448