20 enum ETpcType {kTpcOuter = 0, kTpcInner = 1, kTpcAll};
21 enum EValType {kProb, kdProbdX, kdProbdY};
24 static Double_t gausw(Double_t *x, Double_t *p);
25 static Double_t ggaus(Double_t *x, Double_t *p);
26 static Double_t ggausD(Double_t *x, Double_t *p, Double_t *der = 0);
27 static Double_t gausexp(Double_t *x, Double_t *p);
28 static Double_t gausexpD(Double_t *x, Double_t *p, Double_t *der = 0);
29 Double_t dNdx(Double_t poverm, Double_t charge = 1.0);
31 static Double_t dNdxL10func(Double_t *x, Double_t *p);
32 Double_t dNdxEff(Double_t poverm, Double_t charge = 1.0, Double_t mass = 0.13956995);
33 static Double_t dNdxEffL10func(Double_t *x, Double_t *p);
36 static Double_t saturationFunc(Double_t *x, Double_t *p);
37 TF1 *GGaus() {
return fGGaus;}
38 TF1 *GausExp() {
return fGausExp;}
39 TF1 *Saturation(Int_t particle=0);
40 static Double_t saturationTanH(Double_t *x, Double_t *p);
42 static Double_t extremevalueG(Double_t *x, Double_t *p);
44 Double_t keVperElectron() {
return TMath::Exp(fLogkeVperElectron);}
45 Double_t GeVperElectron() {
return 1e-6*keVperElectron();}
46 Double_t E(Double_t ne) {
return ne*GeVperElectron();}
47 Double_t n(Double_t e) {
return e/GeVperElectron();}
48 Double_t LogE(Double_t Logne) {
return fLogkeVperElectron + Logne + TMath::Log(1e-6);}
49 Double_t Logne(Double_t LogE) {
return LogE - fLogkeVperElectron - TMath::Log(1e-6);}
50 void Parameters(Double_t Np, Double_t *pars, Double_t *dPardNp = 0);
51 Double_t
Parameter(Double_t Np, Int_t k = 0, Double_t *dPardNp = 0);
52 static Double_t funParam(Double_t *x, Double_t *p);
53 TF1 *FParam(Int_t l = 0);
54 Double_t MukeV(Double_t Np);
55 Double_t Sigma(Double_t Np) {
return Parameter(Np, 1);}
56 Double_t Alpha(Double_t Np) {
return Parameter(Np, 2);}
57 Double_t LogdEMPV(Double_t Np) {
return LogdEMPVGeV(Np);}
58 Double_t LogdEMPVeV (Double_t Np) {
return LogdEMPVkeV(Np) + TMath::Log(1e3);}
59 Double_t LogdEMPVkeV(Double_t Np) {
return MukeV(Np);}
60 Double_t LogdEMPVGeV(Double_t Np) {
return MukeV(Np) + TMath::Log(1e-6);}
61 Double_t Prob(Double_t ee, Double_t Np, Double_t *der = 0);
62 static Double_t funcProb(Double_t *x, Double_t *p);
64 static Double_t funcProbP(Double_t *p, Double_t *x);
66 static Double_t funcProbDer(Double_t *x, Double_t *p);
68 Double_t ProbdEGeVlog(Double_t dEGeVLog, Double_t Np, Double_t *der = 0);
69 void SetScale(Double_t scale = 1.0) {fScale = scale;}
70 Double_t dNdxScale() {
return fScale;}
71 static Double_t zMP(Double_t *x, Double_t *p);
72 TF1 *ZMP(Double_t log2dx = 1, Double_t charge = 1, Double_t mass = 0.1395699);
75 Double_t tmaxL10eV(Double_t betagamma);
76 Double_t bgCorrected(Double_t bg);
77 Double_t NpCorrection(Double_t betagamma);
86 Double_t fLogkeVperElectron;
90 TH1D *mLndNdxL10Smooth;
91 TSpline5 *mLndNdxL10Spline5;