New version of the EMCAL code: bug fixes, new digitisation classes (B.Nilsen)
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALDigitizer.h
1 #ifndef ALIEMCALDigitizer_H
2 #define ALIEMCALDigitizer_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 //                  
11 //*-- Author: Dmitri Peressounko(SUBATECH & KI)
12
13
14 // --- ROOT system ---
15 #include "TTask.h"
16 #include "TObjString.h"
17 class TArrayI ;
18 // --- Standard library ---
19
20 // --- AliRoot header files ---
21 class AliEMCALSDigitizer ;
22
23
24 class AliEMCALDigitizer: public TTask {
25
26 public:
27   AliEMCALDigitizer() ;          // ctor
28   AliEMCALDigitizer(const char *headerFile,const char * sDigitsBranchTitle = 0) ; 
29   virtual ~AliEMCALDigitizer() ;       
30
31   void    Digitize(Option_t *option);            // Make Digits from SDigits stored in fSDigits
32   void    Exec(Option_t *option);                // Supervising method
33
34   Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
35   Float_t GetPedestal()     const { return fPedestal; }
36   Float_t GetPinNoise()     const { return fPinNoise;}
37   Float_t GetSlope()        const { return fSlope; }
38   char *  GetDigitsBranch ()const { return (char*)fDigitsTitle.Data() ;}
39   TClonesArray * GetHeadersFiles(){ return fHeaderFiles ;}
40   TArrayI*    GetCurrentEvents()  { return fIevent ;}
41
42   void    MixWith(char* HeaderFile, char* SDigitsTitle =0) ; // Add another one file to mix
43   virtual void    Print(Option_t* option)const ;
44   void    Reset() ;   //restarts starts event processing from 0 event(s)
45
46   void    SetEMCThreshold(Float_t EMCThreshold)  {fEMCDigitThreshold = EMCThreshold;}
47   void    SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
48
49   void    SetDigitsBranch (const char* file) ;
50   void    SetSDigitsBranch(const char* file) ;
51
52 private:
53   Bool_t  Combinator() ;                         // makes all desirable combination sig+Bg
54   void    Init();                   
55   Bool_t  ReadSDigits() ;            // Read sdigits for particular events
56   void    WriteDigits() ;            // Writes Digits for particular event
57   void    PrintDigits(Option_t * option) ;
58
59 private:
60   TClonesArray * fSDigitsTitles ;   // Titles of sdigits branches 
61   TClonesArray * fHeaderFiles ;     // Names of files with headers to merge 
62   TString        fDigitsTitle ;     // Title of the Digits Branch  
63   TClonesArray * fSDigits ;         // ! Lists of SDigits 
64   TClonesArray * fDigits ;          // ! Final list of digits
65   AliEMCALSDigitizer * fSDigitizer ; // ! SDigitizer to extarct some sdigitizing parameters
66   Int_t   fNinputs ;                // Number of input files
67   Bool_t  fInitialized ;            // 
68   TArrayI * fIevent ;               // events to read at the next ReadSDigits() call
69   TArrayI * fIeventMax ;            // Maximal number of events in each input file
70
71   Float_t fPedestal ;                // Calibration parameters 
72   Float_t fSlope ;                   // read from SDigitizer
73
74   Float_t fPinNoise ;               // Electronics noise in EMC
75   Float_t fEMCDigitThreshold  ;     // Threshold for storing digits in EMC
76
77
78   ClassDef(AliEMCALDigitizer,1)  // description 
79
80 };
81
82
83 #endif // AliEMCALDigitizer_H