]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PMD/AliPMDDigitizer.h
Changes to compile with Root6 on macosx64
[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 // Author - B.K. Nandi
13 //
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 AliDigitizationInput;
32 class AliCDBManager;
33 class AliCDBStorage;
34
35 class AliPMDcell;
36 class AliPMDsdigit;
37 class AliPMDdigit;
38 class AliPMDCalibData;
39 class AliPMDPedestal;
40
41 class AliPMDDigitizer:public AliDigitizer
42 {
43  public:
44
45   AliPMDDigitizer();
46   AliPMDDigitizer(const AliPMDDigitizer &digitizer);  // copy constructor
47   AliPMDDigitizer &operator=(const AliPMDDigitizer &digitizer); // assign op
48   AliPMDDigitizer(AliDigitizationInput* digInput);
49   virtual ~AliPMDDigitizer();
50
51   void OpengAliceFile(const char *file, Option_t *option);
52
53   void Hits2SDigits(Int_t ievt);
54   void Hits2Digits(Int_t ievt);
55   void SDigits2Digits(Int_t ievt);
56   void Digitize(Option_t *option);
57   void MergeSDigits(Int_t filenumber, Int_t troffset);
58   void TrackAssignment2CPVCell();
59   void TrackAssignment2Cell();
60   void MeV2ADC(Float_t mev, Float_t & adc) const;
61   void AddSDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, 
62                  Int_t irow, Int_t icol, Float_t adc);
63   void AddDigit(Int_t trnumber, Int_t trpid, Int_t det, Int_t smnumber, 
64                 Int_t irow, Int_t icol, Float_t adc);
65   void  SetZPosition(Float_t zpos);
66   Float_t GetZPosition() const;
67   void ResetCell();
68   void ResetSDigit();
69   void ResetDigit();
70   void ResetCellADC();
71   void UnLoad(Option_t * option);
72
73   Float_t  Gain(Int_t det, Int_t smn, Int_t row, Int_t col) const;
74
75   AliPMDCalibData *GetCalibGain() const;
76   AliPMDPedestal  *GetCalibPed() const;
77
78  protected:
79   AliRunLoader *fRunLoader;  //! Pointer to Run Loader
80   AliPMDhit    *fPMDHit;     //! Pointer to specific detector hits
81   AliDetector  *fPMD;        //! Get pointers to Alice detectors 
82                              // and Hits containers 
83   AliLoader    *fPMDLoader;  //! Pointer to specific detector loader
84
85   AliPMDCalibData *fCalibGain;  //! Gain calibration data
86   AliPMDPedestal  *fCalibPed;   //! Pedestal calibration data
87
88   TClonesArray *fSDigits;    //! List of summable digits
89   TClonesArray *fDigits;     //! List of digits
90
91   TObjArray     fCPVCell;     //! List of cpv cells   
92   TObjArray     fCell;       //! List of pmd cells
93   
94   Int_t   fNsdigit;          // Summable digits counter
95   Int_t   fNdigit;           // Digits counter
96   Int_t   fDetNo;            // Detector Number (0:PRE, 1:CPV)
97   Float_t fZPos;             // z-position of the detector
98
99   static const Int_t fgkTotUM = 24; // Total Unit modules in one detector
100   static const Int_t fgkRow   = 48; // Total number of rows in one unitmodule
101   static const Int_t fgkCol   = 96; // Total number of cols in one unitmodule
102
103   Float_t fCPV[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing total edep
104   Float_t fPRE[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing total edep
105   
106   Int_t   fCPVCounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
107                                                  // is fired in CPV
108   Int_t   fPRECounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
109                                                  // is fired in PMD
110
111   Int_t   fCPVTrackNo[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing 
112                                                  //  track number
113   Int_t   fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing 
114                                                  //  track number
115
116   Int_t   fCPVTrackPid[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing 
117                                                  //  track number
118   Int_t   fPRETrackPid[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing 
119                                                  //  track number
120
121   
122   ClassDef(AliPMDDigitizer,9)    // To digitize PMD Hits
123 };
124 #endif
125