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