4f433e583afad371517c98c99270ada7a7793735
[u/mrichter/AliRoot.git] / PMD / AliPMDDigitizer.h
1 #ifndef PMDDigitizer_H
2 #define PMDDigitizer_H
3 //-----------------------------------------------------//
4 //                                                     //
5 //  Header File : PMDDigitization.h, Version 00        //
6 //                                                     //
7 //  Date   : September 20 2002                         //
8 //                                                     //
9 //-----------------------------------------------------//
10
11 #include <Riostream.h>
12 #include <stdlib.h>
13 #include <math.h>
14 #include <TMath.h>
15 #include <vector>
16 #include <algorithm>
17
18 class TClonesArray;
19 class TFile;
20
21 class TObjArray;
22 class TParticle;
23 class TTree;
24 class TNtuple;
25
26 class AliLoader;
27 class AliRunLoader;
28 class AliRun;
29 class AliDetector;
30 class AliPMDhit;
31 class AliHit;
32 class AliHeader;
33
34 class AliPMDcell;
35 class AliPMDsdigit;
36 class AliPMDdigit;
37 class AliPMDClustering;
38
39 //using namespace std;
40
41 class AliPMDDigitizer
42 {
43  protected:
44   AliRunLoader *fRunLoader;
45   AliRun       *gAlice;
46   AliPMDhit    *pmdHit;   /* Pointer to specific detector hits. */
47   AliDetector  *PMD;      /* Get pointers to Alice detectors 
48                              and Hits containers */
49   AliLoader    *pmdloader;
50
51   TClonesArray *PMDhits;
52   TObjArray    *Particles;
53   TParticle    *particle;
54
55   TTree        *treeH;
56   TTree        *treeS;
57   TTree        *treeD;
58
59   TClonesArray *fSDigits;
60   TClonesArray *fDigits;
61
62   TObjArray    *fCell;
63   AliPMDcell   *pmdcell;
64   vector<int> vjunkTRN;
65
66   Int_t fNsdigit;
67   Int_t fNdigit;
68   Int_t fDetNo;
69   Float_t fZPos;
70
71   static const Int_t fTotUM = 24;
72   static const Int_t fRow   = 48;
73   static const Int_t fCol   = 96;
74   Float_t fCPV[fTotUM][fRow][fCol];
75   Float_t fPMD[fTotUM][fRow][fCol];
76   Int_t   fPMDCounter[fTotUM][fRow][fCol];
77   Int_t   fPMDTrackNo[fTotUM][fRow][fCol];
78   Int_t   fCPVTrackNo[fTotUM][fRow][fCol];
79
80  public:
81
82   AliPMDDigitizer();
83   virtual ~AliPMDDigitizer();
84
85   void OpengAliceFile(char * /* galice.root */, Option_t * /* option */);
86
87   void Hits2SDigits(Int_t /* ievt */);
88   void Hits2Digits(Int_t /* ievt */);
89   void SDigits2Digits(Int_t /* ievt */);
90   void TrackAssignment2Cell();
91   void MeV2ADC(Float_t /* mev */, Float_t & /* adc */);
92   void AddSDigit(Int_t /* trnumber */, Int_t /* det */, Int_t /* smnumber */, 
93                  Int_t /* cellnumber */, Float_t /* adc */);
94   void AddDigit(Int_t /* trnumber */, Int_t /* det */, Int_t /* smnumber */, 
95                 Int_t /* cellnumber */, Float_t /* adc */);
96   Int_t Convert2RealSMNumber(Int_t /* smnumber1 */ );
97   void SetZPosition(Float_t /* zpos */);
98   Float_t GetZPosition() const;
99   void ResetCell();
100   void ResetSDigit();
101   void ResetDigit();
102   void ResetCellADC();
103   void UnLoad(Option_t * /* option */);
104
105   ClassDef(AliPMDDigitizer,2)
106 };
107 #endif
108