]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MFT/AliMuonForwardTrackPair.h
Modified init of AliMuonForwardTrack
[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   Int_t GetCharge() { return GetTrack(0)->GetCharge() + GetTrack(1)->GetCharge(); }
44
45   void SetKinemMC();
46   void SetKinem(Double_t z, Int_t nClusters=-1);
47   Bool_t IsKinemSet() { return fIsKinemSet; }
48
49   void SetPointOfClosestApproach();
50   void GetPointOfClosestApproach(Double_t *xyz) { 
51     xyz[0] = fXPointOfClosestApproach; 
52     xyz[1] = fYPointOfClosestApproach; 
53     xyz[2] = fZPointOfClosestApproach; 
54   }
55
56   Double_t GetWeightedOffset(Double_t x, Double_t y, Double_t z);
57   Double_t GetMassWithoutMFT(Double_t x, Double_t y, Double_t z, Int_t nClusters=-1);
58   Double_t GetMassMC()     { return fKinemMC.M(); }
59   Double_t GetRapidityMC() { return fKinemMC.Rapidity(); }
60   Double_t GetPtMC()       { return fKinemMC.Pt(); }
61   Double_t GetMass()     { return fKinem.M(); }
62   Double_t GetRapidity() { return fKinem.Rapidity(); }
63   Double_t GetPt()       { return fKinem.Pt(); }
64
65   Bool_t IsResonance();
66
67 protected:
68
69   TClonesArray *fMuonForwardTracks;
70   TLorentzVector fKinemMC, fKinem;
71   Bool_t fIsKinemSet;
72
73   Double_t fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach;
74
75   ClassDef(AliMuonForwardTrackPair,1)
76     
77 };
78
79 //====================================================================================================================================================
80
81 #endif
82
83
84