]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSClusterizer.h
9176f203dc617507a42fd278123525c07b4e9706
[u/mrichter/AliRoot.git] / PHOS / AliPHOSClusterizer.h
1 #ifndef ALIPHOSCLUSTERIZER_H
2 #define ALIPHOSCLUSTERIZER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5                             
6 /* History of cvs commits:
7  *
8  * $Log$
9  * Revision 1.41  2007/08/07 14:12:03  kharlov
10  * Quality assurance added (Yves Schutz)
11  *
12  * Revision 1.40  2006/08/25 16:56:30  kharlov
13  * Compliance with Effective C++
14  *
15  * Revision 1.39  2006/03/30 13:04:56  hristov
16  * AliRawReader is not persistent
17  *
18  * Revision 1.38  2005/07/25 15:53:09  kharlov
19  * Set raw data reader
20  *
21  * Revision 1.37  2005/05/28 14:19:04  schutz
22  * Compilation warnings fixed by T.P.
23  *
24  */
25
26 //_________________________________________________________________________
27 //  Base class for the clusterization algorithm 
28 //*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (SUBATECH & Kurchatov Institute)
29 // --- ROOT system ---
30
31 #include <TObject.h>
32
33 class TTree;
34
35 class AliPHOSGeometry;
36 class AliPHOSQualAssDataMaker ; 
37
38 class AliPHOSClusterizer : public TObject {
39
40 public:
41
42   AliPHOSClusterizer() ;        // default ctor
43   AliPHOSClusterizer(AliPHOSGeometry *geom);
44   virtual ~AliPHOSClusterizer() ; // dtor
45
46   virtual void    Digits2Clusters(Option_t *option) = 0;
47   virtual Float_t GetEmcClusteringThreshold()const = 0;
48   virtual Float_t GetEmcLocalMaxCut()const = 0;
49   virtual Float_t GetEmcLogWeight()const = 0;
50   virtual Float_t GetEmcTimeGate() const = 0;
51   virtual Float_t GetCpvClusteringThreshold()const = 0;
52   virtual Float_t GetCpvLocalMaxCut()const = 0;
53   virtual Float_t GetCpvLogWeight()const = 0;
54
55   virtual void Print(const Option_t * = "") const = 0;
56
57   virtual void SetEmcClusteringThreshold(Float_t) = 0;
58   virtual void SetEmcLocalMaxCut(Float_t )        = 0;
59     
60   virtual void SetEmcLogWeight(Float_t)           = 0;
61   virtual void SetEmcTimeGate(Float_t)            = 0;
62   virtual void SetCpvClusteringThreshold(Float_t) = 0;
63   virtual void SetCpvLocalMaxCut(Float_t)         = 0;
64   virtual void SetCpvLogWeight(Float_t)           = 0;
65   virtual void SetUnfolding(Bool_t)               = 0;
66
67   virtual const char * Version() const = 0;
68
69   virtual void SetInput(TTree *digitsTree);
70   virtual void SetOutput(TTree *clustersTree);
71
72 protected:
73   AliPHOSQualAssDataMaker * GetQualAssDataMaker() const { return fQADM ; } 
74
75   AliPHOSGeometry *fGeom; // Pointer to PHOS geometry
76   AliPHOSQualAssDataMaker * fQADM ; //!Quality Assurance Data Maker
77   TClonesArray *fDigitsArr; // Array with input digits
78   TTree *fTreeR; // Tree with output clusters
79   TObjArray *fEMCRecPoints; // Array with EMC clusters
80   TObjArray *fCPVRecPoints; // Array with CPV clusters
81
82 private:
83   AliPHOSClusterizer(const AliPHOSClusterizer & clusterizer);
84   AliPHOSClusterizer & operator = (const AliPHOSClusterizer &clusterer);
85
86   ClassDef(AliPHOSClusterizer,5)  // Clusterization algorithm class 
87
88 } ;
89
90 #endif // AliPHOSCLUSTERIZER_H