]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDDigitizer.h
Fixes for SDigit generation. First attempt at making SDigit->Digit
[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() : AliFMDBaseDigitizer() {}
55   /** CTOR 
56       @param manager Manager of digitization */
57   AliFMDDigitizer(AliRunDigitizer * manager)
58     : AliFMDBaseDigitizer(manager) {}
59   /** DTOR */
60   virtual ~AliFMDDigitizer() {}
61 protected:
62   /** Output to disk 
63       @param outFMD Loader
64       @param fmd    AliFMD object */
65   virtual void OutputTree(AliLoader* outFMD, AliFMD* fmd);
66   /** Add a digit to output.
67       @param fmd      Pointer to detector object
68       @param detector Detector #
69       @param ring     Ring ID
70       @param sector   Sector number
71       @param strip    Strip number
72       @param edep     Energy deposited (not used)
73       @param count1   ADC count 1
74       @param count2   ADC count 2 (-1 if not used)
75       @param count3   ADC count 3 (-1 if not used) 
76       @param count4   ADC count 4 (-1 if not used) */
77   virtual void     AddDigit(AliFMD*  fmd,
78                             UShort_t detector, 
79                             Char_t   ring,
80                             UShort_t sector, 
81                             UShort_t strip, 
82                             Float_t  edep, 
83                             UShort_t count1, 
84                             Short_t  count2, 
85                             Short_t  count3,
86                             Short_t  count4) const;
87   /** MAke a pedestal
88       @param detector Detector #
89       @param ring     Ring ID
90       @param sector   Sector number
91       @param strip    Strip number
92       @return Random noise */
93   virtual UShort_t MakePedestal(UShort_t  detector, 
94                                 Char_t    ring, 
95                                 UShort_t  sector, 
96                                 UShort_t  strip) const;
97   /** Check that digit data is consistent
98       @param digit   Digit
99       @param nhits   Number of hits
100       @param counts  ADC counts */
101   virtual void     CheckDigit(AliFMDDigit*    digit,
102                               UShort_t        nhits,
103                               const TArrayI&  counts);
104   ClassDef(AliFMDDigitizer,1) // Make Digits from Hits
105 };
106
107
108 #endif
109 //____________________________________________________________________
110 //
111 // Local Variables:
112 //   mode: C++
113 // End:
114 //
115 //
116 // EOF
117 //
118