Remove first corrector dipole and introduce digitization
[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  MakeBranch(Option_t* opt);
28   virtual Int_t IsVersion() const {return 1;}
29   virtual void  DrawModule();
30   virtual void  Init();
31   virtual void  InitTables();
32   virtual void  StepManager();
33   
34   // Switching off the shower development in ZDCs
35   void  NoShower(){fNoShower=1;}
36   void  Shower()  {fNoShower=0;}
37   
38   // Digitization parameters setters and getters
39
40   // ADC pedestal mean value
41   void SetPedMean(Int_t Det, Int_t PMDet, Int_t PedMean)
42        {fPedMean[Det][PMDet] = PedMean;}
43   Float_t GetPedMean(Int_t Det, Int_t PMDet)
44        {return fPedMean[Det][PMDet];} 
45   // ADC pedestal width
46   void SetPedSigma(Int_t Det, Int_t PMDet, Int_t PedSigma)
47        {fPedSigma[Det][PMDet] = PedSigma;}
48   Float_t GetPedSigma(Int_t Det, Int_t PMDet)
49        {return fPedSigma[Det][PMDet];}
50   // PM gain
51   void SetPMGain(Int_t Det, Int_t PMDet, Int_t PMGain)
52        {fPMGain[Det][PMDet] = PMGain;}
53   Float_t GetPMGain(Int_t Det, Int_t PMDet)
54        {return fPMGain[Det][PMDet];}
55   // Conversion factor from charge to ADC channels
56   //   F = 1.6E-19 / Resolution [Coulomb/ch]
57   void SetADCRes(Int_t ADCRes) {fADCRes =  ADCRes;}
58   Float_t GetADCRes() {return fADCRes;}
59  
60 protected:
61   // Sensitive media
62   Int_t   fMedSensF1;         // Sensitive medium F1
63   Int_t   fMedSensF2;         // Sensitive medium F2
64   Int_t   fMedSensZP;         // Sensitive medium for ZP
65   Int_t   fMedSensZN;         // Sensitive medium for ZN
66   Int_t   fMedSensZEM;        // Sensitive medium for EM ZDC
67   Int_t   fMedSensGR;         // Other sensitive medium
68   Int_t   fMedSensPI;         // Beam pipe and magnet coils
69   
70   // Parameters for light tables
71   Int_t   fNalfan;            // Number of Alfa neutrons
72   Int_t   fNalfap;            // Number of Alfa protons
73   Int_t   fNben;              // Number of beta neutrons
74   Int_t   fNbep;              // Number of beta protons
75   Float_t fTablen[4][90][18]; // Neutrons light table
76   Float_t fTablep[4][90][28]; // Protons light table
77   
78   // Parameters for conversion of light yield in ADC channels
79   Float_t fPedMean[3][5];     // ADC pedestal mean value
80   Float_t fPedSigma[3][5];    // ADC pedestal width
81   Float_t fPMGain[3][5];      // PM gain
82   Float_t fADCRes;            // ADC conversion factor
83
84 public:
85   //Flag for fast simulation (no shower)
86   Int_t   fNoShower;
87   
88    ClassDef(AliZDCv1,1)  // Zero Degree Calorimeter version 1
89 }; 
90  
91 #endif