]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MFT/AliMFTCluster.h
Small memory leak fixed, https://savannah.cern.ch/bugs/?89027
[u/mrichter/AliRoot.git] / MFT / AliMFTCluster.h
1 #ifndef AliMFTCluster_H
2 #define AliMFTCluster_H 
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //====================================================================================================================================================
8 //
9 //      Class for the description of the clusters of the ALICE Muon Forward Tracker
10 //
11 //      Contact author: antonio.uras@cern.ch
12 //
13 //====================================================================================================================================================
14
15 #include "AliMUONRawCluster.h"
16 #include "AliMUONVCluster.h"
17 #include "TObject.h"
18
19 //====================================================================================================================================================
20
21 class AliMFTCluster : public TObject {
22
23 public:
24
25   AliMFTCluster();
26 //   AliMFTCluster(const AliMFTCluster& pt);
27 //   AliMFTCluster& operator=(const AliMFTCluster &source);
28
29   virtual ~AliMFTCluster() {};  // destructor
30
31   void SetXYZ(Double_t x, Double_t y, Double_t z) { fX=x; fY=y; fZ=z; }
32
33   void SetX(Double_t x) { fX = x; }
34   void SetY(Double_t y) { fY = y; }
35   void SetZ(Double_t z) { fZ = z; }
36
37   Double_t GetX() const { return fX; }
38   Double_t GetY() const { return fY; }
39   Double_t GetZ() const { return fZ; }
40   
41   void SetErrXYZ(Double_t errX, Double_t errY, Double_t errZ) { fErrX = errX; fErrY = errY; fErrZ = errZ; }
42        
43   void SetErrX(Double_t errX) { fErrX = errX; }
44   void SetErrY(Double_t errY) { fErrY = errY; }
45   void SetErrZ(Double_t errZ) { fErrZ = errZ; }
46
47   Double_t GetErrX()  const { return fErrX; }
48   Double_t GetErrY()  const { return fErrY; }
49   Double_t GetErrZ()  const { return fErrZ; }
50   Double_t GetErrX2() const { return fErrX*fErrX; }
51   Double_t GetErrY2() const { return fErrY*fErrY; }
52   Double_t GetErrZ2() const { return fErrZ*fErrZ; }
53   
54   void     SetNElectrons(Double_t nElectrons) { fNElectrons = nElectrons; }
55   Double_t GetNElectrons() const { return fNElectrons; }
56   
57   void  AddMCLabel(Int_t label) { if (fNMCTracks==fNMaxMCTracks) return; else fMCLabel[fNMCTracks++]=label; }
58   Int_t GetNMCTracks() const { return fNMCTracks; }
59   Int_t GetMCLabel(Int_t track) const { if (track<fNMCTracks && track>=0) return fMCLabel[track]; else return -1; }
60
61   void  SetPlane(Int_t plane) { fPlane = plane; }
62   Int_t GetPlane() const { return fPlane; }
63
64   void  SetSize(Int_t size) { fSize = size; }
65   Int_t GetSize() const { return fSize; }
66
67   void SetLocalChi2(Double_t chi2) { fLocalChi2 = chi2; }
68   void SetTrackChi2(Double_t chi2) { fTrackChi2 = chi2; }
69
70   Double_t GetLocalChi2() { return fLocalChi2; }
71   Double_t GetTrackChi2() { return fTrackChi2; }
72
73   AliMUONRawCluster* CreateMUONCluster();
74   
75 private:
76
77   static const Int_t fNMaxMCTracks = 30;
78
79   Double_t fX, fY, fZ;   // cluster global coordinates
80   Double_t fErrX, fErrY, fErrZ;
81
82   Double_t fNElectrons;
83   Int_t fNMCTracks;
84   Int_t fPlane;
85   Int_t fMCLabel[fNMaxMCTracks];
86
87   Int_t fSize;   // the number of digits composing the cluster
88
89   Double_t fTrackChi2; // Chi2 of the track when the associated cluster was attached
90   Double_t fLocalChi2; // Local chi2 of the associated cluster with respect to the track
91   
92   ClassDef(AliMFTCluster, 1)
93
94 };
95
96 //====================================================================================================================================================
97         
98 #endif
99