3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ////////////////////////////////////////////////
9 // Manager class for AliTPCPRF2D //
10 ////////////////////////////////////////////////
13 // include files and class forward declarations
15 //NPRF in number of interpolation points
23 class AliTPCPRF2D : public TObject {
28 Float_t GetGRF(Float_t xin, Float_t yin);
29 //return generic response function in xin
30 Float_t GetPRF(Float_t xin, Float_t yin, Bool_t inter=kFALSE);
31 //return PRF in point xin,yin
32 void SetY(Float_t y1, Float_t y2, Int_t nYdiv) ;
33 void DrawX(Float_t x1, Float_t x2,Float_t y, Bool_t inter=kFALSE);
34 //draw one dimensional response for
36 // void DrawY(Float_t y1, Float_t y2,Float_t x);
37 //draw one dimensional response for fixed x
38 void Draw(Option_t *) {}
39 void Draw(Float_t x1, Float_t x2, Float_t y1, Float_t y2,
40 Bool_t inter=kFALSE, Int_t Nx=20, Int_t Ny=20);
41 //draw two dimensional PRF
43 void DrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2,
44 Bool_t inter=kFALSE, Int_t Nx=20, Int_t Ny=20,
46 //draw distortion of COG method
47 //we suppose threshold equal to thr
49 void SetGauss(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1);
50 //adjust PRF with GAUSIAN as generic GRF
51 //if direct = kTRUE then it does't convolute distribution
52 void SetCosh(Float_t sigmaX,Float_t sigmaY , Float_t kNorm=1);
53 //adjust PRF with 1/Cosh as generic GRF
54 void SetGati(Float_t K3X, Float_t K3Y,
57 void SetParam(TF2 * GRF,Float_t kNorm,
58 Float_t sigmaX=0, Float_t sigmaY=0);
59 void SetPad(Float_t width, Float_t height);
60 //set base chevron parameters
61 void SetChevron(Float_t hstep, Float_t shifty, Float_t fac);
62 //set chevron parameters
63 void SetChParam(Float_t width, Float_t height,
64 Float_t hstep, Float_t shifty, Float_t fac);
65 //set all geometrical parameters
66 void SetNdiv(Int_t Ndiv){fNdiv=Ndiv;}
70 Float_t GetPRFActiv(Float_t xin); //return PRF in point xin and actual y
71 Float_t * fcharge; // field with PRF
75 Float_t * ffcharge; //pointer to array of arrays
78 Double_t funParam[5];//parameters of used charge function
79 Int_t fNPRF; //number of interpolations point
80 Int_t fNdiv; //number of division to calculate integral
81 Float_t fDStep; //element step for point
82 Float_t fkNorm; //normalisation factor of the charge integral
83 Float_t fInteg; //integral of GRF on +- infinity
84 TF2 * fGRF; //charge distribution function
90 Float_t forigsigmaX;//sigma of original distribution;
91 Float_t forigsigmaY;//sigma of original distribution;
92 Float_t fSigmaX; //sigma of PAD response function
93 //calculated during update
96 Float_t fHeightFull; //height of the full pad
97 Float_t fHeightS; //height of the one step
98 Float_t fShiftY; //shift of the step
99 Float_t fWidth; //width of the pad
100 Float_t fK; //k factor of the chewron
101 Float_t fActualY; //in reality we calculate PRF only for
103 char fType[5]; //charge type
104 //to make calculation faster we reduce division
105 Float_t fDYtoWire; //used to make PRF calculation faster in GetPRF
106 Float_t fDStepM1; //used in GetPRFActiv
107 ClassDef(AliTPCPRF2D,1)
110 #endif /* ALITPCPRF2D_H */