]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSDigitizer.h
Introduction of decalibration in the simulations with anchor runs and raw:// OCDB.
[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 /* History of cvs commits:
9  *
10  * $Log$
11  * Revision 1.37  2007/10/10 09:05:10  schutz
12  * Changing name QualAss to QA
13  *
14  * Revision 1.36  2007/09/30 17:08:20  schutz
15  * Introducing the notion of QA data acquisition cycle (needed by online)
16  *
17  * Revision 1.35  2007/08/07 14:12:03  kharlov
18  * Quality assurance added (Yves Schutz)
19  *
20  * Revision 1.34  2006/04/29 20:25:30  hristov
21  * Decalibration is implemented (Yu.Kharlov)
22  *
23  * Revision 1.33  2005/05/28 14:19:04  schutz
24  * Compilation warnings fixed by T.P.
25  *
26  */
27
28 //_________________________________________________________________________
29 //  Task Class for making SDigits in PHOS      
30 // Class performs digitization of Summable digits (in the PHOS case this is just
31 // sum of contributions of all primary particles into given cell). 
32 // In addition it performs mixing of summable digits from different events.
33 //                  
34 //*-- Author: Dmitri Peressounko(SUBATECH & KI)
35
36
37 // --- ROOT system ---
38 //#include "TObjString.h"
39 class TArrayI ;
40 class TClonesArray ; 
41
42 // --- Standard library ---
43
44 // --- AliRoot header files ---
45 #include "AliDigitizer.h"
46 #include "AliConfig.h"
47 #include "AliPHOSPulseGenerator.h"
48 class AliRunDigitizer ;
49 class AliPHOSCalibData ; 
50
51 class AliPHOSDigitizer: public AliDigitizer {
52
53 public:
54   AliPHOSDigitizer() ;          // ctor
55   AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; 
56   AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ;
57   AliPHOSDigitizer(AliRunDigitizer * manager) ;
58   virtual ~AliPHOSDigitizer() ;       
59
60   void    Digitize(Int_t event) ;            // Make Digits from SDigits 
61   void    Exec(Option_t *option);                  // Supervising method
62
63   void   SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
64
65   //General
66   Int_t   GetDigitsInRun()  const { return fDigitsInRun ;}  
67
68   void    Print(const Option_t * = "")const ;
69  
70   AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/)  {
71     // assignement operator requested by coding convention but not needed
72     Fatal("operator =", "not implemented") ;
73     return *this ; 
74   }
75
76   
77 private:
78
79   virtual Bool_t Init() ; 
80   void    InitParameters() ; 
81   void    PrintDigits(Option_t * option) ;
82   void    Unload() ; 
83   void    WriteDigits() ;                     // Writes Digits for the current event
84   Float_t TimeOfNoise(void) const;            // Calculate time signal generated by noise
85
86   Float_t TimeResolution(Float_t energy) ;    //TOF resolution
87
88   //Calculate the time of crossing of the threshold by front edge
89   //  Float_t FrontEdgeTime(TClonesArray * ticks) const ; 
90   //Calculate digitized signal with gived ADC parameters
91   Float_t Calibrate(Float_t amp, Int_t absId) ;
92   Float_t CalibrateT(Float_t time, Int_t absId) ;
93   void    Decalibrate(AliPHOSDigit * digit);
94   Int_t   DigitizeCPV(Float_t charge, Int_t absId) ;
95
96 private:
97
98   Bool_t  fDefaultInit;             //! Says if the task was created by defaut ctor (only parameters are initialized)
99   Int_t   fDigitsInRun ;            //! Total number of digits in one run
100   Bool_t  fInit ;                   //! To avoid overwriting existing files
101
102   Int_t   fInput ;                  // Number of files to merge
103   TString * fInputFileNames ;       //[fInput] List of file names to merge 
104   TString * fEventNames ;           //[fInput] List of event names to merge
105
106   Int_t   fEmcCrystals ;            // Number of EMC crystalls in the given geometry
107
108   TString fEventFolderName;         // skowron: name of EFN to read data from in stand alone mode
109   Int_t   fFirstEvent;              // first event to process
110   Int_t   fLastEvent;               // last  event to process 
111   AliPHOSCalibData* fcdb;           //! Calibration parameters DB
112
113   Int_t fEventCounter ;             //! counts the events processed
114
115   AliPHOSPulseGenerator *fPulse;    //! Pulse shape generator
116   Int_t *fADCValuesLG;              //! Array og low-gain ALTRO samples
117   Int_t *fADCValuesHG;              //! Array og high-gain ALTRO samples
118   
119   ClassDef(AliPHOSDigitizer,5)  // description 
120
121 };
122
123
124 #endif // AliPHOSDigitizer_H