]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALReconstructor.h
c8df22f3b79c44400af6ff15c835292bb08beb1d
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALReconstructor.h
1 #ifndef ALIEMCALRECONSTRUCTOR_H
2 #define ALIEMCALRECONSTRUCTOR_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 //  Wrapping class for reconstruction
10 //*--
11 //*-- Author: Yves Schutz (SUBATECH) 
12 //*--         Dmitri Peressounko (SUBATECH & Kurchatov Institute)
13
14 // --- ROOT system ---
15 class TList;
16 class TClonesArray;
17 class TTree;
18
19
20 // --- AliRoot header files ---
21 #include "AliReconstructor.h" 
22 #include "AliEMCALTracker.h" 
23 #include "AliEMCALRecParam.h"
24
25
26 class AliEMCALDigitizer ;
27 class AliEMCALClusterizer ;
28 class AliEMCALSDigitizer ;
29 class AliEMCALRecParam;
30 class AliESDEvent ;
31 class AliRawReader ;
32 class AliEMCALRawUtils;
33 class AliEMCALGeometry;
34 class AliEMCALCalibData ;
35
36 // --- Standard library ---
37
38
39
40 class AliEMCALReconstructor : public AliReconstructor {
41
42 public:
43
44   AliEMCALReconstructor() ; //ctor            
45   AliEMCALReconstructor(const AliEMCALReconstructor & rec);
46    
47   virtual ~AliEMCALReconstructor() ; //dtor
48
49   virtual  void Init();
50   Bool_t       Debug() const { return fDebug ; }
51
52   using AliReconstructor::FillESD;
53   virtual void FillESD(TTree* digitsTree, TTree* clustersTree, 
54                        AliESDEvent* esd) const;
55   AliTracker*  CreateTracker () const 
56   {return new AliEMCALTracker;} 
57   using AliReconstructor::Reconstruct;
58   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
59
60   virtual Bool_t             HasDigitConversion() const {return kTRUE;};
61   virtual void               ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
62   
63   
64   AliEMCALReconstructor & operator = (const AliEMCALReconstructor & /*rvalue*/)  {
65     // assignement operator requested by coding convention but not needed
66     Fatal("operator =", "not implemented") ;
67     return *this ; 
68   }
69   
70   static void   SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
71
72   void   ReadDigitsArrayFromTree(TTree *digitsTree) const;
73
74   TList *GetList() {return fList;}
75
76   static const AliEMCALRecParam* GetRecParam() { 
77     return dynamic_cast<const AliEMCALRecParam*>(AliReconstructor::GetRecoParam(6)); }
78
79   static TClonesArray* GetDigitsArr() {return fgDigitsArr;}
80
81   void FillMisalMatrixes(AliESDEvent* esd)const ;
82
83 private:
84   
85   Bool_t fDebug; //! verbosity controller
86
87   TList *fList;  //! List of hists (only for trigger now)
88   AliEMCALGeometry         *fGeom;           // pointer to the EMCAL geometry
89
90   static AliEMCALClusterizer* fgClusterizer; // clusterizer
91   static const AliEMCALRecParam*   fgkRecParam; // reconstruction
92                                                 // parameters for EMCAL
93   static AliEMCALRawUtils*   fgRawUtils;  // raw utilities class -
94                                           // only need one per reco
95   static TClonesArray*       fgDigitsArr; // Array with EMCAL digits
96   AliEMCALCalibData * fCalibData  ;   //! Calibration database if aval
97
98   ClassDef(AliEMCALReconstructor,7)  // Reconstruction algorithm class (Base Class)
99
100 }; 
101
102 #endif // ALIEMCALRECONSTRUCTOR_H