]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCPRF2D.h
Adding Xsec
[u/mrichter/AliRoot.git] / TPC / AliTPCPRF2D.h
CommitLineData
8c555625 1#ifndef ALITPCPRF2D_H
2#define ALITPCPRF2D_H
3////////////////////////////////////////////////
4// Manager class for AliTPCPRF2D //
5////////////////////////////////////////////////
6
7
8// include files and class forward declarations
9//DSTEP in cm
10//NPRF in number of interpolation points
11
12
13#include "TObject.h"
14#include "TMath.h"
15class TF2;
16class TArrayF;
17
18class AliTPCPRF2D : public TObject {
19public :
20 AliTPCPRF2D();
21 ~AliTPCPRF2D();
22
23 Float_t GetGRF(Float_t xin, Float_t yin);
24 //return generic response function in xin
25 Float_t GetPRF(Float_t xin, Float_t yin, Bool_t inter=kFALSE);
26 //return PRF in point xin,yin
27 void SetY(Float_t y1, Float_t y2, Int_t nYdiv) ;
28 void DrawX(Float_t x1, Float_t x2,Float_t y, Bool_t inter=kFALSE);
29 //draw one dimensional response for
30 //fixed y
31 // void DrawY(Float_t y1, Float_t y2,Float_t x);
32 //draw one dimensional response for fixed x
60baf4bb 33 void Draw(Option_t *) {}
8c555625 34 void Draw(Float_t x1, Float_t x2, Float_t y1, Float_t y2,
35 Bool_t inter=kFALSE, Int_t Nx=20, Int_t Ny=20);
36 //draw two dimensional PRF
37
38 void DrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2,
39 Bool_t inter=kFALSE, Int_t Nx=20, Int_t Ny=20,
40 Float_t thr=0);
41 //draw distortion of COG method
42 //we suppose threshold equal to thr
43
44 void SetGauss(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1);
45 //adjust PRF with GAUSIAN as generic GRF
46 //if direct = kTRUE then it does't convolute distribution
47 void SetCosh(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1);
48 //adjust PRF with 1/Cosh as generic GRF
49 void SetGati(Float_t K3X, Float_t K3Y,
50 Float_t padDistance,
51 Float_t kNorm=1);
52 void SetParam(TF2 * GRF,Float_t kNorm,
53 Float_t sigmaX=0, Float_t sigmaY=0);
54 void SetPad(Float_t width, Float_t height);
55 //set base chevron parameters
56 void SetChevron(Float_t hstep, Float_t shifty, Float_t fac);
57 //set chevron parameters
58 void SetChParam(Float_t width, Float_t height,
59 Float_t hstep, Float_t shifty, Float_t fac);
60 //set all geometrical parameters
61 void SetNdiv(Int_t Ndiv){fNdiv=Ndiv;}
62 void Update();
63protected:
64 void Update1();
65 Float_t GetPRFActiv(Float_t xin); //return PRF in point xin and actual y
66 Float_t * fcharge; // field with PRF
67 Float_t fY1;
68 Float_t fY2;
69 Int_t fNYdiv;
70 Float_t * ffcharge; //pointer to array of arrays
71
72private:
73 Double_t funParam[5];//parameters of used charge function
74 Int_t fNPRF; //number of interpolations point
75 Int_t fNdiv; //number of division to calculate integral
76 Float_t fDStep; //element step for point
77 Float_t fkNorm; //normalisation factor of the charge integral
78 Float_t fInteg; //integral of GRF on +- infinity
79 TF2 * fGRF; //charge distribution function
80
81 Float_t fK3X;
82 Float_t fK3Y;
83 Float_t fPadDistance;
84
85 Float_t forigsigmaX;//sigma of original distribution;
86 Float_t forigsigmaY;//sigma of original distribution;
87 Float_t fSigmaX; //sigma of PAD response function
88 //calculated during update
89
90 //chewron parameters
91 Float_t fHeightFull; //height of the full pad
92 Float_t fHeightS; //height of the one step
93 Float_t fShiftY; //shift of the step
94 Float_t fWidth; //width of the pad
95 Float_t fK; //k factor of the chewron
96 Float_t fActualY; //in reality we calculate PRF only for
97 //one fixed y
98 char fType[5]; //charge type
99 //to make calculation faster we reduce division
100 Float_t fDYtoWire; //used to make PRF calculation faster in GetPRF
101 Float_t fDStepM1; //used in GetPRFActiv
102 ClassDef(AliTPCPRF2D,1)
103};
104
105#endif /* ALITPCPRF2D_H */
106