]>
Commit | Line | Data |
---|---|---|
fa86343a | 1 | #ifndef AliAODCaloCluster_H |
2 | #define AliAODCaloCluster_H | |
3 | /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //------------------------------------------------------------------------- | |
9 | // AOD calorimeter cluster class (for PHOS and EMCAL) | |
10 | // Author: Markus Oldenburg, CERN, | |
11 | // Gustavo Conesa, INFN | |
12 | //------------------------------------------------------------------------- | |
13 | ||
14 | #include "AliAODCluster.h" | |
15 | ||
16 | #include <TRefArray.h> | |
17 | #include <TArrayS.h> | |
18 | ||
19 | class AliAODCaloCluster : public AliAODCluster { | |
20 | ||
21 | public: | |
22 | ||
23 | AliAODCaloCluster(); | |
24 | AliAODCaloCluster(Int_t id, | |
25 | UInt_t nLabel, | |
26 | Int_t *label, | |
27 | Double_t energy, | |
28 | Double_t x[3], | |
29 | Double_t pid[9], | |
30 | Char_t ttype=kUndef, | |
31 | UInt_t selectInfo=0); | |
32 | ||
33 | AliAODCaloCluster(Int_t id, | |
34 | UInt_t nLabel, | |
35 | Int_t *label, | |
36 | Float_t energy, | |
37 | Float_t x[3], | |
38 | Float_t pid[9], | |
39 | Char_t ttype=kUndef, | |
40 | UInt_t selectInfo=0); | |
41 | ||
42 | virtual ~AliAODCaloCluster(); | |
43 | AliAODCaloCluster(const AliAODCaloCluster& clus); | |
44 | AliAODCaloCluster& operator=(const AliAODCaloCluster& clus); | |
45 | ||
46 | ||
47 | // getters | |
48 | Double_t GetDistToBadChannel() const { return fDistToBadChannel; } | |
49 | Double_t GetDispersion() const { return fDispersion; } | |
50 | Double_t GetM20() const { return fM20; } | |
51 | Double_t GetM01() const { return fM01; } | |
52 | Double_t GetM02() const { return fM02; } | |
53 | Double_t GetM11() const { return fM11; } | |
54 | Double_t GetEmcCpvDistance() const { return fEmcCpvDistance; } | |
55 | UShort_t GetNExMax() const { return fNExMax; } | |
56 | ||
57 | Int_t GetNTracksMatched() const { return fTracksMatched.GetEntriesFast(); } | |
58 | TObject *GetTrackMatched(Int_t i) const { return fTracksMatched.At(i); } | |
59 | Int_t GetNCellNumbers() const { return fCellNumber.GetSize(); } | |
60 | UShort_t GetCellNumber(Int_t i) const { return fCellNumber.At(i); } | |
61 | ||
62 | // setters | |
63 | void SetDistToBadChannel(Double_t dist) { fDistToBadChannel = dist; } | |
64 | void SetDispersion(Double_t disp) { fDispersion = disp; } | |
65 | void SetM20(Double_t m20) { fM20 = m20; } | |
66 | void SetM01(Double_t m01) { fM01 = m01; } | |
67 | void SetM02(Double_t m02) { fM02 = m02; } | |
68 | void SetM11(Double_t m11) { fM11 = m11; } | |
69 | void SetEmcCpvDistance(Double_t emcCpvDist) { fEmcCpvDistance = emcCpvDist; } | |
70 | void SetNExMax(UShort_t nExMax) { fNExMax = nExMax; } | |
71 | ||
72 | void SetCaloCluster(Double_t dist = -999., | |
73 | Double_t disp = -1., | |
74 | Double_t m20 = 0., | |
75 | Double_t m01 = 0., | |
76 | Double_t m02 = 0., | |
77 | Double_t m11 = 0., | |
78 | Double_t emcCpvDist = -999., | |
79 | UShort_t nExMax = 0) | |
80 | { | |
81 | fDistToBadChannel = dist; | |
82 | fDispersion = disp; | |
83 | fM20 = m20; | |
84 | fM01 = m01; | |
85 | fM02 = m02; | |
86 | fM11 = m11; | |
87 | fEmcCpvDistance = emcCpvDist; | |
88 | fNExMax = nExMax; | |
89 | } | |
90 | ||
91 | void AddTrackMatched(TObject *trk) { fTracksMatched.Add(trk); } | |
92 | void RemoveTrackMatched(TObject *trk) { fTracksMatched.Remove(trk); } | |
93 | Bool_t HasTrackMatched(TObject *trk) const; | |
94 | ||
95 | private : | |
96 | ||
97 | Double32_t fDistToBadChannel; // Distance to nearest bad channel | |
98 | Double32_t fDispersion; // cluster dispersion, for shape analysis | |
99 | Double32_t fM20; // 2-nd moment along the main eigen axis | |
100 | Double32_t fM01; // | |
101 | Double32_t fM02; // 2-nd moment along the second eigen axis | |
102 | Double32_t fM11; // 2-nd mixed moment Mxy | |
103 | Double32_t fEmcCpvDistance; // the distance from PHOS EMC rec.point to the closest CPV rec.point | |
104 | UShort_t fNExMax; // number of (Ex-)maxima before unfolding | |
105 | ||
106 | TRefArray fTracksMatched; // references to tracks close to cluster. First entry is the most likely match. | |
107 | TArrayS fCellNumber; // fired calorimeter cell numbers | |
108 | ||
109 | ClassDef(AliAODCaloCluster,1); | |
110 | }; | |
111 | ||
112 | #endif |