ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_ChargeTrappingTool Class Reference

#include <SCT_ChargeTrappingTool.h>

Inheritance diagram for SCT_ChargeTrappingTool:
Collaboration diagram for SCT_ChargeTrappingTool:

Public Member Functions

 SCT_ChargeTrappingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~SCT_ChargeTrappingTool ()=default
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual SCT_ChargeTrappingCondData getCondData (const IdentifierHash &elementHash, double pos, const EventContext &ctx) const override
virtual SCT_ChargeTrappingCondData getCondData (const IdentifierHash &elementHash, double pos) const override
virtual void getHoleTransport (double &x0, double &y0, double &xfin, double &yfin, double &Q_m2, double &Q_m1, double &Q_00, double &Q_p1, double &Q_p2, const EventContext &ctx) const override
virtual void getHoleTransport (double &x0, double &y0, double &xfin, double &yfin, double &Q_m2, double &Q_m1, double &Q_00, double &Q_p1, double &Q_p2) const override

Private Member Functions

SCT_ChargeTrappingCondData calculate (const IdentifierHash &elementHash, double pos, const EventContext &ctx) const
double induced (int istrip, double x, double y) const
void holeTransport (double &x0, double &y0, double &xfin, double &yfin, double &Q_m2, double &Q_m1, double &Q_00, double &Q_p1, double &Q_p2) const
const InDetDD::SiDetectorElementgetDetectorElement (const IdentifierHash &waferHash, const EventContext &ctx) const

Static Private Member Functions

static double getPotentialValue (int &ix, int &iy)

Private Attributes

StringProperty m_detectorName {this, "DetectorName", "SCT", "Detector name"}
bool m_isSCT {false}
DoubleProperty m_temperature {this, "Temperature", -2., "Default temperature in Celcius."}
DoubleProperty m_temperatureMin {this, "TemperatureMin", -80., "Minimum temperature allowed in Celcius."}
DoubleProperty m_temperatureMax {this, "TemperatureMax", 100., "Maximum temperature allowed in Celcius."}
DoubleProperty m_deplVoltage {this, "DepletionVoltage", -30., "Default depletion voltage in Volt."}
DoubleProperty m_biasVoltage {this, "BiasVoltage", 150., "Default bias voltage in Volt."}
bool m_conditionsToolValid {false}
std::atomic_bool m_conditionsToolWarning {false}
BooleanProperty m_calcHoles {this, "CalcHoles", true, "Default is to consider holes in signal formation."}
DoubleProperty m_fluence {this, "Fluence", 3.0E13, "Fluence received by the detector."}
DoubleProperty m_betaElectrons {this, "BetaElectrons", 3.1E-16, "Constant for the trapping model for electrons, in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"}
DoubleProperty m_betaHoles {this, "BetaHoles", 5.1E-16, "Constant for the trapping model for holes in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"}
double m_PotentialValue [81][115] {{0.}}
ToolHandle< ISiliconConditionsToolm_siConditionsTool {this, "SiConditionsTool", "SCT_SiliconConditionsTool", "SCT silicon conditions tool"}
ToolHandle< ISCT_ElectricFieldToolm_electricFieldTool {this, "SCT_ElectricFieldTool", "SCT_ElectricFieldTool", "SCT electric field tool"}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}

Detailed Description

Definition at line 44 of file SCT_ChargeTrappingTool.h.

Constructor & Destructor Documentation

◆ SCT_ChargeTrappingTool()

SCT_ChargeTrappingTool::SCT_ChargeTrappingTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 26 of file SCT_ChargeTrappingTool.cxx.

26 :
27 base_class(type, name, parent)
28{
29}

◆ ~SCT_ChargeTrappingTool()

virtual SCT_ChargeTrappingTool::~SCT_ChargeTrappingTool ( )
virtualdefault

Member Function Documentation

◆ calculate()

