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