Merge with TRDdev.2.0
[u/mrichter/AliRoot.git] / TRD / AliTRDtransform.h
1 #ifndef ALITRDTRANSFORM_H
2 #define ALITRDTRANSFORM_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 //                                                                        //
10 //  Transforms clusters into space points with calibrated positions       //
11 //  defined in the local tracking system                                  //
12 //                                                                        //
13 ////////////////////////////////////////////////////////////////////////////
14
15 #include "TObject.h"
16
17 class TGeoHMatrix;
18
19 class AliTRDgeometry;
20 class AliTRDcluster;
21 class AliTRDCommonParam;
22 class AliTRDcalibDB;
23 class AliTRDCalROC;
24 class AliTRDCalDet;
25 class AliTRDpadPlane;
26
27 class AliTRDtransform : public TObject {
28
29  public:
30
31   AliTRDtransform();
32   AliTRDtransform(Int_t det);
33   AliTRDtransform(const AliTRDtransform &t);
34   virtual ~AliTRDtransform();
35   AliTRDtransform &operator=(const AliTRDtransform &t);
36   
37   virtual void     Copy(TObject &t) const;
38   AliTRDpadPlane*  GetPadPlane() const {return fPadPlane;}
39   virtual Bool_t   Transform(AliTRDcluster *c);
40   virtual void     Recalibrate(AliTRDcluster *c, Bool_t setDet = kTRUE);
41
42           void     SetDetector(Int_t det);
43   static  AliTRDgeometry& Geometry(); 
44
45   protected:
46   Int_t               fDetector;            //  Detector number
47
48   AliTRDCommonParam  *fParam;               //  TRD common parameters
49
50   AliTRDcalibDB      *fCalibration;         //  TRD calibration interface object
51   AliTRDCalROC       *fCalVdriftROC;        //  Pad wise Vdrift calibration object
52   AliTRDCalROC       *fCalT0ROC;            //  Pad wise T0 calibration object
53   AliTRDCalROC       *fCalPRFROC;           //  Pad wise PRF calibration object
54   const AliTRDCalDet *fkCalVdriftDet;       //  ROC wise Vdrift calibration object
55   const AliTRDCalDet *fkCalT0Det;           //  ROC wise T0 calibration object
56   const AliTRDCalDet *fkCalExBDet;          //  ROC wise ExB calibration object
57   Double_t            fCalVdriftDetValue;   //  ROC wise Vdrift calibration value
58   Double_t            fCalT0DetValue;       //  ROC wise T0 calibration value
59   Double_t            fCalExBDetValue;      //  Det wise ExB calibration value
60
61   Double_t            fSamplingFrequency;   //  ADC sampling frequency
62
63   AliTRDpadPlane     *fPadPlane;            //  The current pad plane object
64   Double_t            fZShiftIdeal;         //  Needed to define Z-position relative to middle of chamber
65
66   TGeoHMatrix        *fMatrix;              //  Transformation matrix for a given chamber
67
68   ClassDef(AliTRDtransform, 3)              //  Transforms clusters
69
70 };
71 #endif