1 #ifndef ALITPCTRANSFORM_H
2 #define ALITPCTRANSFORM_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 // Class for tranformation of the coordinate frame
12 // local coordinate frame (sector, padrow, pad, timebine) ==>
13 // rotated global (tracking) cooridnate frame (sector, lx,ly,lz)
16 class AliTPCRecoParam;
17 #include "AliTransform.h"
19 class AliTPCTransform:public AliTransform {
22 AliTPCTransform(const AliTPCTransform& transform);
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;}
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);
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)