39b17a83b36275c90e1a3243b5a8649f996b8cbf
[u/mrichter/AliRoot.git] / PMD / AliPMDDigitizer.h
1 #ifndef ALIPMDDIGITIZER_H
2 #define ALIPMDDIGITIZER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 //-----------------------------------------------------//
6 //                                                     //
7 //  Header File : PMDDigitization.h, Version 00        //
8 //                                                     //
9 //  Date   : September 20 2002                         //
10 //                                                     //
11 //-----------------------------------------------------//
12
13 #include <TObjArray.h>
14
15 #include "AliDigitizer.h"
16
17 class TClonesArray;
18 class TFile;
19 class TObjArray;
20 class TParticle;
21 class TTree;
22 class TNtuple;
23
24 class AliLoader;
25 class AliRunLoader;
26 class AliRun;
27 class AliDetector;
28 class AliPMDhit;
29 class AliHit;
30 class AliHeader;
31 class AliRunDigitizer;
32
33 class AliPMDcell;
34 class AliPMDsdigit;
35 class AliPMDdigit;
36
37 class AliPMDDigitizer:public AliDigitizer
38 {
39  public:
40
41   AliPMDDigitizer();
42   AliPMDDigitizer(AliRunDigitizer *manager);
43   virtual ~AliPMDDigitizer();
44
45   void OpengAliceFile(const char *file, Option_t *option);
46
47   void Hits2SDigits(Int_t ievt);
48   void Hits2Digits(Int_t ievt);
49   void SDigits2Digits(Int_t ievt);
50   void Exec(Option_t *option);
51   void MergeSDigits(Int_t filenumber, Int_t troffset);
52   void TrackAssignment2Cell();
53   void MeV2ADC(Float_t mev, Float_t & adc) const;
54   void AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, 
55                  Int_t irow, Int_t icol, Float_t adc);
56   void AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, 
57                 Int_t irow, Int_t icol, Float_t adc);
58   void  SetZPosition(Float_t zpos);
59   Float_t GetZPosition() const;
60   void ResetCell();
61   void ResetSDigit();
62   void ResetDigit();
63   void ResetCellADC();
64   void UnLoad(Option_t * option);
65
66  protected:
67   AliRunLoader *fRunLoader;  //! Pointer to Run Loader
68   AliPMDhit    *fPMDHit;     //! Pointer to specific detector hits
69   AliDetector  *fPMD;        //! Get pointers to Alice detectors 
70                              // and Hits containers 
71   AliLoader    *fPMDLoader;  //! Pointer to specific detector loader
72
73   TClonesArray *fSDigits;    //! List of summable digits
74   TClonesArray *fDigits;     //! List of digits
75
76   TObjArray     fCell;       //! List of pmd cells
77
78   Int_t   fNsdigit;          // Summable digits counter
79   Int_t   fNdigit;           // Digits counter
80   Int_t   fDetNo;            // Detector Number (0:PRE, 1:CPV)
81   Float_t fZPos;             // z-position of the detector
82
83   static const Int_t fgkTotUM = 24; // Total Unit modules in one detector
84   static const Int_t fgkRow   = 48; // Total number of rows in one unitmodule
85   static const Int_t fgkCol   = 96; // Total number of cols in one unitmodule
86   Float_t fCPV[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing total edep
87   Float_t fPRE[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing total edep
88   Int_t   fPRECounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
89                                                  // is fired in PMD
90   Int_t   fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing track number
91   Int_t   fCPVTrackNo[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing track number
92
93
94   ClassDef(AliPMDDigitizer,5)    // To digitize PMD Hits
95 };
96 #endif
97