25-apr-2002 NvE Projectile and target specifications introduced in AliEvent.
[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 #include <iostream.h>
9 #include <math.h>
10  
11 #include "TObject.h"
12 #include "TObjArray.h"
13 #include "TString.h"
14  
15 #include "AliCalmodule.h"
16 #include "AliMath.h"
17  
18 class AliCalcluster : public TObject,public AliPosition
19 {
20  public:
21   AliCalcluster();                   // Default constructor, all data initialised to 0
22   ~AliCalcluster();                  // Default destructor
23   AliCalcluster(AliCalmodule& m);    // Create new cluster starting at module m
24   Int_t GetRow();                    // Return row number of cluster center
25   Int_t GetColumn();                 // Return column number of cluster center
26   Float_t GetSignal(Int_t n=0);      // Return signal of nxn matrix around the center
27   Int_t GetNmodules();               // Return number of modules in cluster
28   Float_t GetRowDispersion();        // Return normalised row dispersion of cluster
29   Float_t GetColumnDispersion();     // Return normalised column dispersion of cluster
30   void Start(AliCalmodule& m);       // Reset cluster data to start with module m
31   void Add(AliCalmodule& m);         // Add module data to cluster
32   void AddVetoSignal(AliSignal& s,Int_t extr=1); // Associate (extrapolated) signal
33   void AddVetoSignal(AliSignal* s,Int_t extr=1) { AddVetoSignal(*s,extr); }
34   AliSignal* GetVetoSignal(Int_t j); // Access to veto signal number j
35   Int_t GetNvetos();                 // Provide the number of veto signals
36   Float_t GetVetoLevel();            // Provide confidence level of best associated veto hit
37   Int_t HasVetoHit(Double_t cl);     // Check for ass. veto hit with conf. level > cl
38  
39  protected:
40   AliCalmodule* fCenter; // Pointer to the central module of the cluster
41   Float_t fSig;          // The total signal value of the cluster
42   Int_t fNmods;          // The number of modules in the cluster
43   Float_t fSig11;        // Cluster signal of the central module
44   Float_t fSig33;        // Cluster signal in 3x3 matrix around the center
45   Float_t fSig55;        // Cluster signal in 5x5 matrix around the center
46   Float_t fRowdisp;      // Row dispersion of cluster (not normalised)
47   Float_t fColdisp;      // Column dispersion of cluster (not normalised)
48   Int_t fNvetos;         // The number of associated veto signals
49   TObjArray* fVetos;     // The array of associated veto signals
50  
51  ClassDef(AliCalcluster,2) // Description of a cluster of calorimeter modules.
52 };
53 #endif