]>
Commit | Line | Data |
---|---|---|
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 |