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 //-----------------------------------------------------//
7 // Header File : PMDDigitization.h, Version 00 //
9 // Date : September 20 2002 //
11 //-----------------------------------------------------//
12 // Author - B.K. Nandi
15 #include "AliDigitizer.h"
31 class AliRunDigitizer;
38 class AliPMDCalibData;
41 class AliPMDDigitizer:public AliDigitizer
46 AliPMDDigitizer(const AliPMDDigitizer &digitizer); // copy constructor
47 AliPMDDigitizer &operator=(const AliPMDDigitizer &digitizer); // assign op
48 AliPMDDigitizer(AliRunDigitizer *manager);
49 virtual ~AliPMDDigitizer();
51 void OpengAliceFile(const char *file, Option_t *option);
53 void Hits2SDigits(Int_t ievt);
54 void Hits2Digits(Int_t ievt);
55 void SDigits2Digits(Int_t ievt);
56 void Exec(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 det, Int_t smnumber,
62 Int_t irow, Int_t icol, Float_t adc);
63 void AddDigit(Int_t trnumber, 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;
71 void UnLoad(Option_t * option);
73 Float_t Gain(Int_t det, Int_t smn, Int_t row, Int_t col) const;
75 AliPMDCalibData *GetCalibGain() const;
76 AliPMDPedestal *GetCalibPed() const;
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
85 AliPMDCalibData *fCalibGain; //! Gain calibration data
86 AliPMDPedestal *fCalibPed; //! Pedestal calibration data
88 TClonesArray *fSDigits; //! List of summable digits
89 TClonesArray *fDigits; //! List of digits
91 TObjArray fCPVCell; //! List of cpv cells
92 TObjArray fCell; //! List of pmd cells
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
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
103 Float_t fCPV[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing total edep
104 Float_t fPRE[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing total edep
106 Int_t fCPVCounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
108 Int_t fPRECounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
111 Int_t fCPVTrackNo[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing
113 Int_t fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing
117 ClassDef(AliPMDDigitizer,8) // To digitize PMD Hits