SCT_ChargeTrappingCondData SCT_ChargeTrappingTool::calculate ( const IdentifierHash & elementHash,
double pos,
const EventContext & ctx ) const
private

Definition at line 92 of file SCT_ChargeTrappingTool.cxx.

93{
94 ATH_MSG_VERBOSE("Updating cache for elementHash = " << elementHash);
95
97 // Only print the warning once.
99 ATH_MSG_WARNING("Conditions Summary Tool is not used. Will use temperature and voltages from job options. "
100 << "Effects of radiation damage may be wrong!");
101 }
102
103 SCT_ChargeTrappingCondData condData;
104
105 const InDetDD::SiDetectorElement* element{getDetectorElement(elementHash, ctx)};
106
107 double temperature{0.};
108 double deplVoltage{0.};
109 double biasVoltage{0.};
110 if (not m_conditionsToolValid) {
111 temperature = m_temperature + Gaudi::Units::STP_Temperature;
112 deplVoltage = m_deplVoltage * Gaudi::Units::volt;
113 biasVoltage = m_biasVoltage * Gaudi::Units::volt;
114 } else {
115 temperature = m_siConditionsTool->temperature(elementHash, ctx) + Gaudi::Units::STP_Temperature;
116 deplVoltage = m_siConditionsTool->depletionVoltage(elementHash, ctx) * Gaudi::Units::volt;
117 biasVoltage = m_siConditionsTool->biasVoltage(elementHash, ctx) * Gaudi::Units::volt;
118 }
119
120 // Protect against invalid temperature
121 double temperatureC{temperature - Gaudi::Units::STP_Temperature};
122 if (not (temperatureC > m_temperatureMin and temperatureC < m_temperatureMax)) {
123 ATH_MSG_WARNING("Invalid temperature: " << temperatureC << " C. "
124 << "Setting to " << m_temperature << " C.");
125 temperature = m_temperature + Gaudi::Units::STP_Temperature;
126 }
127
128 // Calculate depletion depth. If biasVoltage is less than depletionVoltage
129 // the detector is not fully depleted and we need to take this into account.
130 // We take absolute values just in case voltages are signed .
131 double depletionDepth{element->thickness()};
132 if (std::abs(biasVoltage) < std::abs(deplVoltage)) {
133 depletionDepth *= std::sqrt(std::abs(biasVoltage / deplVoltage));
134 // -- if this was the case would need to re-calculate the Ramo Potential and other parameters.
135 }
136
137 double electricField{m_electricFieldTool->getElectricField(pos,//posZ
138 m_fluence,
139 deplVoltage,
140 element->thickness(),
141 std::abs(biasVoltage))};
142 //electric field will be a function of bias voltage and fluence...
143
144 condData.setElectricField(electricField);
145
146 InDet::SiliconProperties siProperties;
147 siProperties.setConditions(temperature, electricField);
148
149 // -- Calculate electron and holes drift mobility and velocity for these conditions (temperature, electricField)
150 // using parametrizations in SiliconProperties (SiPropertiesTool). These will be used later for the trapping model.
151 // In the SCT we collect holes.
152 double electronDriftMobility{0.};
153 double holeDriftMobility{0.};
154 double electronDriftVelocity{0.};
155 double holeDriftVelocity{0.};
156 if(element->carrierType()==InDetDD::electrons) {
157 // electronDriftMobility = siProperties.calcElectronDriftMobility(temperature,electricField);
158 // electronDriftVelocity = electronDriftMobility*electricField;
159 } else {
160 if (m_calcHoles){
161 holeDriftMobility = siProperties.calcHoleDriftMobility(temperature,electricField*Gaudi::Units::volt)*Gaudi::Units::volt;
162 //in this way you could put the electric field in V/mm and the mobility will be in [V mm^2 ns^-1]
163 condData.setHoleDriftMobility(holeDriftMobility);
164 holeDriftVelocity = holeDriftMobility*electricField;
165 }
166 }
167
168 // -- Calculate Trapping Times
169 const double trappingElectrons{1./(m_fluence*m_betaElectrons)};
170 condData.setTrappingElectrons(trappingElectrons);
171
172 double trappingHoles{0.};
173 if (m_calcHoles) {
174 trappingHoles = 1./(m_fluence*m_betaHoles);
175 condData.setTrappingHoles(trappingHoles);
176 }
177
178 // -- Calculate Mean Free Path
179 const double meanFreePathElectrons{electronDriftVelocity*trappingElectrons};
180 condData.setMeanFreePathElectrons(meanFreePathElectrons);
181
182 double meanFreePathHoles{0.};
183 if (m_calcHoles) {
184 meanFreePathHoles = holeDriftVelocity*trappingHoles;
185 condData.setMeanFreePathHoles(meanFreePathHoles);
186 }
187
188 // -- Trapping probability
189 double trappingProbability_electron{0.0};
190 double trappingProbability_hole{0.0};
191 double trappingProbability{0.0};
192 if (element->carrierType()==InDetDD::electrons) {
193 trappingProbability = 1.0 - std::exp(-std::abs(pos/meanFreePathElectrons));
194 trappingProbability_electron = trappingProbability;
195 } else {
196 if (m_calcHoles) {
197 trappingProbability = 1.0 - std::exp(-std::abs(pos/meanFreePathHoles));
198 trappingProbability_hole = trappingProbability;
199 } else {
200 trappingProbability = 0.0;
201 }
202 }
203 condData.setTrappingProbability(trappingProbability);
204
205 // -- Drift time without being trapped
206 const double u{CLHEP::RandFlat::shoot(0., 1.)};
207 const double drift_time{-std::log(u)*trappingHoles};
208 condData.setTrappingTime(drift_time);
209
210 // -- Time to arrive to the electrode
211 const double t_electrode_hole{pos/holeDriftVelocity};
212 condData.setTimeToElectrode(t_electrode_hole);
213
214 // -- Position at which the trapping happened
215 const double trappingPosition_hole{holeDriftVelocity*drift_time};
216 condData.setTrappingPositionZ(trappingPosition_hole);
217
218 //-------------------
219
220 ATH_MSG_VERBOSE("Temperature (C), bias voltage, depletion voltage: "
221 << temperature - Gaudi::Units::STP_Temperature << ", "
222 << biasVoltage/Gaudi::Units::volt << ", "
223 << deplVoltage/Gaudi::Units::volt);
224 ATH_MSG_VERBOSE("Depletion depth: " << depletionDepth/Gaudi::Units::mm);
225 ATH_MSG_VERBOSE("Electric Field: " << electricField/(Gaudi::Units::volt/Gaudi::Units::mm));
226 ATH_MSG_VERBOSE("Electron drift mobility (cm2/V/s): " << electronDriftMobility/(Gaudi::Units::cm2/Gaudi::Units::volt/Gaudi::Units::s));
227 ATH_MSG_VERBOSE("Electron drift velocity (cm/s): " << electronDriftVelocity);
228 ATH_MSG_VERBOSE("Electron mean free path (cm): " << condData.getMeanFreePathElectrons());
229 ATH_MSG_VERBOSE("Electron trapping probability: " << trappingProbability_electron);
230
231 if (m_calcHoles) {
232 ATH_MSG_VERBOSE("Hole drift mobility (cm2/V/s): " << holeDriftMobility/(Gaudi::Units::cm2/Gaudi::Units::volt/Gaudi::Units::s));
233 ATH_MSG_VERBOSE("Hole drift velocity (cm/s): " << holeDriftVelocity);
234 ATH_MSG_VERBOSE("Hole mean free path (cm): " << condData.getMeanFreePathHoles());
235 ATH_MSG_VERBOSE("Hole trapping probability: " << trappingProbability_hole);
236 }
237
238 return condData;
239}
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
InDetDD::CarrierType carrierType() const
carrier type for readout.
void setConditions(double temperature, double electricField)
double calcHoleDriftMobility(double temperature, double electricField) const
void setTrappingTime(const double trappingTime)
void setHoleDriftMobility(const double holeDriftMobility)
void setTrappingHoles(const double trappingHoles)
void setTrappingProbability(const double trappingProbability)
void setTimeToElectrode(const double electrodeTime)
void setTrappingPositionZ(const double trappingPosition)
void setMeanFreePathHoles(const double meanFreePathHoles)
void setTrappingElectrons(const double trappingElectrons)
void setMeanFreePathElectrons(const double meanFreePathElectrons)
void setElectricField(const double electricField)
ToolHandle< ISiliconConditionsTool > m_siConditionsTool
ToolHandle< ISCT_ElectricFieldTool > m_electricFieldTool
std::atomic_bool m_conditionsToolWarning
const InDetDD::SiDetectorElement * getDetectorElement(const IdentifierHash &waferHash, const EventContext &ctx) const
@ u
Enums for curvilinear frames.
Definition ParamDefs.h:77

