Bug fix for the case of more than 30 timebins
[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) { *(new(this) AliTRDtransform(t));
36                                                           return *this; }
37
38   virtual Bool_t   Transform(AliTRDcluster *c);
39   virtual void     Recalibrate(AliTRDcluster *c, Bool_t setDet = kTRUE);
40
41           void     SetDetector(Int_t det);
42
43 protected:
44
45   AliTRDgeometry     *fGeo;                 //  TRD geometry
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   Double_t            fCalVdriftDetValue;   //  ROC wise Vdrift calibration value
57   Double_t            fCalT0DetValue;       //  ROC wise T0 calibration value
58
59   Double_t            fSamplingFrequency;   //  ADC sampling frequency
60
61   AliTRDpadPlane     *fPadPlane;            //  The current pad plane object
62   Double_t            fZShiftIdeal;         //  Needed to define Z-position relative to middle of chamber
63
64   TGeoHMatrix        *fMatrix;              //  Transformation matrix for a given chamber
65
66   ClassDef(AliTRDtransform, 3)              //  Transforms clusters
67
68 };
69 #endif