]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - FMD/AliFMDDigitizer.h
Added new code
[u/mrichter/AliRoot.git] / FMD / AliFMDDigitizer.h
... / ...
CommitLineData
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#ifndef ALIDIGITIZER_H
9# include <AliDigitizer.h>
10#endif
11#ifndef ALIRUNDIGITIZER_H
12# include <AliRunDigitizer.h>
13#endif
14#ifndef ALIFMDEdepMAP_H
15# include "AliFMDEdepMap.h"
16#endif
17#ifndef __UTILITY__
18# include <utility>
19#endif
20// #ifndef ROOT_TArrayF
21// # include <TArrayF.h>
22// #endif
23
24//====================================================================
25class TClonesArray;
26class AliFMD;
27class AliLoader;
28class AliRunLoader;
29class AliFMDDigit;
30
31
32//====================================================================
33class AliFMDBaseDigitizer : public AliDigitizer
34{
35public:
36 AliFMDBaseDigitizer();
37 AliFMDBaseDigitizer(AliRunDigitizer * manager);
38 AliFMDBaseDigitizer(const Char_t* name, const Char_t* title);
39 virtual ~AliFMDBaseDigitizer();
40
41 // Do the main work
42 virtual Bool_t Init();
43
44 // Extra member functions
45 void SetShapingTime(Float_t t=10) { fShapingTime = t; }
46 Float_t GetShapingTime() const { return fShapingTime; }
47protected:
48 virtual void SumContributions(AliFMD* fmd);
49 virtual void DigitizeHits(AliFMD* fmd) const;
50 virtual void ConvertToCount(Float_t edep,
51 Float_t last,
52 UShort_t detector,
53 Char_t ring,
54 UShort_t sector,
55 UShort_t strip,
56 TArrayI& counts) const;
57 virtual UShort_t MakePedestal(UShort_t detector,
58 Char_t ring,
59 UShort_t sector,
60 UShort_t strip) const;
61 virtual void AddNoise(TArrayI&) const {}
62 virtual void AddDigit(AliFMD* /* fmd */,
63 UShort_t /* detector */,
64 Char_t /* ring */,
65 UShort_t /* sector */,
66 UShort_t /* strip */,
67 Float_t /* edep */,
68 UShort_t /* count1 */,
69 Short_t /* count2 */,
70 Short_t /* count3 */) const {}
71
72 AliRunLoader* fRunLoader; //! Run loader
73 AliFMDEdepMap fEdep; // Cache of Energy from hits
74 Float_t fShapingTime; // Shaping profile parameter
75
76 AliFMDBaseDigitizer(const AliFMDBaseDigitizer& o)
77 : AliDigitizer(o) {}
78 AliFMDBaseDigitizer& operator=(const AliFMDBaseDigitizer&) { return *this; }
79 ClassDef(AliFMDBaseDigitizer,2) // Base class for FMD digitizers
80};
81
82//====================================================================
83class AliFMDDigitizer : public AliFMDBaseDigitizer
84{
85public:
86 AliFMDDigitizer();
87 AliFMDDigitizer(AliRunDigitizer * manager);
88 virtual ~AliFMDDigitizer() {}
89 virtual void Exec(Option_t* option=0);
90protected:
91 virtual void AddDigit(AliFMD* fmd,
92 UShort_t detector,
93 Char_t ring,
94 UShort_t sector,
95 UShort_t strip,
96 Float_t edep,
97 UShort_t count1,
98 Short_t count2,
99 Short_t count3) const;
100 virtual UShort_t MakePedestal(UShort_t detector,
101 Char_t ring,
102 UShort_t sector,
103 UShort_t strip) const;
104 virtual void CheckDigit(AliFMDDigit* digit,
105 UShort_t nhits,
106 const TArrayI& counts);
107 ClassDef(AliFMDDigitizer,1) // Make Digits from Hits
108};
109
110//====================================================================
111class AliFMDSDigitizer : public AliFMDBaseDigitizer
112{
113public:
114 AliFMDSDigitizer();
115 AliFMDSDigitizer(const Char_t* headerFile, const Char_t* sdigFile="");
116 virtual ~AliFMDSDigitizer();
117 virtual void Exec(Option_t* option=0);
118protected:
119 virtual void AddDigit(AliFMD* fmd,
120 UShort_t detector,
121 Char_t ring,
122 UShort_t sector,
123 UShort_t strip,
124 Float_t edep,
125 UShort_t count1,
126 Short_t count2,
127 Short_t count3) const;
128 ClassDef(AliFMDSDigitizer,0) // Make Summable Digits from Hits
129};
130
131
132
133#endif
134//____________________________________________________________________
135//
136// Local Variables:
137// mode: C++
138// End:
139//
140//
141// EOF
142//
143