/* $Id$ */
-////////////////////////////////////////////////
-// Algorithme class for the reconstruction //
-// //
-// Author Gines MARTINEZ SUBATECH //
-// //
-// january 2000: added Particle guesser (YS) //
-// //
-// //
-////////////////////////////////////////////////
+//_________________________________________________________________________
+// Wrapping class for reconstruction
+//*--
+//*-- 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 "AliPHOSParticleGuesser.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,
- AliPHOSParticleGuesser * Guesser); //ctor
- ~AliPHOSReconstructioner(); // dtor
+ AliPHOSReconstructioner() ; //ctor
+ AliPHOSReconstructioner(const char * headreFile) ;
+ AliPHOSReconstructioner(const AliPHOSReconstructioner & rec) {
+ // cpy ctor:
+ // requested by the Coding Convention
+ abort() ;
+ }
+
+ virtual ~AliPHOSReconstructioner() ;
- AliPHOSClusterizer * GetClusterizer() { return fClusterizer ; }
- void Init(AliPHOSClusterizer * Clusterizer, AliPHOSTrackSegmentMaker * Tracker,
- AliPHOSParticleGuesser * Guesser) ;
- void Make(TClonesArray * DL, RecPointsList * emccl, RecPointsList * ppsdl,
- TrackSegmentsList * trsl, RecParticlesList * rpl) ; // does the job
+ virtual void Exec(Option_t * option) ;
+ 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 ; }
-private:
+ void Print(Option_t * option)const ;
- AliPHOSClusterizer * fClusterizer ; // Method for clusterization
- AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; // Method for track segments finding
- AliPHOSParticleGuesser * fParticleGuesser ; // Method for guessing the type of particle
+ void SetBranchTitle(const char* branch,const char * title) ;
+ // Sets the branch titles to separate different reconstruction flows
+
+ void StartFrom(char * module = "SDigitizer",char * title = 0) ;
+ // 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
+ abort() ;
+ return *this ;
+ }
-public:
+private:
+ void Init() ;
+
+private:
- ClassDef(AliPHOSReconstructioner,1) // Reconstruction interface , version 1
+ TString fHeaderFileName ; // File with headers and gAlice
+ TString fDigitsBranch ; // Title of digits branch
+ TString fRecPointBranch ; // -"- RecPoints -"-
+ TString fTSBranch ; // -"- TrackSegments -"-
+ TString fRecPartBranch ; // -"- RecParticles -"-
+ TString fSDigitsBranch ; // -"- SDigits -"-
+
+
+ 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)
};