]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDDigit.h
Moved mode lines to end of files
[u/mrichter/AliRoot.git] / FMD / AliFMDDigit.h
1 #ifndef ALIFMDDIGIT_H
2 #define ALIFMDDIGIT_H
3
4 //////////////////////////////////////////////////////////////////////
5 //
6 //  Digits classes for the FMD                
7 //
8 //////////////////////////////////////////////////////////////////////
9 #ifndef ROOT_TObject
10 # include <TObject.h>
11 #endif
12
13 //____________________________________________________________________
14 class AliFMDBaseDigit : public TObject 
15 {
16 protected:
17   UShort_t fDetector;  // (Sub) Detector # (1,2, or 3)
18   Char_t   fRing;      // Ring ID ('I' or 'O')
19   UShort_t fSector;    // Sector # (phi division)
20   UShort_t fStrip;     // Strip # (radial division)
21 public: 
22   AliFMDBaseDigit();
23   AliFMDBaseDigit(UShort_t detector, 
24                   Char_t   ring='\0', 
25                   UShort_t sector=0, 
26                   UShort_t strip=0);
27   virtual ~AliFMDBaseDigit() {}
28   UShort_t     Detector()          const { return fDetector; }
29   Char_t       Ring()              const { return fRing;     }
30   UShort_t     Sector()            const { return fSector;   }
31   UShort_t     Strip()             const { return fStrip;    }
32   virtual void Print(Option_t* opt="") const;
33   ClassDef(AliFMDBaseDigit, 1) // Base class for FMD digits 
34 };
35
36 //____________________________________________________________________
37 class AliFMDDigit : public AliFMDBaseDigit
38 {
39 protected:
40   UShort_t fCount1;     // Digital signal 
41   Short_t  fCount2;     // Digital signal (-1 if not used)
42   Short_t  fCount3;     // Digital signal (-1 if not used)
43 public:
44   AliFMDDigit();
45   AliFMDDigit(UShort_t detector, 
46               Char_t   ring='\0', 
47               UShort_t sector=0, 
48               UShort_t strip=0, 
49               UShort_t count=0, 
50               Short_t  count2=-1, 
51               Short_t  count3=-1);
52   virtual ~AliFMDDigit() {}
53   UShort_t Count1()                const { return fCount1;   }
54   Short_t  Count2()                const { return fCount2;   }
55   Short_t  Count3()                const { return fCount3;   }
56   UShort_t Counts()                const;
57   void     Print(Option_t* opt="") const;
58   ClassDef(AliFMDDigit,1)     // Normal FMD digit
59 };
60
61 inline UShort_t 
62 AliFMDDigit::Counts() const 
63 {
64   return fCount1 
65     + (fCount2 >= 0 ? fCount2 : 0)
66     + (fCount3 >= 0 ? fCount3 : 0);
67 }
68
69 //____________________________________________________________________
70 class AliFMDSDigit : public AliFMDBaseDigit
71 {
72 protected:
73   Float_t  fEdep;       // Energy deposited 
74   UShort_t fCount1;     // Digital signal 
75   Short_t  fCount2;     // Digital signal (-1 if not used)
76   Short_t  fCount3;     // Digital signal (-1 if not used)
77 public:
78   AliFMDSDigit();
79   AliFMDSDigit(UShort_t detector, 
80                Char_t   ring='\0', 
81                UShort_t sector=0, 
82                UShort_t strip=0, 
83                Float_t  edep=0,
84                UShort_t count=0, 
85                Short_t  count2=-1, 
86                Short_t  count3=-1);
87   virtual ~AliFMDSDigit() {}
88   UShort_t Count1()                const { return fCount1;   }
89   Short_t  Count2()                const { return fCount2;   }
90   Short_t  Count3()                const { return fCount3;   }
91   Float_t  Edep()                  const { return fEdep;     }
92   UShort_t Counts()                const;
93   void     Print(Option_t* opt="") const;
94   ClassDef(AliFMDSDigit,1)     // Summable FMD digit
95 };
96   
97 inline UShort_t 
98 AliFMDSDigit::Counts() const 
99 {
100   return fCount1 
101     + (fCount2 >= 0 ? fCount2 : 0)
102     + (fCount3 >= 0 ? fCount3 : 0);
103 }
104
105
106 #endif
107 //____________________________________________________________________
108 //
109 // Local Variables:
110 //   mode: C++
111 // End:
112 //
113 //
114 // EOF
115 //