Cache the InversePitch instead of computing it each time.
[u/mrichter/AliRoot.git] / MUON / AliMUONMathieson.h
1 #ifndef ALIMUONMATHIESON_H
2 #define ALIMUONMATHIESON_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Revision of includes 07/05/2004
8 //
9 /// \ingroup base
10 /// \class AliMUONMathieson
11 /// \brief Implementation of Mathieson response
12
13 #ifndef ROOT_TObject
14 #  include "TObject.h"
15 #endif
16
17 class AliMUONGeometrySegmentation;
18
19 class AliMUONMathieson : public TObject
20 {
21  public:
22     AliMUONMathieson();
23     virtual ~AliMUONMathieson(){}
24  
25     // Get anode cathode Pitch
26     Float_t Pitch() const        {return fPitch;}
27     // Set anode cathode Pitch
28     void    SetPitch(Float_t p1);
29
30     // Set Mathieson parameters
31     // Mathieson \sqrt{Kx3} and derived Kx2 and Kx4
32     void SetSqrtKx3AndDeriveKx2Kx4(Float_t SqrtKx3);
33     // Mathieson \sqrt{Kx3}
34     void    SetSqrtKx3(Float_t p1) {fSqrtKx3 = p1;};
35     // Mathieson Kx2
36     void    SetKx2(Float_t p1)      {fKx2 = p1;};
37     // Mathieson Kx4
38     void    SetKx4(Float_t p1)      {fKx4 = p1;};
39     // Mathieson \sqrt{Ky3} and derived Ky2 and Ky4
40     void SetSqrtKy3AndDeriveKy2Ky4(Float_t SqrtKy3);
41     // Mathieson \sqrt{Ky3}
42     void    SetSqrtKy3(Float_t p1)   {fSqrtKy3 = p1;};
43     // Mathieson Ky2
44     void    SetKy2(Float_t p1) {fKy2 = p1;};
45     // Mathieson Ky4
46     void    SetKy4(Float_t p1) {fKy4 = p1;};
47     /// \deprecated To be removed when old (s)digitizers go off.
48     Float_t  IntXY(Int_t id, AliMUONGeometrySegmentation* segmentation);
49     /// Charge integration on region (x1,y1,x2,y2).
50     Float_t IntXY(Float_t xi1, Float_t yi1, Float_t xi2, Float_t yi2) const;
51     
52  private:
53   
54     Float_t fSqrtKx3;                  // Mathieson Sqrt(Kx3)
55     Float_t fKx2;                      // Mathieson Kx2
56     Float_t fKx4;                      // Mathieson Kx4 = Kx1/Kx2/Sqrt(Kx3)  
57     Float_t fSqrtKy3;                  // Mathieson Sqrt(Ky3)
58     Float_t fKy2;                      // Mathieson Ky2
59     Float_t fKy4;                      // Mathieson Ky4 = Ky1/Ky2/Sqrt(Ky3)
60     Float_t fPitch;                    // anode-cathode pitch
61     Float_t fInversePitch;             // 1/Pitch
62     ClassDef(AliMUONMathieson,3) // Implementation of Mathieson response
63 };
64 #endif
65
66
67
68
69
70
71
72
73
74
75