]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PMD/AliPMDDigitizer.h
added protection
[u/mrichter/AliRoot.git] / PMD / AliPMDDigitizer.h
... / ...
CommitLineData
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
17class TClonesArray;
18class TFile;
19class TObjArray;
20class TParticle;
21class TTree;
22class TNtuple;
23
24class AliLoader;
25class AliRunLoader;
26class AliRun;
27class AliDetector;
28class AliPMDhit;
29class AliHit;
30class AliHeader;
31class AliRunDigitizer;
32class AliCDBManager;
33class AliCDBStorage;
34
35class AliPMDcell;
36class AliPMDsdigit;
37class AliPMDdigit;
38class AliPMDCalibData;
39class AliPMDPedestal;
40
41class 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(AliRunDigitizer *manager);
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 Exec(Option_t *option);
57 void MergeSDigits(Int_t filenumber, Int_t troffset);
58 void TrackAssignment2Cell();
59 void MeV2ADC(Float_t mev, Float_t & adc) const;
60 void AddSDigit(Int_t trnumber, Int_t det, Int_t smnumber,
61 Int_t irow, Int_t icol, Float_t adc);
62 void AddDigit(Int_t trnumber, Int_t det, Int_t smnumber,
63 Int_t irow, Int_t icol, Float_t adc);
64 void SetZPosition(Float_t zpos);
65 Float_t GetZPosition() const;
66 void ResetCell();
67 void ResetSDigit();
68 void ResetDigit();
69 void ResetCellADC();
70 void UnLoad(Option_t * option);
71
72 Float_t Gain(Int_t det, Int_t smn, Int_t row, Int_t col) const;
73
74 AliPMDCalibData *GetCalibGain() const;
75 AliPMDPedestal *GetCalibPed() const;
76
77 protected:
78 AliRunLoader *fRunLoader; //! Pointer to Run Loader
79 AliPMDhit *fPMDHit; //! Pointer to specific detector hits
80 AliDetector *fPMD; //! Get pointers to Alice detectors
81 // and Hits containers
82 AliLoader *fPMDLoader; //! Pointer to specific detector loader
83
84 AliPMDCalibData *fCalibGain; //! Gain calibration data
85 AliPMDPedestal *fCalibPed; //! Pedestal calibration data
86
87 TClonesArray *fSDigits; //! List of summable digits
88 TClonesArray *fDigits; //! List of digits
89
90 TObjArray fCell; //! List of pmd cells
91
92 Int_t fNsdigit; // Summable digits counter
93 Int_t fNdigit; // Digits counter
94 Int_t fDetNo; // Detector Number (0:PRE, 1:CPV)
95 Float_t fZPos; // z-position of the detector
96
97 static const Int_t fgkTotUM = 24; // Total Unit modules in one detector
98 static const Int_t fgkRow = 48; // Total number of rows in one unitmodule
99 static const Int_t fgkCol = 96; // Total number of cols in one unitmodule
100 Float_t fCPV[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing total edep
101 Float_t fPRE[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing total edep
102 Int_t fPRECounter[fgkTotUM][fgkRow][fgkCol]; //! Number of times each cell
103 // is fired in PMD
104 Int_t fPRETrackNo[fgkTotUM][fgkRow][fgkCol]; //! PRE Array containing track number
105 Int_t fCPVTrackNo[fgkTotUM][fgkRow][fgkCol]; //! CPV Array containing track number
106
107 ClassDef(AliPMDDigitizer,7) // To digitize PMD Hits
108};
109#endif
110