ATLAS Offline Software
IMdtCalibrationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MDTCALIBSVC_IMDTCALIBRATIONTOOL_H
6 #define MDTCALIBSVC_IMDTCALIBRATIONTOOL_H
7 
8 #include <bitset>
9 #include <GaudiKernel/IAlgTool.h>
10 
14 
15 
23 class IMdtCalibrationTool : virtual public IAlgTool {
24 public:
25 
28  Default = 1,
32  };
34  static constexpr double tdcBinSize = 0.78125; //25/32; exact number: (1000.0/40.079)/32.0
35 
37  virtual ~IMdtCalibrationTool() = default;
38 
41 
69  virtual MdtCalibOutput calibrate(const EventContext& ctx,
70  const MdtCalibInput& hit,
71  bool resolFromRtrack=false) const = 0;
72 
75  virtual MdtCalibTwinOutput calibrateTwinTubes(const EventContext& ctx,
76  const MdtCalibInput& primHit,
77  const MdtCalibInput& twinHit) const = 0;
78 
79  virtual double getResolutionFromRt(const EventContext& ctx,
80  const Identifier& module,
81  const double time) const = 0;
82  struct ToolSettings {
83  enum class Property {
84  TofCorrection = 0,
85  PropCorrection,
86  TempCorrection,
87  MagFieldCorrection,
88  WireSagTimeCorrection,
89  SlewCorrection,
90  BackgroundCorrection,
91  NumSettings
92  };
93 
94  void setBit(const Property prop, const bool value){
95  m_mask.set(static_cast<unsigned int>(prop), value);
96  }
97  bool isActive(const Property prop) const {
98  return m_mask.test(static_cast<unsigned int>(prop));
99  }
100  timeWindowMode window{timeWindowMode::UserDefined};
101  private:
102  using bitmask = std::bitset<static_cast<unsigned>(Property::NumSettings)>;
104 
105  };
106  virtual ToolSettings getSettings() const = 0;
107 
108 };
109 
110 #endif
MdtCalibInput.h
MdtCalibInput
Definition: MdtCalibInput.h:27
IMdtCalibrationTool
Definition: IMdtCalibrationTool.h:23
MdtCalibTwinOutput.h
IMdtCalibrationTool::DeclareInterfaceID
DeclareInterfaceID(IMdtCalibrationTool, 1, 0)
implements IInterface
athena.value
value
Definition: athena.py:122
Property
Support class for PropertyMgr.
Definition: Property.h:23
IMdtCalibrationTool::ToolSettings::window
timeWindowMode window
Definition: IMdtCalibrationTool.h:100
IMdtCalibrationTool::ToolSettings::setBit
void setBit(const Property prop, const bool value)
Definition: IMdtCalibrationTool.h:94
python.PyAthena.module
module
Definition: PyAthena.py:134
IMdtCalibrationTool::~IMdtCalibrationTool
virtual ~IMdtCalibrationTool()=default
destructor
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MdtCalibOutput.h
IMdtCalibrationTool::UserDefined
@ UserDefined
Definition: IMdtCalibrationTool.h:27
IMdtCalibrationTool::ToolSettings::bitmask
std::bitset< static_cast< unsigned >(Property::NumSettings)> bitmask
Definition: IMdtCalibrationTool.h:102
IMdtCalibrationTool::timeWindowMode
timeWindowMode
Definition: IMdtCalibrationTool.h:26
MdtCalibOutput
Definition: MdtCalibOutput.h:10
IMdtCalibrationTool::calibrateTwinTubes
virtual MdtCalibTwinOutput calibrateTwinTubes(const EventContext &ctx, const MdtCalibInput &primHit, const MdtCalibInput &twinHit) const =0
Convert the raw MDT times of two twin hits into a Twin position (coordinate along tube) It returns wh...
IMdtCalibrationTool::ToolSettings::m_mask
bitmask m_mask
Definition: IMdtCalibrationTool.h:103
IMdtCalibrationTool::calibrate
virtual MdtCalibOutput calibrate(const EventContext &ctx, const MdtCalibInput &hit, bool resolFromRtrack=false) const =0
Convert the raw MDT time (+charge) into a drift radius + error.
IMdtCalibrationTool::ToolSettings::isActive
bool isActive(const Property prop) const
Definition: IMdtCalibrationTool.h:97
MdtCalibTwinOutput
Definition: MdtCalibTwinOutput.h:11
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
IMdtCalibrationTool::CollisionFitT0
@ CollisionFitT0
10, 30
Definition: IMdtCalibrationTool.h:31
IMdtCalibrationTool::CollisionData
@ CollisionData
20, 30
Definition: IMdtCalibrationTool.h:30
IMdtCalibrationTool::CollisionG4
@ CollisionG4
1000, 2000
Definition: IMdtCalibrationTool.h:29
Default
IMdtCalibrationTool::tdcBinSize
static constexpr double tdcBinSize
Conversion to go from tdc counts -> drift Time.
Definition: IMdtCalibrationTool.h:34
IMdtCalibrationTool::getResolutionFromRt
virtual double getResolutionFromRt(const EventContext &ctx, const Identifier &module, const double time) const =0
IMdtCalibrationTool::ToolSettings
Definition: IMdtCalibrationTool.h:82
IMdtCalibrationTool::getSettings
virtual ToolSettings getSettings() const =0