ROOT logo
#ifndef ALIPHOSCLUSTERIZER_H
#define ALIPHOSCLUSTERIZER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
                            
/* History of cvs commits:
 *
 * $Log$
 * Revision 1.43  2007/09/26 14:22:17  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.42  2007/08/28 12:55:07  policheh
 * Loaders removed from the reconstruction code (C.Cheshkov)
 *
 * Revision 1.41  2007/08/07 14:12:03  kharlov
 * Quality assurance added (Yves Schutz)
 *
 * Revision 1.40  2006/08/25 16:56:30  kharlov
 * Compliance with Effective C++
 *
 * Revision 1.39  2006/03/30 13:04:56  hristov
 * AliRawReader is not persistent
 *
 * Revision 1.38  2005/07/25 15:53:09  kharlov
 * Set raw data reader
 *
 * Revision 1.37  2005/05/28 14:19:04  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
//  Base class for the clusterization algorithm 
//*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (SUBATECH & Kurchatov Institute)
// --- ROOT system ---

#include <TObject.h>

class TTree;

class AliPHOSGeometry;
class AliPHOSCalibData ;

using std::ostream;

class AliPHOSClusterizer : public TObject {

public:

  AliPHOSClusterizer() ;        // default ctor
  AliPHOSClusterizer(AliPHOSGeometry *geom);
  virtual ~AliPHOSClusterizer() ; // dtor

  virtual void    Digits2Clusters(Option_t *option) = 0;
  virtual Float_t GetEmcClusteringThreshold()const = 0;
  virtual Float_t GetEmcLocalMaxCut()const = 0;
  virtual Float_t GetEmcLogWeight()const = 0;
  virtual Float_t GetCpvClusteringThreshold()const = 0;
  virtual Float_t GetCpvLocalMaxCut()const = 0;
  virtual Float_t GetCpvLogWeight()const = 0;

  virtual void Print(const Option_t * = "") const = 0;

  virtual void SetEmcClusteringThreshold(Float_t) = 0;
  virtual void SetEmcLocalMaxCut(Float_t )        = 0;
    
  virtual void SetEmcLogWeight(Float_t)           = 0;
  virtual void SetCpvClusteringThreshold(Float_t) = 0;
  virtual void SetCpvLocalMaxCut(Float_t)         = 0;
  virtual void SetCpvLogWeight(Float_t)           = 0;
  virtual void SetUnfolding(Bool_t)               = 0;

  virtual const char * Version() const = 0;

  virtual void SetInput(TTree *digitsTree);
  virtual void SetOutput(TTree *clustersTree);

protected:

  static AliPHOSCalibData * fgCalibData ;   //! Calibration database if aval.
  AliPHOSGeometry *fGeom; // Pointer to PHOS geometry
  TClonesArray *fDigitsArr; // Array with input digits
  TTree *fTreeR; // Tree with output clusters
  TObjArray *fEMCRecPoints; // Array with EMC clusters
  TObjArray *fCPVRecPoints; // Array with CPV clusters

private:
  AliPHOSClusterizer(const AliPHOSClusterizer & clusterizer);
  AliPHOSClusterizer & operator = (const AliPHOSClusterizer &clusterer);

  ClassDef(AliPHOSClusterizer,5)  // Clusterization algorithm class 

} ;

#endif // AliPHOSCLUSTERIZER_H
 AliPHOSClusterizer.h:1
 AliPHOSClusterizer.h:2
 AliPHOSClusterizer.h:3
 AliPHOSClusterizer.h:4
 AliPHOSClusterizer.h:5
 AliPHOSClusterizer.h:6
 AliPHOSClusterizer.h:7
 AliPHOSClusterizer.h:8
 AliPHOSClusterizer.h:9
 AliPHOSClusterizer.h:10
 AliPHOSClusterizer.h:11
 AliPHOSClusterizer.h:12
 AliPHOSClusterizer.h:13
 AliPHOSClusterizer.h:14
 AliPHOSClusterizer.h:15
 AliPHOSClusterizer.h:16
 AliPHOSClusterizer.h:17
 AliPHOSClusterizer.h:18
 AliPHOSClusterizer.h:19
 AliPHOSClusterizer.h:20
 AliPHOSClusterizer.h:21
 AliPHOSClusterizer.h:22
 AliPHOSClusterizer.h:23
 AliPHOSClusterizer.h:24
 AliPHOSClusterizer.h:25
 AliPHOSClusterizer.h:26
 AliPHOSClusterizer.h:27
 AliPHOSClusterizer.h:28
 AliPHOSClusterizer.h:29
 AliPHOSClusterizer.h:30
 AliPHOSClusterizer.h:31
 AliPHOSClusterizer.h:32
 AliPHOSClusterizer.h:33
 AliPHOSClusterizer.h:34
 AliPHOSClusterizer.h:35
 AliPHOSClusterizer.h:36
 AliPHOSClusterizer.h:37
 AliPHOSClusterizer.h:38
 AliPHOSClusterizer.h:39
 AliPHOSClusterizer.h:40
 AliPHOSClusterizer.h:41
 AliPHOSClusterizer.h:42
 AliPHOSClusterizer.h:43
 AliPHOSClusterizer.h:44
 AliPHOSClusterizer.h:45
 AliPHOSClusterizer.h:46
 AliPHOSClusterizer.h:47
 AliPHOSClusterizer.h:48
 AliPHOSClusterizer.h:49
 AliPHOSClusterizer.h:50
 AliPHOSClusterizer.h:51
 AliPHOSClusterizer.h:52
 AliPHOSClusterizer.h:53
 AliPHOSClusterizer.h:54
 AliPHOSClusterizer.h:55
 AliPHOSClusterizer.h:56
 AliPHOSClusterizer.h:57
 AliPHOSClusterizer.h:58
 AliPHOSClusterizer.h:59
 AliPHOSClusterizer.h:60
 AliPHOSClusterizer.h:61
 AliPHOSClusterizer.h:62
 AliPHOSClusterizer.h:63
 AliPHOSClusterizer.h:64
 AliPHOSClusterizer.h:65
 AliPHOSClusterizer.h:66
 AliPHOSClusterizer.h:67
 AliPHOSClusterizer.h:68
 AliPHOSClusterizer.h:69
 AliPHOSClusterizer.h:70
 AliPHOSClusterizer.h:71
 AliPHOSClusterizer.h:72
 AliPHOSClusterizer.h:73
 AliPHOSClusterizer.h:74
 AliPHOSClusterizer.h:75
 AliPHOSClusterizer.h:76
 AliPHOSClusterizer.h:77
 AliPHOSClusterizer.h:78
 AliPHOSClusterizer.h:79
 AliPHOSClusterizer.h:80
 AliPHOSClusterizer.h:81
 AliPHOSClusterizer.h:82
 AliPHOSClusterizer.h:83
 AliPHOSClusterizer.h:84
 AliPHOSClusterizer.h:85
 AliPHOSClusterizer.h:86
 AliPHOSClusterizer.h:87
 AliPHOSClusterizer.h:88
 AliPHOSClusterizer.h:89
 AliPHOSClusterizer.h:90
 AliPHOSClusterizer.h:91
 AliPHOSClusterizer.h:92
 AliPHOSClusterizer.h:93
 AliPHOSClusterizer.h:94
 AliPHOSClusterizer.h:95