Added the option to loop over a selected number of events, in preparation of ESD
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALClusterizer.h
1 #ifndef ALIEMCALCLUSTERIZER_H
2 #define ALIEMCALCLUSTERIZER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5                             
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 //  Base class for the clusterization algorithm (pure abstract)
10 //*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (SUBATECH & Kurchatov Institute)
11 // Modif: 
12 //  August 2002 Yves Schutz: clone PHOS as closely as possible and intoduction
13 //                           of new  IO (à la PHOS)
14 // --- ROOT system ---
15
16 #include "TTask.h" 
17
18 // --- Standard library ---
19
20 // --- AliRoot header files ---
21
22 class AliEMCALClusterizer : public TTask {
23
24 public:
25
26   AliEMCALClusterizer() ;        // default ctor
27   AliEMCALClusterizer(const TString alirunFileName, const TString eventFolderName = AliConfig::fgkDefaultEventFolderName) ;
28   virtual ~AliEMCALClusterizer() ; // dtor
29
30   virtual Float_t GetTowerClusteringThreshold()const {Warning("GetTowerClusteringThreshold", "Not Defined") ; return 0. ; }
31   virtual Float_t GetTowerLocalMaxCut()const {Warning("GetTowerLocalMaxCut", "Not Defined") ; return 0. ; }
32   virtual Float_t GetTowerLogWeight()const {Warning("GetTowerLogWeight", "Not Defined") ; return 0. ; }
33   virtual Float_t GetTimeGate() const {Warning("GetTimeGate", "Not Defined") ; return 0. ; }
34   virtual const char *  GetRecPointsBranch() const {Warning("GetRecPointsBranch", "Not Defined") ; return 0 ; }
35   virtual const Int_t GetRecPointsInRun()  const {Warning("GetRecPointsInRun", "Not Defined") ; return 0 ; }
36   virtual const char *  GetDigitsBranch() const  {Warning("GetDigitsBranch", "Not Defined") ; return 0 ; }
37
38   virtual void MakeClusters() const {Warning("MakeClusters", "Not Defined") ; }
39   virtual void Print(Option_t * /*option*/)const {Warning("Print", "Not Defined") ; }
40
41   virtual void SetECAClusteringThreshold(Float_t) = 0;
42   virtual void SetECALocalMaxCut(Float_t)         = 0;
43   virtual void SetECALogWeight(Float_t)           = 0;
44   virtual void SetTimeGate(Float_t)               = 0;
45   virtual void SetUnfolding(Bool_t)               = 0;
46   void SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
47   void SetEventFolderName(TString name) { fEventFolderName = name ; }
48
49   AliEMCALClusterizer & operator = (const AliEMCALClusterizer & /*rvalue*/)  {return *this ;} 
50
51   virtual const char * Version() const {Warning("Version", "Not Defined") ; return 0 ; } 
52
53 protected:
54   TString fEventFolderName ;  // event folder name
55   Int_t   fFirstEvent;        // first event to process
56   Int_t   fLastEvent;         // last  event to process
57
58   ClassDef(AliEMCALClusterizer,4)  // Clusterization algorithm class 
59
60 } ;
61
62 #endif // AliEMCALCLUSTERIZER_H