]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSReconstructor.h
Fixed memory leaks for #86360: High memory consumption in 2.76TeV p+p RAW reco jobs
[u/mrichter/AliRoot.git] / PHOS / AliPHOSReconstructor.h
index 14b1c7a52923eed82c4b983ae1f38cadeaafc03f..62e6c6db623ebc91431a6bf52b264bcca3fdcbe4 100644 (file)
@@ -47,8 +47,7 @@
 
 #include <Riostream.h>
 #include "AliReconstructor.h" 
-#include "AliPHOSRecoParamEmc.h"
-#include "AliPHOSRecoParamCpv.h"
+#include "AliPHOSRecoParam.h"
 class AliPHOSDigitizer ;
 class AliPHOSClusterizer ;
 class AliPHOSClusterizerv1 ;
@@ -59,6 +58,7 @@ class AliESDEvent ;
 class AliRawReader; 
 class AliPHOSRecoParam;
 class AliPHOSGeometry;
+class AliPHOSCalibData ;
 
 // --- Standard library ---
 
@@ -69,14 +69,6 @@ class AliPHOSReconstructor : public AliReconstructor {
 public:
 
   AliPHOSReconstructor() ; //ctor            
-  AliPHOSReconstructor(const AliPHOSReconstructor & rec) :
-    AliReconstructor(rec),
-    fGeom(rec.fGeom)
-    {
-    // cpy ctor: 
-    // requested by the Coding Convention
-    Fatal("cpy ctor", "not implemented") ;
-  }
   virtual ~AliPHOSReconstructor() ; //dtor            
 
   static void                SetDebug()   { fgDebug = kTRUE ; }
@@ -91,44 +83,30 @@ public:
 
   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 ;
+  virtual Float_t            CalibrateT(Float_t time, Int_t absId) const ;
 
-  AliPHOSReconstructor & operator = (const AliPHOSReconstructor & /*rvalue*/)  {
-    // assignement operator requested by coding convention but not needed
-    Fatal("operator =", "not implemented") ;
-    return *this ; 
-  }
+  void FillMisalMatrixes(AliESDEvent* esd)const ;
   
-  static void SetRecoParamEmc(AliPHOSRecoParam * param){ fgkRecoParamEmc = param;}
-  static void SetRecoParamCpv(AliPHOSRecoParam * param){ fgkRecoParamCpv = param;}
-
-  static const AliPHOSRecoParam* GetRecoParamEmc(){ 
-    if (!fgkRecoParamEmc) {
-      cerr<<"The Reconstruction parameters for EMC nonitialized - Used default one"<<endl;
-      fgkRecoParamEmc = AliPHOSRecoParamEmc::GetEmcDefaultParameters();
-    }
-    return fgkRecoParamEmc;
-  }
-  static const AliPHOSRecoParam* GetRecoParamCpv(){
-    if (!fgkRecoParamCpv) {
-      cerr<<"The Reconstruction parameters for CPV nonitialized - Used default one"<<endl;
-      fgkRecoParamCpv = AliPHOSRecoParamCpv::GetCpvDefaultParameters();
-    }
-    return fgkRecoParamCpv;
-  }
+  static const AliPHOSRecoParam* GetRecoParam() {
+    return dynamic_cast<const AliPHOSRecoParam*>(AliReconstructor::GetRecoParam(4)); }
+  static Float_t CorrectNonlinearity(Float_t oldEnergy) ;
 
 private:
+  AliPHOSReconstructor(const AliPHOSReconstructor & rec); // Not implemented
+  AliPHOSReconstructor & operator = (const AliPHOSReconstructor &); // Not implemented
   
   static Bool_t fgDebug ; //! verbosity controller
-  static AliPHOSRecoParam  *fgkRecoParamEmc; // reconstruction parameters for EMC
-  static AliPHOSRecoParam  *fgkRecoParamCpv; // reconstruction parameters for EMC
   AliPHOSGeometry          *fGeom;           // pointer to the PHOS geometry
   AliPHOSClusterizerv1     *fClusterizer;    //! PHOS clusterizer
   AliPHOSTrackSegmentMaker *fTSM;            //! PHOS TrackSegmentMaker
   AliPHOSPID               *fPID;            //! PHOS PID maker
+  TClonesArray             *fTmpDigLG;       //! Temporary array of LG digits
   static TClonesArray      *fgDigitsArray;   //! Array of PHOS digits
   static TObjArray         *fgEMCRecPoints;  //! Array of EMC rec.points
+  static AliPHOSCalibData * fgCalibData ;    //! Calibration database if aval.
 
-  ClassDef(AliPHOSReconstructor,7)  // PHOS Reconstruction class
+  ClassDef(AliPHOSReconstructor,9)  // PHOS Reconstruction class
 
 };