/* $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)
+
+#include <stdlib.h>
// --- 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 ;
// --- 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 * headreFile, const char * branchName = "Default");
+ AliPHOSReconstructioner(const AliPHOSReconstructioner & rec) {
+ // cpy ctor:
// requested by the Coding Convention
- assert(0==1) ;
+ Fatal("cpy ctor", "not implemented") ;
}
- ~AliPHOSReconstructioner(){} // dtor
+ virtual ~AliPHOSReconstructioner() ;
+
+ virtual void Exec(Option_t * option) ;
- AliPHOSClusterizer * GetClusterizer() { return fClusterizer ; }
- void Init(AliPHOSClusterizer * Clusterizer, AliPHOSTrackSegmentMaker * Tracker,
- AliPHOSPID * Identifier) ;
- void Make(TClonesArray * DL,
- AliPHOSRecPoint::RecPointsList * emccl,
- AliPHOSRecPoint::RecPointsList * ppsdl,
- AliPHOSTrackSegment::TrackSegmentsList * trsl,
- AliPHOSRecParticle::RecParticlesList * rpl) ; // does the job
+ AliPHOSDigitizer * GetDigitizer() const { return fDigitizer ; }
+ AliPHOSClusterizer * GetClusterizer()const { return fClusterizer ; }
+ AliPHOSPID * GetPID() const { return fPID; }
+ AliPHOSTrackSegmentMaker * GetTSMaker() const { return fTSMaker ; }
+ AliPHOSSDigitizer * GetSDigitizer() const { return fSDigitizer ; }
- void SetDebugReconstruction(Bool_t deb) { fDebugReconstruction = deb; }
+ void Print(Option_t * option)const ;
+
+ // void SetBranchTitle(const char* branch,const char * title) ;
+ // // Sets the branch titles to separate different reconstruction flows
+ //
+ // void StartFrom(char * module = "SDigitizer",char * title = "Default") ;
+ // // From wich step reconstruction begins,
+ // // title to be set to all reconstructed branches
AliPHOSReconstructioner & operator = (const AliPHOSReconstructioner & rvalue) {
// assignement operator requested by coding convention but not needed
- assert(0==1) ;
+ Fatal("operator =", "not implementeyd") ;
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 fDigitsBranch ; // Title of digits branch
+ TString fRecPointBranch ; // Title of RecPoints branch
+ TString fTSBranch ; // Title of TrackSegments branch
+ TString fRecPartBranch ; // Title of RecParticles branch
+ TString fSDigitsBranch ; // Title of SDigits branch
+
+
+ AliPHOSDigitizer * fDigitizer ; //! Pointer to AliPHOSDigitizer
+ AliPHOSClusterizer * fClusterizer ; //! Pointer to AliPHOSClusterizer
+ AliPHOSPID * fPID ; //! Pointer to AliPHOSPID
+ AliPHOSTrackSegmentMaker * fTSMaker ; //! Pointer to AliPHOSTrackSegmentMaker
+ AliPHOSSDigitizer * fSDigitizer ; //! Pointer to AliPHOSSDigitizer
+
+ Bool_t fIsInitialized ; // kTRUE if reconstructioner is initialized
ClassDef(AliPHOSReconstructioner,1) // Reconstruction algorithm class (Base Class)