ATLAS Offline Software
AnalyticalDerivCalcTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRK_ANALYTICALDERIVCALCTOOL_H
6 #define TRK_ANALYTICALDERIVCALCTOOL_H
7 
9 #include "GaudiKernel/ToolHandle.h"
12 
14 
15 #include <vector>
16 
17 
30 class AtlasDetectorID;
31 
32 namespace Trk
33 {
34  class AlignModule;
35  class AlignTrack;
36  class IAlignModuleTool;
37  class MeasurementTypeID;
38 
39  class AnalyticalDerivCalcTool : virtual public IDerivCalcTool, public AthAlgTool
40  {
41 
42  public:
43  AnalyticalDerivCalcTool(const std::string & type, const std::string & name, const IInterface * parent);
45 
48 
50  bool setDerivatives(AlignTrack * alignTrack);
51 
53  void showStatistics() {}
54 
56  bool setResidualCovMatrix(AlignTrack * alignTrack) const;
57 
58  private:
59 
60  ToolHandle<IAlignModuleTool> m_alignModuleTool;
61 
64 
65  bool getMeasErrorMatrix(const AlignTrack * alignTrack, Amg::MatrixX & V) const;
66 
67  bool getTrkParamCovMatrix(const AlignTrack * alignTrack, Amg::MatrixX & HCH) const;
68 
69  bool checkValidity(const Amg::MatrixX & R) const;
70 
71  std::vector<Amg::VectorX> getDerivatives(AlignTrack * alignTrack, const AlignModule * module);
72 
73  void checkResidualType(const AlignTrack * alignTrack);
74 
75  std::vector<std::pair<const AlignModule *, std::vector<Amg::VectorX> > > m_derivatives;
76 
79  bool m_useIntrinsicSCTErrors = false;
80  bool m_useIntrinsicTRTErrors = false;
81 
84 
86 
87  }; // end class
88 
89 } // end namespace
90 
91 #endif // TRK_ANALYTICALDERIVCALCTOOL_H
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::AnalyticalDerivCalcTool::AnalyticalDerivCalcTool
AnalyticalDerivCalcTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: AnalyticalDerivCalcTool.cxx:33
Trk::AnalyticalDerivCalcTool::m_useIntrinsicTRTErrors
bool m_useIntrinsicTRTErrors
use intrinsic errors for TRT
Definition: AnalyticalDerivCalcTool.h:80
Trk::AnalyticalDerivCalcTool::getDerivatives
std::vector< Amg::VectorX > getDerivatives(AlignTrack *alignTrack, const AlignModule *module)
Definition: AnalyticalDerivCalcTool.cxx:579
Trk::AnalyticalDerivCalcTool::finalize
StatusCode finalize()
Definition: AnalyticalDerivCalcTool.cxx:85
Trk::AnalyticalDerivCalcTool::initialize
StatusCode initialize()
Definition: AnalyticalDerivCalcTool.cxx:67
Trk::AlignModule
Definition: AlignModule.h:45
Trk::AnalyticalDerivCalcTool::m_idHelper
const AtlasDetectorID * m_idHelper
Definition: AnalyticalDerivCalcTool.h:62
Trk::AnalyticalDerivCalcTool::~AnalyticalDerivCalcTool
virtual ~AnalyticalDerivCalcTool()
Trk::AnalyticalDerivCalcTool::m_residualTypeSet
bool m_residualTypeSet
do we have the residual type set?
Definition: AnalyticalDerivCalcTool.h:83
Trk::AnalyticalDerivCalcTool::m_useLocalSetting
bool m_useLocalSetting
use local setup for the covariance matrix of the track
Definition: AnalyticalDerivCalcTool.h:77
Trk::AnalyticalDerivCalcTool::checkResidualType
void checkResidualType(const AlignTrack *alignTrack)
Definition: AnalyticalDerivCalcTool.cxx:842
AlignModule
AlignModule is a grouping of TrkDetElementBase objects, grouped according to the type of alignment,...
python.PyAthena.module
module
Definition: PyAthena.py:134
GeoPrimitives.h
Trk::AnalyticalDerivCalcTool::m_storeDerivatives
bool m_storeDerivatives
store derivatives on AlignTSOS to be filled into ntuple
Definition: AnalyticalDerivCalcTool.h:85
Trk::AnalyticalDerivCalcTool::m_derivatives
std::vector< std::pair< const AlignModule *, std::vector< Amg::VectorX > > > m_derivatives
Definition: AnalyticalDerivCalcTool.h:75
Trk::AnalyticalDerivCalcTool::checkValidity
bool checkValidity(const Amg::MatrixX &R) const
Definition: AnalyticalDerivCalcTool.cxx:537
Trk::AnalyticalDerivCalcTool::m_useIntrinsicSCTErrors
bool m_useIntrinsicSCTErrors
use intrinsic errors for SCT
Definition: AnalyticalDerivCalcTool.h:79
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::AnalyticalDerivCalcTool::m_alignModuleTool
ToolHandle< IAlignModuleTool > m_alignModuleTool
Definition: AnalyticalDerivCalcTool.h:60
Trk::AnalyticalDerivCalcTool::showStatistics
void showStatistics()
not used yet
Definition: AnalyticalDerivCalcTool.h:53
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::MeasurementTypeID
classifies a MeasurementBase into one of the known inherited flavours or one of the detector types fo...
Definition: MeasurementTypeID.h:26
Trk::AlignTrack
Definition: AlignTrack.h:41
Trk::IDerivCalcTool
Definition: IDerivCalcTool.h:36
Trk::AnalyticalDerivCalcTool::setResidualCovMatrix
bool setResidualCovMatrix(AlignTrack *alignTrack) const
sets residual covariance matrix
Definition: AnalyticalDerivCalcTool.cxx:141
Trk::AnalyticalDerivCalcTool::m_useIntrinsicPixelErrors
bool m_useIntrinsicPixelErrors
use intrinsic errors for Pixel
Definition: AnalyticalDerivCalcTool.h:78
Trk::AnalyticalDerivCalcTool
Definition: AnalyticalDerivCalcTool.h:40
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::AnalyticalDerivCalcTool::setDerivatives
bool setDerivatives(AlignTrack *alignTrack)
sets analytical partial derivatives of residuals w.r.t alignment parameters for TSOS on alignTrack.
Definition: AnalyticalDerivCalcTool.cxx:92
Trk::AnalyticalDerivCalcTool::getTrkParamCovMatrix
bool getTrkParamCovMatrix(const AlignTrack *alignTrack, Amg::MatrixX &HCH) const
Definition: AnalyticalDerivCalcTool.cxx:291
AthAlgTool
Definition: AthAlgTool.h:26
IDerivCalcTool.h
Trk::AnalyticalDerivCalcTool::m_measTypeIdHelper
MeasurementTypeID * m_measTypeIdHelper
Definition: AnalyticalDerivCalcTool.h:63
Trk::AnalyticalDerivCalcTool::m_residualType
int m_residualType
residual type to be used in the calculations
Definition: AnalyticalDerivCalcTool.h:82
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
Trk::AnalyticalDerivCalcTool::getMeasErrorMatrix
bool getMeasErrorMatrix(const AlignTrack *alignTrack, Amg::MatrixX &V) const
Definition: AnalyticalDerivCalcTool.cxx:521
AlignTrack
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...