4 #include "KVINDRACsITotLightReconstructor.h"
18 void KVINDRACsITotLightReconstructor::Calculate()
const
28 Double_t rap_corr = fFast->
GetValue();
29 Double_t len_corr = fSlow->
GetValue();
31 if (rap_corr < 0 || len_corr < 0) {
32 fLumTotStatus = NEGATIVE_PEDESTAL_CORRECTED_VALUE;
42 Double_t rp = (len_corr / rap_corr) * (c1 / c2);
43 if (rp >= 1 && rap_corr <= 10) {
46 x2 = TMath::Exp(-tau1 / x);
47 x3 = TMath::Exp(-tau2 / x);
49 fLumTotStatus = NO_GAIN_CORRECTION;
53 fLumTotStatus = CALCULATED_WITH_GAIN_CORRECTION;
56 Double_t at = 1. - TMath::Exp(-tau0 / tau);
62 Double_t x1 = TMath::Exp(-tau0 / x);
63 x2 = TMath::Exp(-tau1 / x);
64 x3 = TMath::Exp(-tau2 / x);
65 Double_t ax = 1. - x1;
68 Double_t fx = bx / ax - rp;
69 Double_t apx = -tau0 * x1;
70 apx = (apx + at) / xx;
71 Double_t bpx = tau1 * x2 - tau2 * x3;
73 Double_t fpx = (bpx * ax - apx * bx) / (ax * ax);
77 while (TMath::Abs(dx / x) >= eps && niter <= 50);
79 if (niter > 50 || x <= tau) {
80 fLumTotStatus = CALCULATION_NOT_CONVERGED;
105 UInt_t KVINDRACsITotLightReconstructor::GetStatusLumiere()
const
119 return fLumTotStatus;
130 Bool_t KVINDRACsITotLightReconstructor::LightIsGood()
const
136 if (GetStatusLumiere() == CALCULATED_WITH_GAIN_CORRECTION
137 || GetStatusLumiere() == NO_GAIN_CORRECTION)
164 if (what ==
"LightIsGood")
return LightIsGood();
165 else if (what ==
"StatusLumiere")
return GetStatusLumiere();
virtual Double_t GetValue(const KVNameValueList ¶ms="") const
Calculation of light output from fast and slow components for INDRA CsI detectors.
Int_t GetStatus(const TString &) const override