◆ finalize()

StatusCode SCT_ChargeTrappingTool::finalize ( )
overridevirtual

Definition at line 64 of file SCT_ChargeTrappingTool.cxx.

65{
66 return StatusCode::SUCCESS;
67}

◆ getCondData() [1/2]

SCT_ChargeTrappingCondData SCT_ChargeTrappingTool::getCondData ( const IdentifierHash & elementHash,
double pos ) const
overridevirtual

Definition at line 74 of file SCT_ChargeTrappingTool.cxx.

75{
76 const EventContext& ctx{Gaudi::Hive::currentContext()};
77 return getCondData(elementHash, pos, ctx);
78}
virtual SCT_ChargeTrappingCondData getCondData(const IdentifierHash &elementHash, double pos, const EventContext &ctx) const override

◆ getCondData() [2/2]

SCT_ChargeTrappingCondData SCT_ChargeTrappingTool::getCondData ( const IdentifierHash & elementHash,
double pos,
const EventContext & ctx ) const
overridevirtual

Definition at line 69 of file SCT_ChargeTrappingTool.cxx.

70{
71 return calculate(elementHash, pos, ctx);
72}
SCT_ChargeTrappingCondData calculate(const IdentifierHash &elementHash, double pos, const EventContext &ctx) const

◆ getDetectorElement()

