]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PMD/AliPMDDigitizer.h
Load gAlice only if it was not loaded before
[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 "AliDigitizer.h"
14
15 class TClonesArray;
16 class TFile;
17 class TMath;
18 class TObjArray;
19 class TParticle;
20 class TTree;
21 class TNtuple;
22
23 class AliLoader;
24 class AliRunLoader;
25 class AliRun;
26 class AliDetector;
27 class AliPMDhit;
28 class AliHit;
29 class AliHeader;
30 class AliRunDigitizer;
31
32 class AliPMDcell;
33 class AliPMDsdigit;
34 class AliPMDdigit;
35
36 class AliPMDDigitizer:public AliDigitizer
37 {
38  public:
39
40   AliPMDDigitizer();
41   AliPMDDigitizer(AliRunDigitizer *manager);
42   virtual ~AliPMDDigitizer();
43
44   void OpengAliceFile(const char *file, Option_t *option);
45
46   void Hits2SDigits(Int_t ievt);
47   void Hits2Digits(Int_t ievt);
48   void SDigits2Digits(Int_t ievt);
49   void Exec(Option_t *option);
50   void MergeSDigits(Int_t filenumber, Int_t troffset);
51   void TrackAssignment2Cell();
52   void MeV2ADC(Float_t mev, Float_t & adc) const;
53   void AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber, 
54                  Int_t irow, Int_t icol, Float_t adc);
55   void AddDigit(Int_t trnumber, Int_t det, Int_t smnumber, 
56                 Int_t irow, Int_t icol, Float_t adc);
57   void  SetZPosition(Float_t zpos);
58   Float_t GetZPosition() const;
59   void ResetCell();
60   void ResetSDigit();
61   void ResetDigit();
62   void ResetCellADC();
63   void UnLoad(Option_t * option);
64
65  protected:
66   AliRunLoader *fRunLoader;  // Pointer to Run Loader
67   AliPMDhit    *fPMDHit;     // Pointer to specific detector hits
68   AliDetector  *fPMD;        // Get pointers to Alice detectors 
69                              // and Hits containers 
70   AliLoader    *fPMDLoader;  // Pointer to specific detector loader
71
72   TClonesArray *fHits;       // Pointer to hits array
73   TObjArray    *fPArray;     // Pointer to particle array
74   TParticle    *fParticle;   // Pointer to a given particle
75
76   TTree        *fTreeH;      // Hits tree
77   TTree        *fTreeS;      // Summable Digits tree
78   TTree        *fTreeD;      // Digits tree
79
80   TClonesArray *fSDigits;    // List of summable digits
81   TClonesArray *fDigits;     // List of digits
82
83   TObjArray    *fCell;       // List of pmd cells
84   AliPMDcell   *fPMDcell;    // Pointer to a PMD cell
85
86   Int_t   fDebug;            // Debug switch
87   Int_t   fNsdigit;          // Summable digits counter
88   Int_t   fNdigit;           // Digits counter
89   Int_t   fDetNo;            // Detector Number (0:PRE, 1:CPV)
90   Float_t fZPos;             // z-position of the detector
91
92   static const Int_t fgkTotUM = 24; // Total Unit modules in one detector
93   static const Int_t fgkRow   = 48; // Total number of rows in one unitmodule
94   static const Int_t fgkCol   = 96; // Total number of cols in one unitmodule
95   Float_t fCPV[fgkTotUM][fgkRow][fgkCol]; // CPV Array containing total edep
96   Float_t fPRE[fgkTotUM][fgkRow][fgkCol]; // PRE Array containing total edep
97   Int_t   fPRECounter[fgkTotUM][fgkRow][fgkCol]; // Number of times each cell
98                                                  // is fired in PMD
99   Int_t   fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; // PRE Array containing track number
100   Int_t   fCPVTrackNo[fgkTotUM][fgkRow][fgkCol]; // CPV Array containing track number
101
102
103   ClassDef(AliPMDDigitizer,3)    // To digitize PMD Hits
104 };
105 #endif
106