]> 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 4e1e3cc1231aad76d30d78c88c3ffa7ca8f2ffa6..388213f078a0ad188f49a84695f8585c4b5feb15 100644 (file)
 //  August 2002 Yves Schutz: clone PHOS as closely as possible and intoduction
 //                           of new  IO (à la PHOS)
 // --- ROOT system ---
-
-#include "TTask.h" 
+#include "AliLog.h"
+#include "TObject.h" 
+class TTree;
 
 // --- 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, const Bool_t toSplit) ;
-  virtual ~AliEMCALClusterizer() ; // dtor
-
-  virtual Float_t GetTowerClusteringThreshold()const {Warning("GetTowerClusteringThreshold", "Not Defined") ; return 0. ; }
-  virtual Float_t GetTowerLocalMaxCut()const {Warning("GetTowerLocalMaxCut", "Not Defined") ; return 0. ; }
-  virtual Float_t GetTowerLogWeight()const {Warning("GetTowerLogWeight", "Not Defined") ; return 0. ; }
-  virtual Float_t GetTimeGate() const {Warning("GetTimeGate", "Not Defined") ; return 0. ; }
-  virtual Float_t GetPreShoClusteringThreshold()const {Warning("GetPreShoClusteringThreshold", "Not Defined") ; return 0. ; }
-  virtual Float_t GetPreShoLocalMaxCut()const {Warning("GetPreShoLocalMaxCut", "Not Defined") ; return 0. ; }
-  virtual Float_t GetPreShoLogWeight()const {Warning("GetPreShoLogWeight", "Not Defined") ; return 0. ; }
-  virtual const char *  GetRecPointsBranch() const {Warning("GetRecPointsBranch", "Not Defined") ; return 0 ; }
-  virtual const Int_t GetRecPointsInRun()  const {Warning("GetRecPointsInRun", "Not Defined") ; return 0 ; }
-  virtual const char *  GetDigitsBranch() const  {Warning("GetDigitsBranch", "Not Defined") ; return 0 ; }
-
-  virtual void MakeClusters() {Warning("MakeClusters", "Not Defined") ; }
-  virtual void Print(Option_t * option)const {Warning("Print", "Not Defined") ; }
-
-  virtual void SetECClusteringThreshold(Float_t cluth) {Warning("SetECClusteringThreshold", "Not Defined") ; }
-  virtual void SetECLocalMaxCut(Float_t cut) {Warning("SetECLocalMaxCut", "Not Defined") ; }
-  virtual void SetECLogWeight(Float_t w) {Warning("SetECLogWeight", "Not Defined") ; }
-  virtual void SetHCClusteringThreshold(Float_t cluth) {Warning("SetHCLogWeight", "Not Defined") ; }
-  virtual void SetHCLocalMaxCut(Float_t cut)            {Warning("SetHCLogWeight", "Not Defined") ; }
-  virtual void SetHCLogWeight(Float_t w)                {Warning("SetHCLogWeight", "Not Defined") ; }
-  virtual void SetTimeGate(Float_t gate) {Warning("SetTimeGate", "Not Defined") ; }
-  virtual void SetPREShoClusteringThreshold(Float_t cluth) {Warning("SetPREyShoClusteringThreshold", "Not Defined") ; }
-  virtual void SetPREShoLocalMaxCut(Float_t cut) {Warning("SetPREShoLocalMaxCut", "Not Defined") ; }
-  virtual void SetPREShoLogWeight(Float_t w) {Warning("SetPREShoLogWeight", "Not Defined") ; }
-  virtual void SetDigitsBranch(const char * title) {Warning("SetDigitsBranch", "Not Defined") ; }
-  virtual void SetRecPointsBranch(const char *title) {Warning("SetRecPointsBranch", "Not Defined") ; } 
-  virtual void SetUnfolding(Bool_t toUnfold ) {Warning("SetUnfolding", "Not Defined") ; }
+  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:
-  
-  TFile * fSplitFile ;             //! file in which RecPoints will eventually be stored
-  Bool_t  fToSplit ;               //! Should we write to splitted file
 
-  ClassDef(AliEMCALClusterizer,2)  // 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