]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSReconstructor.h
Fixes for cmake
[u/mrichter/AliRoot.git] / PHOS / AliPHOSReconstructor.h
index 14548c9477da5373e06905cd7e54d8bcb8603d9a..0122037f97d458fe8dd64b37e6e843d7afd61d3f 100644 (file)
@@ -5,49 +5,98 @@
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.15  2007/10/01 20:24:08  kharlov
+ * Memory leaks fixed
+ *
+ * Revision 1.14  2007/09/26 14:22:18  cvetan
+ * Important changes to the reconstructor classes. Complete elimination of the run-loaders, which are now steered only from AliReconstruction. Removal of the corresponding Reconstruct() and FillESD() methods.
+ *
+ * Revision 1.13  2007/08/30 10:40:27  cvetan
+ * Minor
+ *
+ * Revision 1.12  2007/08/28 12:55:08  policheh
+ * Loaders removed from the reconstruction code (C.Cheshkov)
+ *
+ * Revision 1.11  2007/07/24 17:20:35  policheh
+ * Usage of RecoParam objects instead of hardcoded parameters in reconstruction.
+ * (See $ALICE_ROOT/PHOS/macros/BeamTest2006/RawReconstruction.C).
+ *
+ * Revision 1.10  2007/07/11 13:43:30  hristov
+ * New class AliESDEvent, backward compatibility with the old AliESD (Christian)
+ *
+ * Revision 1.9  2006/11/15 16:05:03  kharlov
+ * New FillESD() for raw data is added
+ *
+ * Revision 1.8  2005/05/28 14:19:04  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
 //_________________________________________________________________________
 //  Wrapping class for reconstruction
-//*--
-//*-- Author: Gines Martinez & Yves Schutz (SUBATECH) 
-//*--         Dmitri Peressounko (SUBATECH & Kurchatov Institute)
+//--
+//-- Author: Yves Schutz (SUBATECH) 
+// Reconstruction class. Redesigned from the old AliReconstructionner class and 
+// derived from STEER/AliReconstructor. 
+//_________________________________________________________________________
 
 // --- ROOT system ---
 
-#include "TTask.h"
+#include <Riostream.h>
+#include "AliReconstructor.h" 
+#include "AliPHOSRecoParam.h"
 class AliPHOSDigitizer ;
 class AliPHOSClusterizer ;
+class AliPHOSClusterizerv1 ;
 class AliPHOSTrackSegmentMaker ;
 class AliPHOSPID ;
 class AliPHOSSDigitizer ;
-class AliESD ;
+class AliESDEvent ;
+class AliRawReader; 
+class AliPHOSRecoParam;
+class AliPHOSGeometry;
+class AliPHOSCalibData ;
 
 // --- Standard library ---
 
 // --- AliRoot header files ---
 
-class AliPHOSReconstructor : public TTask {
+class AliPHOSReconstructor : public AliReconstructor {
 
 public:
 
   AliPHOSReconstructor() ; //ctor            
-  AliPHOSReconstructor(const char * headerFile, const char * branchName = "Default",const TString taskName="CTP");
-  AliPHOSReconstructor(const AliPHOSReconstructor & rec) : TTask(rec) {
+  AliPHOSReconstructor(const AliPHOSReconstructor & rec) :
+    AliReconstructor(rec),
+    fGeom(rec.fGeom),
+    fClusterizer(rec.fClusterizer),
+    fTSM(rec.fTSM),
+    fPID(rec.fPID)
+    {
     // cpy ctor: 
     // requested by the Coding Convention
     Fatal("cpy ctor", "not implemented") ;
   }
-   
-  virtual ~AliPHOSReconstructor() ;
+  virtual ~AliPHOSReconstructor() ; //dtor            
 
-  virtual void Exec(Option_t *) ;
-  void Clusters2Tracks(Int_t ievent, AliESD *event);
+  static void                SetDebug()   { fgDebug = kTRUE ; }
+  static void                ResetDebug() { fgDebug = kFALSE ; }
+  static Bool_t              Debug() { return fgDebug ; }
+  AliTracker *CreateTracker() const;
+  using AliReconstructor::FillESD;
+  virtual void               FillESD(TTree* digitsTree, TTree* clustersTree, 
+                                    AliESDEvent* esd) const;
+  using AliReconstructor::Reconstruct;
+  virtual void               Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
 
-  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) ; 
+  virtual Bool_t             HasDigitConversion() const {return kTRUE;};
+  virtual void               ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
+  virtual Float_t            Calibrate(Float_t amp, Int_t absId) const ;
 
-  void Print()const ;
+  void FillMisalMatrixes(AliESDEvent* esd)const ;
 
   AliPHOSReconstructor & operator = (const AliPHOSReconstructor & /*rvalue*/)  {
     // assignement operator requested by coding convention but not needed
@@ -55,25 +104,21 @@ public:
     return *this ; 
   }
   
-
-private:
-  void Init() ;  
+  static const AliPHOSRecoParam* GetRecoParam() {
+    return dynamic_cast<const AliPHOSRecoParam*>(AliReconstructor::GetRecoParam(4)); }
 
 private:
   
-  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(AliPHOSReconstructor,1)  // Reconstruction algorithm class (Base Class)
+  static Bool_t fgDebug ; //! verbosity controller
+  AliPHOSGeometry          *fGeom;           // pointer to the PHOS geometry
+  AliPHOSClusterizerv1     *fClusterizer;    //! PHOS clusterizer
+  AliPHOSTrackSegmentMaker *fTSM;            //! PHOS TrackSegmentMaker
+  AliPHOSPID               *fPID;            //! PHOS PID maker
+  static TClonesArray      *fgDigitsArray;   //! Array of PHOS digits
+  static TObjArray         *fgEMCRecPoints;  //! Array of EMC rec.points
+  static AliPHOSCalibData * fgCalibData ;    //! Calibration database if aval.
+
+  ClassDef(AliPHOSReconstructor,8)  // PHOS Reconstruction class
 
 };