Eff C++
[u/mrichter/AliRoot.git] / TPC / AliTPCParamCR.h
1 #ifndef TPCParamCR_H
2 #define TPCParamCR_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 AliTPCParamCR : public AliTPCParam {
17 public:
18   AliTPCParamCR();
19   AliTPCParamCR(const AliTPCParamCR &param); // copy constructor
20   AliTPCParamCR &operator = (const AliTPCParamCR & param); //assignment operator
21   virtual ~AliTPCParamCR();
22   Int_t  CalcResponse(Float_t* x, Int_t * index, Int_t dummy=0);
23   //calculate bin response as function of the input position -x 
24   //return number of valid response bin
25   
26   void XYZtoCRXYZ(Float_t *xyz, 
27                   Int_t &sector, 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 &sector, const Int_t & padrow, Int_t option=3) const;  
36   //transform relative position  to the gloabal position
37   Bool_t Update();            //recalculate and check geometric parameters 
38   void SetDefault();          //set default parameters
39   void   SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;}
40   void   SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;}
41   void   SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;}
42   void   SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;}
43
44   AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;}
45   AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;}
46   AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;}
47   AliTPCRF1D  * GetTimeRF()   const {return fTimeRF;}
48 protected:
49   AliTPCPRF2D * fInnerPRF;         //!pad response function object for inner sector
50   AliTPCPRF2D * fOuter1PRF;         //!pad response function object for inner sector 
51   AliTPCPRF2D * fOuter2PRF;  
52   AliTPCRF1D  * fTimeRF;           //!time response function object
53   Float_t       fFacSigma;         //factor-how many sigma of response I accept
54   ClassDef(AliTPCParamCR,2)  //parameter  object for set:TPC
55 };
56
57 #endif