ATLAS Offline Software
AlignTrack.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "TrkTrack/Track.h"
11 
13 
14 namespace Trk {
15 
16  //________________________________________________________________________
17  AlignTrack::AlignTrack(const Track& associatedTrack)
18  : Track(associatedTrack)
19  , m_originalTrack(nullptr)
20  , m_type(Unknown)
21  , m_nAlignTSOSMeas(0)
22  , m_alignTSOSCollection(nullptr)
23  , m_localErrorMat(nullptr)
24  , m_localErrorMatInv(nullptr)
25  , m_derivativeMatrix(nullptr)
26  , m_fullCovarianceMatrix(nullptr)
27  , m_derivatives(nullptr)
28  , m_derivativeErr(nullptr)
29  , m_actualSecondDerivatives(nullptr)
30  , m_residuals(nullptr)
31  , m_weights(nullptr)
32  , m_weightsFirstDeriv(nullptr)
33  , m_chi2(0.)
34  , m_chi2dof(0.)
35  , m_trackAlignParamQuality(new double[6])
36  , m_trackWithoutScattering()
37  {
38  for (int i=0;i<6;i++) m_trackAlignParamQuality[i]=0.;
39  m_vtx=nullptr;
40  m_refitD0=true;
41  m_refitZ0=true;
42  m_refitPhi=true;
43  m_refitTheta=true;
44  m_refitQovP=true;
45  }
46 
47  //________________________________________________________________________
48  AlignTrack::AlignTrack(const Track& associatedTrack,
49  AlignTSOSCollection* alignTSOSCollection)
50  : Track(associatedTrack)
51  , m_originalTrack(nullptr)
52  , m_type(Unknown)
53  , m_nAlignTSOSMeas(0)
54  , m_localErrorMat(nullptr)
55  , m_localErrorMatInv(nullptr)
56  , m_derivativeMatrix(nullptr)
57  , m_fullCovarianceMatrix(nullptr)
58  , m_derivatives(nullptr)
59  , m_derivativeErr(nullptr)
60  , m_actualSecondDerivatives(nullptr)
61  , m_residuals(nullptr)
62  , m_weights(nullptr)
63  , m_weightsFirstDeriv(nullptr)
64  , m_chi2(0.)
65  , m_chi2dof(0.)
66  , m_trackAlignParamQuality(new double[6])
67  , m_trackWithoutScattering()
68  {
69  for (int i=0;i<6;i++) m_trackAlignParamQuality[i]=0.;
71  m_vtx=nullptr;
72  m_refitD0=true;
73  m_refitZ0=true;
74  m_refitPhi=true;
75  m_refitTheta=true;
76  m_refitQovP=true;
77  }
78 
79  //________________________________________________________________________
81  : Track(atrack)
82  , m_originalTrack(atrack.m_originalTrack)
83  , m_type(atrack.m_type)
84  , m_nAlignTSOSMeas(atrack.m_nAlignTSOSMeas)
85  , m_localErrorMat(atrack.m_localErrorMat ?
86  new Amg::SymMatrixX(*(atrack.m_localErrorMat)) : nullptr)
87  , m_localErrorMatInv(atrack.m_localErrorMatInv ?
88  new Amg::SymMatrixX(*(atrack.m_localErrorMatInv)) : nullptr)
89  , m_derivativeMatrix(atrack.m_derivativeMatrix ?
90  new Amg::MatrixX(*(atrack.m_derivativeMatrix)) : nullptr)
91  , m_fullCovarianceMatrix(atrack.m_fullCovarianceMatrix ?
92  new Amg::SymMatrixX(*(atrack.m_fullCovarianceMatrix)) : nullptr)
93  , m_derivatives(atrack.m_derivatives ?
94  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivatives)) : nullptr)
95  , m_derivativeErr(atrack.m_derivativeErr ?
96  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivativeErr)) : nullptr)
97  , m_actualSecondDerivatives(atrack.m_actualSecondDerivatives ?
98  new std::vector<std::pair<AlignModule*,std::vector<double> > > (*(atrack.m_actualSecondDerivatives)) : nullptr)
99  , m_residuals(atrack.m_residuals ?
100  new Amg::VectorX(*(atrack.m_residuals)) : nullptr)
101  , m_weights(atrack.m_weights ?
102  new Amg::SymMatrixX(*(atrack.m_weights)) : nullptr)
103  , m_weightsFirstDeriv(atrack.m_weightsFirstDeriv ?
104  new Amg::SymMatrixX(*(atrack.m_weightsFirstDeriv)) : nullptr)
105  , m_chi2(atrack.m_chi2)
106  , m_chi2dof(atrack.m_chi2dof)
107  , m_trackAlignParamQuality(new double[6])
108  , m_trackWithoutScattering()
109  {
110  if (atrack.m_trackWithoutScattering) {
111  m_trackWithoutScattering.set(std::make_unique<Trk::Track>(*(atrack.m_trackWithoutScattering)));
112  }
113 
114  for (int i=0;i<6;i++)
116 
117  // copy AlignTSOSCollection
118  if(atrack.m_alignTSOSCollection!=nullptr) {
119  AlignTSOSCollection * aTSOScoll = new AlignTSOSCollection;
120  aTSOScoll->reserve(atrack.m_alignTSOSCollection->size());
121  AlignTSOSIt itAtsos_end = atrack.m_alignTSOSCollection->end();
122  for(AlignTSOSIt itAtsos = atrack.m_alignTSOSCollection->begin(); itAtsos!=itAtsos_end; ++itAtsos) {
123  assert(*itAtsos!=0); // check that is defined.
124  AlignTSOS * atsos = new AlignTSOS(**itAtsos);
125  aTSOScoll->push_back(atsos);
126  }
127  m_alignTSOSCollection=aTSOScoll;
128  }
129  else
130  m_alignTSOSCollection=nullptr;
131 
132  findPerigee();
133  m_vtx=nullptr;
134  m_refitD0=true;
135  m_refitZ0=true;
136  m_refitPhi=true;
137  m_refitTheta=true;
138  m_refitQovP=true;
139  }
140 
141  //________________________________________________________________________
143  {
144  if (this!=&atrack) {
145 
146  // assign Track content
147  Track::operator=(atrack);
148 
149  // now fill the extra stuff
151  m_type = atrack.m_type;
153  m_chi2 = atrack.m_chi2;
154  m_chi2dof = atrack.m_chi2dof;
155  m_vtx = atrack.m_vtx;
156  m_refitD0 = atrack.m_refitD0;
157  m_refitZ0 = atrack.m_refitZ0;
158  m_refitPhi = atrack.m_refitPhi;
159  m_refitTheta = atrack.m_refitTheta;
160  m_refitQovP = atrack.m_refitQovP;
161 
162  for (int i=0;i<6;i++)
164 
165  // copy AlignTSOSCollection
166  delete m_alignTSOSCollection;
167  if(atrack.m_alignTSOSCollection!=nullptr) {
168  AlignTSOSCollection * aTSOScoll = new AlignTSOSCollection;
169  aTSOScoll->reserve(atrack.m_alignTSOSCollection->size());
170  AlignTSOSIt itAtsos_end = atrack.m_alignTSOSCollection->end();
171  for(AlignTSOSIt itAtsos = atrack.m_alignTSOSCollection->begin(); itAtsos!=itAtsos_end; ++itAtsos) {
172  assert(*itAtsos!=0); // check that is defined.
173  AlignTSOS * atsos = new AlignTSOS(**itAtsos);
174  aTSOScoll->push_back(atsos);
175  }
176  m_alignTSOSCollection=aTSOScoll;
177  }
178  else
179  m_alignTSOSCollection=nullptr;
180 
181  findPerigee();
182 
183  // fill matrices, vectors, etc.
184  delete m_derivatives;
185  m_derivatives = atrack.m_derivatives ?
186  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivatives)) : nullptr;
187  delete m_derivativeErr;
189  new std::vector<AlignModuleDerivatives>(*(atrack.m_derivativeErr)) : nullptr;
192  new std::vector<std::pair<AlignModule*,std::vector<double> > > (*(atrack.m_actualSecondDerivatives)) : nullptr;
193  delete m_localErrorMat;
195  new Amg::SymMatrixX(*(atrack.m_localErrorMat)) : nullptr;
196  delete m_localErrorMatInv;
198  new Amg::SymMatrixX(*(atrack.m_localErrorMatInv)) : nullptr;
199  delete m_derivativeMatrix;
201  new Amg::MatrixX(*(atrack.m_derivativeMatrix)) : nullptr;
202  delete m_fullCovarianceMatrix;
204  new Amg::SymMatrixX(*(atrack.m_fullCovarianceMatrix)) : nullptr;
205  delete m_residuals;
206  m_residuals = atrack.m_residuals ?
207  new Amg::VectorX(*(atrack.m_residuals)) : nullptr;
208  delete m_weights;
209  m_weights = atrack.m_weights ?
210  new Amg::SymMatrixX(*(atrack.m_weights)) : nullptr;
211  delete m_weightsFirstDeriv;
213  new Amg::SymMatrixX(*(atrack.m_weightsFirstDeriv)) : nullptr;
214  }
215 
216  return *this;
217  }
218 
219  //________________________________________________________________________
221  {
223  delete m_residuals; m_residuals=nullptr;
224  delete m_weights; m_weights=nullptr;
226 
227  delete m_derivatives; m_derivatives=nullptr;
228  delete m_derivativeErr; m_derivativeErr=nullptr;
230 
231  delete m_localErrorMat; m_localErrorMat=nullptr;
232  delete m_localErrorMatInv; m_localErrorMatInv=nullptr;
233 
235  delete m_derivativeMatrix; m_derivativeMatrix=nullptr;
236 
237  delete [] m_trackAlignParamQuality;
238  }
239 
240  //________________________________________________________________________
242  {
243  const Perigee* pp = track->perigeeParameters();
244  if( pp ){
245 
246 
247  const AmgSymMatrix(5)* covMatrix = pp->covariance();
248  if( covMatrix ){
249  // sum covariance terms of momentum, use it to determine whether fit was SL fit
250  double momCov = 0.;
251  for( int i=0;i<5;++i )
252  momCov += fabs( (*covMatrix)(4,i));
253  for( int i=0;i<4;++i )
254  momCov += fabs( (*covMatrix)(i,4));
255  if( momCov < 1e-10 )
256  return true;
257  }
258  }
259  return false;
260  }
261 
262  //________________________________________________________________________
264  {
265  return isSLTrack(this);
266  }
267 
268  //________________________________________________________________________
269  void AlignTrack::dumpTrackInfo(const Track& track, MsgStream& msg)
270  {
271  for (const TrackStateOnSurface* tsos : *track.trackStateOnSurfaces())
272  msg<<*tsos;
273  }
274 
275  //________________________________________________________________________
276  void AlignTrack::dumpLessTrackInfo(const Track& track, MsgStream& msg)
277  {
278  int ntsos(0);
279  for (const TrackStateOnSurface* tsos : *track.trackStateOnSurfaces()) {
280  msg<<"ntsos "<<ntsos<<":"<<", type "<<tsos->dumpType();
281  //msg << " perigee center of this TSOS: "<< tsos->trackParameters()->associatedSurface()->center() << endmsg;
282 
283  if (tsos->type(TrackStateOnSurface::Perigee))
284  msg << ", Perigee"<<endmsg;
285 
286  else if (tsos->type(TrackStateOnSurface::Outlier))
287  msg << ", Outlier"<<endmsg;
288 
289  else if ( !tsos->type(TrackStateOnSurface::Scatterer) &&
290  !tsos->type(TrackStateOnSurface::InertMaterial)) {
291  msg << "," << ( tsos->fitQualityOnSurface() )<<endmsg;
292  }
293 
294  else {
295 
296  const MaterialEffectsBase* meb = tsos->materialEffectsOnTrack();
297  const MaterialEffectsOnTrack* meot = dynamic_cast<const MaterialEffectsOnTrack*>(meb);
298 
299  if (meot) {
300  msg<<", meot";
301  if (meot->scatteringAngles())
302  msg<<", have angles"<<endmsg;
303  else
304  msg<<", no angles"<<endmsg;
305  }
306  else if (tsos->type(TrackStateOnSurface::InertMaterial))
307  msg<<", InertMaterial"<<endmsg;
308  else
309  msg << ", hmm... no material effects on track!"<<endmsg;
310  }
311  ++ntsos;
312  }
313  }
314 
315  //________________________________________________________________________
316  void AlignTrack::dump(MsgStream& msg)
317  {
318  msg<<"dumping AlignTrack"<<endmsg;
319  double chi2=0.;
320  int imeas(1);
321  if (m_alignTSOSCollection) {
322  int natsos = m_alignTSOSCollection->size();
323  for (int iatsos=0;iatsos<natsos;iatsos++) {
324  const AlignTSOS* atsos=(*m_alignTSOSCollection)[iatsos];
325  std::vector<Residual>::const_iterator itRes = atsos->firstResidual();
326  std::vector<Residual>::const_iterator itRes_end = atsos->lastResidual();
327  for ( ; itRes != itRes_end; ++itRes,++imeas) {
328  double resNorm = itRes->residualNorm();
329  chi2 += resNorm*resNorm;
330  //msg<<"resNorm="<<resNorm
331  // <<", errorMat("<<imeas<<")="<<(*m_localErrorMat)(imeas,imeas)
332  // <<endmsg;
333  }
334  msg<<"iatsos "<<iatsos<<", chi2="<<chi2<<*atsos<<endmsg;
335  }
336  }
337  msg<<"total chi2: "<<m_chi2<<endmsg;
338  }
339 
340  //________________________________________________________________________
342  {
343  m_alignTSOSCollection=atsosColl;
344 
345  // calculate m_nAlignTSOSMeas
346  int natsos = m_alignTSOSCollection->size();
347  for (int iatsos=0;iatsos<natsos;iatsos++)
348  m_nAlignTSOSMeas += (*m_alignTSOSCollection)[iatsos]->nResDim();
349 
350  // calculate V and Vinv
352  m_localErrorMat->setZero();
354  m_localErrorMatInv->setZero();
355 
356  int matrixindex(0);
359  for ( ; itAtsos != itAtsos_end; ++itAtsos) {
360  const AlignTSOS * atsos = *itAtsos;
361  std::vector<Residual>::const_iterator itRes = atsos->firstResidual();
362  std::vector<Residual>::const_iterator itRes_end = atsos->lastResidual();
363  for ( ; itRes != itRes_end; ++itRes) {
364  (*m_localErrorMat)(matrixindex,matrixindex) = itRes->errSq();
365  (*m_localErrorMatInv)(matrixindex,matrixindex) = 1./itRes->errSq();
366  matrixindex++;
367  }
368  }
369  }
370 
371  //________________________________________________________________________
372  MsgStream& operator<< (MsgStream& sl, const AlignTrack::AlignTrackType type)
373  {
374  switch(type) {
375  case AlignTrack::Unknown:
376  return sl<<"Unknown ";
378  return sl<<"Original ";
380  return sl<<"NormalRefitted ";
382  return sl<<"BeamspotConstrained ";
384  return sl<<"VertexConstrained ";
385  default:
386  return sl<<"UNDEFINED ";
387  }
388  }
389 
390  //________________________________________________________________________
391  std::ostream& operator<< (std::ostream& sl, const AlignTrack::AlignTrackType type)
392  {
393  switch(type) {
394  case AlignTrack::Unknown:
395  return sl<<"Unknown ";
397  return sl<<"Original ";
399  return sl<<"NormalRefitted ";
401  return sl<<"BeamspotConstrained ";
403  return sl<<"VertexConstrained ";
404  default:
405  return sl<<"UNDEFINED ";
406  }
407  }
408 
409  //________________________________________________________________________
411  {
412  switch(type) {
413  case AlignTrack::Unknown: return "Unknown";
414  case AlignTrack::Original: return "Original";
415  case AlignTrack::NormalRefitted: return "NormalRefitted";
416  case AlignTrack::BeamspotConstrained: return "BeamspotConstrained";
417  case AlignTrack::VertexConstrained: return "VertexConstrained";
418  default: return "UNDEFINED";
419  }
420  }
421 
422  //________________________________________________________________________
424  {
425  if (not m_trackWithoutScattering) {
426 
428  if (!states) return nullptr;
429 
430  // loop over TSOSs
432  Trk::TrackStates::const_iterator tsit_end = states->end();
433 
434  // This is the list of new TSOS
435  auto newTrackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
436  newTrackStateOnSurfaces->reserve( states->size() );
437 
438  for (; tsit!=tsit_end ; ++tsit) {
439  auto newMeas = (*tsit)->measurementOnTrack() ? (*tsit)->measurementOnTrack()->uniqueClone() : nullptr;
440  auto newPars = (*tsit)->trackParameters() ? (*tsit)->trackParameters()->uniqueClone() : nullptr;
441  auto newFitQoS= (*tsit)->fitQualityOnSurface();
442  auto meb = (*tsit)->materialEffectsOnTrack() ? (*tsit)->materialEffectsOnTrack()->uniqueClone() : nullptr;
443 
444  if (meb) {
445  //meot is just used as observer, not owner, so can safely duplicate the pointer
446  const auto *meot=dynamic_cast<const Trk::MaterialEffectsOnTrack*>(meb.get());
447  if (meot) {
448  double tinX0=meot->thicknessInX0();
449  std::unique_ptr<Trk::EnergyLoss> eLoss =
450  meot->energyLoss()
451  ? std::unique_ptr<Trk::EnergyLoss>(meot->energyLoss()->clone())
452  : nullptr;
453  const Trk::Surface& surf = meot->associatedSurface();
454  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes> typeMaterial;
455  if (eLoss) typeMaterial.set(MaterialEffectsBase::EnergyLossEffects);
457  new Trk::MaterialEffectsOnTrack(tinX0,std::nullopt,std::move(eLoss),surf,typeMaterial);
458  meb.reset(newmeot);
459  }
460  }
461 
462  std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
465  typePattern.set(i);
466  }
467  const Trk::TrackStateOnSurface* newTsos =
468  new Trk::TrackStateOnSurface(newFitQoS,
469  std::move(newMeas),
470  std::move(newPars),
471  std::move(meb),
472  typePattern);
473  newTrackStateOnSurfaces->push_back(newTsos);
474  }
475 
476  m_trackWithoutScattering.set(std::make_unique<Trk::Track>( this->info(), std::move(newTrackStateOnSurfaces),
477  this->fitQuality() ?
478  this->fitQuality()->uniqueClone() : nullptr ));
479  }
480  return m_trackWithoutScattering.get();
481  }
482 
483 } // end namespace
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
Trk::AlignTrack::setAlignTSOSCollection
void setAlignTSOSCollection(AlignTSOSCollection *atsosColl)
sets collection of AlignTSOS
Definition: AlignTrack.cxx:341
EnergyLoss.h
Trk::TrackStateOnSurface::Perigee
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Definition: TrackStateOnSurface.h:117
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::Track::fitQuality
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
Trk::AlignTSOSCollection
DataVector< AlignTSOS > AlignTSOSCollection
Definition: AlignTrack.h:35
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:32
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::TrackStateOnSurface::TrackStateOnSurfaceType
TrackStateOnSurfaceType
Definition: TrackStateOnSurface.h:98
Trk::AlignTrack::m_fullCovarianceMatrix
const Amg::SymMatrixX * m_fullCovarianceMatrix
matrix containing full covariance matrix from track fitter
Definition: AlignTrack.h:235
TrackParameters.h
Trk::AlignTrack::m_refitTheta
bool m_refitTheta
Definition: AlignTrack.h:254
CompetingRIOsOnTrack.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
Trk::AlignTrack::m_actualSecondDerivatives
std::vector< std::pair< AlignModule *, std::vector< double > > > * m_actualSecondDerivatives
Definition: AlignTrack.h:239
Trk::AlignTrack::m_localErrorMatInv
Amg::SymMatrixX * m_localErrorMatInv
inverse matrix containing local error matrices along diagonal
Definition: AlignTrack.h:229
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::Track::info
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
Trk::AlignTrack::m_refitQovP
bool m_refitQovP
Definition: AlignTrack.h:255
Trk::AlignTrack::m_residuals
Amg::VectorX * m_residuals
Definition: AlignTrack.h:241
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
Trk::AlignTSOS
Definition: AlignTSOS.h:37
Trk::AlignTrack::Unknown
@ Unknown
default type
Definition: AlignTrack.h:46
Trk::AlignModule
Definition: AlignModule.h:45
uniqueClone
std::unique_ptr< T_Obj > uniqueClone(const T_Obj *obj)
Definition: ObjContainer.h:49
Trk::AlignTrack::m_refitPhi
bool m_refitPhi
Definition: AlignTrack.h:253
Trk::MaterialEffectsBase::thicknessInX0
double thicknessInX0() const
returns the actually traversed material .
Trk::AlignTrack::m_trackAlignParamQuality
double * m_trackAlignParamQuality
Definition: AlignTrack.h:257
Trk::AlignTrack::m_localErrorMat
Amg::SymMatrixX * m_localErrorMat
matrix containing local error matrices along diagonal
Definition: AlignTrack.h:226
Trk::dumpAlignTrackType
std::string dumpAlignTrackType(const AlignTrack::AlignTrackType type)
Definition: AlignTrack.cxx:410
Trk::AlignTrack::AlignTrackType
AlignTrackType
Definition: AlignTrack.h:45
Trk::MaterialEffectsBase
base class to integrate material effects on Trk::Track in a flexible way.
Definition: MaterialEffectsBase.h:35
Trk::AlignTrack::isSLTrack
bool isSLTrack() const
method to determine whether a straight line track or not
Definition: AlignTrack.cxx:263
Trk::AlignTrack::m_originalTrack
const Track * m_originalTrack
point to original track
Definition: AlignTrack.h:214
Trk::AlignModuleDerivatives
std::pair< AlignModule *, std::vector< Amg::VectorX > > AlignModuleDerivatives
Definition: AlignTrack.h:39
Trk::AlignTrack::m_derivativeErr
std::vector< AlignModuleDerivatives > * m_derivativeErr
Definition: AlignTrack.h:238
Trk::AlignTrack::m_nAlignTSOSMeas
int m_nAlignTSOSMeas
variables
Definition: AlignTrack.h:220
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
Trk::AlignTrack::m_derivatives
std::vector< AlignModuleDerivatives > * m_derivatives
Definition: AlignTrack.h:237
Track.h
MaterialEffectsOnTrack.h
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
m_type
TokenType m_type
the type
Definition: TProperty.cxx:44
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition: MaterialEffectsOnTrack.h:40
Trk::Track::findPerigee
void findPerigee() const
Find perigee in the vector of track parameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:123
AlignTrack.h
Trk::AlignTrack::firstAtsos
AlignTSOSCollection::const_iterator firstAtsos() const
retrieve iterator pointer to first element in collection
Definition: AlignTrack.h:279
Trk::AlignTrack::BeamspotConstrained
@ BeamspotConstrained
refitted with beamspot constraint
Definition: AlignTrack.h:49
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
vector
Definition: MultiHisto.h:13
Trk::AlignTrack::m_derivativeMatrix
const Amg::MatrixX * m_derivativeMatrix
matrix containing derivative matrix from track fitter
Definition: AlignTrack.h:232
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
urldecode::states
states
Definition: urldecode.h:39
Trk::AlignTSOS::lastResidual
std::vector< Residual >::const_iterator lastResidual() const
returns last Residual iterator
Definition: AlignTSOS.h:107
Trk::AlignTrack::m_trackWithoutScattering
CxxUtils::CachedUniquePtr< Trk::Track > m_trackWithoutScattering
describes the quality of contribution to track to alignment parameter (used by shifting derivatives)
Definition: AlignTrack.h:259
Trk::AlignTrack::m_refitD0
bool m_refitD0
Definition: AlignTrack.h:251
Trk::AlignTrack::m_refitZ0
bool m_refitZ0
Definition: AlignTrack.h:252
Trk::AlignTrack::dump
void dump(MsgStream &msg)
dump align track information
Definition: AlignTrack.cxx:316
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
Trk::AlignTrack::m_weightsFirstDeriv
Amg::MatrixX * m_weightsFirstDeriv
Definition: AlignTrack.h:243
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Trk::AlignTrack::trackWithoutScattering
const Trk::Track * trackWithoutScattering() const
returns track with ScatteringAngle pointers all set to zero (used for refit by iPat)
Definition: AlignTrack.cxx:423
Trk::Unknown
@ Unknown
Definition: TargetSurfaces.h:48
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::AlignTrack::m_chi2dof
double m_chi2dof
Definition: AlignTrack.h:246
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
RIO_OnTrack.h
Trk::TrackStateOnSurface::InertMaterial
@ InertMaterial
This represents inert material, and so will contain MaterialEffectsBase.
Definition: TrackStateOnSurface.h:105
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Trk::AlignTrack::m_chi2
double m_chi2
Definition: AlignTrack.h:245
Trk::AlignTrack
Definition: AlignTrack.h:41
Trk::MaterialEffectsBase::EnergyLossEffects
@ EnergyLossEffects
contains energy loss corrections
Definition: MaterialEffectsBase.h:48
Trk::AlignTrack::m_vtx
AlignVertex * m_vtx
pointer to the associated vertex
Definition: AlignTrack.h:249
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::AlignTrack::m_alignTSOSCollection
AlignTSOSCollection * m_alignTSOSCollection
collection of alignTSOS that make up the alignTrack
Definition: AlignTrack.h:223
Trk::AlignTrack::alignTSOSCollection
const AlignTSOSCollection * alignTSOSCollection() const
returns collection of alignTSOS
Definition: AlignTrack.h:267
Trk::AlignTrack::m_type
AlignTrackType m_type
refit type of this alignTrack
Definition: AlignTrack.h:217
Trk::AlignTrack::chi2
double chi2() const
locally calculated chi2
Definition: AlignTrack.h:165
Trk::AlignTrack::dumpTrackInfo
static void dumpTrackInfo(const Track &track, MsgStream &msg)
dump track information
Definition: AlignTrack.cxx:269
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
Trk::AlignTrack::Original
@ Original
not refitted, just copy constructed from original Track
Definition: AlignTrack.h:47
Trk::AlignTrack::NormalRefitted
@ NormalRefitted
normally refitted, without adding any pseudo-measurement
Definition: AlignTrack.h:48
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::Track::operator=
Track & operator=(const Track &rhs)
assignment operator
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:42
Trk::MaterialEffectsOnTrack::scatteringAngles
const ScatteringAngles * scatteringAngles() const
returns the MCS-angles object.
Trk::AlignTrack::AlignTrack
AlignTrack()
Trk::TrackStateOnSurface::Scatterer
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
Definition: TrackStateOnSurface.h:113
Trk::AlignTrack::dumpLessTrackInfo
static void dumpLessTrackInfo(const Track &track, MsgStream &msg)
dump less track information
Definition: AlignTrack.cxx:276
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::AlignTSOS::firstResidual
std::vector< Residual >::const_iterator firstResidual() const
returns first Residual iterator
Definition: AlignTSOS.h:104
Trk::AlignTrack::operator=
AlignTrack & operator=(const AlignTrack &alignTrack)
assignment operator
Definition: AlignTrack.cxx:142
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::AlignTrack::VertexConstrained
@ VertexConstrained
refitted with vertex constraint
Definition: AlignTrack.h:50
Trk::AlignTrack::~AlignTrack
virtual ~AlignTrack()
destructor
Definition: AlignTrack.cxx:220
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes
@ NumberOfTrackStateOnSurfaceTypes
Definition: TrackStateOnSurface.h:152
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Trk::AlignTrack::lastAtsos
AlignTSOSCollection::const_iterator lastAtsos() const
returns iterator pointer to last element in collection
Definition: AlignTrack.h:280
Amg::SymMatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > SymMatrixX
Definition: EventPrimitives.h:30
Trk::AlignTrack::m_weights
Amg::MatrixX * m_weights
Definition: AlignTrack.h:242