]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODCaloCluster.h
Misalignment according survey data
[u/mrichter/AliRoot.git] / STEER / AliAODCaloCluster.h
CommitLineData
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
19class 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