ATLAS Offline Software
Loading...
Searching...
No Matches
AlignResidualCalculator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKALIGNGENTOOLS_ALIGNRESIDUALCALCULATOR_H
6#define TRKALIGNGENTOOLS_ALIGNRESIDUALCALCULATOR_H
7
9#include "GaudiKernel/ToolHandle.h"
11
13
17
28
29class AtlasDetectorID;
30
31namespace Trk {
32
33 class AlignTrack;
34 class ResidualPull;
35 class Track;
36 class AlignTSOS;
37 class TrackStateOnSurface;
38
40
41 public:
42
43 AlignResidualCalculator(const std::string& type, const std::string& name,
44 const IInterface* parent);
46
47 virtual StatusCode initialize() override;
48 virtual StatusCode finalize() override;
49
51 virtual double setResiduals(DataVector<AlignTSOS>* alignTSOSColl,
52 const Track* track) override;
53
55 virtual double setResiduals(AlignTrack* alignTrack,
56 const Track* track) override;
57
61 const Track* track, bool newTrack) override;
62
64 virtual double chi2ForMeasType(int measType) const override
65 { return m_chi2ForMeasType[measType]; }
66
67 private:
68
69 double setResidualsOnATSOS(AlignTSOS* atsos, const TrackStateOnSurface* tsos);
71 const TrackStateOnSurface* getMatchingTSOS(const AlignTSOS* atsos, const Track* track);
72
73 ToolHandle <IResidualPullCalculator> m_pullCalculator{
74 this, "ResidualPullCalculator", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
75 ToolHandle <IUpdator> m_updator{
76 this, "UpdatorTool", "Trk::KalmanUpdator/TrkKalmanUpdator"};
77
78 IntegerProperty m_resType{
79 this, "ResidualType", Trk::AlignResidualType::HitOnly,
80 "residual type as defined in the Trk::AlignResidualType enum"};
81
82 BooleanProperty m_includeScatterers{this, "IncludeScatterers", false};
83 double m_qOverP{};
85
86 int m_nDoF{};
87
88 double* m_chi2ForMeasType = nullptr;
89
90 std::vector<const TrackStateOnSurface*> m_matchedTSOS;
91
92 };
93
94
95}
96
97#endif // TRKALIGNGENTOOLS_ALIGNRESIDUALCALCULATOR_H
An STL vector of pointers that by default owns its pointed-to elements.
AlignTSOS is a TSOS with extra variables useful for alignment.
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Derived DataVector<T>.
Definition DataVector.h:795
DataModel_detail::iterator< DataVector > iterator
Standard iterator.
Definition DataVector.h:842
const TrackStateOnSurface * getMatchingTSOS(const AlignTSOS *atsos, const Track *track)
void accumulateScattering(const TrackStateOnSurface *tsos)
virtual StatusCode initialize() override
virtual double setResiduals(DataVector< AlignTSOS > *alignTSOSColl, const Track *track) override
sets residuals for AlignTSOS on AlignTrack and returns total chi2
ToolHandle< IResidualPullCalculator > m_pullCalculator
std::vector< const TrackStateOnSurface * > m_matchedTSOS
AlignResidualCalculator(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode finalize() override
virtual double setResiduals(DataVector< AlignTSOS >::iterator firstAtsos, DataVector< AlignTSOS >::iterator lastAtsos, const Track *track, bool newTrack) override
sets residuals for AlignTSOS on AlignTrack and returns total chi2
double setResidualsOnATSOS(AlignTSOS *atsos, const TrackStateOnSurface *tsos)
virtual double chi2ForMeasType(int measType) const override
returns chi2 summed over hits of a particular MeasurementType
represents the track state (measurement, material, fit parameters and quality) at a surface.
Ensure that the ATLAS eigen extensions are properly loaded.