]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSReconstructioner.h
updating
[u/mrichter/AliRoot.git] / PHOS / AliPHOSReconstructioner.h
index 8b00ea866ada2997bb8a67f9b0a568e32b08cdce..17bf961cea4673470d497a2c229949ae621e527d 100644 (file)
@@ -6,64 +6,72 @@
 /* $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)