]>
Commit | Line | Data |
---|---|---|
61e0abb5 | 1 | #ifndef ALIEMCALSDigitizer_H |
2 | #define ALIEMCALSDigitizer_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 | // Task Class for making SDigits in EMCAL | |
10 | // | |
ffa6d63b | 11 | //*-- Author: Sahal Yacoob (LBL) |
12 | // based on : AliPHOSSDigitizer | |
13 | //_________________________________________________________________________ | |
61e0abb5 | 14 | |
15 | ||
16 | // --- ROOT system --- | |
17 | #include "TTask.h" | |
18 | #include "TString.h" | |
19 | // --- Standard library --- | |
20 | ||
21 | // --- AliRoot header files --- | |
22 | ||
23 | class AliEMCALSDigitizer: public TTask { | |
24 | ||
25 | public: | |
26 | AliEMCALSDigitizer() ; // ctor | |
ffa6d63b | 27 | AliEMCALSDigitizer(const char* HeaderFile,const char *SdigitsTitle = "Default") ; |
61e0abb5 | 28 | virtual ~AliEMCALSDigitizer() ; // dtor |
29 | ||
30 | Float_t Calibrate(Int_t amp)const {return (amp - fA)/fB ; } | |
31 | Int_t Digitize(Float_t Energy)const { return (Int_t ) ( fA + Energy*fB); } | |
229f77c4 | 32 | |
89e103bd | 33 | // void TestTowerID(void) ; |
61e0abb5 | 34 | virtual void Exec(Option_t *option); |
35 | ||
36 | Float_t GetPedestalParameter()const {return fA;} | |
37 | Float_t GetCalibrationParameter()const{return fB;} | |
38 | char * GetSDigitsBranch()const{return (char*) fSDigitsTitle.Data();} | |
36657114 | 39 | void SetSplitFile(const TString splitFileName = "EMCAL.SDigits.root" ) ; |
61e0abb5 | 40 | virtual void Print(Option_t* option) const ; |
41 | ||
42 | void SetPedestalParameter(Float_t A){fA = A ;} | |
43 | void SetSlopeParameter(Float_t B){fB = B ;} | |
44 | void SetSDigitsBranch(const char * title ) ; | |
45 | ||
46 | Bool_t operator == (const AliEMCALSDigitizer & sd) const ; | |
f063936c | 47 | Int_t Segment2TowerID(Int_t SegmentID){ |
48 | return Layer2TowerID(SegmentID,kFALSE); | |
49 | } | |
61e0abb5 | 50 | |
51 | private: | |
52 | void Init() ; | |
53 | void PrintSDigits(Option_t * option) ; | |
814ad4bf | 54 | Int_t Layer2TowerID(Int_t,Bool_t) ; |
106fc2fa | 55 | |
61e0abb5 | 56 | private: |
57 | Float_t fA ; //Pedestal parameter | |
58 | Float_t fB ; //Slope Digitizition parameters | |
89e103bd | 59 | Float_t fPhotonElectronFactor ; // number of photon electrons per GeV |
60 | // should be calculated independently for each layer as : | |
61 | // LightYield*LightCollectionEfficiency*LightAttenuation*APDPhotoElectronEfficiency*APDGain | |
e1f60236 | 62 | |
61e0abb5 | 63 | Int_t fNevents ; // Number of events to digitize |
89e103bd | 64 | Float_t fTowerPrimThreshold ; // To store primary in Tower if Elos > threshold |
65 | Float_t fPreShowerPrimThreshold ; // To store primary if Pre Shower Elos > threshold | |
61e0abb5 | 66 | TString fSDigitsTitle ; // title of SDigits branch |
67 | TString fHeadersFile ; //input file | |
68 | Bool_t fIsInitialized ; | |
69 | TClonesArray * fSDigits ; //! list of SDigits | |
ffa6d63b | 70 | TClonesArray * fHits ; //! |
36657114 | 71 | TFile * fSplitFile ; //! file in which SDigits will eventually be stored |
61e0abb5 | 72 | |
0e9fbd47 | 73 | ClassDef(AliEMCALSDigitizer,2) // description |
61e0abb5 | 74 | |
75 | }; | |
76 | ||
77 | #endif // AliEMCALSDigitizer_H |