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 double TimeShift(int strawID,
45 const InDetDD::TRT_DetElementContainer* detElements);
46
57 void PropagationTime(int strawID,
58 double meanZ,
59 double& propagationTime1,
60 double& propagationTime2);
61
62private:
63
64 Identifier getIdentifier ( int hitID,
65 bool& statusok) ; //Note: Changed from const due to message service hick ups
66
67
68 void Initialize();
69
71 double calculateTimeShift_Barrel( unsigned int iPhi,
72 unsigned int iRing,
73 unsigned int iLayer,
74 unsigned int iStraw,
75 int strawID,
76 const InDetDD::TRT_DetElementContainer* detElements) ; //Note: Changed from const due to message service hick ups
77
79 double calculateTimeShift_EndCap( unsigned int iPhi,
80 unsigned int iWheel,
81 unsigned int iLayer,
82 int strawID,
83 const InDetDD::TRT_DetElementContainer* detElements) ; //Note: Changed from const due to message service hick ups
84
86 double calculateTimeShiftFromStrawEnds( const Amg::Vector3D& strawend1_globalcoord,
87 const Amg::Vector3D& strawend2_globalcoord,
88 int strawID) ;
94 void calculateSignalDists_Barrel(unsigned int iRing,
95 unsigned int iLayer,
96 double& direct_dist,
97 double& reflect_dist ) const;
103 void calculateSignalDists_EndCap(unsigned int iWheel,
104 double& direct_dist,
105 double& reflect_dist ) const;
106
109protected:
111private:
113 std::vector< std::vector< std::vector<double> > >
116 std::vector< std::vector< std::vector< std::vector<double> > > >
118
120 std::vector<double> m_directDistsForEndCapWheels;
124 std::vector< std::vector<double> > m_directDistsForBarrelLayers;
126 std::vector< std::vector<double> > m_reflectedDistsForBarrelLayers;
127
128 //Substitute these with use of hitidhelper?:
129 const unsigned int m_subdetectorMask;
130 const unsigned int m_right5Bits;
131 const unsigned int m_shift5Bits;
132 const unsigned int m_shift10Bits;
133 const unsigned int m_shift15Bits;
134
136 const double m_notInitVal;
137
138 //Digitization parameters
140 double m_lengthDeadRegion = 0.0;
143 bool m_getT0FromData = false;
144
146};
147
148#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 *)
double TimeShift(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 ...
std::vector< std::vector< double > > m_directDistsForBarrelLayers
Cached distances.
const unsigned int m_subdetectorMask
std::vector< std::vector< double > > m_reflectedDistsForBarrelLayers
Cached distances.
const TRTDigSettings * m_settings
void calculateSignalDists_EndCap(unsigned int iWheel, double &direct_dist, double &reflect_dist) const
Calculate the distance along the wire the signal travels before reaching the electronics.
std::vector< double > m_directDistsForEndCapWheels
Cached distances.
std::vector< std::vector< std::vector< double > > > m_timeShiftForEndCapPlanes
Cached timeshifts.
double calculateTimeShift_Barrel(unsigned int iPhi, unsigned int iRing, unsigned int iLayer, unsigned int iStraw, int strawID, const InDetDD::TRT_DetElementContainer *detElements)
Time shift for barrel straws.
const TRT_ID * m_trt_id
const unsigned int m_shift10Bits
const double m_notInitVal
Value used to denote an uninitialized value.
void calculateSignalDists_Barrel(unsigned int iRing, unsigned int iLayer, double &direct_dist, double &reflect_dist) const
Calculate the distance along the wire the signal travels before reaching the electronics.
const unsigned int m_right5Bits
std::vector< double > m_reflectedDistsForEndCapWheels
Cached distances.
const ITRT_CalDbTool * m_trtcaldbtool
Identifier getIdentifier(int hitID, bool &statusok)
const unsigned int m_shift5Bits
const unsigned int m_shift15Bits
void PropagationTime(int strawID, double meanZ, double &propagationTime1, double &propagationTime2)
Calculates the time between the signal reaching the wire and when it reaches the electronics.
std::vector< std::vector< std::vector< std::vector< double > > > > m_timeShiftForBarrelStraws
Cached timeshifts.
double calculateTimeShift_EndCap(unsigned int iPhi, unsigned int iWheel, unsigned int iLayer, int strawID, const InDetDD::TRT_DetElementContainer *detElements)
Time shift for end cap straws.
double calculateTimeShiftFromStrawEnds(const Amg::Vector3D &strawend1_globalcoord, const Amg::Vector3D &strawend2_globalcoord, int strawID)
Time shift from straw endpoints in global system.
const InDetDD::TRT_DetectorManager * m_detmgr
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:84
Eigen::Matrix< double, 3, 1 > Vector3D
Message Stream Member.