]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Base/AliTPCTransform.h
ATO-78 - edge handling (mirroring out of range pads) set as an option
[u/mrichter/AliRoot.git] / TPC / Base / AliTPCTransform.h
1 #ifndef ALITPCTRANSFORM_H
2 #define ALITPCTRANSFORM_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //
10 //    Class for tranformation of the coordinate frame
11 //    Transformation  
12 //      local coordinate frame (sector, padrow, pad, timebine) ==>
13 //      rotated global (tracking) cooridnate frame (sector, lx,ly,lz)
14 //
15
16 class AliTPCRecoParam;
17 #include "AliTransform.h"
18
19 class AliTPCTransform:public AliTransform {
20 public:
21   AliTPCTransform();
22   AliTPCTransform(const AliTPCTransform& transform);
23   
24   virtual ~AliTPCTransform();
25   virtual void Transform(Double_t *x,Int_t *i,UInt_t time,
26                          Int_t coordinateType);
27   void SetPrimVertex(Double_t *vtx);
28   void Local2RotatedGlobal(Int_t sec,  Double_t *x) const;
29   void RotatedGlobal2Global(Int_t sector,Double_t *x) const;
30   void Global2RotatedGlobal(Int_t sector,Double_t *x) const;
31   void GetCosAndSin(Int_t sector,Double_t &cos,Double_t &sin) const;
32   UInt_t GetCurrentTimeStamp() const { return fCurrentTimeStamp;}
33   const AliTPCRecoParam * GetCurrentRecoParam() const {return fCurrentRecoParam;}
34   AliTPCRecoParam * GetCurrentRecoParamNonConst() const {return fCurrentRecoParam;}
35   UInt_t GetCurrentRunNumber() const { return fCurrentRun;}
36   //
37   // set current values
38   //
39   void SetCurrentRecoParam(AliTPCRecoParam* param){fCurrentRecoParam=param;}
40   void SetCurrentRun(Int_t run){fCurrentRun=run;}
41   void SetCurrentTimeStamp(Int_t timeStamp){fCurrentTimeStamp=timeStamp;}
42   void ApplyTransformations(Double_t *xyz, Int_t volID);
43 private:
44   AliTPCTransform& operator=(const AliTPCTransform&); // not implemented
45   Double_t fCoss[18];  // cache the transformation
46   Double_t fSins[18];  // cache the transformation
47   Double_t fPrimVtx[3];// position of the primary vertex - needed for TOF correction
48   AliTPCRecoParam * fCurrentRecoParam; //! current reconstruction parameters
49   Int_t    fCurrentRun;                //! current run
50   UInt_t   fCurrentTimeStamp;          //! current time stamp
51   ClassDef(AliTPCTransform,1)
52 };
53
54 #endif