22ceced04bb6ca690ec45b7ee0df010f54213ae7
[u/mrichter/AliRoot.git] / FMD / AliFMDDigitizer.h
1 #ifndef ALIFMDDIGITIZER_H
2 #define ALIFMDDIGITIZER_H
3 /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * See cxx source for full Copyright notice                               
7  */
8 // Classses to make Hits into digits and summable digits. 
9 //    
10 //    Digits consists of
11 //    - Detector #
12 //    - Ring ID                                             
13 //    - Sector #     
14 //    - Strip #
15 //    - ADC count in this channel                                  
16 //
17 //    Summable digits consists of       
18 //    - Detector #
19 //    - Ring ID                                             
20 //    - Sector #     
21 //    - Strip #
22 //    - Total energy deposited in the strip
23 //    - ADC count in this channel                                  
24 //
25 /** @file    AliFMDDigitizer.h
26     @author  Christian Holm Christensen <cholm@nbi.dk>
27     @date    Mon Mar 27 12:38:26 2006
28     @brief   FMD Digitizers declaration
29     @ingroup FMD_sim
30 */
31 #ifndef ALIFMDBASEDIGITIZER_H
32 # include <AliFMDBaseDigitizer.h>
33 #endif
34
35 //====================================================================
36 class TClonesArray;
37 class AliFMD;
38 class AliLoader;
39 class AliRunLoader;
40 class AliFMDDigit;
41
42
43
44 //====================================================================
45 /** @class AliFMDDigitizer
46     @brief Concrete digitizer to make digits from hits.  See also
47     AliFMDBaseDigitizer documentation.  
48     @ingroup FMD_sim
49  */
50 class AliFMDDigitizer : public AliFMDBaseDigitizer 
51 {
52 public:
53   /** CTOR */
54   AliFMDDigitizer();
55   /** CTOR 
56       @param manager Manager of digitization */
57   AliFMDDigitizer(AliRunDigitizer * manager);
58   /** DTOR */
59   virtual ~AliFMDDigitizer() {}
60   /** Do everything
61       @param option Not used */
62   virtual void  Exec(Option_t* option=0);
63 protected:
64   /** Add a digit to output.
65       @param fmd      Pointer to detector object
66       @param detector Detector #
67       @param ring     Ring ID
68       @param sector   Sector number
69       @param strip    Strip number
70       @param edep     Energy deposited (not used)
71       @param count1   ADC count 1
72       @param count2   ADC count 2 (-1 if not used)
73       @param count3   ADC count 3 (-1 if not used) */
74   virtual void     AddDigit(AliFMD*  fmd,
75                             UShort_t detector, 
76                             Char_t   ring,
77                             UShort_t sector, 
78                             UShort_t strip, 
79                             Float_t  edep, 
80                             UShort_t count1, 
81                             Short_t  count2, 
82                             Short_t  count3) const;
83   /** MAke a pedestal
84       @param detector Detector #
85       @param ring     Ring ID
86       @param sector   Sector number
87       @param strip    Strip number
88       @return Random noise */
89   virtual UShort_t MakePedestal(UShort_t  detector, 
90                                 Char_t    ring, 
91                                 UShort_t  sector, 
92                                 UShort_t  strip) const;
93   /** Check that digit data is consistent
94       @param digit   Digit
95       @param nhits   Number of hits
96       @param counts  ADC counts */
97   virtual void     CheckDigit(AliFMDDigit*    digit,
98                               UShort_t        nhits,
99                               const TArrayI&  counts);
100   ClassDef(AliFMDDigitizer,1) // Make Digits from Hits
101 };
102
103
104 #endif
105 //____________________________________________________________________
106 //
107 // Local Variables:
108 //   mode: C++
109 // End:
110 //
111 //
112 // EOF
113 //
114