]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONClusterInfo.h
In AliMUONSt1GeometryBuilderV: fixing overlap
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterInfo.h
CommitLineData
faa8d921 1#ifndef ALIMUONCLUSTERINFO_H
2#define ALIMUONCLUSTERINFO_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup evaluation
10/// \class AliMUONClusterInfo
11/// \brief Class to summarize ESD data at cluster
12// Author Philippe Pillot, Subatech
13
14
15#include <TObject.h>
16#include <TClonesArray.h>
17#include <AliMUONPadInfo.h>
18
19class AliMUONClusterInfo : public TObject {
20public:
21 AliMUONClusterInfo(); // Constructor
22 virtual ~AliMUONClusterInfo(); //< Destructor
23 AliMUONClusterInfo(const AliMUONClusterInfo& cluster);
24 AliMUONClusterInfo& operator=(const AliMUONClusterInfo& cluster);
25
26 virtual void Clear(Option_t* opt = "");
27
28 void Print(Option_t * option = "") const;
29
30
31 // ------ general info ------
32 /// set event number
33 void SetEventId(Int_t eventId) {fEventId = eventId;}
34 /// return event ID
35 Int_t GetEventId() const {return fEventId;}
36
37 /// Set cluster/track Z-position (cm)
38 void SetZ(Double_t z) {fZ = z;}
39 /// Return cluster/track Z-position (cm)
40 Double_t GetZ() const {return fZ;}
41
42
43 // ------ cluster info ------
44 /// set cluster ID
45 void SetClusterId(UInt_t clusterId) {fClusterId = clusterId; SetUniqueID(clusterId);}
46 /// return cluster ID
47 UInt_t GetClusterId() const {return fClusterId;}
48 /// Return chamber ID (0..), part of the cluster ID
49 Int_t GetChamberId() const {return (fClusterId & 0xF0000000) >> 28;}
50 /// Return detection element ID, part of the cluster ID
51 Int_t GetDetElemId() const {return (fClusterId & 0x0FFE0000) >> 17;}
52 /// Return the index of this cluster (0..), part of the cluster ID
53 Int_t GetClusterIndex() const {return (fClusterId & 0x0001FFFF);}
54
55 /// Set cluster coordinates (cm)
56 void SetClusterXY(Double_t x, Double_t y) {fClusterX = x; fClusterY = y;}
57 /// Return cluster X-position (cm)
58 Double_t GetClusterX() const {return fClusterX;}
59 /// Return cluster Y-position (cm)
60 Double_t GetClusterY() const {return fClusterY;}
61
62 /// Set cluster resolution (cm)
63 void SetClusterXYErr(Double_t xErr, Double_t yErr) {fClusterXErr = xErr; fClusterYErr = yErr;}
64 /// Return cluster X-resolution (cm)
65 Double_t GetClusterXErr() const {return fClusterXErr;}
66 /// Return cluster Y-resolution (cm)
67 Double_t GetClusterYErr() const {return fClusterYErr;}
68
69 /// set cluster Chi2
70 void SetClusterChi2(Double_t clusterChi2) {fClusterChi2 = clusterChi2;}
71 /// return cluster Chi2
72 Double_t GetClusterChi2() const {return fClusterChi2;}
73
74 /// Set the total cluster charge
75 void SetClusterCharge(Double_t charge) {fClusterCharge = charge;}
76 /// Return the total cluster charge
77 Double_t GetClusterCharge() const {return fClusterCharge;}
78
79
80 // ------ track info ------
81 /// set track ID
82 void SetTrackId(UInt_t trackId) {fTrackId = trackId;}
83 /// return track ID
84 UInt_t GetTrackId() const {return fTrackId;}
85
86 /// Set track coordinates (cm)
87 void SetTrackXY(Double_t x, Double_t y) {fTrackX = x; fTrackY = y;}
88 /// Return track X-position (cm)
89 Double_t GetTrackX() const {return fTrackX;}
90 /// Return track Y-position (cm)
91 Double_t GetTrackY() const {return fTrackY;}
92 /// Set track angles (radian)
93 void SetTrackThetaXY(Double_t thetaX, Double_t thetaY) {fTrackThetaX = thetaX; fTrackThetaY = thetaY;}
94 /// Return track ThetaX angle (radian)
95 Double_t GetTrackThetaX() const {return fTrackThetaX;}
96 /// Return track ThetaY angle (radian)
97 Double_t GetTrackThetaY() const {return fTrackThetaY;}
98 /// Set track momentum (MeV/c)
99 void SetTrackP(Double_t p) {fTrackP = p;}
100 /// Return track momentum (MeV/c)
101 Double_t GetTrackP() const {return fTrackP;}
102
103 /// Set track resolution (cm)
104 void SetTrackXYErr(Double_t xErr, Double_t yErr) {fTrackXErr = xErr; fTrackYErr = yErr;}
105 /// Return track X-resolution (cm)
106 Double_t GetTrackXErr() const {return fTrackXErr;}
107 /// Return track Y-resolution (cm)
108 Double_t GetTrackYErr() const {return fTrackYErr;}
109
110 /// set track Chi2
111 void SetTrackChi2(Double_t trackChi2) {fTrackChi2 = trackChi2;}
112 /// return track Chi2
113 Double_t GetTrackChi2() const {return fTrackChi2;}
114
115 /// Set the muon charge
116 void SetTrackCharge(Short_t charge) {fTrackCharge = charge;}
117 /// Return the muon charge
118 Short_t GetTrackCharge() const {return fTrackCharge;}
119
120
121 // ------ pad info ------
122 /// return the number of pads attached to the cluster
123 Int_t GetNPads() const {return fPads->GetEntriesFast();}
124 /// return the array of pads attached to the cluster
125 TClonesArray& GetPads() const {return *fPads;}
126 /// attach a pad to the cluster
127 void AddPad(const AliMUONPadInfo &pad) {new ((*fPads)[fNPads++]) AliMUONPadInfo(pad);}
128
129
130protected:
131
132 // general info
133 Int_t fEventId; ///< event number
134 Double32_t fZ; ///< track/cluster Z position
135
136 // cluster info
137 UInt_t fClusterId; ///< cluster ID
138 Double32_t fClusterX; ///< cluster X position
139 Double32_t fClusterY; ///< cluster Y position
140 Double32_t fClusterXErr; ///< cluster X resolution
141 Double32_t fClusterYErr; ///< cluster Y resolution
142 Double32_t fClusterChi2; ///< cluster chi2
143 Double32_t fClusterCharge; ///< cluster charge
144
145 // track info
146 UInt_t fTrackId; ///< track ID
147 Double32_t fTrackX; ///< track X position
148 Double32_t fTrackY; ///< track Y position
149 Double32_t fTrackThetaX; ///< track Theta_X angle
150 Double32_t fTrackThetaY; ///< track Theta_Y angle
151 Double32_t fTrackP; ///< track momentum
152 Double32_t fTrackXErr; ///< track X resolution
153 Double32_t fTrackYErr; ///< track Y resolution
154 Double32_t fTrackChi2; ///< track normalized chi2
155 Short_t fTrackCharge; ///< track charge
156
157 Int_t fNPads; ///< nPads
158 TClonesArray* fPads; ///< Array of pads attached to the cluster
159
160 ClassDef(AliMUONClusterInfo, 2)
161};
162
163#endif