900ce5732cf2b2f158b4bca37569f9f356184ff5
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDataCompressorHelper.h
1 // @(#) $Id$
2 // Original: AliHLTDataCompressorHelper.h,v 1.4 2004/06/15 10:26:57 hristov Exp $
3
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               *
7
8 #ifndef AliHLTTPC_DataCompressorHelper
9 #define AliHLTTPC_DataCompressorHelper
10
11 /**
12  * @class AliHLTTPCDataCompressorHelper
13  *
14  * @ingroup alihlt_tpc
15  */
16 class AliHLTTPCDataCompressorHelper {
17   
18  public:
19   AliHLTTPCDataCompressorHelper();
20   virtual ~AliHLTTPCDataCompressorHelper();
21
22   static void SetBitNumbers(Int_t pad,Int_t time,Int_t charge,Int_t shape);
23   static void SetTransverseResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width=0.005);
24   static void SetLongitudinalResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width=0.005);
25   static void SetRemainingBitNumbers(Int_t pad,Int_t time,Int_t shape);
26   static Int_t GetNPadBits() {return fgNumPadBits;}
27   static Int_t GetNTimeBits() {return fgNumTimeBits;}
28   static Int_t GetNChargeBits() {return fgNumChargeBits;}
29   static Int_t GetNShapeBits() {return fgNumShapeBits;}
30   static Float_t GetXYWidthStep() {return fgXYWidthStep;}
31   static Float_t GetZWidthStep() {return fgZWidthStep;}
32   static Int_t GetClusterCharge() {return fgClusterCharge;}
33   static Float_t GetXYResidualStep(Int_t row);
34   static Float_t GetZResidualStep(Int_t row);
35   static Int_t GetNPadBitsRemaining() {return fgNumPadBitsRemaining;}
36   static Int_t GetNTimeBitsRemaining() {return fgNumTimeBitsRemaining;}
37   static Int_t GetNShapeBitsRemaining() {return fgNumShapeBitsRemaining;}
38   static Float_t GetPadPrecisionFactor();
39   static Float_t GetTimePrecisionFactor();
40
41   //taken from TMath
42   static Int_t Nint(Double_t x); 
43   static Int_t Abs(Int_t d) { return (d > 0) ? d : -d; }
44   static Double_t Abs(Double_t d) { return (d > 0) ? d : -d; }
45
46  private:
47   static Int_t fgNumPadBits; // Number of pad bits
48   static Int_t fgNumTimeBits; // Number of time bits
49   static Int_t fgNumChargeBits; // Number of charge bits
50   static Int_t fgNumShapeBits; // Number of shape bits
51   static Int_t fgNumPadBitsRemaining; // Number of remaining pad bits
52   static Int_t fgNumTimeBitsRemaining; // Number of remaining time bits
53   static Int_t fgNumShapeBitsRemaining; // Number of remaining shape bits
54
55   static Float_t fgXYResidualStep1; // XY resbual at step 1
56   static Float_t fgXYResidualStep2; // XY residual at step 2
57   static Float_t fgXYResidualStep3; // XY resudual at step 3
58   static Float_t fgZResidualStep1; // Z residual at step 1
59   static Float_t fgZResidualStep2; // Z resudual at step 2
60   static Float_t fgZResidualStep3; // Z resudual at step 3
61   static Float_t fgXYWidthStep; // Width of XY step
62   static Float_t fgZWidthStep;  // Width of Z step
63   static Int_t fgClusterCharge; // Cluster charge
64
65
66   ClassDef(AliHLTTPCDataCompressorHelper,0) 
67
68 };
69
70 #endif