/* $Id$ */
//_________________________________________________________________________
-// Algorithm class for the reconstruction: clusterizer
-// track segment maker
-// particle identifier
+// Wrapping class for reconstruction
//*--
-//*-- Author: Gines Martinez & Yves Schutz (SUBATECH)
+//*-- Author: Gines Martinez & Yves Schutz (SUBATECH)
+//*-- Dmitri Peressounko (SUBATECH & Kurchatov Institute)
// --- ROOT system ---
-#include "TObject.h"
-#include "AliPHOSClusterizer.h"
-#include "AliPHOSTrackSegmentMaker.h"
-#include "AliPHOSPID.h"
-#include "TClonesArray.h"
+#include "TTask.h"
+class AliPHOSDigitizer ;
+class AliPHOSClusterizer ;
+class AliPHOSTrackSegmentMaker ;
+class AliPHOSPID ;
+class AliPHOSSDigitizer ;
+class AliESD ;
// --- Standard library ---
// --- AliRoot header files ---
-class AliPHOSReconstructioner : public TObject {
+class AliPHOSReconstructioner : public TTask {
public:
- AliPHOSReconstructioner(){} //ctor
- AliPHOSReconstructioner(AliPHOSClusterizer * Clusterizer, AliPHOSTrackSegmentMaker * Tracker,
- AliPHOSPID * Identifier); //ctor
- AliPHOSReconstructioner(const AliPHOSReconstructioner & phos) {
- // cpy ctor: no implementation yet
+ AliPHOSReconstructioner() ; //ctor
+ AliPHOSReconstructioner(const char * headerFile, const char * branchName = "Default");
+ AliPHOSReconstructioner(const AliPHOSReconstructioner & rec) : TTask(rec) {
+ // cpy ctor:
// requested by the Coding Convention
- assert(0==1) ;
+ Fatal("cpy ctor", "not implemented") ;
}
- ~AliPHOSReconstructioner(){} // dtor
+ virtual ~AliPHOSReconstructioner() ;
- AliPHOSClusterizer * GetClusterizer() { return fClusterizer ; }
- void Init(AliPHOSClusterizer * Clusterizer, AliPHOSTrackSegmentMaker * Tracker,
- AliPHOSPID * Identifier) ;
- void Make(TClonesArray * DL,
- AliPHOSRecPoint::RecPointsList * emccl,
- AliPHOSRecPoint::RecPointsList * ppsdl,
- AliPHOSRecPoint::RecPointsList * cpvl,
- AliPHOSTrackSegment::TrackSegmentsList * trsl,
- AliPHOSRecParticle::RecParticlesList * rpl) ; // does the job
+ virtual void Exec(Option_t *) ;
+ void Clusters2Tracks(Int_t ievent, AliESD *event);
- void SetDebugReconstruction(Bool_t deb) { fDebugReconstruction = deb; }
+ 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) ;
- AliPHOSReconstructioner & operator = (const AliPHOSReconstructioner & rvalue) {
+ void Print()const ;
+
+ AliPHOSReconstructioner & operator = (const AliPHOSReconstructioner & /*rvalue*/) {
// assignement operator requested by coding convention but not needed
- assert(0==1) ;
+ Fatal("operator =", "not implemented") ;
return *this ;
}
+private:
+ void Init() ;
+
private:
- Bool_t fDebugReconstruction; // For debuging of the Reconstruction procedure
- AliPHOSClusterizer * fClusterizer ; // Method for clusterization
- AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; // Method for track segments finding
- AliPHOSPID * fPID ; // Method for identifying the type of particle
+ 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(AliPHOSReconstructioner,1) // Reconstruction algorithm class (Base Class)