/* $Id$ */
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.15 2007/10/01 20:24:08 kharlov
+ * Memory leaks fixed
+ *
+ * Revision 1.14 2007/09/26 14:22:18 cvetan
+ * Important changes to the reconstructor classes. Complete elimination of the run-loaders, which are now steered only from AliReconstruction. Removal of the corresponding Reconstruct() and FillESD() methods.
+ *
+ * Revision 1.13 2007/08/30 10:40:27 cvetan
+ * Minor
+ *
+ * Revision 1.12 2007/08/28 12:55:08 policheh
+ * Loaders removed from the reconstruction code (C.Cheshkov)
+ *
+ * Revision 1.11 2007/07/24 17:20:35 policheh
+ * Usage of RecoParam objects instead of hardcoded parameters in reconstruction.
+ * (See $ALICE_ROOT/PHOS/macros/BeamTest2006/RawReconstruction.C).
+ *
+ * Revision 1.10 2007/07/11 13:43:30 hristov
+ * New class AliESDEvent, backward compatibility with the old AliESD (Christian)
+ *
+ * Revision 1.9 2006/11/15 16:05:03 kharlov
+ * New FillESD() for raw data is added
+ *
+ * Revision 1.8 2005/05/28 14:19:04 schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
//_________________________________________________________________________
// Wrapping class for reconstruction
-//*--
-//*-- Author: Gines Martinez & Yves Schutz (SUBATECH)
-//*-- Dmitri Peressounko (SUBATECH & Kurchatov Institute)
+//--
+//-- Author: Yves Schutz (SUBATECH)
+// Reconstruction class. Redesigned from the old AliReconstructionner class and
+// derived from STEER/AliReconstructor.
+//_________________________________________________________________________
// --- ROOT system ---
-#include "TTask.h"
+#include <Riostream.h>
+#include "AliReconstructor.h"
+#include "AliPHOSRecoParam.h"
class AliPHOSDigitizer ;
class AliPHOSClusterizer ;
+class AliPHOSClusterizerv1 ;
class AliPHOSTrackSegmentMaker ;
class AliPHOSPID ;
class AliPHOSSDigitizer ;
-class AliESD ;
+class AliESDEvent ;
+class AliRawReader;
+class AliPHOSRecoParam;
+class AliPHOSGeometry;
+class AliPHOSCalibData ;
// --- Standard library ---
// --- AliRoot header files ---
-class AliPHOSReconstructor : public TTask {
+class AliPHOSReconstructor : public AliReconstructor {
public:
AliPHOSReconstructor() ; //ctor
- AliPHOSReconstructor(const char * headerFile, const char * branchName = "Default",const TString taskName="CTP");
- AliPHOSReconstructor(const AliPHOSReconstructor & rec) : TTask(rec) {
+ AliPHOSReconstructor(const AliPHOSReconstructor & rec) :
+ AliReconstructor(rec),
+ fGeom(rec.fGeom),
+ fClusterizer(rec.fClusterizer),
+ fTSM(rec.fTSM),
+ fPID(rec.fPID)
+ {
// cpy ctor:
// requested by the Coding Convention
Fatal("cpy ctor", "not implemented") ;
}
-
- virtual ~AliPHOSReconstructor() ;
+ virtual ~AliPHOSReconstructor() ; //dtor
- virtual void Exec(Option_t *) ;
- void Clusters2Tracks(Int_t ievent, AliESD *event);
+ static void SetDebug() { fgDebug = kTRUE ; }
+ static void ResetDebug() { fgDebug = kFALSE ; }
+ static Bool_t Debug() { return fgDebug ; }
+ AliTracker *CreateTracker() const;
+ using AliReconstructor::FillESD;
+ virtual void FillESD(TTree* digitsTree, TTree* clustersTree,
+ AliESDEvent* esd) const;
+ using AliReconstructor::Reconstruct;
+ virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
- AliPHOSClusterizer * GetClusterizer()const { return fClusterizer ; }
- AliPHOSPID * GetPID() const { return fPID; }
- AliPHOSTrackSegmentMaker * GetTSMaker() const { return fTSMaker ; }
- void SetEventRange(Int_t first=0, Int_t last=-1) ;
+ virtual Bool_t HasDigitConversion() const {return kTRUE;};
+ virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
+ virtual Float_t Calibrate(Float_t amp, Int_t absId) const ;
- void Print()const ;
+ void FillMisalMatrixes(AliESDEvent* esd)const ;
AliPHOSReconstructor & operator = (const AliPHOSReconstructor & /*rvalue*/) {
// assignement operator requested by coding convention but not needed
return *this ;
}
-
-private:
- void Init() ;
+ static const AliPHOSRecoParam* GetRecoParam() {
+ return dynamic_cast<const AliPHOSRecoParam*>(AliReconstructor::GetRecoParam(4)); }
private:
- TString fRecPointBranch ; // Title of RecPoints branch
- TString fTSBranch ; // Title of TrackSegments branch
- TString fRecPartBranch ; // Title of RecParticles branch
-
-
- AliPHOSClusterizer * fClusterizer ; //! Pointer to AliPHOSClusterizer
- AliPHOSPID * fPID ; //! Pointer to AliPHOSPID
- AliPHOSTrackSegmentMaker * fTSMaker ; //! Pointer to AliPHOSTrackSegmentMaker
- Bool_t fIsInitialized ; // kTRUE if reconstructioner is initialized
- Int_t fFirstEvent; // first event to process
- Int_t fLastEvent; // last event to process
-
- ClassDef(AliPHOSReconstructor,1) // Reconstruction algorithm class (Base Class)
+ static Bool_t fgDebug ; //! verbosity controller
+ AliPHOSGeometry *fGeom; // pointer to the PHOS geometry
+ AliPHOSClusterizerv1 *fClusterizer; //! PHOS clusterizer
+ AliPHOSTrackSegmentMaker *fTSM; //! PHOS TrackSegmentMaker
+ AliPHOSPID *fPID; //! PHOS PID maker
+ static TClonesArray *fgDigitsArray; //! Array of PHOS digits
+ static TObjArray *fgEMCRecPoints; //! Array of EMC rec.points
+ static AliPHOSCalibData * fgCalibData ; //! Calibration database if aval.
+
+ ClassDef(AliPHOSReconstructor,8) // PHOS Reconstruction class
};