new classes for digitization derived from TTask
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDigitizer.h
1 #ifndef ALIPHOSDigitizer_H
2 #define ALIPHOSDigitizer_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 PHOS      
10 //                  
11 //*-- Author: Dmitri Peressounko(SUBATECH & KI)
12
13
14 // --- ROOT system ---
15 #include "TTask.h"
16 #include "TObjString.h"
17 // --- Standard library ---
18
19 // --- AliRoot header files ---
20
21 class AliPHOSSDigitizer ;
22
23 class AliPHOSDigitizer: public TTask {
24
25 public:
26   AliPHOSDigitizer() ;          // ctor
27   AliPHOSDigitizer(char *HeaderFile,char * SDigitsBrancheFile = 0) ; 
28   virtual ~AliPHOSDigitizer() ;       
29   Bool_t  Combinator() ;                         // makes all desirable combination sig+Bg
30   void    Exec(Option_t *option);                // Does the job
31   void    Digitize(Option_t *option);            // Digitizes SDigits stored in fSDigits
32   Float_t GetPinNoise()     const { return fPinNoise;}
33   Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
34   Float_t GetCPVNoise()     const { return fCPVNoise ;}
35   Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;}
36   Float_t GetPPSDNoise()    const { return fPPSDNoise ;}
37   Float_t GetPPSDThreshold()const { return fPPSDDigitThreshold ;}
38   void    MixWith(char* HeaderFile, Int_t isOutFile = 1, char* SDigitsFile =0) ; // Add another one file to mix
39   void    Print(Option_t* option) ;
40   void    SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
41   void    SetEMCThreshold(Float_t EMCThreshold)  {fEMCDigitThreshold = EMCThreshold;}
42   void    SetCPVNoise(Float_t CPVNoise)          {fCPVNoise = CPVNoise;}
43   void    SetCPVThreshold(Float_t CPVThreshold)  {fCPVDigitThreshold= CPVThreshold;}
44   void    SetPPSDNoise(Float_t PPSDNoise)        {fPPSDNoise = PPSDNoise;}
45   void    SetPPSDThreshold(Float_t PPSDThreshold){fPPSDDigitThreshold = PPSDThreshold;}
46
47 private:
48   void   Init(Int_t isOutFile);                   
49   Bool_t ReadSDigits() ;            // Read sdigits for particular events
50   void   WriteDigits() ;            // Writes Digits for particular event
51
52 private:
53   TClonesArray * fSDigitsFiles ;    // Names of sdigits branches
54   TClonesArray * fHeaderFiles ;     // Names of files with headers to merge
55   TString        fDigitsFile ;      // Name of the Digits Branch  
56   Int_t          fOutFileNumber ;   // Number of the header file into which Digits are written
57   TClonesArray * fSDigits ;         // ! Lists of SDigits 
58   TClonesArray * fDigits ;          // ! Final list of digits
59   AliPHOSSDigitizer * fSDigitizer ; // ! SDigitizer to extarct some digitizing parameters
60   Int_t   fNinputs ;                // Number of input files
61   Bool_t  fInitialized ;            // if background file already read?
62   TArrayI * fIevent ;               // events to read at the next ReadSDigits() call
63   TArrayI * fIeventMax ;            // Maximal number of events in each input file
64
65   Float_t fPinNoise ;               // Electronics noise in EMC
66   Float_t fEMCDigitThreshold  ;     // Threshold for storing digits in EMC
67   Float_t fCPVNoise ;               // Noise in CPV
68   Float_t fCPVDigitThreshold  ;     // Threshold for storing digits in CPV
69   Float_t fPPSDNoise ;              // Noise in PPSD
70   Float_t fPPSDDigitThreshold ;     // Threshold for storing digits in PPSD
71
72
73   ClassDef(AliPHOSDigitizer,1)  // description 
74
75 };
76
77
78 #endif // AliPHOSDigitizer_H