]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALClusterizer.h
Technical fix: reducing the virtual memory consumption
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALClusterizer.h
index 70f16a07a4e613b7b048aa771df8079366535d5f..388213f078a0ad188f49a84695f8585c4b5feb15 100644 (file)
@@ -8,64 +8,54 @@
 //_________________________________________________________________________
 //  Base class for the clusterization algorithm (pure abstract)
 //*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (SUBATECH & Kurchatov Institute)
+// Modif: 
+//  August 2002 Yves Schutz: clone PHOS as closely as possible and intoduction
+//                           of new  IO (à la PHOS)
 // --- ROOT system ---
+#include "AliLog.h"
+#include "TObject.h" 
+class TTree;
 
-#include "TTask.h" 
-class TFile ; 
 // --- Standard library ---
 
 // --- AliRoot header files ---
 
-//#include "AliEMCALDigit.h"
-
-class AliEMCALClusterizer : public TTask {
+class AliEMCALClusterizer : public TObject {
 
 public:
 
   AliEMCALClusterizer() ;        // default ctor
-  AliEMCALClusterizer(const char * headerFile, const char * name) ;
-  virtual ~AliEMCALClusterizer() ; // dtor
-
-  const TString GetHitsFileName() const { return fHitsFileName ; }
-  const TString GetSDigitsFileName() const { return fSDigitsFileName ; }
-  const TString GetDigitsFileName() const { return fDigitsFileName ; }
-
-  virtual Float_t GetEmcClusteringThreshold()const = 0 ; 
-  virtual Float_t GetEmcLocalMaxCut()const = 0 ; 
-  virtual Float_t GetEmcLogWeight()const = 0 ; 
-  virtual Float_t GetTimeGate() const = 0 ;
-  virtual Float_t GetCpvClusteringThreshold()const = 0 ; 
-  virtual Float_t GetCpvLocalMaxCut()const = 0 ; 
-  virtual Float_t GetCpvLogWeight()const = 0 ; 
-  virtual char *  GetRecPointsBranch() const = 0 ;
-  virtual const Int_t GetRecPointsInRun()  const = 0 ; 
-  virtual char *  GetDigitsBranch() const = 0 ;
-
-  virtual void MakeClusters() = 0 ; 
-  virtual void Print(Option_t * option)const = 0;
-
-  virtual void SetTowerClusteringThreshold(Float_t cluth) = 0 ; 
-  virtual void SetTowerLocalMaxCut(Float_t cut) = 0 ; 
-  virtual void SetTowerLogWeight(Float_t w) = 0 ; 
-  virtual void SetTimeGate(Float_t gate) = 0 ;
-  virtual void SetPreShoClusteringThreshold(Float_t cluth) = 0 ; 
-  virtual void SetPreShoLocalMaxCut(Float_t cut) = 0 ; 
-  virtual void SetPreShoLogWeight(Float_t w) = 0 ; 
-  virtual void SetDigitsBranch(const char * title) = 0 ;
-  virtual void SetRecPointsBranch(const char *title) = 0 ;
-  void SetSplitFile(const TString splitFileName = "EMCAL.RecPoints.root") ;
-  virtual void SetUnfolding(Bool_t toUnfold ) = 0 ;
-  virtual const char * Version() const = 0 ;  
+  virtual ~AliEMCALClusterizer() ; // dtorEM
+
+  virtual void    Digits2Clusters(Option_t *option) = 0;
+
+  virtual Float_t GetTimeCut() const = 0;
+
+  virtual void SetECAClusteringThreshold(Float_t) = 0;
+  virtual void SetECALocalMaxCut(Float_t)         = 0;
+  virtual void SetECALogWeight(Float_t)           = 0;
+  virtual void SetTimeCut(Float_t)                = 0;
+  virtual void SetUnfolding(Bool_t)               = 0;
+
+  virtual const char * Version() const {Warning("Version", "Not Defined") ; return 0 ; } 
+
+  virtual void SetInput(TTree *digitsTree);
+  virtual void SetOutput(TTree *clustersTree);
+  virtual void InitParameters() { AliInfo("Overload this method."); }
 
 protected:
-  
-  TString fHitsFileName ;          // file name that contains the original hits
-  TString fSDigitsFileName ;       // file name that contains the original SDigits
-  TString fDigitsFileName ;        // file name that contains the original Digits
-  TFile * fSplitFile ;             //! file in which RecPoints will eventually be stored
 
-  ClassDef(AliEMCALClusterizer,1)  // Clusterization algorithm class 
+  virtual void MakeClusters() = 0;
+
+  TClonesArray *fDigitsArr; // Array with EMCAL digits
+  TTree *fTreeR;            // Tree with output clusters
+  TObjArray    *fRecPoints; // Array with EMCAL clusters
 
+private:
+  AliEMCALClusterizer(const AliEMCALClusterizer &); //copy ctor
+  AliEMCALClusterizer & operator = (const AliEMCALClusterizer &);
+
+  ClassDef(AliEMCALClusterizer,1)  // Clusterization algorithm class 
 } ;
 
 #endif // AliEMCALCLUSTERIZER_H