ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD_TdcCalibrationTool.h
Go to the documentation of this file.
1
12
13#ifndef HGTD_TDCCALIBRATIONTOOL_H
14#define HGTD_TDCCALIBRATIONTOOL_H
15
16#include <array>
17#include <map>
18#include <string>
19#include <vector>
20#include <algorithm>
21#include <iostream>
22
24#include "AthenaKernel/Units.h"
25
26#include "CLHEP/Random/RandomEngine.h"
27
31#include "InDetSimEvent/SiHit.h"
33
34namespace HGTD {
35 constexpr unsigned int TOA_OVERLFLOW_MASK = 0x80;
36}
37
38class HGTD_ID;
39
40namespace InDetDD {
41class SolidStateDetectorElementBase;
42}
43
44namespace CLHEP {
45class HepRandomEngine;
46}
47
49public:
50HGTD_TdcCalibrationTool(const std::string& type, const std::string& name,
51 const IInterface* parent);
52
54 // Not overriding for now
55 // virtual StatusCode initialize() override final;
56
64
66
75 uint8_t Time2TOA(const InDetDD::SolidStateDetectorElementBase* element, float hit_time) const;
76
85 float TOA2Time(const InDetDD::SolidStateDetectorElementBase* element, uint8_t toa) const;
86
94 bool checkTOAoverflow(uint8_t toa) const {
95 return toa & HGTD::TOA_OVERLFLOW_MASK;
96 }
97
98
99 private:
100
101 FloatProperty m_active_window{this, "PS_ActiveRange", 2.5 * Athena::Units::nanosecond,
102 "ALTIROC PS active range" };
103
104 FloatProperty m_lhc_rise_edge{this, "LHC_RiseEdge",12.5 * Athena::Units::nanosecond,
105 "LHC clock rise edge time" };
106
107 FloatProperty m_ps_large_step{this, "PS_LargeStep", 1.562 * Athena::Units::nanosecond,
108 "ALTIROC PS large step"};
109
110 FloatProperty m_ps_small_step{this, "PS_SmallStep", 9.7 * Athena::Units::picosecond,
111 "ALTIROC PS small step"};
112
113 FloatProperty m_toa_bin_size {this, "TOABinSize", 20 * Athena::Units::picosecond,
114 "Nominal TDC TOA bin size"};
115
116};
117
118#endif // HGTD_TDCCALIBRATIONTOOL_H
119
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
Wrapper to avoid constant divisions when using units.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This is an Identifier helper class for the HGTD subdetector.
Definition HGTD_ID.h:47
HGTD_TdcCalibrationTool(const std::string &type, const std::string &name, const IInterface *parent)
float TOA2Time(const InDetDD::SolidStateDetectorElementBase *element, uint8_t toa) const
Retrieve time of flight from 7-bit TOA code applying the TDC calibration parameters.
float activeWindowUpperBound(const InDetDD::SolidStateDetectorElementBase *element) const
AlgTool initialize.
bool checkTOAoverflow(uint8_t toa) const
Check for the overflow flag within TOA code, which indicates an out of range measurement.
uint8_t Time2TOA(const InDetDD::SolidStateDetectorElementBase *element, float hit_time) const
Simulate the TDC digitization.
Class to hold geometrical description of a solid state detector element.
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
constexpr unsigned int TOA_OVERLFLOW_MASK
Message Stream Member.