Updates for the ROOT trunk
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegmentMaker.h
index d0d6e27..f4fa690 100644 (file)
@@ -5,53 +5,75 @@
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.43  2007/08/28 12:55:08  policheh
+ * Loaders removed from the reconstruction code (C.Cheshkov)
+ *
+ * Revision 1.42  2007/08/07 14:12:03  kharlov
+ * Quality assurance added (Yves Schutz)
+ *
+ * Revision 1.41  2007/07/11 13:43:30  hristov
+ * New class AliESDEvent, backward compatibility with the old AliESD (Christian)
+ *
+ * Revision 1.40  2006/08/29 11:41:19  kharlov
+ * Missing implementation of ctors and = operator are added
+ *
+ * Revision 1.39  2006/08/25 16:00:53  kharlov
+ * Compliance with Effective C++AliPHOSHit.cxx
+ *
+ * Revision 1.38  2005/05/28 14:19:05  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
 //_________________________________________________________________________
 // Algorithm Base class to construct PHOS track segments
-// Associates EMC and PPSD clusters
+// Associates EMC and CPV clusters
 // Unfolds the EMC cluster   
 //                  
 //*-- Author: Dmitri Peressounko (RRC Kurchatov Institute  & SUBATECH)
 
 // --- ROOT system ---
-#include "TTask.h"
+#include <TObject.h>
+class TTree;
 
+// --- AliRoot header files ---
+class AliPHOSGeometry ;
+class AliESDEvent ;
 
-// --- Standard library ---
-#include <iostream>
+class  AliPHOSTrackSegmentMaker : public TObject {
 
-// --- AliRoot header files ---
+public:
 
+  AliPHOSTrackSegmentMaker();
+  AliPHOSTrackSegmentMaker(AliPHOSGeometry *geom);
+  AliPHOSTrackSegmentMaker(const AliPHOSTrackSegmentMaker & tsmaker) ;
+  virtual ~ AliPHOSTrackSegmentMaker() ;
+  AliPHOSTrackSegmentMaker & operator = (const AliPHOSTrackSegmentMaker & /*rvalue*/)  {
+    Fatal("operator =", "not implemented") ; return *this ; }
 
-class AliPHOSClusterizer ;
-class AliPHOSGeometry ;
+  virtual void   Clusters2TrackSegments(Option_t *option) = 0;
 
-class  AliPHOSTrackSegmentMaker : public TTask {
+  void    SetInput(TTree *clustersTree);
 
-public:
+  virtual void    Print(const Option_t * = "")const {Warning("Print", "Not Defined" ) ; }
+
+  void SetESD(AliESDEvent *esd) { fESD = esd; }
+
+  AliESDEvent *GetESD()             const {return fESD;            }
+
+  virtual TClonesArray * GetTrackSegments() const = 0;
+
+protected:
 
-  AliPHOSTrackSegmentMaker() ;                     
-  AliPHOSTrackSegmentMaker(const char* headerFile, const char* name) ;                     
-  
-  virtual ~ AliPHOSTrackSegmentMaker(){
-    // dtor 
-  } 
-
-  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 const char * Version() const {cout << "Not Defined" << endl ; return 0 ; }   
-  virtual void WriteTrackSegments(Int_t event){cout << "Not Defined" << endl ; } 
-  
-  ClassDef( AliPHOSTrackSegmentMaker,1)    // Algorithm class to make PHOS track segments (Base Class)
+  AliESDEvent * fESD;              //! ESD object
+  AliPHOSGeometry *fGeom;           //! Pointer to the PHOS geometry
+  TObjArray *fEMCRecPoints;         //  Array with the EMC clusters
+  TObjArray *fCPVRecPoints;         //  Array with the CPV clusters
 
+  ClassDef( AliPHOSTrackSegmentMaker,6)  // Algorithm class to make PHOS track segments (Base Class)
 };
 
 #endif // ALIPHOSTRACKSEGMENTMAKER_H