ROOT logo
#ifndef ALITRDTRANSFORM_H
#define ALITRDTRANSFORM_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Transforms clusters into space points with calibrated positions       //
//  defined in the local tracking system                                  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include "TObject.h"

class TGeoHMatrix;

class AliTRDgeometry;
class AliTRDcluster;
class AliTRDCommonParam;
class AliTRDcalibDB;
class AliTRDCalROC;
class AliTRDCalDet;
class AliTRDpadPlane;

class AliTRDtransform : public TObject {

 public:

  AliTRDtransform();
  AliTRDtransform(Int_t det);
  AliTRDtransform(const AliTRDtransform &t);
  virtual ~AliTRDtransform();
  AliTRDtransform &operator=(const AliTRDtransform &t);
  
  virtual void     Copy(TObject &t) const;
  AliTRDpadPlane*  GetPadPlane() const {return fPadPlane;}
  virtual Bool_t   Transform(AliTRDcluster *c);
  virtual void     Recalibrate(AliTRDcluster *c, Bool_t setDet = kTRUE);

          void     SetDetector(Int_t det);
  static  AliTRDgeometry& Geometry(); 

  protected:
  Int_t               fDetector;            //  Detector number

  AliTRDCommonParam  *fParam;               //  TRD common parameters

  AliTRDcalibDB      *fCalibration;         //  TRD calibration interface object
  AliTRDCalROC       *fCalVdriftROC;        //  Pad wise Vdrift calibration object
  AliTRDCalROC       *fCalT0ROC;            //  Pad wise T0 calibration object
  AliTRDCalROC       *fCalPRFROC;           //  Pad wise PRF calibration object
  const AliTRDCalDet *fkCalVdriftDet;       //  ROC wise Vdrift calibration object
  const AliTRDCalDet *fkCalT0Det;           //  ROC wise T0 calibration object
  const AliTRDCalDet *fkCalExBDet;          //  ROC wise ExB calibration object
  Double_t            fCalVdriftDetValue;   //  ROC wise Vdrift calibration value
  Double_t            fCalT0DetValue;       //  ROC wise T0 calibration value
  Double_t            fCalExBDetValue;      //  Det wise ExB calibration value

  Double_t            fSamplingFrequency;   //  ADC sampling frequency

  AliTRDpadPlane     *fPadPlane;            //  The current pad plane object
  Double_t            fZShiftIdeal;         //  Needed to define Z-position relative to middle of chamber

  TGeoHMatrix        *fMatrix;              //  Transformation matrix for a given chamber

  ClassDef(AliTRDtransform, 3)              //  Transforms clusters

};
#endif
 AliTRDtransform.h:1
 AliTRDtransform.h:2
 AliTRDtransform.h:3
 AliTRDtransform.h:4
 AliTRDtransform.h:5
 AliTRDtransform.h:6
 AliTRDtransform.h:7
 AliTRDtransform.h:8
 AliTRDtransform.h:9
 AliTRDtransform.h:10
 AliTRDtransform.h:11
 AliTRDtransform.h:12
 AliTRDtransform.h:13
 AliTRDtransform.h:14
 AliTRDtransform.h:15
 AliTRDtransform.h:16
 AliTRDtransform.h:17
 AliTRDtransform.h:18
 AliTRDtransform.h:19
 AliTRDtransform.h:20
 AliTRDtransform.h:21
 AliTRDtransform.h:22
 AliTRDtransform.h:23
 AliTRDtransform.h:24
 AliTRDtransform.h:25
 AliTRDtransform.h:26
 AliTRDtransform.h:27
 AliTRDtransform.h:28
 AliTRDtransform.h:29
 AliTRDtransform.h:30
 AliTRDtransform.h:31
 AliTRDtransform.h:32
 AliTRDtransform.h:33
 AliTRDtransform.h:34
 AliTRDtransform.h:35
 AliTRDtransform.h:36
 AliTRDtransform.h:37
 AliTRDtransform.h:38
 AliTRDtransform.h:39
 AliTRDtransform.h:40
 AliTRDtransform.h:41
 AliTRDtransform.h:42
 AliTRDtransform.h:43
 AliTRDtransform.h:44
 AliTRDtransform.h:45
 AliTRDtransform.h:46
 AliTRDtransform.h:47
 AliTRDtransform.h:48
 AliTRDtransform.h:49
 AliTRDtransform.h:50
 AliTRDtransform.h:51
 AliTRDtransform.h:52
 AliTRDtransform.h:53
 AliTRDtransform.h:54
 AliTRDtransform.h:55
 AliTRDtransform.h:56
 AliTRDtransform.h:57
 AliTRDtransform.h:58
 AliTRDtransform.h:59
 AliTRDtransform.h:60
 AliTRDtransform.h:61
 AliTRDtransform.h:62
 AliTRDtransform.h:63
 AliTRDtransform.h:64
 AliTRDtransform.h:65
 AliTRDtransform.h:66
 AliTRDtransform.h:67
 AliTRDtransform.h:68
 AliTRDtransform.h:69
 AliTRDtransform.h:70
 AliTRDtransform.h:71