/* $Id$ */
-///////////////////////////////////////////////////
-// Subtrackin class for PHOS //
-// Version SUBATECH //
-// Author Dmitri Peressounko RRC Ki //
-// comment: finds pairs of clusters EMC+PPSD //
-// performs unfolding. //
-///////////////////////////////////////////////////
+//_________________________________________________________________________
+// Algorithm Base class to construct PHOS track segments
+// Associates EMC and PPSD clusters
+// Unfolds the EMC cluster
+//
+//*-- Author: Dmitri Peressounko (RRC Kurchatov Institute & SUBATECH)
// --- ROOT system ---
+#include "TTask.h"
+class TFile ;
// --- Standard library ---
+#include <iostream>
// --- AliRoot header files ---
-#include "TObjArray.h"
-#include "AliPHOSClusterizer.h"
-#include "AliPHOSEmcRecPoint.h"
-#include "AliPHOSPpsdRecPoint.h"
-typedef TObjArray TrackSegmentsList ;
+class AliPHOSClusterizer ;
+class AliPHOSGeometry ;
-class AliPHOSTrackSegmentMaker : public TObject {
+class AliPHOSTrackSegmentMaker : public TTask {
public:
AliPHOSTrackSegmentMaker() ;
+ AliPHOSTrackSegmentMaker(const char* headerFile, const char* name) ;
- virtual ~ AliPHOSTrackSegmentMaker(){} // dtor
-
- virtual void MakeTrackSegments(DigitsList * DL, RecPointsList * emcl, RecPointsList * ppsdl, TrackSegmentsList * trsl ) = 0 ;
- // does the job
- virtual void SetMaxEmcPpsdDistance(Float_t r){ fR0 = r ;}
- virtual void SetUnfoldFlag() ;
- virtual void UnsetUnfoldFlag() ;
-
-private:
-
- Float_t fR0 ;
-
- ClassDef( AliPHOSTrackSegmentMaker,1) // subtracking implementation , version 1
+ virtual ~ AliPHOSTrackSegmentMaker() ;
+
+ virtual void Exec(Option_t * option){cout << "Not Defined" << endl ; }
+ virtual char* GetRecPointsBranch ()const{cout << "Not Defined" << endl ; return 0 ; }
+ virtual char* GetTrackSegmentsBranch ()const{cout << "Not Defined" << endl ; return 0 ; }
+ virtual const Int_t GetTrackSegmentsInRun() const {cout << "Not Defined" << endl ; return 0 ; }
+
+ virtual void Print(Option_t * option)const {cout << "Not Defined" << endl ; }
+ // virtual void Set... // method to choose recPoints: along z only, along x ...???
+ // virtual void SetChoosingAlgirithm(){cout << "Not Defined" << endl ; return 0 ; }
+ // virtual void SetMaxEmcCpvDistance(Float_t r) {cout << "Not Defined" << endl ; return 0 ; }
+ virtual void SetRecPointsBranch(const char * title){cout << "Not Defined" << endl ; }
+ virtual void SetTrackSegmentsBranch(const char * title){cout << "Not Defined" << endl ; }
+ virtual void SetSplitFile(const TString splitFileName = "PHOS.RecData.root") const ;
+ virtual const char * Version() const {cout << "Not Defined" << endl ; return 0 ; }
+ virtual void WriteTrackSegments(Int_t event){cout << "Not Defined" << endl ; }
+
+protected:
+
+ TFile * fSplitFile ; //! file in which TrackSegments will eventually be stored
+
+ ClassDef( AliPHOSTrackSegmentMaker,1) // Algorithm class to make PHOS track segments (Base Class)
};