58b5e5ffbc5a8da545e78959bb8c705cd0e1770f
[u/mrichter/AliRoot.git] / HLT / comp / AliL3DataCompressorHelper.h
1 // @(#) $Id$
2
3 #ifndef AliL3_DataCompressorHelper
4 #define AliL3_DataCompressorHelper
5
6 #include "AliL3RootTypes.h"
7
8 class AliL3DataCompressorHelper {
9   
10  public:
11   virtual ~AliL3DataCompressorHelper() {}
12
13   static void SetBitNumbers(Int_t pad,Int_t time,Int_t charge,Int_t shape);
14   static void SetTransverseResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width=0.005);
15   static void SetLongitudinalResolutions(Float_t res1,Float_t res2,Float_t res3,Float_t width=0.005);
16   static void SetRemainingBitNumbers(Int_t pad,Int_t time,Int_t shape);
17   static Int_t GetNPadBits() {return fgNumPadBits;}
18   static Int_t GetNTimeBits() {return fgNumTimeBits;}
19   static Int_t GetNChargeBits() {return fgNumChargeBits;}
20   static Int_t GetNShapeBits() {return fgNumShapeBits;}
21   static Float_t GetXYWidthStep() {return fgXYWidthStep;}
22   static Float_t GetZWidthStep() {return fgZWidthStep;}
23   static Int_t GetClusterCharge() {return fgClusterCharge;}
24   static Float_t GetXYResidualStep(Int_t row);
25   static Float_t GetZResidualStep(Int_t row);
26   static Int_t GetNPadBitsRemaining() {return fgNumPadBitsRemaining;}
27   static Int_t GetNTimeBitsRemaining() {return fgNumTimeBitsRemaining;}
28   static Int_t GetNShapeBitsRemaining() {return fgNumShapeBitsRemaining;}
29   static Float_t GetPadPrecisionFactor();
30   static Float_t GetTimePrecisionFactor();
31
32   //taken from TMath
33   static Int_t Nint(Double_t x); 
34   static Int_t Abs(Int_t d) { return (d > 0) ? d : -d; }
35   static Double_t Abs(Double_t d) { return (d > 0) ? d : -d; }
36
37  private:
38   static Int_t fgNumPadBits; // Number of pad bits
39   static Int_t fgNumTimeBits; // Number of time bits
40   static Int_t fgNumChargeBits; // Number of charge bits
41   static Int_t fgNumShapeBits; // Number of shape bits
42   static Int_t fgNumPadBitsRemaining; // Number of remaining pad bits
43   static Int_t fgNumTimeBitsRemaining; // Number of remaining time bits
44   static Int_t fgNumShapeBitsRemaining; // Number of remaining shape bits
45
46   static Float_t fgXYResidualStep1; // XY resbual at step 1
47   static Float_t fgXYResidualStep2; // XY residual at step 2
48   static Float_t fgXYResidualStep3; // XY resudual at step 3
49   static Float_t fgZResidualStep1; // Z residual at step 1
50   static Float_t fgZResidualStep2; // Z resudual at step 2
51   static Float_t fgZResidualStep3; // Z resudual at step 3
52   static Float_t fgXYWidthStep; // Width of XY step
53   static Float_t fgZWidthStep;  // Width of Z step
54   static Int_t fgClusterCharge; // Cluster charge
55
56
57   ClassDef(AliL3DataCompressorHelper,1) 
58
59 };
60
61 #endif