50 Double_t kB = TMath::K() / TMath::Qe();
53 Double_t i20 =
fIAlpha * fluence * volume;
59 Double_t exponent = -1. * eGap / 2. / kB * (1. / temperature - 1. / 293.);
60 Double_t iLeak = i20 * temperature * temperature / 85849. * TMath::Exp(exponent);
72 energy = energy * 1000.;
74 std::map<Double_t, Double_t>* table =
nullptr;
75 Int_t atype = TMath::Abs(type);
83 default: table =
nullptr;
87 if (!table)
return 0.;
90 std::map<Double_t, Double_t>::iterator it = table->upper_bound(energy);
93 if (it == table->begin()) {
99 if (it == table->end()) {
102 case 2112:
return 0.44;
break;
103 case 2212:
return 0.50;
break;
104 case 211:
return 0.38;
break;
105 case 11:
return 0.08;
break;
106 default:
return 0.00;
break;
111 Double_t e2 = (*it).first;
112 Double_t v2 = (*it).second;
114 Double_t e1 = (*it).first;
115 Double_t v1 = (*it).second;
117 Double_t
v = v1 + (v2 - v1) * (energy - e1) / (e2 - e1);
129 Double_t corr1 = 0.7 *
fNeff0 * (1. - TMath::Exp(-1. *
fNeffC * fluence));
130 Double_t corr2 =
fNeffGc * fluence;
131 Double_t nEff =
fNeff0 - corr1 - corr2;
134 Double_t vfd = TMath::Qe() * nEff * d * d / 2. /
fEpsilon;
184 TString wrkdir = getenv(
"VMCWORKDIR");
185 TString fileName = wrkdir +
"/input/" + TString(file);
186 LOG(info) <<
"Reading " << fileName;
188 std::ifstream* data =
new std::ifstream(fileName.Data());
189 if (!data->is_open()) { LOG(fatal) <<
"Error when reading from file!"; }
196 while (!data->eof()) {
205 std::map<Double_t, Double_t>::iterator it1 = table.begin();
206 std::map<Double_t, Double_t>::iterator it2 = table.end();
209 LOG(info) << nEntries <<
" values read; energy range " << (*it1).first <<
" to " << (*it2).first <<
" MeV; map size "
ClassImp(CbmConverterManager)
Tool class to calculate the non-ionising radiation damage.
std::map< Double_t, Double_t > niel_electron
Double_t GetVfd(Double_t fluence, Double_t d)
std::map< Double_t, Double_t > niel_neutron
std::map< Double_t, Double_t > niel_proton
Double_t GetNiel(Int_t type, Double_t energy)
void ReadData(const char *file, std::map< Double_t, Double_t > &map)
std::map< Double_t, Double_t > niel_pion
Double_t GetLeakageCurrent(Double_t fluence, Double_t volume, Double_t temperatur)