]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MFT/AliMuonForwardTrackPair.h
Protection against abnormal memory occupancy in the global tracking
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrackPair.h
1 #ifndef AliMuonForwardTrackPair_H
2 #define AliMuonForwardTrackPair_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 //      Description of an ALICE muon forward track pair, i.e. a pair of AliMuonForwardTrack objects
10 //
11 //      Contact author: antonio.uras@cern.ch
12 //
13 //====================================================================================================================================================
14
15 #include "AliLog.h"
16 #include "AliMUONTrackParam.h"
17 #include "TParticle.h"
18 #include "AliMuonForwardTrack.h"
19 #include "TClonesArray.h"
20 #include "TDatabasePDG.h"
21 #include "AliMUONTrackExtrap.h"
22 #include "TLorentzVector.h"
23
24 //====================================================================================================================================================
25
26 class AliMuonForwardTrackPair : public TObject {
27
28 public:
29
30   AliMuonForwardTrackPair();
31   AliMuonForwardTrackPair(AliMuonForwardTrack *track0, AliMuonForwardTrack *track1);
32
33   AliMuonForwardTrackPair(const AliMuonForwardTrackPair&);
34   AliMuonForwardTrackPair &operator=(const AliMuonForwardTrackPair&);
35   
36   virtual ~AliMuonForwardTrackPair() { fMuonForwardTracks->Delete(); delete fMuonForwardTracks; }
37
38   AliMuonForwardTrack* GetTrack(Int_t iTrack) { 
39     if (iTrack==0 || iTrack==1) return (AliMuonForwardTrack*) fMuonForwardTracks->At(iTrack); 
40     else return NULL; 
41   }
42
43   void SetKinemMC();
44   void SetKinem(Double_t z, Int_t nClusters=-1);
45   Bool_t IsKinemSet() { return fIsKinemSet; }
46
47   void SetPointOfClosestApproach();
48   void GetPointOfClosestApproach(Double_t *xyz) { 
49     xyz[0] = fXPointOfClosestApproach; 
50     xyz[1] = fYPointOfClosestApproach; 
51     xyz[2] = fZPointOfClosestApproach; 
52   }
53
54   Double_t GetWeightedOffset(Double_t x, Double_t y, Double_t z);
55   Double_t GetMassWithoutMFT(Double_t x, Double_t y, Double_t z, Int_t nClusters=-1);
56   Double_t GetMassMC()     { return fKinemMC.M(); }
57   Double_t GetRapidityMC() { return fKinemMC.Rapidity(); }
58   Double_t GetPtMC()       { return fKinemMC.Pt(); }
59   Double_t GetMass()     { return fKinem.M(); }
60   Double_t GetRapidity() { return fKinem.Rapidity(); }
61   Double_t GetPt()       { return fKinem.Pt(); }
62
63   Bool_t IsResonance();
64
65 protected:
66
67   TClonesArray *fMuonForwardTracks;
68   TLorentzVector fKinemMC, fKinem;
69   Bool_t fIsKinemSet;
70
71   Double_t fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach;
72
73   ClassDef(AliMuonForwardTrackPair,1)
74     
75 };
76
77 //====================================================================================================================================================
78
79 #endif
80
81
82