Introduction of the reference to Copyright and cvs Id
[u/mrichter/AliRoot.git] / RALICE / AliCalcluster.h
1 #ifndef ALICALCLUSTER_H
2 #define ALICALCLUSTER_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 // Class AliCalcluster
10 // Description of a cluster of calorimeter modules.
11 // A matrix geometry is assumed in which a cluster center
12 // is identified by (row,col) and contains sig as signal
13 // being the signal of the complete cluster.
14 // Some info about cluster topology is provided in order
15 // to enable EM or hadronic cluster identification
16 //
17 //--- NvE 13-jun-1997 UU-SAP Utrecht
18 ///////////////////////////////////////////////////////////////////////////
19  
20 #include <iostream.h>
21 #include <math.h>
22  
23 #include "TObject.h"
24 #include "TObjArray.h"
25 #include "TString.h"
26  
27 #include "AliCalmodule.h"
28  
29 class AliCalcluster : public TObject,public AliPosition
30 {
31  public:
32   AliCalcluster();                   // Default constructor, all data initialised to 0
33   ~AliCalcluster();                  // Default destructor
34   AliCalcluster(AliCalmodule& m);    // Create new cluster starting at module m
35   Int_t GetRow();                    // Return row number of cluster center
36   Int_t GetColumn();                 // Return column number of cluster center
37   Float_t GetSignal(Int_t n=0);      // Return signal of nxn matrix around the center
38   Int_t GetNmodules();               // Return number of modules in cluster
39   Float_t GetRowDispersion();        // Return normalised row dispersion of cluster
40   Float_t GetColumnDispersion();     // Return normalised column dispersion of cluster
41   void Start(AliCalmodule& m);       // Reset cluster data to start with module m
42   void Add(AliCalmodule& m);         // Add module data to cluster
43   void AddVetoSignal(Float_t* r,TString f,Float_t s=0); // Associate (extrapolated) signal
44   AliSignal* GetVetoSignal(Int_t j); // Access to veto signal number j
45   Int_t GetNvetos();                 // Provide the number of veto signals
46  
47  protected:
48   AliCalmodule* fCenter; // Pointer to the central module of the cluster
49   Float_t fSig;          // The total signal value of the cluster
50   Int_t fNmods;          // The number of modules in the cluster
51   Float_t fSig11;        // Cluster signal of the central module
52   Float_t fSig33;        // Cluster signal in 3x3 matrix around the center
53   Float_t fSig55;        // Cluster signal in 5x5 matrix around the center
54   Float_t fRowdisp;      // Row dispersion of cluster (not normalised)
55   Float_t fColdisp;      // Column dispersion of cluster (not normalised)
56   Int_t fNvetos;         // The number of associated veto signals
57   TObjArray* fVetos;     // The array of associated veto signals
58  
59  ClassDef(AliCalcluster,1) // Class definition to enable ROOT I/O
60 };
61 #endif