possiblity to read ESD friends and TPC outer check (Jacek)
[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 #include "AliEMCALRecParam.h"
16 #include "AliReconstructor.h" 
17 #include "AliEMCALTracker.h" 
18
19 class TList;
20 class TClonesArray;
21 class TTree;
22
23 class AliEMCALDigitizer ;
24 class AliEMCALClusterizer ;
25 class AliEMCALSDigitizer ;
26 class AliEMCALRecParam;
27 class AliESDEvent ;
28 class AliRawReader ;
29 class AliEMCALRawUtils;
30 class AliEMCALGeometry;
31
32 // --- Standard library ---
33
34 // --- AliRoot header files ---
35
36 class AliEMCALReconstructor : public AliReconstructor {
37
38 public:
39
40   AliEMCALReconstructor() ; //ctor            
41   AliEMCALReconstructor(const AliEMCALReconstructor & rec);
42    
43   virtual ~AliEMCALReconstructor() ; //dtor
44
45   virtual  void Init();
46   Bool_t       Debug() const { return fDebug ; }
47
48   using AliReconstructor::FillESD;
49   virtual void FillESD(TTree* digitsTree, TTree* clustersTree, 
50                        AliESDEvent* esd) const;
51   AliTracker*  CreateTracker () const 
52   {return new AliEMCALTracker;} 
53   using AliReconstructor::Reconstruct;
54   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
55
56   virtual Bool_t             HasDigitConversion() const {return kTRUE;};
57   virtual void               ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
58   
59   
60   AliEMCALReconstructor & operator = (const AliEMCALReconstructor & /*rvalue*/)  {
61     // assignement operator requested by coding convention but not needed
62     Fatal("operator =", "not implemented") ;
63     return *this ; 
64   }
65   
66   static void   SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
67
68   void   ReadDigitsArrayFromTree(TTree *digitsTree) const;
69
70   TList *GetList() {return fList;}
71
72   static const AliEMCALRecParam* GetRecParam() { 
73     return dynamic_cast<const AliEMCALRecParam*>(AliReconstructor::GetRecoParam(6)); }
74
75   static TClonesArray* GetDigitsArr() {return fgDigitsArr;}
76
77 private:
78   
79   Bool_t fDebug; //! verbosity controller
80
81   TList *fList;  //! List of hists (only for trigger now)
82   AliEMCALGeometry         *fGeom;           // pointer to the EMCAL geometry
83
84   static AliEMCALClusterizer* fgClusterizer; // clusterizer
85   static const AliEMCALRecParam*   fgkRecParam; // reconstruction
86                                                 // parameters for EMCAL
87   static AliEMCALRawUtils*   fgRawUtils;  // raw utilities class -
88                                           // only need one per reco
89   static TClonesArray*       fgDigitsArr; // Array with EMCAL digits
90
91   ClassDef(AliEMCALReconstructor,6)  // Reconstruction algorithm class (Base Class)
92
93 }; 
94
95 #endif // ALIEMCALRECONSTRUCTOR_H