ATLAS Offline Software
Loading...
Searching...
No Matches
IDAlignMonResidualsAlg.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// **********************************************************************
6// IDAlignMonResiduals.cxx
7// AUTHORS: Beate Heinemann, Tobias Golling, Ben Cooper, John Alison, Pierfrancesco Butti
8// Adapted to AthenaMT 2021-2022 by Per Johansson
9// **********************************************************************
10
11#ifndef IDAlignMonResidualsAlg_H
12#define IDAlignMonResidualsAlg_H
13
15
19#include "GaudiKernel/ToolHandle.h"
25
26#include <memory>
27#include <string>
28#include <vector>
29
30class AtlasDetectorID;
31class PixelID;
32class SCT_ID;
33class TRT_ID;
34
35namespace InDetDD{
38}
39
40namespace Trk {
41 class Track;
43}
44
45class EventContext;
46class ComTime;
47
49
50 public:
51
52 IDAlignMonResidualsAlg( const std::string & name, ISvcLocator* pSvcLocator );
54 virtual StatusCode initialize() override;
55 virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
56
57 private:
58 void fillTRTHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool isTubeHit, float trketa, float qpT) const;
59 void fillTRTBarrelHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool LRcorrect, bool isTubeHit, float trketa) const;
60 void fillTRTEndcapHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool LRcorrect, bool isTubeHit, float trketa, float qpT) const;
61 StatusCode setupTools();
62
63 StatusCode getSiResiduals(const Trk::Track*, const Trk::TrackStateOnSurface*, bool, double*) const;
64 std::unique_ptr <Trk::TrackParameters> getUnbiasedTrackParameters(const Trk::Track*, const Trk::TrackStateOnSurface*) const;
65
66 bool trackRequiresRefit(const Trk::Track*) const;
67
68 //tools
73 const SCT_ID* m_sctID{};
74 const TRT_ID* m_trtID{};
75
76 SG::ReadHandleKey<TrackCollection> m_tracksKey {this,"TrackName2", "CombinedInDetTracks", "track data key"};
77 SG::ReadHandleKey<TrackCollection> m_tracksName {this,"TrackName","CombinedInDetTracks", "track data key"};
78
79 ToolHandle<ITRT_CalDbTool> m_trtcaldbTool;
80 ToolHandle<Trk::IUpdator> m_iUpdator;
81 ToolHandle<Trk::IPropagator> m_propagator;
82 ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator;
83 ToolHandle<InDet::IInDetTrackSelectionTool> m_trackSelection; // baseline
84 ToolHandle<IInDetAlignHitQualSelTool> m_hitQualityTool;
85
86 std::string m_Pixel_Manager;
87 std::string m_SCT_Manager;
89 bool m_doHitQuality{false};
91 bool m_doPulls {};
93
94 static const int m_nSiBlayers{4}; //
95 static const int m_nPixEClayers{3}; //
96 static const int m_nSCTEClayers{9}; //
97 static const int m_nTRTBlayers{3}; //
98 static const int m_nTRTEClayers{2}; //
99 std::vector<int> m_pixResidualX;
100 std::vector<int> m_pixResidualX_2DProf;
101 std::vector<int> m_pixResidualY;
102 std::vector<int> m_pixResidualY_2DProf;
103 std::vector<int> m_pixPullX;
104 std::vector<int> m_pixPullY;
105 std::vector<int> m_pixResidualXvsEta;
106 std::vector<int> m_pixResidualYvsEta;
107 std::vector<int> m_pixResidualXvsPhi;
108 std::vector<int> m_pixResidualYvsPhi;
109 std::vector<int> m_pixECAResidualX;
110 std::vector<int> m_pixECAResidualY;
111 std::vector<int> m_pixECResidualX_2DProf;
112 std::vector<int> m_pixECResidualY_2DProf;
113 std::vector<int> m_pixECCResidualX;
114 std::vector<int> m_pixECCResidualY;
115 std::vector<int> m_sctResidualX;
116 std::vector<int> m_sctResidualX_2DProf;
119 std::vector<int> m_sctECAResidualX_2DProf;
122 std::vector<int> m_sctECCResidualX_2DProf;
125 std::vector<int> m_sctPullX;
126 std::vector<int> m_sctResidualXvsEta;
127 std::vector<int> m_sctResidualXvsPhi;
128 std::vector<int> m_trtBPredictedR;
129 std::vector<int> m_trtBMeasuredR;
130 std::vector<int> m_trtBResidualR;
131 std::vector<int> m_trtBPullR;
132 std::vector<int> m_trtBResidualRNoTube;
133 std::vector<int> m_trtBPullRNoTube;
134 std::vector<int> m_trtBLR;
135 std::vector<std::vector<int>> m_trtBResVsEta;
136 std::vector<std::vector<int>> m_trtBResVsPhiSec;
137 std::vector<std::vector<int>> m_trtBLRVsPhiSec;
138 std::vector<int> m_trtECPredictedR;
139 std::vector<int> m_trtECMeasuredR;
140 std::vector<int> m_trtECResidualR;
141 std::vector<int> m_trtECPullR;
142 std::vector<int> m_trtECResidualRNoTube;
143 std::vector<int> m_trtECPullRNoTube;
144 std::vector<int> m_trtECLR;
145 std::vector<int> m_trtECResVsEta;
146 std::vector<int> m_trtECResVsPhiSec;
147 std::vector<int> m_trtECLRVsPhiSec;
148 std::vector<int> m_trtECResVsPt_2DProf;
149};
150
151#endif
abstract interface to TRT calibration constants
Property holding a SG store/key/clid from which a ReadHandle is made.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
StatusCode getSiResiduals(const Trk::Track *, const Trk::TrackStateOnSurface *, bool, double *) const
void fillTRTHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool isTubeHit, float trketa, float qpT) const
std::vector< int > m_trtBPredictedR
ToolHandle< InDet::IInDetTrackSelectionTool > m_trackSelection
const InDetDD::SCT_DetectorManager * m_SCT_Mgr
std::vector< int > m_trtBResidualRNoTube
ToolHandle< Trk::IUpdator > m_iUpdator
std::vector< int > m_sct_s1_ResidualX_2DProf
std::vector< int > m_pixResidualYvsEta
std::vector< int > m_pixResidualYvsPhi
std::vector< int > m_pixECResidualY_2DProf
std::vector< int > m_sctECC_s0_ResidualX_2DProf
std::vector< int > m_pixResidualX_2DProf
std::vector< int > m_trtECResVsPt_2DProf
std::vector< int > m_sctECC_s1_ResidualX_2DProf
virtual StatusCode initialize() override
initialize
std::vector< int > m_sctResidualXvsEta
std::vector< std::vector< int > > m_trtBLRVsPhiSec
std::vector< int > m_trtBMeasuredR
std::vector< int > m_sctResidualXvsPhi
std::vector< int > m_trtECResVsPhiSec
std::vector< int > m_pixResidualX
std::vector< int > m_pixResidualY_2DProf
std::vector< int > m_pixResidualXvsPhi
std::vector< int > m_sctECA_s0_ResidualX_2DProf
void fillTRTEndcapHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool LRcorrect, bool isTubeHit, float trketa, float qpT) const
bool trackRequiresRefit(const Trk::Track *) const
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
std::vector< int > m_pixResidualY
const AtlasDetectorID * m_idHelper
ToolHandle< IInDetAlignHitQualSelTool > m_hitQualityTool
std::vector< int > m_pixECCResidualX
std::vector< int > m_pixResidualXvsEta
std::vector< int > m_trtECPredictedR
std::unique_ptr< Trk::TrackParameters > getUnbiasedTrackParameters(const Trk::Track *, const Trk::TrackStateOnSurface *) const
const InDetDD::PixelDetectorManager * m_PIX_Mgr
std::vector< int > m_trtECResidualR
void fillTRTBarrelHistograms(int barrel_ec, int layer_or_wheel, int phi_module, float predictR, float hitR, float residualR, float pullR, bool LRcorrect, bool isTubeHit, float trketa) const
IDAlignMonResidualsAlg(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< int > m_sctECA_s1_ResidualX_2DProf
ToolHandle< ITRT_CalDbTool > m_trtcaldbTool
std::vector< int > m_trtECMeasuredR
std::vector< int > m_sct_s0_ResidualX_2DProf
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
The residual and pull calculator tool handle.
std::vector< int > m_pixECAResidualX
ToolHandle< Trk::IPropagator > m_propagator
std::vector< int > m_pixECCResidualY
std::vector< int > m_sctECCResidualX_2DProf
std::vector< int > m_pixECAResidualY
std::vector< std::vector< int > > m_trtBResVsEta
std::vector< int > m_sctECAResidualX_2DProf
std::vector< std::vector< int > > m_trtBResVsPhiSec
std::vector< int > m_pixECResidualX_2DProf
std::vector< int > m_sctResidualX_2DProf
std::vector< int > m_trtECLRVsPhiSec
std::vector< int > m_trtECResidualRNoTube
std::vector< int > m_trtBResidualR
std::vector< int > m_sctResidualX
SG::ReadHandleKey< TrackCollection > m_tracksKey
SG::ReadHandleKey< TrackCollection > m_tracksName
std::vector< int > m_trtBPullRNoTube
std::vector< int > m_trtECResVsEta
std::vector< int > m_trtECPullRNoTube
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a ReadHandle is made.
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
represents the track state (measurement, material, fit parameters and quality) at a surface.
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.