const InDetDD::SiDetectorElement * SCT_ChargeTrappingTool::getDetectorElement ( const IdentifierHash & waferHash,
const EventContext & ctx ) const
private

Definition at line 334 of file SCT_ChargeTrappingTool.cxx.

334 {
335 SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> condData{m_SCTDetEleCollKey, ctx};
336 if (not condData.isValid()) return nullptr;
337 return condData->getDetectorElement(waferHash);
338}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey

◆ getHoleTransport() [1/2]

void SCT_ChargeTrappingTool::getHoleTransport ( double & x0,
double & y0,
double & xfin,
double & yfin,
double & Q_m2,
double & Q_m1,
double & Q_00,
double & Q_p1,
double & Q_p2 ) const
overridevirtual

Definition at line 85 of file SCT_ChargeTrappingTool.cxx.

86{
87 const EventContext& ctx{Gaudi::Hive::currentContext()};
88 getHoleTransport(x0, y0, xfin, yfin, Q_m2, Q_m1, Q_00, Q_p1, Q_p2, ctx);
89}
virtual void getHoleTransport(double &x0, double &y0, double &xfin, double &yfin, double &Q_m2, double &Q_m1, double &Q_00, double &Q_p1, double &Q_p2, const EventContext &ctx) const override

◆ getHoleTransport() [2/2]

void SCT_ChargeTrappingTool::getHoleTransport ( double & x0,
double & y0,
double & xfin,
double & yfin,
double & Q_m2,
double & Q_m1,
double & Q_00,
double & Q_p1,
double & Q_p2,
const EventContext & ctx ) const
overridevirtual

