ATLAS Offline Software
Loading...
Searching...
No Matches
TRTTimeCorrection.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRT_DIGITIZATION_TRTTIMECORRECTION_H
6#define TRT_DIGITIZATION_TRTTIMECORRECTION_H
7
9#include "Identifier/Identifier.h"
11
12#include <vector>
13
14namespace InDetDD {
17}
18
19class TRTDigSettings;
20class TRT_ID;
21
23
28
29public:
30
32 const InDetDD::TRT_DetectorManager* detmgr,
33 const TRT_ID*,
34 const ITRT_CalDbTool*);
35
37
44
45 double TimeShift(const int& strawID,
46 const InDetDD::TRT_DetElementContainer* detElements);
47
58 void PropagationTime(const int& strawID,
59 const double& meanZ,
60 double& propagationTime1,
61 double& propagationTime2);
62
63private:
64
65 Identifier getIdentifier ( int hitID,
66 bool& statusok) ; //Note: Changed from const due to message service hick ups
67
68
69 void Initialize();
70
72 double calculateTimeShift_Barrel( const unsigned int& iPhi,
73 const unsigned int& iRing,
74 const unsigned int& iLayer,
75 const unsigned int& iStraw,
76 const int strawID,
77 const InDetDD::TRT_DetElementContainer* detElements) ; //Note: Changed from const due to message service hick ups
78
80 double calculateTimeShift_EndCap( const unsigned int& iPhi,
81 const unsigned int& iWheel,
82 const unsigned int& iLayer,
83 const int strawID,
84 const InDetDD::TRT_DetElementContainer* detElements) ; //Note: Changed from const due to message service hick ups
85
87 double calculateTimeShiftFromStrawEnds( const Amg::Vector3D& strawend1_globalcoord,
88 const Amg::Vector3D& strawend2_globalcoord,
89 const int strawID) ;
95 void calculateSignalDists_Barrel(const unsigned int& iRing,
96 const unsigned int& iLayer,
97 double& direct_dist,
98 double& reflect_dist ) const;
104 void calculateSignalDists_EndCap(const unsigned int& iWheel,
105 double& direct_dist,
106 double& reflect_dist ) const;
107
110protected:
112private:
114 std::vector< std::vector< std::vector<double> > >
117 std::vector< std::vector< std::vector< std::vector<double> > > >
119
121 std::vector<double> m_directDistsForEndCapWheels;
125 std::vector< std::vector<double> > m_directDistsForBarrelLayers;
127 std::vector< std::vector<double> > m_reflectedDistsForBarrelLayers;
128
129 //Substitute these with use of hitidhelper?:
130 const unsigned int m_subdetectorMask;
131 const unsigned int m_right5Bits;
132 const unsigned int m_shift5Bits;
133 const unsigned int m_shift10Bits;
134 const unsigned int m_shift15Bits;
135
137 const double m_notInitVal;
138
139 //Digitization parameters
141 double m_lengthDeadRegion = 0.0;
144 bool m_getT0FromData = false;
145
147};
148
149#endif
abstract interface to TRT calibration constants
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
abstract interface to TRT calibration constants
Class to hold different TRT detector elements structures.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Class containing parameters and settings used by TRT digitization.
TRTTimeCorrection(const TRTDigSettings *digset, const InDetDD::TRT_DetectorManager *detmgr, const TRT_ID *, const ITRT_CalDbTool *)
std::vector< std::vector< double > > m_directDistsForBarrelLayers
Cached distances.
void calculateSignalDists_EndCap(const unsigned int &iWheel, double &direct_dist, double &reflect_dist) const
Calculate the distance along the wire the signal travels before reaching the electronics.
const unsigned int m_subdetectorMask
std::vector< std::vector< double > > m_reflectedDistsForBarrelLayers
Cached distances.
const TRTDigSettings * m_settings
double calculateTimeShift_Barrel(const unsigned int &iPhi, const unsigned int &iRing, const unsigned int &iLayer, const unsigned int &iStraw, const int strawID, const InDetDD::TRT_DetElementContainer *detElements)
Time shift for barrel straws.
std::vector< double > m_directDistsForEndCapWheels
Cached distances.
std::vector< std::vector< std::vector< double > > > m_timeShiftForEndCapPlanes
Cached timeshifts.
const TRT_ID * m_trt_id
const unsigned int m_shift10Bits
const double m_notInitVal
Value used to denote an uninitialized value.
const unsigned int m_right5Bits
void PropagationTime(const int &strawID, const double &meanZ, double &propagationTime1, double &propagationTime2)
Calculates the time between the signal reaching the wire and when it reaches the electronics.
std::vector< double > m_reflectedDistsForEndCapWheels
Cached distances.
void calculateSignalDists_Barrel(const unsigned int &iRing, const unsigned int &iLayer, double &direct_dist, double &reflect_dist) const
Calculate the distance along the wire the signal travels before reaching the electronics.
const ITRT_CalDbTool * m_trtcaldbtool
double TimeShift(const int &strawID, const InDetDD::TRT_DetElementContainer *detElements)
Returns the time it would take to travel at light-speed from (0,0,0) to the farthest end of the wire ...
Identifier getIdentifier(int hitID, bool &statusok)
double calculateTimeShift_EndCap(const unsigned int &iPhi, const unsigned int &iWheel, const unsigned int &iLayer, const int strawID, const InDetDD::TRT_DetElementContainer *detElements)
Time shift for end cap straws.
const unsigned int m_shift5Bits
double calculateTimeShiftFromStrawEnds(const Amg::Vector3D &strawend1_globalcoord, const Amg::Vector3D &strawend2_globalcoord, const int strawID)
Time shift from straw endpoints in global system.
const unsigned int m_shift15Bits
std::vector< std::vector< std::vector< std::vector< double > > > > m_timeShiftForBarrelStraws
Cached timeshifts.
const InDetDD::TRT_DetectorManager * m_detmgr
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Eigen::Matrix< double, 3, 1 > Vector3D
Message Stream Member.