//*--
//*-- Author: Yves Schutz (SUBATECH)
//*-- Dmitri Peressounko (SUBATECH & Kurchatov Institute)
+// Reconstruction class. Redesigned from the old AliReconstructionner class and
+// derived from STEER/AliReconstructor.
+//
+//-- Aleksei Pavlinov : added staf for EMCAL jet trigger 9Apr 25, 2008)
+// : fgDigitsArr should read just once at event
// --- ROOT system ---
+class TList;
+class TClonesArray;
+class TTree;
+
+// --- AliRoot header files ---
#include "AliReconstructor.h"
+#include "AliEMCALTracker.h"
+#include "AliEMCALRecParam.h"
+
+
class AliEMCALDigitizer ;
class AliEMCALClusterizer ;
-class AliEMCALPID ;
class AliEMCALSDigitizer ;
-class AliESD ;
+class AliEMCALRecParam;
+class AliESDEvent ;
+class AliRawReader ;
+class AliEMCALRawUtils;
+class AliEMCALGeometry;
+class AliEMCALCalibData ;
+class AliCaloCalibPedestal ;
+class AliEMCALTriggerElectronics;
// --- Standard library ---
-// --- AliRoot header files ---
+
class AliEMCALReconstructor : public AliReconstructor {
public:
AliEMCALReconstructor() ; //ctor
- AliEMCALReconstructor(const AliEMCALReconstructor & rec) : AliReconstructor(rec) {
- // cpy ctor:
- // requested by the Coding Convention
- Fatal("cpy ctor", "not implemented") ;
- }
virtual ~AliEMCALReconstructor() ; //dtor
- Bool_t Debug() const { return fDebug ; }
- virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const ;
- virtual void Reconstruct(AliRunLoader* runLoader) const ;
+ virtual void Init();
+ Bool_t Debug() const { return fDebug ; }
+ using AliReconstructor::FillESD;
+ virtual void FillESD(TTree* digitsTree, TTree* clustersTree,
+ AliESDEvent* esd) const;
+ AliTracker* CreateTracker () const
+ {return new AliEMCALTracker;}
+ using AliReconstructor::Reconstruct;
+ virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
+
+ virtual Bool_t HasDigitConversion() const {return kTRUE;};
+ virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
- AliEMCALReconstructor & operator = (const AliEMCALReconstructor & /*rvalue*/) {
- // assignement operator requested by coding convention but not needed
- Fatal("operator =", "not implemented") ;
- return *this ;
- }
-
+ static void SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
+
+ void ReadDigitsArrayFromTree(TTree *digitsTree) const;
+
+ TList *GetList() const {return fList;}
+
+ static const AliEMCALRecParam* GetRecParam() {
+ return dynamic_cast<const AliEMCALRecParam*>(AliReconstructor::GetRecoParam(6)); }
+
+ static TClonesArray* GetDigitsArr() {return fgDigitsArr;}
+
+ void FillMisalMatrixes(AliESDEvent* esd)const ;
private:
+ AliEMCALReconstructor(const AliEMCALReconstructor &); //Not implemented
+ AliEMCALReconstructor & operator = (const AliEMCALReconstructor &); //Not implemented
+
Bool_t fDebug; //! verbosity controller
-
- ClassDef(AliEMCALReconstructor,1) // Reconstruction algorithm class (Base Class)
+
+ TList *fList; //! List of hists (only for trigger now)
+ AliEMCALGeometry *fGeom; // pointer to the EMCAL geometry
+
+ static AliEMCALClusterizer* fgClusterizer; // clusterizer
+ static const AliEMCALRecParam* fgkRecParam; // reconstruction
+ // parameters for EMCAL
+ static AliEMCALRawUtils* fgRawUtils; // raw utilities class -
+ // only need one per reco
+ static TClonesArray* fgDigitsArr; // Array with EMCAL digits
+ AliEMCALCalibData * fCalibData ; //! Calibration database if aval
+ AliCaloCalibPedestal * fPedestalData ; //! Tower status database if aval
+
+ static AliEMCALTriggerElectronics* fgTriggerProcessor;
+
+ ClassDef(AliEMCALReconstructor,9) // Reconstruction algorithm class (Base Class)
};
#endif // ALIEMCALRECONSTRUCTOR_H
+