]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTransform.h
more secure string operations
[u/mrichter/AliRoot.git] / TPC / AliTPCTransform.h
index eed9ee00ab6a6b356085f3d8885952c4e8043fd9..e1f7d589654359156eb0bba90ca838c6e3327968 100755 (executable)
@@ -1,24 +1,53 @@
-#ifndef ALI_TPC_TRANSFORM_H
-#define ALI_TPC_TRANSFORM_H
+#ifndef ALITPCTRANSFORM_H
+#define ALITPCTRANSFORM_H
 
-#include "TGeoMatrix.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);
-protected:
-  void Pad2RotatedGlobal(Int_t pad,Int_t row,Double_t *x) const;
+  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:
-  Double_t fCoss[18];
-  Double_t fSins[18];
-
+  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)
 };