]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCRF1D.h
a22366cf795d86a6e6aa7389db44253524c44ebf
[u/mrichter/AliRoot.git] / TPC / AliTPCRF1D.h
1 #ifndef AliTPCRF1D_H
2 #define AliTPCRF1D_H
3 ////////////////////////////////////////////////
4 //  Manager class for AliTPCRF1D                  //
5 ////////////////////////////////////////////////
6   
7
8 // include files and class forward declarations
9 //DSTEP in cm
10 //NPRF in number of interpolation points
11 const Int_t   NRF=100;
12 const Float_t RFDSTEP=0.01;
13
14 #include "TObject.h"
15 #include "TMath.h"
16 class TF1;
17
18
19 class AliTPCRF1D : public TObject {
20 public : 
21   AliTPCRF1D(Bool_t direct=kFALSE,Int_t np=NRF,Float_t step=RFDSTEP );
22   ~AliTPCRF1D();  
23   Float_t GetRF(Float_t xin); //return RF in point xin
24   Float_t GetGRF(Float_t xin); //return generic response function  in xin
25   void SetGauss(Float_t sigma,Float_t padWidth, Float_t kNorm);
26   //adjust RF with GAUSIAN as generic GRF 
27   //if  direct = kTRUE then it does't convolute distribution
28   void SetCosh(Float_t sigma,Float_t padWidth, Float_t kNorm);
29   void SetGati(Float_t K3, Float_t padDistance, Float_t padWidth,
30                Float_t kNorm);
31   //adjust RF with 1/Cosh  as generic GRF
32   void SetParam(TF1 * GRF,Float_t padwidth,Float_t kNorm, 
33                 Float_t sigma=0);
34   //adjust RF with general function 
35   void SetOffset(Float_t xoff) {fOffset=xoff;}
36   //set offset value 
37   Float_t GetPadWidth(){ return fpadWidth;};       
38   //return  pad width 
39   Float_t  GetSigma(){return fSigma;}
40   //return estimated sigma of RF
41   void Draw(Float_t x1=-3 ,Float_t x2 =3.,Int_t N = 200);
42   //draw RF it don't delete histograms after drawing
43   /// it's on user !!!!
44   void Update();  
45 private: 
46   Double_t funParam[5];//parameters of used charge function
47   Int_t  fNRF;      //number of interpolations point
48   Float_t fDSTEPM1;    //element step for point
49   Float_t* fcharge; // field with RF
50   Float_t  forigsigma;//sigma of original distribution;
51   Float_t fpadWidth;  //width of pad
52   Float_t fkNorm;     //normalisation factor of the charge integral
53   Float_t fInteg;     //integral of GRF on +- infinity
54   TF1 *  fGRF;        //charge distribution function
55   Float_t fSigma;     //sigma of PAD response function
56
57   Float_t fOffset;    //offset of response function (for time reponse we 
58   //have for expample shifted gauss)
59   //calculated during update
60  
61   Bool_t fDirect;     //tell us if we use directly generalfunction
62   Float_t fK3X;  
63   Float_t fPadDistance; 
64   //charge type
65   char  fType[5];
66   ClassDef(AliTPCRF1D,2)
67 }; 
68
69
70
71
72 #endif /* AliTPCRF1D_H */
73