]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSReconstructioner.h
TPrincipal for the pi0 identification
[u/mrichter/AliRoot.git] / PHOS / AliPHOSReconstructioner.h
index 37680df34aed2d524187d852ab009367074ad0de..32e7178155c526ef40d3bc94758a60409800075f 100644 (file)
@@ -5,51 +5,88 @@
 
 /* $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, const char * branchName = "Default",Bool_t toSplit = kFALSE) ;
+  AliPHOSReconstructioner(const AliPHOSReconstructioner & rec) {
+    // cpy ctor: 
+    // requested by the Coding Convention
+    Fatal("cpy ctor", "not implemented") ;
+  }
+   
+  virtual ~AliPHOSReconstructioner() ;
+
+  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  ; }
+
+  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
 
-  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
+  AliPHOSReconstructioner & operator = (const AliPHOSReconstructioner & rvalue)  {
+    // assignement operator requested by coding convention but not needed
+    Fatal("operator =", "not implementeyd") ;
+    return *this ; 
+  }
+  
 
+private:
+  void Init() ;  
 
 private:
   
-  AliPHOSClusterizer * fClusterizer ;             // Method for clusterization 
-  AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; // Method for track segments finding
-  AliPHOSParticleGuesser * fParticleGuesser ;     // Method for guessing the type of particle
+  Bool_t   fToSplit ; 
+  TString  fHeaderFileName ;    // File with headers and gAlice
+  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 interface , version 1
+  ClassDef(AliPHOSReconstructioner,1)  // Reconstruction algorithm class (Base Class)
 
 };