Definition at line 80 of file SCT_ChargeTrappingTool.cxx.

81{
82 holeTransport(x0, y0, xfin, yfin, Q_m2, Q_m1, Q_00, Q_p1, Q_p2);
83}
void holeTransport(double &x0, double &y0, double &xfin, double &yfin, double &Q_m2, double &Q_m1, double &Q_00, double &Q_p1, double &Q_p2) const

◆ getPotentialValue()

double SCT_ChargeTrappingTool::getPotentialValue ( int & ix,
int & iy )
staticprivate

Definition at line 330 of file SCT_ChargeTrappingTool.cxx.

330 {
331 return ::getPotentialValue(ix, iy);
332}

◆ holeTransport()

void SCT_ChargeTrappingTool::holeTransport ( double & x0,
double & y0,
double & xfin,
double & yfin,
double & Q_m2,
double & Q_m1,
double & Q_00,
double & Q_p1,
double & Q_p2 ) const
private

Definition at line 285 of file SCT_ChargeTrappingTool.cxx.

285 {
286 // transport holes in the bulk
287 // T. Kondo, 2010.9.9
288 // External parameters to be specified
289 // m_transportTimeMax [nsec]
290 // m_transportTimeStep [nsec]
291 // bulk_depth [cm]
292 // Induced currents are added to
293 // Q_m2,Q_m1,Q_00,Q_p1,Q_p2
294 //
295 // initPotentialValue(); // <-this has to go into the main
296
297 // x is width, y is depth
298
299 double x{x0/10.}; // original hole position [cm]
300 double y{y0/10.}; // original hole position [cm]
301 double qstrip[5];
302
303 for (int istrip{-2}; istrip < 3 ; istrip++) {
304 qstrip[istrip+2] = induced(istrip, x, y);
305 }
306 ATH_MSG_DEBUG("h:qstrip=" << qstrip[0] << " " << qstrip[1] << " " << qstrip[2] << " " << qstrip[3] << " " << qstrip[4]);
307
308 // Get induced current by subtracting induced charges
309 for (int istrip{-2}; istrip < 3 ; istrip++) {
310 x = xfin/10.;
311 y = yfin/10.;
312 const double qnew{induced(istrip, x, y)};
313 int jj{istrip + 2};
314 const double dq{qnew - qstrip[jj]};
315 qstrip[jj] = qnew;
316 ATH_MSG_DEBUG("dq= " << dq);
317 switch(istrip) {
318 case -2: Q_m2 += dq ; break;
319 case -1: Q_m1 += dq ; break;
320 case 0: Q_00 += dq ; break;
321 case +1: Q_p1 += dq ; break;
322 case +2: Q_p2 += dq ; break;
323 // default: break; // Coverity complains the default is deadcode.
324 }
325 }
326 ATH_MSG_DEBUG("h:qstrip=" << qstrip[0] << " " << qstrip[1] << " " << qstrip[2] << " " << qstrip[3] << " " << qstrip[4]);
327}
#define ATH_MSG_DEBUG(x)
#define y
#define x
double induced(int istrip, double x, double y) const

◆ induced()

double SCT_ChargeTrappingTool::induced ( int istrip,
double x,
double y ) const
private

Definition at line 250 of file SCT_ChargeTrappingTool.cxx.

