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