removing old CF configurations, ids redirected to HWCF; global tracking option enable...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterTransformation.h
1 // -*- Mode: C++ -*-
2 // $Id: AliHLTTPCClusterTransformation.h 40939 2010-05-04 15:35:58Z kkanaki $
3
4 #ifndef ALIHLTTPCCLUSTERTRANSFORMATION_H
5 #define ALIHLTTPCCLUSTERTRANSFORMATION_H
6
7 //* This file is property of and copyright by the ALICE HLT Project        * 
8 //* ALICE Experiment at CERN, All rights reserved.                         *
9 //* See cxx source for full Copyright notice                               *
10
11 /** @file   AliHLTTPCClusterTransformation.h
12     @author Kalliopi Kanaki, Sergey Gorbunov
13     @date   
14     @brief
15 */
16
17 // see below for class documentation
18 // or
19 // refer to README to build package
20 // or
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22
23 #include"Rtypes.h"
24
25 class AliTPCParam;
26 class AliTPCTransform;
27
28 /**
29  * @class AliHLTTPCClusterTransformation
30  *
31  * The class transforms internal TPC coordinates (pad,time) to XYZ.
32  * Allnecessary calibration and alignment corrections are applied
33  * 
34  * @ingroup alihlt_tpc_components
35  */
36
37 class AliHLTTPCClusterTransformation{
38     
39  public:
40
41   /** standard constructor */    
42   AliHLTTPCClusterTransformation();           
43   /** destructor */
44   virtual ~AliHLTTPCClusterTransformation();
45
46   int  Init( double FieldBz, UInt_t TimeStamp );
47   void SetCurrentTimeStamp( UInt_t TimeStamp );
48   int  Transform( int Slice, int Row, float Pad, float Time, float XYZ[] );
49
50   int  ReverseAlignment( float XYZ[], int slice, int padrow);
51   void SetRotationMatrix(const Double_t *rot=NULL, bool bCalcAdjugate=false);
52   bool CalcAdjugateRotation(bool bCheck=false);
53
54   void Print(const char* option=NULL) const;
55
56  protected:
57
58   AliTPCTransform * fOfflineTransform;                             //! transient
59   AliTPCParam     * fOfflineTPCParam;                                 //! transient
60   Int_t fLastSector; // last sector
61   Double_t fAliT[3]; // alignment - translation
62   Double_t fAliR[9]; // alignment - rotation
63   Double_t fAdjR[9]; // alignment - inverse rotation (adjugate)
64
65  private:
66
67   /** copy constructor prohibited */
68   AliHLTTPCClusterTransformation(const AliHLTTPCClusterTransformation&);
69   /** assignment operator prohibited */
70   AliHLTTPCClusterTransformation& operator=(const AliHLTTPCClusterTransformation&);
71
72   ClassDef(AliHLTTPCClusterTransformation, 0)
73 };
74
75 #endif