|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #ifndef PIXELDIGITIZATION_RADDAMAGEUTIL_H
12 #define PIXELDIGITIZATION_RADDAMAGEUTIL_H
15 #include "GaudiKernel/ToolHandle.h"
16 #include "Gaudi/Property.h"
22 class PixelModuleDesign;
46 TH1F*& timeMap_h,
TH2F*& lorentzMap_e,
TH2F*& lorentzMap_h,
TH1F*& eFieldMap,
50 static const std::pair<double, double>
getMobility(
double electricField,
double temperature) ;
51 static double getTanLorentzAngle(
double electricField,
double temperature,
double bField,
bool isHole) ;
59 this,
"defaultRamo", 1,
"Mapping strategy of Ramo potential"
64 this,
"betaElectrons", 4.5e-16,
"Used in trapping time calculation"
69 this,
"betaHoles", 6.0e-16,
"Used in trapping time calculation"
74 this,
"saveDebugMaps",
false,
"Flag to save map"
79 static double alpha(
int n,
int Nrep,
double a);
80 static double weighting3D(
double x,
double y,
double z,
int n,
int m,
int Nrep,
double a,
double b);
81 static double weighting2D(
double x,
double z,
double Lx,
double sensorThickness);
85 this,
"EfieldInterpolator",
"EfieldInterpolator",
86 "Create an Efield for fluence and bias volatge of interest based on TCAD samples"
90 #endif //PIXELDIGITIZATION_RADDAMAGEUTIL_H
Instances of this class create a map (TH1D) describing the electric field profile along the pixeldept...
const StatusCode generateRamoMap(TH3F *ramPotentialMap, InDetDD::PixelModuleDesign *module)
virtual StatusCode initialize() override
static double getTanLorentzAngle(double electricField, double temperature, double bField, bool isHole)
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
const StatusCode generateEfieldMap(TH1F *&eFieldMap, InDetDD::PixelModuleDesign *module)
static const std::pair< double, double > getMobility(double electricField, double temperature)
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< double > m_fieldScale
Gaudi::Property< double > m_betaElectrons
Gaudi::Property< int > m_defaultRamo
static double weighting2D(double x, double z, double Lx, double sensorThickness)
const StatusCode generateDistanceTimeMap(TH2F *&distanceMap_e, TH2F *&distanceMap_h, TH1F *&timeMap_e, TH1F *&timeMap_h, TH2F *&lorentzMap_e, TH2F *&lorentzMap_h, TH1F *&eFieldMap, InDetDD::PixelModuleDesign *module)
Gaudi::Property< bool > m_saveDebugMaps
static double weighting3D(double x, double y, double z, int n, int m, int Nrep, double a, double b)
virtual StatusCode finalize() override
float interpolate(const CaloRec::Array< 2 > &a, float x, unsigned int degree, unsigned int ycol=1, const CaloRec::Array< 1 > ®ions=CaloRec::Array< 1 >(), int n_points=-1, bool fixZero=false)
Polynomial interpolation in a table.
static double alpha(int n, int Nrep, double a)
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Gaudi::Property< double > m_betaHoles
ToolHandle< EfieldInterpolator > m_EfieldInterpolator
const std::pair< double, double > getTrappingTimes(double fluence) const