Minor modifications
[u/mrichter/AliRoot.git] / ZDC / AliZDCv1.h
1 #ifndef ALIZDCV1_H
2 #define ALIZDCV1_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////
9 //  Manager and hits classes for set:ZDC      //
10 ////////////////////////////////////////////////
11
12 #include "AliZDC.h"
13
14 //____________________________________________________________________________ 
15 class AliZDCv1 : public AliZDC {
16
17 public:
18   AliZDCv1();
19   AliZDCv1(const char *name, const char *title);
20   virtual      ~AliZDCv1() {}
21   virtual void  CreateGeometry();
22   virtual void  CreateBeamLine();
23   virtual void  CreateZDC();
24   virtual void  CreateMaterials();
25   Int_t         Digitize(Int_t Det, Int_t Quad, Int_t Light);
26 //  virtual void  FinishEvent();
27   virtual void  SDigits2Digits();
28   virtual void  MakeBranch(Option_t* opt, char *file=0);
29   virtual Int_t IsVersion() const {return 1;}
30   virtual void  DrawModule();
31   virtual void  Init();
32   virtual void  InitTables();
33   virtual void  Hits2Digits(Int_t ntracks = 0);
34   virtual void  StepManager();
35   
36   // Digitization parameters setters and getters
37
38   // ADC pedestal mean value
39   void SetPedMean(Int_t Det, Int_t PMDet, Int_t PedMean)
40        {fPedMean[Det][PMDet] = PedMean;}
41   Float_t GetPedMean(Int_t Det, Int_t PMDet)
42        {return fPedMean[Det][PMDet];} 
43   // ADC pedestal width
44   void SetPedSigma(Int_t Det, Int_t PMDet, Int_t PedSigma)
45        {fPedSigma[Det][PMDet] = PedSigma;}
46   Float_t GetPedSigma(Int_t Det, Int_t PMDet)
47        {return fPedSigma[Det][PMDet];}
48   // PM gain
49   void SetPMGain(Int_t Det, Int_t PMDet, Int_t PMGain)
50        {fPMGain[Det][PMDet] = PMGain;}
51   Float_t GetPMGain(Int_t Det, Int_t PMDet)
52        {return fPMGain[Det][PMDet];}
53   // Conversion factor from charge to ADC channels
54   //   F = 1.6E-19 / Resolution [Coulomb/ch]
55   void SetADCRes(Int_t ADCRes) {fADCRes =  ADCRes;}
56   Float_t GetADCRes() {return fADCRes;}
57  
58 protected:
59   // Sensitive media
60   Int_t   fMedSensF1;         // Sensitive medium F1
61   Int_t   fMedSensF2;         // Sensitive medium F2
62   Int_t   fMedSensZP;         // Sensitive medium for ZP
63   Int_t   fMedSensZN;         // Sensitive medium for ZN
64   Int_t   fMedSensZEM;        // Sensitive medium for EM ZDC
65   Int_t   fMedSensGR;         // Other sensitive medium
66   Int_t   fMedSensPI;         // Beam pipe and magnet coils
67   
68   // Parameters for light tables
69   Int_t   fNalfan;            // Number of Alfa neutrons
70   Int_t   fNalfap;            // Number of Alfa protons
71   Int_t   fNben;              // Number of beta neutrons
72   Int_t   fNbep;              // Number of beta protons
73   Float_t fTablen[4][90][18]; // Neutrons light table
74   Float_t fTablep[4][90][28]; // Protons light table
75   
76   // Parameters for conversion of light yield in ADC channels
77   Float_t fPedMean[3][5];     // ADC pedestal mean value
78   Float_t fPedSigma[3][5];    // ADC pedestal width
79   Float_t fPMGain[3][5];      // PM gain
80   Float_t fADCRes;            // ADC conversion factor
81   
82    ClassDef(AliZDCv1,1)  // Zero Degree Calorimeter version 1
83 }; 
84  
85 #endif