Line data Source code
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 :
7 : /// \class AliTPCRF1D
8 : /// \brief Manager class for AliTPCRF1D
9 :
10 :
11 : // include files and class forward declarations
12 :
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=0,Float_t step=0 );
22 : AliTPCRF1D(const AliTPCRF1D &prf);
23 : AliTPCRF1D & operator = (const AliTPCRF1D &prf);
24 : ~AliTPCRF1D();
25 : Float_t GetRF(Float_t xin); //return RF in point xin
26 : Float_t GetGRF(Float_t xin); //return generic response function in xin
27 : void SetGauss(Float_t sigma,Float_t padWidth, Float_t kNorm);
28 : //adjust RF with GAUSIAN as generic GRF
29 : //if direct = kTRUE then it does't convolute distribution
30 : void SetCosh(Float_t sigma,Float_t padWidth, Float_t kNorm);
31 : void SetGati(Float_t K3, Float_t padDistance, Float_t padWidth,
32 : Float_t kNorm);
33 : //adjust RF with 1/Cosh as generic GRF
34 : void SetParam(TF1 * GRF,Float_t padwidth,Float_t kNorm,
35 : Float_t sigma=0);
36 : //adjust RF with general function
37 2 : void SetOffset(Float_t xoff) {fOffset=xoff;}
38 : //set offset value
39 0 : Float_t GetOffset(){return fOffset;}
40 0 : Float_t GetPadWidth(){ return fpadWidth;};
41 : //return pad width
42 0 : Float_t GetSigma(){return fSigma;}
43 : //return estimated sigma of RF
44 : void DrawRF(Float_t x1=-3 ,Float_t x2 =3.,Int_t N = 200);
45 : //draw RF it don't delete histograms after drawing
46 : /// it's on user !!!!
47 : void Update();
48 : static Double_t Gamma4(Double_t x, Double_t p0, Double_t p1);
49 : private:
50 : Double_t funParam[5];///< parameters of used charge function
51 : Int_t fNRF; ///< number of interpolations point
52 : Float_t fDSTEPM1; ///< element step for point
53 : /// field with RF
54 : Float_t* fcharge; //[fNPRF]
55 : Float_t forigsigma;///< sigma of original distribution;
56 : Float_t fpadWidth; ///< width of pad
57 : Float_t fkNorm; ///< normalisation factor of the charge integral
58 : Float_t fInteg; ///< integral of GRF on +- infinity
59 : TF1 * fGRF; ///< charge distribution function
60 : Float_t fSigma; ///< sigma of PAD response function
61 :
62 : Float_t fOffset; ///< offset of response function (for time reponse we
63 : //have for expample shifted gauss)
64 : //calculated during update
65 :
66 : Bool_t fDirect; ///< tell us if we use directly generalfunction
67 :
68 : Float_t fPadDistance; ///< pad to wire distance
69 : char fType[5]; ///< type of the parametrisation
70 : static Int_t fgNRF;///< default number of interpolation points
71 : static Float_t fgRFDSTEP;///< default step in cm
72 : /// \cond CLASSIMP
73 24 : ClassDef(AliTPCRF1D,2)
74 : /// \endcond
75 : };
76 :
77 :
78 :
79 :
80 : #endif /* ALITPCRF1D_H */
81 :
|