ATLAS Offline Software
SCT_DetailedSurfaceChargesGenerator.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
15 #ifndef SCT_DIGITIZATION_SCT_DETAILEDSURFACECHARGESGENERATOR_H
16 #define SCT_DIGITIZATION_SCT_DETAILEDSURFACECHARGESGENERATOR_H
17 
18 //Inheritance
21 
22 // Athena
26 
27 // Gaudi
28 #include "GaudiKernel/ITHistSvc.h" // for ITHistSvc
29 #include "GaudiKernel/ServiceHandle.h"
30 #include "GaudiKernel/ToolHandle.h"
31 
32 // CLHEP
33 #include "CLHEP/Units/PhysicalConstants.h"
34 
35 // C++ Standard Library
36 #include <string>
37 
38 // Charges and hits
39 class SiHit;
40 
41 // -- do histos
42 class TProfile;
43 class TProfile2D;
44 
45 namespace InDetDD {
46  class SiDetectorElement;
47 }
48 
49 namespace CLHEP {
50  class HepRandomEngine;
51 }
52 
59 class SCT_DetailedSurfaceChargesGenerator : public extends<AthAlgTool, ISurfaceChargesGenerator> {
60 public:
61 
63  SCT_DetailedSurfaceChargesGenerator(const std::string& type, const std::string& name, const IInterface* parent);
64 
67 
69  virtual StatusCode initialize() override;
70 
72  virtual StatusCode finalize() override;
73 
74 private:
79  };
80  enum EFieldModel {
83  FEMsolution=2
84  };
85 
86  // Non-const methods are used in initialization
87  virtual void setFixedTime(float fixedTime) override { m_tfix.setValue(fixedTime); }
88 
90  virtual void process(const InDetDD::SiDetectorElement* element, const TimedHitPtr<SiHit>& phit, ISiSurfaceChargesInserter& inserter, CLHEP::HepRandomEngine * rndmEngine, const EventContext& ctx) override;
91  void processSiHit(const InDetDD::SiDetectorElement* element, const SiHit& phit, ISiSurfaceChargesInserter& inserter, const float eventTime, const unsigned short eventID, CLHEP::HepRandomEngine * rndmEngine, const EventContext& ctx);
92 
93  // some diagnostics methods are needed here too
94  float DriftTime(float zhit, const InDetDD::SiDetectorElement* element, const EventContext& ctx) const;
95  float DiffusionSigma(float zhit, const InDetDD::SiDetectorElement* element, const EventContext& ctx) const;
96  float SurfaceDriftTime(float ysurf) const;
97  float MaxDriftTime(const InDetDD::SiDetectorElement* element, const EventContext& ctx) const;
98  float MaxDiffusionSigma(const InDetDD::SiDetectorElement* element, const EventContext& ctx) const;
99 
100  // methods for Taka Kondos's new charge drift model
101  // Non-const methods are used in initialization
102  void initTransportModel();
103  void init_mud_e(double T);
104  void init_mud_h(double T);
105  void initExEyArray();
106  void initPotentialValue();
107 
108  void EField(double x, double y, double& Ex, double& Ey) const;
109  double induced (int istrip, double x, double y) const;
110  bool electron(double x_e, double y_e, double& vx_e, double& vy_e, double& D_e) const;
111  bool hole( double x_h, double y_h, double& vx_h, double& vy_h, double& D_h);
112  double mud_e(double E) const;
113  double mud_h(double E) const;
114  static double ExValue150(int ix, int iy) ;
115  static double EyValue150(int ix, int iy) ;
116  static double GetPotentialValue(int ix, int iy) ;
117  void holeTransport(double& x0, double& y0, double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2, CLHEP::HepRandomEngine * rndmEngine);
118  void electronTransport(double& x0, double& y0, double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2, CLHEP::HepRandomEngine * rndmEngine) const;
119  double inducedCharge(int& istrip, double& x, double& y, double& t) const;
120 
121  IntegerProperty m_numberOfCharges{this, "NumberOfCharges", 1};
122  FloatProperty m_smallStepLength{this, "SmallStepLength", 5.};
123 
125  FloatProperty m_tSurfaceDrift{this, "SurfaceDriftTime", 10., "max surface drift time"};
126 
127  FloatProperty m_tfix{this, "FixedTime", -999., "ixed time"};
128  FloatProperty m_tsubtract{this, "SubtractTime", -999., "subtract drift time from mid gap"};
129 
130  // -- Charge Trapping -- //
131  BooleanProperty m_doHistoTrap{this, "doHistoTrap", false, "Allow filling of histos for charge trapping effect"};
132  BooleanProperty m_doTrapping{this, "doTrapping", false, "Simulation of charge trapping effect"};
133  DoubleProperty m_Fluence{this, "Fluence", 0., "Fluence for charge trapping effect"};
134 
135  //TK model settings
136  IntegerProperty m_chargeDriftModel{this, "ChargeDriftModel", ehTransport, "use enum ChargeDriftMode"};
137  IntegerProperty m_eFieldModel{this, "EFieldModel", FEMsolution, "use enum EFieldModel"};
138 
139  //------TK parameters given externally by jobOptions ------------------
140  DoubleProperty m_depletionVoltage{this, "DepletionVoltage", 70.};
141  DoubleProperty m_biasVoltage{this, "BiasVoltage", 150.};
142  DoubleProperty m_magneticField{this, "MagneticField", -2.0};
143  DoubleProperty m_sensorTemperature{this, "SensorTemperature", 0.+CLHEP::STP_Temperature};
144  DoubleProperty m_transportTimeStep{this, "TransportTimeStep", 0.25};
145  DoubleProperty m_transportTimeMax{this, "TransportTimeMax", 25.0};
146 
147  BooleanProperty m_isOverlay{this, "isOverlay", false, "flag for overlay"};
148 
149  //ToolHandles
150  ToolHandle<ISiPropertiesTool> m_siPropertiesTool{this, "SiPropertiesTool", "SCT_SiPropertiesTool", "Tool to retrieve SCT silicon properties"};
151  ToolHandle<ISiliconConditionsTool> m_siConditionsTool{this, "SiConditionsTool", "SCT_SiliconConditionsTool", "Tool to retrieve SCT silicon information"};
152  ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool{this, "LorentzAngleTool", "SiLorentzAngleTool/SCTLorentzAngleTool", "Tool to retreive Lorentz angle"};
153 
154  ServiceHandle<ITHistSvc> m_thistSvc{this, "THistSvc", "THistSvc"};
155 
156  float m_tHalfwayDrift{0.};
157  float m_distInterStrip{1.0};
159 
160  bool m_SurfaceDriftFlag{false};
161 
162  //------TK parameters mostly fixed but can be changed externally ------------
163  double m_bulk_depth{0.0285}; //<!285 micron, expressed in cm units
164  double m_strip_pitch{0.0080}; //<! 80 micron, expressed in cm units
165  double m_depletion_depth{0.0285};
166  double m_y_origin_min{0.0}; //<! zero unless under-depleted
167 
168  //------TK parameters for e, h transport --------------------------------
169  double m_kB{1.38E-23}; //<! Boltzmann const [m^2*kg/s^2/K]
170  double m_e{1.602E-19}; //<! electron charge [Coulomb]
171  double m_vs_e{11615084.7393}; //<! mobility at 273.15K
172  double m_Ec_e{6034.20429};
173  double m_vs_h{8761659.83530}; //<! hole mobility at 273.15K
174  double m_Ec_h{15366.52650};
175  double m_beta_e{};
176  double m_beta_h{};
177  double m_driftMobility{};
178 
179  //------TK arrays of FEM analysis -----------------------------------
180  double m_PotentialValue[81][115]{{0.}};
181  double m_ExValue150[17][115]{{0.}};
182  double m_EyValue150[17][115]{{0.}};
183 
184  //------TK parameters for charge map, uses file storage of map....
185  // This member makes the class very large --- large enough that it fails
186  // ubsan's sanity checks and produces a false positive. However, it is not
187  // actually used, so comment it out. If it is ever actually needed,
188  // then it should be allocated dynamically rather than being allocated
189  // inline to the class.
190  // double m_stripCharge[5][81][285][50]{{{{0.}}}};
191  // sroe: the following were never initialised before, which begs the question:
192  // Did this code *ever* work? Has it *ever* been used?
194  double m_stripCharge_dx{1.};
195  double m_stripCharge_dy{1.};
196 
197  // -- Histograms
199  TProfile2D* m_h_yzRamo{nullptr};
200  TProfile2D* m_h_yzEfield{nullptr};
201  TProfile2D* m_h_yEfield{nullptr};
202  TProfile2D* m_h_zEfield{nullptr};
203 };
204 
205 #endif // SCT_DETAILEDSURFACECHARGESGENERATOR_H
SCT_DetailedSurfaceChargesGenerator::m_kB
double m_kB
Definition: SCT_DetailedSurfaceChargesGenerator.h:169
SCT_DetailedSurfaceChargesGenerator::m_numberOfCharges
IntegerProperty m_numberOfCharges
number of charges
Definition: SCT_DetailedSurfaceChargesGenerator.h:121
SCT_DetailedSurfaceChargesGenerator::m_distInterStrip
float m_distInterStrip
Inter strip distance normalized to 1.
Definition: SCT_DetailedSurfaceChargesGenerator.h:157
SCT_DetailedSurfaceChargesGenerator::initTransportModel
void initTransportModel()
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:495
SCT_DetailedSurfaceChargesGenerator::m_isOverlay
BooleanProperty m_isOverlay
Definition: SCT_DetailedSurfaceChargesGenerator.h:147
SCT_DetailedSurfaceChargesGenerator::mud_h
double mud_h(double E) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:781
SCT_DetailedSurfaceChargesGenerator::m_smallStepLength
FloatProperty m_smallStepLength
max internal step along the larger G4 step
Definition: SCT_DetailedSurfaceChargesGenerator.h:122
python.PhysicalConstants.STP_Temperature
float STP_Temperature
Definition: PhysicalConstants.py:119
SCT_DetailedSurfaceChargesGenerator::init_mud_h
void init_mud_h(double T)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:569
SCT_DetailedSurfaceChargesGenerator::m_driftMobility
double m_driftMobility
Definition: SCT_DetailedSurfaceChargesGenerator.h:177
SCT_DetailedSurfaceChargesGenerator::m_depletionVoltage
DoubleProperty m_depletionVoltage
Definition: SCT_DetailedSurfaceChargesGenerator.h:140
SCT_DetailedSurfaceChargesGenerator::m_doHistoTrap
BooleanProperty m_doHistoTrap
Definition: SCT_DetailedSurfaceChargesGenerator.h:131
SCT_DetailedSurfaceChargesGenerator::hole
bool hole(double x_h, double y_h, double &vx_h, double &vy_h, double &D_h)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:639
SCT_DetailedSurfaceChargesGenerator::initPotentialValue
void initPotentialValue()
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:598
SCT_DetailedSurfaceChargesGenerator::electron
bool electron(double x_e, double y_e, double &vx_e, double &vy_e, double &D_e) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:613
SCT_DetailedSurfaceChargesGenerator::m_h_zEfield
TProfile2D * m_h_zEfield
Definition: SCT_DetailedSurfaceChargesGenerator.h:202
SCT_DetailedSurfaceChargesGenerator::m_SurfaceDriftFlag
bool m_SurfaceDriftFlag
surface drift ON/OFF
Definition: SCT_DetailedSurfaceChargesGenerator.h:160
SCT_DetailedSurfaceChargesGenerator::mud_e
double mud_e(double E) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:774
SCT_DetailedSurfaceChargesGenerator::m_chargeDriftModel
IntegerProperty m_chargeDriftModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:136
SCT_DetailedSurfaceChargesGenerator::m_distHalfInterStrip
float m_distHalfInterStrip
Half way distance inter strip.
Definition: SCT_DetailedSurfaceChargesGenerator.h:158
ISiPropertiesTool.h
SCT_DetailedSurfaceChargesGenerator::m_transportTimeMax
DoubleProperty m_transportTimeMax
Definition: SCT_DetailedSurfaceChargesGenerator.h:145
SCT_DetailedSurfaceChargesGenerator::m_tsubtract
FloatProperty m_tsubtract
Definition: SCT_DetailedSurfaceChargesGenerator.h:128
SCT_DetailedSurfaceChargesGenerator::m_y_origin_min
double m_y_origin_min
Definition: SCT_DetailedSurfaceChargesGenerator.h:166
SCT_DetailedSurfaceChargesGenerator::m_beta_e
double m_beta_e
Definition: SCT_DetailedSurfaceChargesGenerator.h:175
ISiLorentzAngleTool.h
TimedHitPtr< SiHit >
SCT_DetailedSurfaceChargesGenerator::MaxDiffusionSigma
float MaxDiffusionSigma(const InDetDD::SiDetectorElement *element, const EventContext &ctx) const
max sigma diffusion
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:211
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
x
#define x
SCT_DetailedSurfaceChargesGenerator::processSiHit
void processSiHit(const InDetDD::SiDetectorElement *element, const SiHit &phit, ISiSurfaceChargesInserter &inserter, const float eventTime, const unsigned short eventID, CLHEP::HepRandomEngine *rndmEngine, const EventContext &ctx)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:259
SCT_DetailedSurfaceChargesGenerator::init_mud_e
void init_mud_e(double T)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:560
ISurfaceChargesGenerator.h
SCT_DetailedSurfaceChargesGenerator::inducedCharge
double inducedCharge(int &istrip, double &x, double &y, double &t) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:969
SCT_DetailedSurfaceChargesGenerator::GetPotentialValue
static double GetPotentialValue(int ix, int iy)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:877
SCT_DetailedSurfaceChargesGenerator::SCT_DetailedSurfaceChargesGenerator
SCT_DetailedSurfaceChargesGenerator(const std::string &type, const std::string &name, const IInterface *parent)
constructor
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:35
SiHit
Definition: SiHit.h:19
SCT_DetailedSurfaceChargesGenerator::initExEyArray
void initExEyArray()
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:578
SCT_DetailedSurfaceChargesGenerator::EField
void EField(double x, double y, double &Ex, double &Ey) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:699
SCT_DetailedSurfaceChargesGenerator::EyValue150
static double EyValue150(int ix, int iy)
Definition: GetExEy_150V.cxx:7
SCT_DetailedSurfaceChargesGenerator::m_siConditionsTool
ToolHandle< ISiliconConditionsTool > m_siConditionsTool
Definition: SCT_DetailedSurfaceChargesGenerator.h:151
SCT_DetailedSurfaceChargesGenerator::m_tHalfwayDrift
float m_tHalfwayDrift
Surface drift time.
Definition: SCT_DetailedSurfaceChargesGenerator.h:156
SCT_DetailedSurfaceChargesGenerator::m_PotentialValue
double m_PotentialValue[81][115]
Definition: SCT_DetailedSurfaceChargesGenerator.h:180
SCT_DetailedSurfaceChargesGenerator::defaultSCTModel
@ defaultSCTModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:76
SCT_DetailedSurfaceChargesGenerator::m_depletion_depth
double m_depletion_depth
Definition: SCT_DetailedSurfaceChargesGenerator.h:165
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
SCT_DetailedSurfaceChargesGenerator::finalize
virtual StatusCode finalize() override
AlgTool finalize.
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:145
SCT_DetailedSurfaceChargesGenerator::m_stripCharge_dy
double m_stripCharge_dy
Definition: SCT_DetailedSurfaceChargesGenerator.h:195
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SCT_DetailedSurfaceChargesGenerator
Class to take calculate Charge Transport in the SCT with a detailed charge transport model.
Definition: SCT_DetailedSurfaceChargesGenerator.h:59
SCT_DetailedSurfaceChargesGenerator::m_e
double m_e
Definition: SCT_DetailedSurfaceChargesGenerator.h:170
SCT_DetailedSurfaceChargesGenerator::m_Fluence
DoubleProperty m_Fluence
Definition: SCT_DetailedSurfaceChargesGenerator.h:133
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
SCT_DetailedSurfaceChargesGenerator::SurfaceDriftTime
float SurfaceDriftTime(float ysurf) const
Calculate of the surface drift time.
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:225
SCT_DetailedSurfaceChargesGenerator::m_ExValue150
double m_ExValue150[17][115]
Definition: SCT_DetailedSurfaceChargesGenerator.h:181
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SCT_DetailedSurfaceChargesGenerator::induced
double induced(int istrip, double x, double y) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:669
SCT_DetailedSurfaceChargesGenerator::m_thistSvc
ServiceHandle< ITHistSvc > m_thistSvc
Definition: SCT_DetailedSurfaceChargesGenerator.h:154
SCT_DetailedSurfaceChargesGenerator::m_vs_h
double m_vs_h
Definition: SCT_DetailedSurfaceChargesGenerator.h:173
SCT_DetailedSurfaceChargesGenerator::ehTransport
@ ehTransport
Definition: SCT_DetailedSurfaceChargesGenerator.h:77
SCT_DetailedSurfaceChargesGenerator::EFieldModel
EFieldModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:80
SCT_DetailedSurfaceChargesGenerator::ExValue150
static double ExValue150(int ix, int iy)
Definition: GetExEy_150V.cxx:442
SCT_DetailedSurfaceChargesGenerator::uniformEFieldModel
@ uniformEFieldModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:81
SCT_DetailedSurfaceChargesGenerator::FEMsolution
@ FEMsolution
Definition: SCT_DetailedSurfaceChargesGenerator.h:83
SCT_DetailedSurfaceChargesGenerator::m_bulk_depth
double m_bulk_depth
Definition: SCT_DetailedSurfaceChargesGenerator.h:163
SCT_DetailedSurfaceChargesGenerator::ChargeDriftMode
ChargeDriftMode
Definition: SCT_DetailedSurfaceChargesGenerator.h:75
SCT_DetailedSurfaceChargesGenerator::m_siPropertiesTool
ToolHandle< ISiPropertiesTool > m_siPropertiesTool
Definition: SCT_DetailedSurfaceChargesGenerator.h:150
SCT_DetailedSurfaceChargesGenerator::fixedChargeMap
@ fixedChargeMap
Definition: SCT_DetailedSurfaceChargesGenerator.h:78
SCT_DetailedSurfaceChargesGenerator::m_h_yzRamo
TProfile2D * m_h_yzRamo
Definition: SCT_DetailedSurfaceChargesGenerator.h:199
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
SCT_DetailedSurfaceChargesGenerator::DriftTime
float DriftTime(float zhit, const InDetDD::SiDetectorElement *element, const EventContext &ctx) const
calculate drift time perpandicular to the surface for a charge at distance zhit from mid gap
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:153
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SCT_DetailedSurfaceChargesGenerator::m_beta_h
double m_beta_h
Definition: SCT_DetailedSurfaceChargesGenerator.h:176
SCT_DetailedSurfaceChargesGenerator::m_h_yzEfield
TProfile2D * m_h_yzEfield
Definition: SCT_DetailedSurfaceChargesGenerator.h:200
SCT_DetailedSurfaceChargesGenerator::process
virtual void process(const InDetDD::SiDetectorElement *element, const TimedHitPtr< SiHit > &phit, ISiSurfaceChargesInserter &inserter, CLHEP::HepRandomEngine *rndmEngine, const EventContext &ctx) override
create a list of surface charges from a hit
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:249
SCT_DetailedSurfaceChargesGenerator::m_tfix
FloatProperty m_tfix
Definition: SCT_DetailedSurfaceChargesGenerator.h:127
SCT_DetailedSurfaceChargesGenerator::initialize
virtual StatusCode initialize() override
AlgTool initialize.
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:43
SCT_DetailedSurfaceChargesGenerator::m_h_yEfield
TProfile2D * m_h_yEfield
Definition: SCT_DetailedSurfaceChargesGenerator.h:201
SCT_DetailedSurfaceChargesGenerator::electronTransport
void electronTransport(double &x0, double &y0, double *Q_m2, double *Q_m1, double *Q_00, double *Q_p1, double *Q_p2, CLHEP::HepRandomEngine *rndmEngine) const
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:884
SCT_DetailedSurfaceChargesGenerator::m_transportTimeStep
DoubleProperty m_transportTimeStep
Definition: SCT_DetailedSurfaceChargesGenerator.h:144
SCT_DetailedSurfaceChargesGenerator::m_biasVoltage
DoubleProperty m_biasVoltage
Definition: SCT_DetailedSurfaceChargesGenerator.h:141
SCT_DetailedSurfaceChargesGenerator::m_tSurfaceDrift
FloatProperty m_tSurfaceDrift
related to the surface drift
Definition: SCT_DetailedSurfaceChargesGenerator.h:125
y
#define y
SCT_DetailedSurfaceChargesGenerator::DiffusionSigma
float DiffusionSigma(float zhit, const InDetDD::SiDetectorElement *element, const EventContext &ctx) const
calculate diffusion sigma from a gaussian dist scattered charge
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:185
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCT_DetailedSurfaceChargesGenerator::m_EyValue150
double m_EyValue150[17][115]
Definition: SCT_DetailedSurfaceChargesGenerator.h:182
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCT_DetailedSurfaceChargesGenerator::m_sensorTemperature
DoubleProperty m_sensorTemperature
Definition: SCT_DetailedSurfaceChargesGenerator.h:143
SCT_DetailedSurfaceChargesGenerator::setFixedTime
virtual void setFixedTime(float fixedTime) override
Definition: SCT_DetailedSurfaceChargesGenerator.h:87
SCT_DetailedSurfaceChargesGenerator::m_h_efieldz
TProfile * m_h_efieldz
Definition: SCT_DetailedSurfaceChargesGenerator.h:198
SCT_DetailedSurfaceChargesGenerator::m_vs_e
double m_vs_e
Definition: SCT_DetailedSurfaceChargesGenerator.h:171
ISiliconConditionsTool.h
SCT_DetailedSurfaceChargesGenerator::m_stripCharge_dx
double m_stripCharge_dx
Definition: SCT_DetailedSurfaceChargesGenerator.h:194
SCT_DetailedSurfaceChargesGenerator::~SCT_DetailedSurfaceChargesGenerator
virtual ~SCT_DetailedSurfaceChargesGenerator()=default
Destructor.
SCT_DetailedSurfaceChargesGenerator::flatDiodeModel
@ flatDiodeModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:82
SCT_DetailedSurfaceChargesGenerator::m_strip_pitch
double m_strip_pitch
Definition: SCT_DetailedSurfaceChargesGenerator.h:164
SCT_DetailedSurfaceChargesGenerator::holeTransport
void holeTransport(double &x0, double &y0, double *Q_m2, double *Q_m1, double *Q_00, double *Q_p1, double *Q_p2, CLHEP::HepRandomEngine *rndmEngine)
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:788
SCT_DetailedSurfaceChargesGenerator::m_Ec_h
double m_Ec_h
Definition: SCT_DetailedSurfaceChargesGenerator.h:174
SCT_DetailedSurfaceChargesGenerator::m_eFieldModel
IntegerProperty m_eFieldModel
Definition: SCT_DetailedSurfaceChargesGenerator.h:137
SCT_DetailedSurfaceChargesGenerator::m_magneticField
DoubleProperty m_magneticField
Definition: SCT_DetailedSurfaceChargesGenerator.h:142
SCT_DetailedSurfaceChargesGenerator::m_Ec_e
double m_Ec_e
Definition: SCT_DetailedSurfaceChargesGenerator.h:172
ISiSurfaceChargesInserter
Definition: ISurfaceChargesGenerator.h:32
SCT_DetailedSurfaceChargesGenerator::m_stripCharge_iymax
int m_stripCharge_iymax
Definition: SCT_DetailedSurfaceChargesGenerator.h:193
SCT_DetailedSurfaceChargesGenerator::m_doTrapping
BooleanProperty m_doTrapping
Definition: SCT_DetailedSurfaceChargesGenerator.h:132
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
SCT_DetailedSurfaceChargesGenerator::m_lorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
Definition: SCT_DetailedSurfaceChargesGenerator.h:152
SCT_DetailedSurfaceChargesGenerator::MaxDriftTime
float MaxDriftTime(const InDetDD::SiDetectorElement *element, const EventContext &ctx) const
max drift charge equivalent to the detector thickness
Definition: SCT_DetailedSurfaceChargesGenerator.cxx:198
ServiceHandle< ITHistSvc >