BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmStsRadTool.h
Go to the documentation of this file.
1/** @file CbmStsRadTool.h
2 ** @author Volker Friese <v.friese@gsi.de>
3 ** @date 6 December 2011
4 **/
5
6#ifndef CBMSTSRADTOOL_H
7#define CBMSTSRADTOOL_H 1
8
9#include "TObject.h"
10
11#include <map>
12
13using namespace std;
14
15/** @class CbmStsRadTool
16 ** @author Volker Friese <v.friese@gsi.de>
17 ** @date 6 December 2011
18 ** @brief Tool class to calculate the non-ionising radiation damage
19 ** on the STS silicon
20 **
21 ** This class provides some functionality to calculate the effects
22 ** of non-ionising irradiation on Silicon.
23 **
24 ** While the calculation of the NIEL factor is independent of the
25 ** type of silicon used, those of leakage current and full depletion
26 ** voltage depend on the specific silicon properties (effective
27 ** doping concentration 9 x 10^11 cm^-3).
28 **/
29class CbmStsRadTool : public TObject
30{
31
32 public:
33 /** Constructor **/
35
36 /** Destructor **/
37 virtual ~CbmStsRadTool();
38
39 /** Get leakage current
40 ** @param[in] fluence Fluence [neq/cm^2]
41 ** @param[in] volume Volume [cm^3]
42 ** @param[in] temperature Temperature [K]
43 ** @return Leakage current [A]
44 **
45 ** Calculates the leakage current in Silicon as function of irradiation
46 ** fluence, volume and temperature.
47 **
48 ** Formulae provided by S. Chatterji.
49 **/
50 Double_t GetLeakageCurrent(Double_t fluence, Double_t volume, Double_t temperature);
51
52 /** Get NIEL factor
53 *@param type Particle Id (PDG code)
54 *@param energy Energy in GeV
55 *@return NIEL factor
56 **
57 ** Calculates the NIEL factor for a given particle type and energy
58 ** from interpolation of the values tabulated in
59 ** http://sesam.desy.de/members/gunnar/Si-dfuncs.htm
60 **
61 ** Will return 0 for particle types other than proton, neutron,
62 ** pion or electron, or if the energy is below the lowest tabulated
63 ** value. Will return an asymptotic value if the energy is above the
64 ** highest tabulated value.
65 **/
66 Double_t GetNiel(Int_t type, Double_t energy);
67
68 /** Get full depletion voltage
69 ** @param fluence Fluence [neq/cm^2]
70 ** @param d Thickness [cm]
71 ** @return Full depletion voltage [V]
72 **
73 ** Calculates the full depletion voltage of Silicon as function of
74 ** non-ionising dose and thickness.
75 **
76 ** Formulae and values provided by S. Chatterji.
77 **/
78 Double_t GetVfd(Double_t fluence, Double_t d);
79
80 private:
81 /** Tables of NIEL factors as fnct. of energy **/
82 map<Double_t, Double_t> niel_neutron;
83 map<Double_t, Double_t> niel_proton;
84 map<Double_t, Double_t> niel_pion;
85 map<Double_t, Double_t> niel_electron;
86
87 /** Proportionality constant of leakage current and fluence **/
88 Double_t fIAlpha; // [A/cm]
89
90 /** Constants for temperature dependence of leakage current **/
94
95 /** Constants for effective doping concentration
96 ** as function of fluence
97 **/
98 Double_t fNeff0; // [cm^-3]
99 Double_t fNeffC; // [cm^2]
100 Double_t fNeffGc; // [1/cm]
101
102 /** Permittivity of Silicon **/
104
105 /** Initialisation
106 **
107 ** Reads in tabulated NIEL factors from file
108 ** and sets proper constants for Silicon.
109 **/
110 void Init();
111
112 /** Read data from file
113 *@param file File name (in directory input)
114 *@param map Map to be filled
115 **/
116 void ReadData(const char* file, map<Double_t, Double_t>& map);
117
119};
120
121#endif
int Int_t
double Double_t
#define ClassDef(name, id)
Double_t fIAlpha
Proportionality constant of leakage current and fluence.
map< Double_t, Double_t > niel_proton
Double_t fEpsilon
Permittivity of Silicon.
Double_t fEGapAlpha
Double_t fEGap0
Constants for temperature dependence of leakage current.
Double_t GetLeakageCurrent(Double_t fluence, Double_t volume, Double_t temperature)
Get leakage current.
CbmStsRadTool()
Constructor.
virtual ~CbmStsRadTool()
Destructor.
Double_t fNeff0
Constants for effective doping concentration as function of fluence.
Double_t GetVfd(Double_t fluence, Double_t d)
Get full depletion voltage.
Double_t GetNiel(Int_t type, Double_t energy)
Get NIEL factor.
Double_t fNeffC
map< Double_t, Double_t > niel_neutron
Tables of NIEL factors as fnct.
void Init()
Initialisation.
map< Double_t, Double_t > niel_electron
map< Double_t, Double_t > niel_pion
void ReadData(const char *file, map< Double_t, Double_t > &map)
Read data from file.
Double_t fEGapBeta
Definition json.hpp:4446