250 {
251 // x and y are the coorlocation of charge (e or hole)
252 // induced chardege on the strip "istrip" situated at the height y = d
253 // the center of the strip (istrip=0) is x = 0.004 [cm]
254 static const double deltax{0.0005};
255 static const double deltay{0.00025};
256
257 static const double bulk_depth{0.0285}; // in [cm]
258 static const double strip_pitch{0.0080}; // in [cm]
259 // x is width, y is depth
260
261 if ((y < 0.) or (y > bulk_depth)) return 0.;
262 const double xc{strip_pitch * (istrip + 0.5)};
263 const double dx{std::abs(x-xc)};
264 const int ix{static_cast<int>(dx/deltax)};
265 if (ix > 79) return 0.;
266 const int iy{static_cast<int>(y/deltay)};
267 const double fx{(dx - ix*deltax) / deltax};
268 const double fy{(y - iy*deltay) / deltay};
269 const int ix1{ix + 1};
270 const int iy1{iy + 1};
271 const double P{m_PotentialValue[ix ][iy ] * (1.-fx) * (1.-fy)
272 + m_PotentialValue[ix1][iy ] * fx * (1.-fy)
273 + m_PotentialValue[ix ][iy1] * (1.-fx) * fy
274 + m_PotentialValue[ix1][iy1] * fx * fy};
275 ATH_MSG_DEBUG("induced: x,y,iy="<<x<<" "<<y<<" "<<iy<<" istrip,xc,dx,ix="
276 <<istrip<<" "<<xc<<" " <<dx<<" "<<ix<<" fx,fy="<<fx <<" " <<fy<< ", P="<<P);
277
278 return P;
279}
static Double_t P(Double_t *tt, Double_t *par)

◆ initialize()

StatusCode SCT_ChargeTrappingTool::initialize ( )
overridevirtual

Definition at line 32 of file SCT_ChargeTrappingTool.cxx.

33{
34 if (m_detectorName!="SCT") {
35 ATH_MSG_FATAL("Invalid detector name: " << m_detectorName << ". Must be SCT.");
36 return StatusCode::FAILURE;
37 }
38
39 m_isSCT = (m_detectorName=="SCT");
40
41 // Get conditions summary tool
43 if (not m_siConditionsTool.empty()) {
44 ATH_CHECK(m_siConditionsTool.retrieve());
46 } else {
47 m_siConditionsTool.disable();
49 }
50
51 // Read CondHandle Key
52 ATH_CHECK(m_SCTDetEleCollKey.initialize());
53
54 // initialize PotentialValue
55 for (int ix{0}; ix<81; ix++) {
56 for (int iy{0}; iy<115; iy++) {
57 m_PotentialValue[ix][iy] = getPotentialValue(ix, iy);
58 }
59 }
60
61 return StatusCode::SUCCESS;
62}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
static double getPotentialValue(int &ix, int &iy)

Member Data Documentation

◆ m_betaElectrons

DoubleProperty SCT_ChargeTrappingTool::m_betaElectrons {this, "BetaElectrons", 3.1E-16, "Constant for the trapping model for electrons, in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"}
private

Definition at line 84 of file SCT_ChargeTrappingTool.h.

84{this, "BetaElectrons", 3.1E-16, "Constant for the trapping model for electrons, in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"};

◆ m_betaHoles

DoubleProperty SCT_ChargeTrappingTool::m_betaHoles {this, "BetaHoles", 5.1E-16, "Constant for the trapping model for holes in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"}
private

Definition at line 85 of file SCT_ChargeTrappingTool.h.

85{this, "BetaHoles", 5.1E-16, "Constant for the trapping model for holes in [cm^2/ns] -- average value from Table 2 in ATL-INDET-2003-014"};

◆ m_biasVoltage

DoubleProperty SCT_ChargeTrappingTool::m_biasVoltage {this, "BiasVoltage", 150., "Default bias voltage in Volt."}
private

Definition at line 74 of file SCT_ChargeTrappingTool.h.

74{this, "BiasVoltage", 150., "Default bias voltage in Volt."};

◆ m_calcHoles

BooleanProperty SCT_ChargeTrappingTool::m_calcHoles {this, "CalcHoles", true, "Default is to consider holes in signal formation."}
private

Definition at line 80 of file SCT_ChargeTrappingTool.h.

80{this, "CalcHoles", true, "Default is to consider holes in signal formation."};

