]>
Commit | Line | Data |
---|---|---|
d5efea33 | 1 | #ifndef ALIESDMUONCLUSTER_H |
2 | #define ALIESDMUONCLUSTER_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 | /// \class AliESDMuonCluster | |
10 | /// \brief Class to describe the MUON clusters in the Event Summary Data | |
11 | // Author Philippe Pillot, Subatech | |
12 | ||
13 | ||
14 | #include <TObject.h> | |
15 | ||
c34d2b8c | 16 | class AliESDMuonPad; |
17 | class TClonesArray; | |
18 | ||
d5efea33 | 19 | class AliESDMuonCluster : public TObject { |
20 | public: | |
21 | AliESDMuonCluster(); // Constructor | |
c34d2b8c | 22 | virtual ~AliESDMuonCluster(); //< Destructor |
d5efea33 | 23 | AliESDMuonCluster(const AliESDMuonCluster& cluster); |
24 | AliESDMuonCluster& operator=(const AliESDMuonCluster& cluster); | |
25 | ||
c34d2b8c | 26 | virtual void Clear(Option_t* opt = ""); |
d5efea33 | 27 | |
28 | /// Set coordinates (cm) | |
29 | void SetXYZ(Double_t x, Double_t y, Double_t z) {fXYZ[0] = x; fXYZ[1] = y; fXYZ[2] = z;} | |
30 | /// Return X-position (cm) | |
31 | Double_t GetX() const {return fXYZ[0];} | |
32 | /// Return Y-position (cm) | |
33 | Double_t GetY() const {return fXYZ[1];} | |
34 | /// Return Z-position (cm) | |
35 | Double_t GetZ() const {return fXYZ[2];} | |
36 | ||
37 | /// Set (X,Y) resolution (cm) | |
38 | void SetErrXY(Double_t errX, Double_t errY) {fErrXY[0] = errX; fErrXY[1] = errY;} | |
39 | /// Return X-resolution (cm) | |
40 | Double_t GetErrX() const {return fErrXY[0];} | |
41 | /// Return X-resolution**2 (cm**2) | |
42 | Double_t GetErrX2() const {return fErrXY[0]*fErrXY[0];} | |
43 | /// Return Y-resolution (cm) | |
44 | Double_t GetErrY() const {return fErrXY[1];} | |
45 | /// Return Y-resolution**2 (cm**2) | |
46 | Double_t GetErrY2() const {return fErrXY[1]*fErrXY[1];} | |
47 | ||
c34d2b8c | 48 | /// Set the total charge |
49 | void SetCharge(Double_t charge) {fCharge = charge;} | |
50 | /// Return the total charge | |
51 | Double_t GetCharge() const {return fCharge;} | |
52 | ||
53 | /// Set the chi2 value | |
54 | void SetChi2(Double_t chi2) {fChi2 = chi2;} | |
55 | /// Return the chi2 value | |
56 | Double_t GetChi2() const {return fChi2;} | |
57 | ||
d5efea33 | 58 | /// Return chamber id (0..), part of the uniqueID |
59 | Int_t GetChamberId() const {return (GetUniqueID() & 0xF0000000) >> 28;} | |
60 | /// Return detection element id, part of the uniqueID | |
61 | Int_t GetDetElemId() const {return (GetUniqueID() & 0x0FFE0000) >> 17;} | |
c34d2b8c | 62 | /// Return the index of this cluster (0..), part of the uniqueID |
d5efea33 | 63 | Int_t GetClusterIndex() const {return (GetUniqueID() & 0x0001FFFF);} |
64 | ||
c34d2b8c | 65 | // Methods to get, fill and check the array of associated pads |
66 | Int_t GetNPads() const; | |
67 | TClonesArray& GetPads() const; | |
68 | void AddPad(const AliESDMuonPad &pad); | |
69 | Bool_t PadsStored() const; | |
70 | ||
2e2d0c44 | 71 | /// Set the corresponding MC track number |
72 | void SetLabel(Int_t label) {fLabel = label;} | |
73 | /// Return the corresponding MC track number | |
74 | Int_t GetLabel() const {return fLabel;} | |
75 | ||
d5efea33 | 76 | void Print(Option_t */*option*/ = "") const; |
77 | ||
78 | ||
79 | protected: | |
80 | Double32_t fXYZ[3]; ///< cluster position | |
81 | Double32_t fErrXY[2]; ///< transverse position errors | |
c34d2b8c | 82 | Double32_t fCharge; ///< cluster charge |
83 | Double32_t fChi2; ///< cluster chi2 | |
84 | ||
85 | mutable TClonesArray* fPads; ///< Array of pads attached to the cluster | |
d5efea33 | 86 | |
2e2d0c44 | 87 | Int_t fLabel; ///< point to the corresponding MC track |
88 | ||
d5efea33 | 89 | |
2e2d0c44 | 90 | ClassDef(AliESDMuonCluster, 3) // MUON ESD cluster class |
d5efea33 | 91 | }; |
92 | ||
93 | #endif |