Line data Source code
1 : #ifndef TPCParamSR_H
2 : #define TPCParamSR_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 AliTPCParamSR
8 : /// \brief Manager class for TPC parameters
9 :
10 : #include "AliTPCParam.h"
11 :
12 : class AliTPCRF1D;
13 : class AliTPCPRF2D;
14 :
15 : class AliTPCParamSR : public AliTPCParam {
16 : public:
17 : AliTPCParamSR();
18 : virtual ~AliTPCParamSR();
19 :
20 : Int_t CalcResponse(Float_t* x, Int_t * index, Int_t row);
21 : Int_t CalcResponseFast(Float_t* x, Int_t * index, Int_t row,Float_t phase);
22 : //calculate bin response as function of the input position -x
23 : //return number of valid response bin
24 :
25 :
26 : void XYZtoCRXYZ(Float_t *xyz,
27 : Int_t §or, Int_t &padrow, Int_t option=3) const;
28 : //transform global position to the position relative to the sector padrow
29 : //if option=0 X calculate absolute calculate sector
30 : //if option=1 X absolute use input sector
31 : //if option=2 X relative to pad row calculate sector
32 : //if option=3 X relative use input sector
33 :
34 : void CRXYZtoXYZ(Float_t *xyz,
35 : const Int_t §or, const Int_t & padrow, Int_t option=3) const;
36 : //transform relative position to the gloabal position
37 : void TransformTo8(Float_t *xyz, Int_t *index) const;
38 : void TransformTo2(Float_t *xyz, Int_t *index) const;
39 : Bool_t Update(); //recalculate and check geometric parameters
40 : void SetDefault(); //set default parameters
41 2 : void SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;}
42 2 : void SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;} //e.k
43 2 : void SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;} //e.k
44 2 : void SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;}
45 :
46 0 : AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;}
47 0 : AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;} //e.k
48 0 : AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;} //e.k
49 0 : AliTPCRF1D * GetTimeRF() const {return fTimeRF;}
50 0 : void SetFacSigmaPadRow(Float_t fac=3.) {fFacSigmaPadRow=fac;}
51 0 : void SetFacSigmaPad(Float_t fac=3.) {fFacSigmaPad=fac;}
52 0 : void SetFacSigmaTime(Float_t fac=3.) {fFacSigmaTime=fac;}
53 :
54 : // Float_t GetPadRowRadiiLow(Int_t irow) const;
55 : // Float_t GetPadRowRadiiUp(Int_t irow) const;
56 : Float_t GetYInner(Int_t irow) const; //e,k
57 : Float_t GetYOuter(Int_t irow) const; //e.k
58 :
59 : virtual Float_t GetPrimaryLoss(Float_t *x, Int_t *index, Float_t *angle);
60 : virtual Float_t GetTotalLoss(Float_t *x, Int_t *index, Float_t *angle);
61 :
62 : virtual void GetClusterSize(Float_t *x, Int_t *index, Float_t *angle, Int_t mode, Float_t *sigma);
63 : virtual void GetSpaceResolution(Float_t *x, Int_t *index, Float_t *angle, Float_t amplitude, Int_t mode,Float_t *sigma);
64 : virtual Float_t GetAmp(Float_t *x, Int_t *index, Float_t *angle);
65 : virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle);
66 :
67 : protected:
68 : AliTPCPRF2D * fInnerPRF; ///< pad response function for inner sector
69 : AliTPCPRF2D * fOuter1PRF; ///< pad response function for outer sector
70 : AliTPCPRF2D * fOuter2PRF;
71 : AliTPCRF1D * fTimeRF; ///< time response function object
72 : Float_t fFacSigmaPadRow; ///< factor-how many sigma of response I accept
73 : Float_t fFacSigmaPad; ///< factor-how many sigma of response I accept
74 : Float_t fFacSigmaTime; ///< factor-how many sigma of response I accept
75 :
76 : private:
77 : AliTPCParamSR(const AliTPCParamSR ¶m); // copy constructor
78 : AliTPCParamSR &operator = (const AliTPCParamSR & param); //assignment operator
79 :
80 : /// \cond CLASSIMP
81 90 : ClassDef(AliTPCParamSR,2) //parameter object for set:TPC
82 : /// \endcond
83 : };
84 :
85 : #endif
86 :
87 :
88 :
89 :
90 :
91 :
|