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

#include <SCT_ElectricFieldTool.h>

Inheritance diagram for SCT_ElectricFieldTool:
Collaboration diagram for SCT_ElectricFieldTool:

Public Member Functions

 SCT_ElectricFieldTool (const std::string &t, const std::string &n, const IInterface *p)
virtual ~SCT_ElectricFieldTool ()=default
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual double getElectricField (double positionZ, double fluence, double depletionVoltage, double sensorThickness, double biasVoltage) const override

Private Types

enum  FieldModel { UNIFORM_FIELD , FLAT_DIODE }

Private Attributes

IntegerProperty m_eFieldModel {this, "EFieldModel", FLAT_DIODE, "UNIFORM_FIELD=0 uniform E-field model, FLAT_DIODE=1 flat diode model"}
TF1 m_model {"pol6", "pol6", 0., 0.03}

Detailed Description

Definition at line 26 of file SCT_ElectricFieldTool.h.

Member Enumeration Documentation

◆ FieldModel

Enumerator
UNIFORM_FIELD 
FLAT_DIODE 

Definition at line 41 of file SCT_ElectricFieldTool.h.

Constructor & Destructor Documentation

◆ SCT_ElectricFieldTool()

SCT_ElectricFieldTool::SCT_ElectricFieldTool ( const std::string & t,
const std::string & n,
const IInterface * p )

Definition at line 11 of file SCT_ElectricFieldTool.cxx.

11 :
12 base_class(t, n, p) {
13}

◆ ~SCT_ElectricFieldTool()

virtual SCT_ElectricFieldTool::~SCT_ElectricFieldTool ( )
virtualdefault

Member Function Documentation

◆ finalize()

StatusCode SCT_ElectricFieldTool::finalize ( )
overridevirtual

Definition at line 31 of file SCT_ElectricFieldTool.cxx.

31 {
32 return StatusCode::SUCCESS;
33}

◆ getElectricField()

double SCT_ElectricFieldTool::getElectricField ( double positionZ,
double fluence,
double depletionVoltage,
double sensorThickness,
double biasVoltage ) const
overridevirtual
Parameters
fluencefluence*

Definition at line 35 of file SCT_ElectricFieldTool.cxx.

39 {
41 //--------------------------------------------------------------
42 // Electric Field Ez
43 //--------------------------------------------------------------
44 // y is depth and should be give in mm
45 // the electric field is returned in V/mm
46 //
47 double y{positionZ*0.1}; // from mm to cm
48 double bulkDepth{sensorThickness*0.1}; // from mm to cm;
49 double Ey{0.};
50 y = bulkDepth - y;
51
52 //------------ find depletion depth for model=0 and 1 -------------
53 double depletionDepth{bulkDepth};
54 if (biasVoltage < std::abs(depletionVoltage)) depletionDepth = std::sqrt(biasVoltage/std::abs(depletionVoltage)) * bulkDepth;
55 if (y<=depletionDepth){
56 //---------- case for uniform electric field ------------------------
58 Ey = biasVoltage / depletionDepth ;
59 Ey = Ey*0.1;
60 return Ey / CLHEP::volt;
61 }
62
63 //---------- case for flat diode model ------------------------------
65 if (biasVoltage > std::abs(depletionVoltage)) {
66 Ey = (biasVoltage+depletionVoltage)/depletionDepth - 2.*depletionVoltage*(bulkDepth-y)/(bulkDepth*bulkDepth);
67 } else {
68 double Emax{2.* depletionDepth * depletionVoltage / (bulkDepth*bulkDepth)};
69 Ey = Emax*(1-(bulkDepth-y)/depletionDepth);
70 }
71 Ey = Ey*0.1;
72 return Ey / CLHEP::volt;
73 }
74 } else {
75 return 0.;
76 }
77 } else {
78 //simple toy model --> to be replaced with complete parameterization later
79 ATH_MSG_INFO("Using for E-field simple toy model corresponding to 10^15 fluence, full depletion end for holes.");
80
81 double E_D{m_model.Eval(positionZ*0.1)*0.1}; //the model is in cm
82 return E_D;
83 }
84
85 return -99.;
86}//end method
#define ATH_MSG_INFO(x)
#define y

◆ initialize()

StatusCode SCT_ElectricFieldTool::initialize ( )
overridevirtual

Definition at line 16 of file SCT_ElectricFieldTool.cxx.

16 {
17 m_model.SetParameters(1.04176,
18 2095.14,
19 -606483.,
20 8.60976e+07,
21 -7.20639e+09,
22 3.59418e+11,
23 -9.43812e+12,
24 9.78747e+13);
25
26 return StatusCode::SUCCESS;
27}

Member Data Documentation

◆ m_eFieldModel

IntegerProperty SCT_ElectricFieldTool::m_eFieldModel {this, "EFieldModel", FLAT_DIODE, "UNIFORM_FIELD=0 uniform E-field model, FLAT_DIODE=1 flat diode model"}
private

Definition at line 43 of file SCT_ElectricFieldTool.h.

43{this, "EFieldModel", FLAT_DIODE, "UNIFORM_FIELD=0 uniform E-field model, FLAT_DIODE=1 flat diode model"};

◆ m_model

TF1 SCT_ElectricFieldTool::m_model {"pol6", "pol6", 0., 0.03}
private

Definition at line 44 of file SCT_ElectricFieldTool.h.

44{"pol6", "pol6", 0., 0.03};

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