ROOT logo
#ifndef ALITPCTRANSFORM_H
#define ALITPCTRANSFORM_H

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

/* $Id$ */

//
//    Class for tranformation of the coordinate frame
//    Transformation  
//      local coordinate frame (sector, padrow, pad, timebine) ==>
//      rotated global (tracking) cooridnate frame (sector, lx,ly,lz)
//

class AliTPCRecoParam;
#include "AliTransform.h"

class AliTPCTransform:public AliTransform {
public:
  AliTPCTransform();
  AliTPCTransform(const AliTPCTransform& transform);
  
  virtual ~AliTPCTransform();
  virtual void Transform(Double_t *x,Int_t *i,UInt_t time,
			 Int_t coordinateType);
  void SetPrimVertex(Double_t *vtx);
  void Local2RotatedGlobal(Int_t sec,  Double_t *x) const;
  void RotatedGlobal2Global(Int_t sector,Double_t *x) const;
  void Global2RotatedGlobal(Int_t sector,Double_t *x) const;
  void GetCosAndSin(Int_t sector,Double_t &cos,Double_t &sin) const;
  UInt_t GetCurrentTimeStamp() const { return fCurrentTimeStamp;}
  const AliTPCRecoParam * GetCurrentRecoParam() const {return fCurrentRecoParam;}
  AliTPCRecoParam * GetCurrentRecoParamNonConst() const {return fCurrentRecoParam;}
  UInt_t GetCurrentRunNumber() const { return fCurrentRun;}
  //
  // set current values
  //
  void SetCurrentRecoParam(AliTPCRecoParam* param){fCurrentRecoParam=param;}
  void SetCurrentRun(Int_t run){fCurrentRun=run;}
  void SetCurrentTimeStamp(Int_t timeStamp){fCurrentTimeStamp=timeStamp;}
  void ApplyTransformations(Double_t *xyz, Int_t volID);
private:
  AliTPCTransform& operator=(const AliTPCTransform&); // not implemented
  Double_t fCoss[18];  // cache the transformation
  Double_t fSins[18];  // cache the transformation
  Double_t fPrimVtx[3];// position of the primary vertex - needed for TOF correction
  AliTPCRecoParam * fCurrentRecoParam; //! current reconstruction parameters
  Int_t    fCurrentRun;                //! current run
  UInt_t   fCurrentTimeStamp;          //! current time stamp
  ClassDef(AliTPCTransform,1)
};

#endif
 AliTPCTransform.h:1
 AliTPCTransform.h:2
 AliTPCTransform.h:3
 AliTPCTransform.h:4
 AliTPCTransform.h:5
 AliTPCTransform.h:6
 AliTPCTransform.h:7
 AliTPCTransform.h:8
 AliTPCTransform.h:9
 AliTPCTransform.h:10
 AliTPCTransform.h:11
 AliTPCTransform.h:12
 AliTPCTransform.h:13
 AliTPCTransform.h:14
 AliTPCTransform.h:15
 AliTPCTransform.h:16
 AliTPCTransform.h:17
 AliTPCTransform.h:18
 AliTPCTransform.h:19
 AliTPCTransform.h:20
 AliTPCTransform.h:21
 AliTPCTransform.h:22
 AliTPCTransform.h:23
 AliTPCTransform.h:24
 AliTPCTransform.h:25
 AliTPCTransform.h:26
 AliTPCTransform.h:27
 AliTPCTransform.h:28
 AliTPCTransform.h:29
 AliTPCTransform.h:30
 AliTPCTransform.h:31
 AliTPCTransform.h:32
 AliTPCTransform.h:33
 AliTPCTransform.h:34
 AliTPCTransform.h:35
 AliTPCTransform.h:36
 AliTPCTransform.h:37
 AliTPCTransform.h:38
 AliTPCTransform.h:39
 AliTPCTransform.h:40
 AliTPCTransform.h:41
 AliTPCTransform.h:42
 AliTPCTransform.h:43
 AliTPCTransform.h:44
 AliTPCTransform.h:45
 AliTPCTransform.h:46
 AliTPCTransform.h:47
 AliTPCTransform.h:48
 AliTPCTransform.h:49
 AliTPCTransform.h:50
 AliTPCTransform.h:51
 AliTPCTransform.h:52
 AliTPCTransform.h:53
 AliTPCTransform.h:54