ATLAS Offline Software
Loading...
Searching...
No Matches
TRTTimeCorrection.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 TRT_DIGITIZATION_TRTTIMECORRECTION_H
6#define TRT_DIGITIZATION_TRTTIMECORRECTION_H
7
9#include "Identifier/Identifier.h"
11
12#include <vector>
13
14namespace InDetDD {
16}
17
18class TRTDigSettings;
19class TRT_ID;
20
22
27
28public:
29
31 const InDetDD::TRT_DetectorManager* detmgr,
32 const TRT_ID*,
33 const ITRT_CalDbTool*);
34
36
43
44 double TimeShift(const int& strawID);
45
56 void PropagationTime(const int& strawID,
57 const double& meanZ,
58 double& propagationTime1,
59 double& propagationTime2);
60
61private:
62
63 Identifier getIdentifier ( int hitID,
64 bool& statusok) ; //Note: Changed from const due to message service hick ups
65
66
67 void Initialize();
68
70 double calculateTimeShift_Barrel( const unsigned int& iPhi,
71 const unsigned int& iRing,
72 const unsigned int& iLayer,
73 const unsigned int& iStraw,
74 const int strawID) ; //Note: Changed from const due to message service hick ups
75
77 double calculateTimeShift_EndCap( const unsigned int& iPhi,
78 const unsigned int& iWheel,
79 const unsigned int& iLayer,
80 const int strawID) ; //Note: Changed from const due to message service hick ups
81
83 double calculateTimeShiftFromStrawEnds( const Amg::Vector3D& strawend1_globalcoord,
84 const Amg::Vector3D& strawend2_globalcoord,
85 const int strawID) ;
91 void calculateSignalDists_Barrel(const unsigned int& iRing,
92 const unsigned int& iLayer,
93 double& direct_dist,
94 double& reflect_dist ) const;
100 void calculateSignalDists_EndCap(const unsigned int& iWheel,
101 double& direct_dist,
102 double& reflect_dist ) const;
103
106protected:
108private:
110 std::vector< std::vector< std::vector<double> > >
113 std::vector< std::vector< std::vector< std::vector<double> > > >
115
117 std::vector<double> m_directDistsForEndCapWheels;
121 std::vector< std::vector<double> > m_directDistsForBarrelLayers;
123 std::vector< std::vector<double> > m_reflectedDistsForBarrelLayers;
124
125 //Substitute these with use of hitidhelper?:
126 const unsigned int m_subdetectorMask;
127 const unsigned int m_right5Bits;
128 const unsigned int m_shift5Bits;
129 const unsigned int m_shift10Bits;
130 const unsigned int m_shift15Bits;
131
133 const double m_notInitVal;
134
135 //Digitization parameters
137 double m_lengthDeadRegion = 0.0;
140 bool m_getT0FromData = false;
141
143};
144
145#endif
abstract interface to TRT calibration constants
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
abstract interface to TRT calibration constants
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
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
Identifier getIdentifier(int hitID, bool &statusok)
double calculateTimeShift_EndCap(const unsigned int &iPhi, const unsigned int &iWheel, const unsigned int &iLayer, const int strawID)
Time shift for end cap straws.
double calculateTimeShift_Barrel(const unsigned int &iPhi, const unsigned int &iRing, const unsigned int &iLayer, const unsigned int &iStraw, const int strawID)
Time shift for barrel 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.
double TimeShift(const int &strawID)
Returns the time it would take to travel at light-speed from (0,0,0) to the farthest end of the wire ...
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.