]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALReconstructor.h
Bugfix for the Zero Suppression mode plus fixes of coding violations
[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 // Reconstruction class. Redesigned from the old AliReconstructionner class and 
14 // derived from STEER/AliReconstructor. 
15 // 
16 //-- Aleksei Pavlinov : added staf for EMCAL jet trigger 9Apr 25, 2008)
17 //                    : fgDigitsArr should read just once at event
18
19
20 // --- ROOT system ---
21 class TList;
22 class TClonesArray;
23 class TTree;
24
25
26 // --- AliRoot header files ---
27 #include "AliReconstructor.h" 
28 #include "AliEMCALTracker.h" 
29 #include "AliEMCALRecParam.h"
30
31
32 class AliEMCALDigitizer ;
33 class AliEMCALClusterizer ;
34 class AliEMCALSDigitizer ;
35 class AliEMCALRecParam;
36 class AliESDEvent ;
37 class AliRawReader ;
38 class AliEMCALRawUtils;
39 class AliEMCALGeometry;
40 class AliEMCALCalibData ;
41 class AliCaloCalibPedestal ;
42 class AliEMCALTriggerElectronics;
43 class AliEMCALTriggerData;
44
45 // --- Standard library ---
46
47
48
49 class AliEMCALReconstructor : public AliReconstructor {
50
51 public:
52
53   AliEMCALReconstructor() ; //ctor            
54    
55   virtual ~AliEMCALReconstructor() ; //dtor
56
57   virtual  void Init() {;}
58   virtual  void InitClusterizer();
59
60   Bool_t       Debug() const { return fDebug ; }
61
62   using AliReconstructor::FillESD;
63   virtual void FillESD(TTree* digitsTree, TTree* clustersTree, 
64                        AliESDEvent* esd) const;
65   AliTracker*  CreateTracker () const 
66   {return new AliEMCALTracker;} 
67   using AliReconstructor::Reconstruct;
68   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const ;
69
70   virtual Bool_t             HasDigitConversion() const {return kTRUE;};
71   virtual void               ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
72   
73   static void   SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
74
75   void   ReadDigitsArrayFromTree(TTree *digitsTree) const;
76
77   TList *GetList() const {return fList;}
78
79   static const AliEMCALRecParam* GetRecParam() { 
80     return dynamic_cast<const AliEMCALRecParam*>(AliReconstructor::GetRecoParam(6)); }
81
82   static TClonesArray* GetDigitsArr() {return fgDigitsArr;}
83
84   void FillMisalMatrixes(AliESDEvent* esd)const ;
85
86 private:
87   
88   AliEMCALReconstructor(const AliEMCALReconstructor &); //Not implemented
89   AliEMCALReconstructor & operator = (const AliEMCALReconstructor &); //Not implemented
90
91   Bool_t fDebug; //! verbosity controller
92
93   TList *fList;  //! List of hists (only for trigger now)
94   AliEMCALGeometry         *fGeom;           // pointer to the EMCAL geometry
95
96   static AliEMCALClusterizer* fgClusterizer; // clusterizer
97   static const AliEMCALRecParam*   fgkRecParam; // reconstruction
98                                                 // parameters for EMCAL
99   static AliEMCALRawUtils*   fgRawUtils;  // raw utilities class -
100                                           // only need one per reco
101   static TClonesArray*       fgDigitsArr;   // Array with EMCAL digits
102   static TObjArray*          fgClustersArr; // Array with EMCAL clusters
103
104   AliEMCALCalibData    * fCalibData   ;   //! Calibration database if aval
105   AliCaloCalibPedestal * fPedestalData ;   //! Tower status database if aval
106
107   static AliEMCALTriggerElectronics* fgTriggerProcessor;
108   AliEMCALTriggerData* fTriggerData;
109         
110         
111   ClassDef(AliEMCALReconstructor,10)  // Reconstruction algorithm class (Base Class)
112
113 }; 
114
115 #endif // ALIEMCALRECONSTRUCTOR_H
116