cd4889ed55f7d19df8f3a2ad583d761ea0d44921
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALSimParam.h
1 #ifndef ALIEMCALSIMPARAM_H
2 #define ALIEMCALSIMPARAM_H
3 /* Copyright(c) 2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                          */
5
6 /* $Id: AliEMCALSimParam.h  $ */
7 /*
8 //
9 // Base class for the EMCAL simulation parameters.
10 //
11 //
12 */
13
14 #include "TNamed.h"
15
16 class AliEMCALSimParam : public TNamed {
17
18 public:
19
20   AliEMCALSimParam();
21   AliEMCALSimParam(const AliEMCALSimParam& recoParam);
22   AliEMCALSimParam& operator = (const AliEMCALSimParam& recoParam);
23   virtual ~AliEMCALSimParam() {}
24
25   static AliEMCALSimParam * GetInstance() ;
26   virtual void Print(Option_t * option="") const ;
27
28         //Parameters used in Digitizer
29         Float_t GetDigitThreshold()     const { return fDigitThreshold;}
30         Float_t GetPinNoise()           const { return fPinNoise;}
31         Float_t GetTimeResolution()     const { return fTimeResolution ; }
32         Int_t   GetNADCEC()             const { return fNADCEC ; }
33         Int_t   GetMeanPhotonElectron() const { return fMeanPhotonElectron ; }
34         void    SetDigitThreshold(Float_t val)  { fDigitThreshold     = val ; }
35         void    SetPinNoise(Float_t val)        { fPinNoise           = val ; }
36         void    SetTimeResolution(Float_t val)  { fTimeResolution     = val ; }
37         void    SetNADCED(Int_t val)            { fNADCEC             = val ; }
38         void    SetMeanPhotonElectron(Int_t val){ fMeanPhotonElectron = val ; }
39
40         //Parameters used in SDigitizer
41         Float_t GetA()                  const { return fA ; }
42         Float_t GetB()                  const { return fB ; }
43         Float_t GetECPrimaryThreshold() const { return fECPrimThreshold ; }
44         void    SetA(Float_t val)                  { fA               = val ; }
45         void    SetB(Float_t val)                  { fB               = val ; }
46         void    SetECPrimaryThreshold(Float_t val) { fECPrimThreshold = val ;}
47
48 private:
49
50   AliEMCALSimParam(Int_t i); //True constructor which should be called by GetInstance()
51
52 private:
53
54
55   static AliEMCALSimParam * fgSimParam ; // pointer to the unique instance of the class
56
57         // Digitizer
58         Float_t fDigitThreshold  ;      // Threshold for storing digits in EMC
59         Int_t   fMeanPhotonElectron ;   // number of photon electrons per GeV deposited energy 
60         Float_t fPinNoise ;             // Electronics noise in EMC
61         Float_t fTimeResolution ;       // Time resolution of FEE electronics
62         //Float_t fTimeThreshold ;        // Threshold to start timing for given crystall
63         //Float_t fTimeSignalLength ;     // Length of the timing signal 
64         Int_t   fNADCEC ;               // number of channels in EC section ADC
65         
66         // SDigitizer
67         Float_t fA ;                     // Pedestal parameter
68         Float_t fB ;                     // Slope Digitizition parameters
69         Float_t fECPrimThreshold ;       // To store primary if EC Shower Elos > threshold
70                 
71   ClassDef(AliEMCALSimParam,1)
72 };
73
74 #endif
75