Line data Source code
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 1368 : ClassDef(AliPMDDigitizer,9) // To digitize PMD Hits
123 : };
124 : #endif
125 :
|