ATLAS Offline Software
Loading...
Searching...
No Matches
SensorSimTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
11
12#ifndef PIXELDIGITIZATION_SensorSimTool_H
13#define PIXELDIGITIZATION_SensorSimTool_H
14
16#include "GaudiKernel/ToolHandle.h"
17#include "InDetSimEvent/SiHit.h"
18
19#include "HitManagement/TimedHitPtr.h" //template
23
24namespace InDetDD{
27}
28
29namespace CLHEP{
30 class HepRandomEngine;
31}
32
34
35
36static const InterfaceID IID_ISensorSimTool("SensorSimTool", 1, 0);
37
38class SensorSimTool: public AthAlgTool, virtual public IAlgTool {
39public:
40
46
47 SensorSimTool(const std::string& type, const std::string& name, const IInterface* parent) :
48 AthAlgTool(type, name, parent) {
49 declareInterface<SensorSimTool>(this);
50 }
51
52 static const InterfaceID& interfaceID() {return IID_ISensorSimTool;}
53
54 virtual StatusCode initialize() {
55 ATH_CHECK(AthAlgTool::initialize());
56 ATH_CHECK(m_siPropertiesTool.retrieve());
57 ATH_CHECK(m_moduleDataKey.initialize());
59
60 return StatusCode::SUCCESS;
61 }
62
63 virtual StatusCode finalize() {return StatusCode::FAILURE;}
64 virtual ~SensorSimTool() {}
65 virtual StatusCode induceCharge(const TimedHitPtr<SiHit>& phit,
66 SiChargedDiodeCollection& chargedDiodes,
67 const InDetDD::SiDetectorElement& Module,
68 const InDetDD::PixelModuleDesign& p_design,
69 std::vector< std::pair<double, double> >& trfHitRecord,
70 std::vector<double>& initialConditions,
71 CLHEP::HepRandomEngine* rndmEngine,
72 const EventContext &ctx) const = 0;
73private:
75protected:
76 ToolHandle<ISiPropertiesTool> m_siPropertiesTool
77 {
78 this, "SiPropertiesTool", "SiPropertiesTool", "Tool to retrieve SiProperties"
79 };
80
82 {
83 this, "PixelModuleData", "PixelModuleData", "Pixel module data"
84 };
85
87 {
88 this, "RadiationDamageSimulationType", RadiationDamageSimulationType::NO_RADIATION_DAMAGE, "Option to simualte the effects of radiation damage"
89 };
90
91 Gaudi::Property<std::string> m_templateCorrectionRootFile
92 {
93 this, "TemplateCorrectionROOTfile", "",
94 "Path to the ROOT file with histograms for radiation damage template corrections"
95 };
96
97 Gaudi::Property<std::vector<std::string> > m_lorentzAngleCorrectionHistos
98 {
99 this, "LorentzAngleCorrectionHistos", {},
100 "Paths to the histograms inside the ROOT file for Lorentz angle correction"
101 };
102
103 Gaudi::Property<std::vector<std::string> > m_chargeCorrectionHistos
104 {
105 this, "ChargeCorrectionHistos", {},
106 "Paths to the histograms inside the ROOT file for radiation damage charge correction"
107 };
108
109 Gaudi::Property<std::vector<std::string> > m_distanceCorrectionHistos
110 {
111 this, "DistanceCorrectionHistos", {},
112 "Paths to the histograms inside the ROOT file for radiation damage distance correction"
113 };
114
116 {
117 this, "PixelRadiationDamageFluenceMapData", "PixelRadiationDamageFluenceMapData", "Pixel fluence map data for radiation damage"
118 };
119
120
121 Gaudi::Property<bool> m_digitizeITk3Das3D
122 {
123 this, "DigitizeITk3Das3D", false,
124 "Flag to tell the code if the 3D sensors for ITK should be treated as 3D or as planar sensors for digitization"
125 };
126
127};
128
129#endif // PIXELDIGITIZATION_SensorSimTool_H
#define ATH_CHECK
Evaluate an expression and check for errors.
Store pixel constant parameters in PixelModuleData.
Store pixel constant parameters in PixelRadiationDamageFluenceMapData.
static const InterfaceID IID_ISensorSimTool("SensorSimTool", 1, 0)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Class used to describe the design of a module (diode segmentation and readout scheme)
Class to hold geometrical description of a silicon detector element.
SG::ReadCondHandleKey< PixelModuleData > m_moduleDataKey
Gaudi::Property< std::string > m_templateCorrectionRootFile
Gaudi::Property< std::vector< std::string > > m_chargeCorrectionHistos
virtual StatusCode finalize()
Gaudi::Property< std::vector< std::string > > m_lorentzAngleCorrectionHistos
virtual ~SensorSimTool()
virtual StatusCode induceCharge(const TimedHitPtr< SiHit > &phit, SiChargedDiodeCollection &chargedDiodes, const InDetDD::SiDetectorElement &Module, const InDetDD::PixelModuleDesign &p_design, std::vector< std::pair< double, double > > &trfHitRecord, std::vector< double > &initialConditions, CLHEP::HepRandomEngine *rndmEngine, const EventContext &ctx) const =0
ToolHandle< ISiPropertiesTool > m_siPropertiesTool
SG::ReadCondHandleKey< PixelRadiationDamageFluenceMapData > m_fluenceDataKey
Gaudi::Property< std::vector< std::string > > m_distanceCorrectionHistos
virtual StatusCode initialize()
static const InterfaceID & interfaceID()
SensorSimTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< bool > m_digitizeITk3Das3D
Gaudi::Property< int > m_radiationDamageSimulationType
a smart pointer to a hit that also provides access to the extended timing info of the host event.
Definition TimedHitPtr.h:18
Message Stream Member.