]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSDigitizer.h
Simplification for Fast Simulator
[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 class TObjString ;
17 class TArrayI ;
18 // --- Standard library ---
19
20 // --- AliRoot header files ---
21 class AliPHOSSDigitizer ;
22
23
24 class AliPHOSDigitizer: public TTask {
25
26 public:
27   AliPHOSDigitizer() ;          // ctor
28   AliPHOSDigitizer(const char *headerFile,const char * sDigitsBranchTitle = 0) ; 
29   virtual ~AliPHOSDigitizer() ;       
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 GetCPVNoise()     const { return fCPVNoise ;}
35   Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;}
36   Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
37   Float_t GetPedestal()     const { return fPedestal; }
38   Float_t GetPinNoise()     const { return fPinNoise;}
39   Float_t GetPPSDNoise()    const { return fPPSDNoise ;}
40   Float_t GetPPSDThreshold()const { return fPPSDDigitThreshold ;}
41   Float_t GetSlope()        const { return fSlope; }
42   char *  GetDigitsBranch ()const { return (char*)fDigitsTitle.Data() ;}
43   TClonesArray * GetHeadersFiles(){ return fHeaderFiles ;}
44   TArrayI*    GetCurrentEvents()  { return fIevent ;}
45
46   void    MixWith(char* HeaderFile, char* SDigitsTitle =0) ; // Add another one file to mix
47   virtual void    Print(Option_t* option)const ;
48   void    Reset() ;   //restarts starts event processing from 0 event(s)
49
50   void    SetCPVNoise(Float_t CPVNoise)          {fCPVNoise = CPVNoise;}
51   void    SetCPVThreshold(Float_t CPVThreshold)  {fCPVDigitThreshold= CPVThreshold;}
52   void    SetEMCThreshold(Float_t EMCThreshold)  {fEMCDigitThreshold = EMCThreshold;}
53   void    SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
54   void    SetPPSDNoise(Float_t PPSDNoise)        {fPPSDNoise = PPSDNoise;}
55   void    SetPPSDThreshold(Float_t PPSDThreshold){fPPSDDigitThreshold = PPSDThreshold;}
56
57   void    SetDigitsBranch (const char* file) ;
58   void    SetSDigitsBranch(const char* file) ;
59
60 private:
61   Bool_t  Combinator() ;                         // makes all desirable combination sig+Bg
62   void    Init();                   
63   Bool_t  ReadSDigits() ;            // Read sdigits for particular events
64   void    WriteDigits() ;            // Writes Digits for particular event
65   void    PrintDigits(Option_t * option) ;
66
67 private:
68   TClonesArray * fSDigitsTitles ;   // Titles of sdigits branches 
69   TClonesArray * fHeaderFiles ;     // Names of files with headers to merge 
70   TString        fDigitsTitle ;     // Title of the Digits Branch  
71   TClonesArray * fSDigits ;         // ! Lists of SDigits 
72   TClonesArray * fDigits ;          // ! Final list of digits
73   AliPHOSSDigitizer * fSDigitizer ; // ! SDigitizer to extarct some sdigitizing parameters
74   Int_t   fNinputs ;                // Number of input files
75   Bool_t  fInitialized ;            // 
76   TArrayI * fIevent ;               // events to read at the next ReadSDigits() call
77   TArrayI * fIeventMax ;            // Maximal number of events in each input file
78
79   Float_t fPedestal ;                // Calibration parameters 
80   Float_t fSlope ;                   // read from SDigitizer
81
82   Float_t fPinNoise ;               // Electronics noise in EMC
83   Float_t fEMCDigitThreshold  ;     // Threshold for storing digits in EMC
84   Float_t fCPVNoise ;               // Noise in CPV
85   Float_t fCPVDigitThreshold  ;     // Threshold for storing digits in CPV
86   Float_t fPPSDNoise ;              // Noise in PPSD
87   Float_t fPPSDDigitThreshold ;     // Threshold for storing digits in PPSD
88
89
90   ClassDef(AliPHOSDigitizer,1)  // description 
91
92 };
93
94
95 #endif // AliPHOSDigitizer_H