33#ifndef MUONDIGITIZATION_MDT_DIGITIZATIONTOOL_H
34#define MUONDIGITIZATION_MDT_DIGITIZATIONTOOL_H
41#include "CLHEP/Geometry/Point3D.h"
42#include "CLHEP/Random/RandGaussZiggurat.h"
43#include "CLHEP/Random/RandomEngine.h"
44#include "GaudiKernel/PhysicalConstants.h"
45#include "GaudiKernel/ServiceHandle.h"
46#include "GaudiKernel/ToolHandle.h"
48#include "Identifier/Identifier.h"
93 virtual StatusCode
initialize() override final;
120 CLHEP::HepRandomEngine*
getRandomEngine(
const std::string& streamName,
const EventContext& ctx)
const;
121 int digitizeTime(
double time,
bool isHPTDC, CLHEP::HepRandomEngine* rndmEngine)
const;
129 CLHEP::HepRandomEngine* toolRndmEngine);
144 ToolHandle<IMDT_DigitizationTool>
m_digiTool{
this,
"DigitizationTool",
"MDT_Response_DigiTool",
145 "Tool which handle the digitization process"};
149 Gaudi::Property<double>
m_offsetTDC{
this,
"OffsetTDC", 800.,
"TDC offset used if no calibration data is found"};
150 Gaudi::Property<double>
m_signalSpeed{
this,
"SignalSpeed", 0.85*Gaudi::Units::c_light};
152 Gaudi::Property<double>
m_ns2TDCAMT{
this,
"ns2TDCAMT", 0.78125,
"Conversion factor TDC/ns for AMT chips"};
153 Gaudi::Property<double>
m_ns2TDCHPTDC{
this,
"ns2TDCHPTDC", 0.1953125,
"Conversion factor TDC/ns for HPTDC chips"};
154 Gaudi::Property<double>
m_resTDC{
this,
"ResolutionTDC", 0.5,
"TDC resolution"};
155 Gaudi::Property<double>
m_t0ShiftTuning{
this,
"TunedT0Shift",-17.,
"Fine tuned t0 shift value in ns"};
158 Gaudi::Property<bool>
m_checkMDTSimHits{
this,
"CheckSimHits",
true,
"Control on the hit validity"};
159 Gaudi::Property<bool>
m_useTof{
this,
"UseTof",
true,
"Option for the tof calculation"};
161 Gaudi::Property<bool>
m_useProp{
this,
"UseProp",
true,
""};
164 Gaudi::Property<bool>
m_useTwin{
this,
"UseTwin",
false,
""};
166 Gaudi::Property<double>
m_resTwin{
this,
"ResolutionTwinTube", 1.05,
"Twin Tube resolution"};
170 Gaudi::Property<double>
m_bunchCountOffset{
this,
"BunchCountOffset", -200.,
"Bunch crossing offset"};
171 Gaudi::Property<double>
m_matchingWindow{
this,
"MatchingWindow", 1000.,
"Matching window"};
172 Gaudi::Property<double>
m_maskWindow{
this,
"MaskWindow", 250.,
"Masked window"};
173 Gaudi::Property<double>
m_deadTime{
this,
"DeadTime", 700.,
"MDT drift tube dead time"};
185 Gaudi::Property<bool>
m_DoQballCharge{
this,
"DoQballCharge",
false,
"dEdx for Qballs with account of electric charge"};
188 std::unique_ptr<TimedHitCollection<MDTSimHit>>
m_thpcMDT{};
205 "Don't use the ReadHandleKey directly. Just extract the container name from it."};
209 "WriteHandleKey for Output MdtDigitContainer"};
211 "WriteHandleKey for Output MuonSimDataCollection"};
216 "Conditions object containing the calibrations"};
the preferred mechanism to access information from the different event stores in a pileup job.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
a smart pointer to a hit that also provides access to the extended timing info of the host event.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the Athena extensions are properly loaded.