◆ m_conditionsToolValid

bool SCT_ChargeTrappingTool::m_conditionsToolValid {false}
private

Definition at line 76 of file SCT_ChargeTrappingTool.h.

76{false};

◆ m_conditionsToolWarning

std::atomic_bool SCT_ChargeTrappingTool::m_conditionsToolWarning {false}
mutableprivate

Definition at line 77 of file SCT_ChargeTrappingTool.h.

77{false};

◆ m_deplVoltage

DoubleProperty SCT_ChargeTrappingTool::m_deplVoltage {this, "DepletionVoltage", -30., "Default depletion voltage in Volt."}
private

Definition at line 73 of file SCT_ChargeTrappingTool.h.

73{this, "DepletionVoltage", -30., "Default depletion voltage in Volt."};

◆ m_detectorName

StringProperty SCT_ChargeTrappingTool::m_detectorName {this, "DetectorName", "SCT", "Detector name"}
private

Definition at line 65 of file SCT_ChargeTrappingTool.h.

65{this, "DetectorName", "SCT", "Detector name"};

◆ m_electricFieldTool

ToolHandle<ISCT_ElectricFieldTool> SCT_ChargeTrappingTool::m_electricFieldTool {this, "SCT_ElectricFieldTool", "SCT_ElectricFieldTool", "SCT electric field tool"}
private

Definition at line 91 of file SCT_ChargeTrappingTool.h.

91{this, "SCT_ElectricFieldTool", "SCT_ElectricFieldTool", "SCT electric field tool"};

◆ m_fluence

DoubleProperty SCT_ChargeTrappingTool::m_fluence {this, "Fluence", 3.0E13, "Fluence received by the detector."}
private

Definition at line 83 of file SCT_ChargeTrappingTool.h.

83{this, "Fluence", 3.0E13, "Fluence received by the detector."};

◆ m_isSCT

bool SCT_ChargeTrappingTool::m_isSCT {false}
private

Definition at line 66 of file SCT_ChargeTrappingTool.h.

66{false};

◆ m_PotentialValue

double SCT_ChargeTrappingTool::m_PotentialValue[81][115] {{0.}}
private

Definition at line 87 of file SCT_ChargeTrappingTool.h.

87{{0.}};

◆ m_SCTDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> SCT_ChargeTrappingTool::m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
private

Definition at line 93 of file SCT_ChargeTrappingTool.h.

93{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};

◆ m_siConditionsTool

ToolHandle<ISiliconConditionsTool> SCT_ChargeTrappingTool::m_siConditionsTool {this, "SiConditionsTool", "SCT_SiliconConditionsTool", "SCT silicon conditions tool"}
private

Definition at line 90 of file SCT_ChargeTrappingTool.h.

90{this, "SiConditionsTool", "SCT_SiliconConditionsTool", "SCT silicon conditions tool"};

◆ m_temperature

DoubleProperty SCT_ChargeTrappingTool::m_temperature {this, "Temperature", -2., "Default temperature in Celcius."}
private

Definition at line 70 of file SCT_ChargeTrappingTool.h.

70{this, "Temperature", -2., "Default temperature in Celcius."};

◆ m_temperatureMax

DoubleProperty SCT_ChargeTrappingTool::m_temperatureMax {this, "TemperatureMax", 100., "Maximum temperature allowed in Celcius."}
private

Definition at line 72 of file SCT_ChargeTrappingTool.h.

72{this, "TemperatureMax", 100., "Maximum temperature allowed in Celcius."};

◆ m_temperatureMin

DoubleProperty SCT_ChargeTrappingTool::m_temperatureMin {this, "TemperatureMin", -80., "Minimum temperature allowed in Celcius."}
private

Definition at line 71 of file SCT_ChargeTrappingTool.h.

71{this, "TemperatureMin", -80., "Minimum temperature allowed in Celcius."};

The documentation for this class was generated from the following files: