ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkAlignment
TrkAlignGenTools
TrkAlignGenTools
AnalyticalDerivCalcTool.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 TRK_ANALYTICALDERIVCALCTOOL_H
6
#define TRK_ANALYTICALDERIVCALCTOOL_H
7
8
#include "
AthenaBaseComps/AthAlgTool.h
"
9
#include "GaudiKernel/ToolHandle.h"
10
#include "
EventPrimitives/EventPrimitives.h
"
11
#include "
GeoPrimitives/GeoPrimitives.h
"
12
13
#include "
TrkAlignInterfaces/IDerivCalcTool.h
"
14
#include "
TrkAlignInterfaces/IAlignModuleTool.h
"
15
16
#include "
TrkAlignEvent/AlignResidualType.h
"
17
18
#include <vector>
19
20
32
33
class
AtlasDetectorID
;
34
35
namespace
Trk
36
{
37
class
AlignModule
;
38
class
AlignTrack
;
39
class
MeasurementTypeID;
40
41
class
AnalyticalDerivCalcTool
:
virtual
public
IDerivCalcTool
,
public
AthAlgTool
42
{
43
44
public
:
45
AnalyticalDerivCalcTool
(
const
std::string &
type
,
const
std::string & name,
const
IInterface * parent);
46
47
StatusCode
initialize
()
override
;
48
StatusCode
finalize
()
override
;
49
51
bool
setDerivatives
(
AlignTrack
* alignTrack)
override
;
52
54
void
showStatistics
()
override
{}
55
57
bool
setResidualCovMatrix
(
AlignTrack
* alignTrack)
const override
;
58
59
private
:
60
61
PublicToolHandle<IAlignModuleTool>
m_alignModuleTool
{
62
this
,
"AlignModuleTool"
,
"InDet::InDetAlignModuleTool/InDetAlignModuleTool"
};
63
64
const
AtlasDetectorID
*
m_idHelper
=
nullptr
;
65
MeasurementTypeID
*
m_measTypeIdHelper
=
nullptr
;
66
67
bool
getMeasErrorMatrix
(
const
AlignTrack
* alignTrack,
Amg::MatrixX
& V)
const
;
68
69
bool
getTrkParamCovMatrix
(
const
AlignTrack
* alignTrack,
Amg::MatrixX
& HCH)
const
;
70
71
bool
checkValidity
(
const
Amg::MatrixX
& R)
const
;
72
73
std::vector<Amg::VectorX>
getDerivatives
(
AlignTrack
* alignTrack,
const
AlignModule
* module);
74
75
void
checkResidualType
(
const
AlignTrack
* alignTrack);
76
77
std::vector<std::pair<const AlignModule *, std::vector<Amg::VectorX> > >
m_derivatives
;
78
79
BooleanProperty
m_useLocalSetting
{
this
,
"UseLocalSetting"
,
false
,
80
"use local setup for the covariance matrix of the track"
};
81
82
// Use constant errors for each sub-detector such that it's equivalent
83
// to minimize residual distance instead of minizing residual pull.
84
// This is only applied if m_useLocalSetting==true
85
BooleanProperty
m_useIntrinsicPixelErrors
{
86
this
,
"UseIntrinsicPixelError"
,
false
,
"use intrinsic errors for Pixel"
};
87
BooleanProperty
m_useIntrinsicSCTErrors
{
88
this
,
"UseIntrinsicSCTError"
,
false
,
"use intrinsic errors for SCT"
};
89
BooleanProperty
m_useIntrinsicTRTErrors
{
90
this
,
"UseIntrinsicTRTError"
,
false
,
"use intrinsic errors for TRT"
};
91
92
int
m_residualType
=
Trk::AlignResidualType::HitOnly
;
93
bool
m_residualTypeSet
=
false
;
94
95
BooleanProperty
m_storeDerivatives
{
this
,
"StoreDerivatives"
,
false
,
96
"store derivatives dr/da on AlignTSOS to be filled into ntuple"
};
97
98
};
// end class
99
100
}
// end namespace
101
102
#endif
// TRK_ANALYTICALDERIVCALCTOOL_H
AlignResidualType.h
AthAlgTool.h
EventPrimitives.h
GeoPrimitives.h
IAlignModuleTool.h
IDerivCalcTool.h
AlignModule
AlignModule is a grouping of TrkDetElementBase objects, grouped according to the type of alignment,...
AlignTrack
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition
AtlasDetectorID.h:53
Trk::AlignModule
Definition
AlignModule.h:46
Trk::AlignTrack
Definition
AlignTrack.h:41
Trk::AnalyticalDerivCalcTool::initialize
StatusCode initialize() override
Definition
AnalyticalDerivCalcTool.cxx:41
Trk::AnalyticalDerivCalcTool::m_useLocalSetting
BooleanProperty m_useLocalSetting
Definition
AnalyticalDerivCalcTool.h:79
Trk::AnalyticalDerivCalcTool::m_alignModuleTool
PublicToolHandle< IAlignModuleTool > m_alignModuleTool
Definition
AnalyticalDerivCalcTool.h:61
Trk::AnalyticalDerivCalcTool::checkValidity
bool checkValidity(const Amg::MatrixX &R) const
Definition
AnalyticalDerivCalcTool.cxx:509
Trk::AnalyticalDerivCalcTool::getMeasErrorMatrix
bool getMeasErrorMatrix(const AlignTrack *alignTrack, Amg::MatrixX &V) const
Definition
AnalyticalDerivCalcTool.cxx:493
Trk::AnalyticalDerivCalcTool::m_storeDerivatives
BooleanProperty m_storeDerivatives
Definition
AnalyticalDerivCalcTool.h:95
Trk::AnalyticalDerivCalcTool::m_useIntrinsicSCTErrors
BooleanProperty m_useIntrinsicSCTErrors
Definition
AnalyticalDerivCalcTool.h:87
Trk::AnalyticalDerivCalcTool::finalize
StatusCode finalize() override
Definition
AnalyticalDerivCalcTool.cxx:59
Trk::AnalyticalDerivCalcTool::AnalyticalDerivCalcTool
AnalyticalDerivCalcTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
AnalyticalDerivCalcTool.cxx:32
Trk::AnalyticalDerivCalcTool::m_derivatives
std::vector< std::pair< const AlignModule *, std::vector< Amg::VectorX > > > m_derivatives
Definition
AnalyticalDerivCalcTool.h:77
Trk::AnalyticalDerivCalcTool::m_useIntrinsicPixelErrors
BooleanProperty m_useIntrinsicPixelErrors
Definition
AnalyticalDerivCalcTool.h:85
Trk::AnalyticalDerivCalcTool::getTrkParamCovMatrix
bool getTrkParamCovMatrix(const AlignTrack *alignTrack, Amg::MatrixX &HCH) const
Definition
AnalyticalDerivCalcTool.cxx:265
Trk::AnalyticalDerivCalcTool::m_residualType
int m_residualType
residual type to be used in the calculations
Definition
AnalyticalDerivCalcTool.h:92
Trk::AnalyticalDerivCalcTool::setResidualCovMatrix
bool setResidualCovMatrix(AlignTrack *alignTrack) const override
sets residual covariance matrix
Definition
AnalyticalDerivCalcTool.cxx:115
Trk::AnalyticalDerivCalcTool::m_residualTypeSet
bool m_residualTypeSet
do we have the residual type set?
Definition
AnalyticalDerivCalcTool.h:93
Trk::AnalyticalDerivCalcTool::m_useIntrinsicTRTErrors
BooleanProperty m_useIntrinsicTRTErrors
Definition
AnalyticalDerivCalcTool.h:89
Trk::AnalyticalDerivCalcTool::setDerivatives
bool setDerivatives(AlignTrack *alignTrack) override
sets analytical partial derivatives of residuals w.r.t alignment parameters for TSOS on alignTrack.
Definition
AnalyticalDerivCalcTool.cxx:66
Trk::AnalyticalDerivCalcTool::m_idHelper
const AtlasDetectorID * m_idHelper
Definition
AnalyticalDerivCalcTool.h:64
Trk::AnalyticalDerivCalcTool::checkResidualType
void checkResidualType(const AlignTrack *alignTrack)
Definition
AnalyticalDerivCalcTool.cxx:816
Trk::AnalyticalDerivCalcTool::getDerivatives
std::vector< Amg::VectorX > getDerivatives(AlignTrack *alignTrack, const AlignModule *module)
Definition
AnalyticalDerivCalcTool.cxx:551
Trk::AnalyticalDerivCalcTool::showStatistics
void showStatistics() override
not used yet
Definition
AnalyticalDerivCalcTool.h:54
Trk::AnalyticalDerivCalcTool::m_measTypeIdHelper
MeasurementTypeID * m_measTypeIdHelper
Definition
AnalyticalDerivCalcTool.h:65
Trk::IDerivCalcTool
Definition
IDerivCalcTool.h:36
Trk::MeasurementTypeID
classifies a MeasurementBase into one of the known inherited flavours or one of the detector types fo...
Definition
MeasurementTypeID.h:26
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition
EventPrimitives.h:27
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::HitOnly
@ HitOnly
Definition
AlignResidualType.h:27
type
Generated on
for ATLAS Offline Software by
1.17.0