ATLAS Offline Software
Loading...
Searching...
No Matches
SensorSimPlanarTool.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_SensorSimPlanarTool_H
13#define PIXELDIGITIZATION_SensorSimPlanarTool_H
14
16#include "InDetCondTools/ISiLorentzAngleTool.h" //ToolHandle template parameter
17#include "SensorSimTool.h"
18#include "RadDamageUtil.h" //ToolHandle template parameter
20#include <vector>
21#include <utility> //std::pair
22
23
24
26public:
27 SensorSimPlanarTool(const std::string& type, const std::string& name, const IInterface* parent);
28 virtual StatusCode initialize() override;
29 virtual StatusCode finalize() override;
31
32 virtual StatusCode induceCharge(const TimedHitPtr<SiHit>& phit,
33 SiChargedDiodeCollection& chargedDiodes,
34 const InDetDD::SiDetectorElement& Module,
35 const InDetDD::PixelModuleDesign& p_design,
36 std::vector< std::pair<double, double> >& trfHitRecord,
37 std::vector<double>& initialConditions,
38 CLHEP::HepRandomEngine* rndmEngine,
39 const EventContext &ctx) const override;
40
41private:
43
44 //Apply slim edge inefficiencies for IBL sensors
45 static void applyIBLSlimEdges(double& energyPerStep, double& eta_drifted) ;
46
47 // Map for radiation damage simulation
48 std::vector<PixelHistoConverter> m_ramoPotentialMap;
49 std::vector<PixelHistoConverter> m_distanceMap_e;
50 std::vector<PixelHistoConverter> m_distanceMap_h;
51 std::vector<PixelHistoConverter> m_lorentzMap_e;
52 std::vector<PixelHistoConverter> m_lorentzMap_h;
53 std::vector<PixelHistoConverter> m_lorentzCorrection;
54 std::vector<PixelHistoConverter> m_chargeCorrection;
55 std::vector<PixelHistoConverter> m_distanceCorrection;
56
57 Gaudi::Property<int> m_numberOfSteps
58 {
59 this, "numberOfSteps", 50, "Geant4:number of steps for PixelPlanar"
60 };
61
62 Gaudi::Property<bool> m_doInterpolateEfield
63 {
64 this, "doInterpolateEfield", false, "doInterpolateEfield bool: should be flag"
65 };
66
67 Gaudi::Property<std::vector<std::string> > m_fluenceMap
68 {
69 this, "FluenceMap", {
70 "PixelDigitization/maps_IBL_PL_400V_fl5_5e14.root",
71 "PixelDigitization/maps_PIX_400V_fl5_19e14.root",
72 "PixelDigitization/maps_PIX_250V_fl2_28e14.root",
73 "PixelDigitization/maps_PIX_250V_fl1_53e14.root"
74 },
75 "Fluence map for radiation damage when interpolation method is activated"
76 };
77
78 Gaudi::Property<std::vector<double> > m_fluenceLayer
79 {
80 this, "FluenceLayer", {
81 5.50e14, 5.19e14, 2.28e14, 1.53e14
82 }, "Fluence for radiation damage when interpolation method is activated"
83 };
84
85 Gaudi::Property<std::vector<float> > m_voltageLayer
86 {
87 this, "BiasVoltageLayer", {
88 400.0, 400.0, 250.0, 250.0
89 }, "Bias voltage for radiation damage when interpolation method is activated"
90 };
91
92 ToolHandle<RadDamageUtil> m_radDamageUtil
93 {
94 this, "RadDamageUtil", "RadDamageUtil", "Rad Damage utility"
95 };
96
97 ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool
98 {
99 this, "LorentzAngleTool", "PixelLorentzAngleTool", "Tool to retreive Lorentz angle"
100 };
101};
102
103#endif // PIXELDIGITIZATION_SensorSimPlanarTool_H
Class used to describe the design of a module (diode segmentation and readout scheme)
Class to hold geometrical description of a silicon detector element.
virtual ~SensorSimPlanarTool()
std::vector< PixelHistoConverter > m_lorentzCorrection
std::vector< PixelHistoConverter > m_ramoPotentialMap
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 override
virtual StatusCode initialize() override
static void applyIBLSlimEdges(double &energyPerStep, double &eta_drifted)
virtual StatusCode finalize() override
std::vector< PixelHistoConverter > m_chargeCorrection
Gaudi::Property< int > m_numberOfSteps
SensorSimPlanarTool(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< PixelHistoConverter > m_lorentzMap_e
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
Gaudi::Property< bool > m_doInterpolateEfield
Gaudi::Property< std::vector< std::string > > m_fluenceMap
std::vector< PixelHistoConverter > m_lorentzMap_h
std::vector< PixelHistoConverter > m_distanceMap_h
std::vector< PixelHistoConverter > m_distanceMap_e
Gaudi::Property< std::vector< double > > m_fluenceLayer
ToolHandle< RadDamageUtil > m_radDamageUtil
Gaudi::Property< std::vector< float > > m_voltageLayer
std::vector< PixelHistoConverter > m_distanceCorrection
SensorSimTool(const std::string &type, const std::string &name, const IInterface *parent)
a smart pointer to a hit that also provides access to the extended timing info of the host event.
Definition TimedHitPtr.h:18