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 */
8 //_________________________________________________________________________
9 // Wrapping class for reconstruction
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.
17 // --- ROOT system ---
21 // --- AliRoot header files ---
22 #include "AliReconstructor.h"
23 #include "AliEMCALTracker.h"
24 #include "AliEMCALRecParam.h"
26 class AliEMCALDigitizer ;
27 class AliEMCALClusterizer ;
28 class AliEMCALSDigitizer ;
29 class AliEMCALRecParam;
32 class AliEMCALRawUtils;
33 class AliEMCALGeometry;
34 class AliEMCALCalibData ;
35 class AliCaloCalibPedestal ;
36 class AliEMCALTriggerElectronics;
37 class AliEMCALTriggerData;
39 class AliEMCALReconstructor : public AliReconstructor {
43 AliEMCALReconstructor() ; //ctor
45 virtual ~AliEMCALReconstructor() ; //dtor
47 virtual void Init() {;}
48 virtual void InitClusterizer() const;
50 using AliReconstructor::FillESD;
51 virtual void FillESD(TTree* digitsTree, TTree* clustersTree, AliESDEvent* esd) const;
52 AliTracker* CreateTracker () const {return new AliEMCALTracker;}
53 using AliReconstructor::Reconstruct;
54 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const ;
56 virtual Bool_t HasDigitConversion() const {return kTRUE;};
57 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
59 static void SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
61 void ReadDigitsArrayFromTree(TTree *digitsTree) const;
63 static const AliEMCALRecParam* GetRecParam() {
64 return dynamic_cast<const AliEMCALRecParam*>(AliReconstructor::GetRecoParam(6)); }
66 static TClonesArray* GetDigitsArr() {return fgDigitsArr;}
68 void FillMisalMatrixes(AliESDEvent* esd)const ;
72 AliEMCALReconstructor(const AliEMCALReconstructor &); //Not implemented
73 AliEMCALReconstructor & operator = (const AliEMCALReconstructor &); //Not implemented
75 AliEMCALGeometry * fGeom; // pointer to the EMCAL geometry
76 static AliEMCALClusterizer * fgClusterizer; // clusterizer
77 static AliEMCALRawUtils * fgRawUtils; // raw utilities class
79 //Temporal arrays with clusters, digits, triggers, to be reused per event
80 static TClonesArray * fgDigitsArr; //-> Array with EMCAL digits
81 static TObjArray * fgClustersArr; //-> Array with EMCAL clusters
82 static TClonesArray * fgTriggerDigits; //-> Array with EMCAL trigger digits
85 static const AliEMCALRecParam* fgkRecParam; // reconstruction parameters for EMCAL
86 AliEMCALCalibData * fCalibData ; //! Calibration database if aval
87 AliCaloCalibPedestal * fPedestalData ; //! Tower status database if aval
90 static AliEMCALTriggerElectronics* fgTriggerProcessor; // Trigger preprocessor
91 AliEMCALTriggerData * fTriggerData; // Trigger parameters data container
93 ClassDef(AliEMCALReconstructor,11) // Reconstruction algorithm class (Base Class)
97 #endif // ALIEMCALRECONSTRUCTOR_H