AliRoot Core  3dc7879 (3dc7879)
AliAODDimuon.h
Go to the documentation of this file.
1 #ifndef AliAODDimuon_H
2 #define AliAODDimuon_H
3 
21 
22 // 2007/07/07 v1.00 Initial version
23 // 2007/12/06 v1.01 Introduction of AliAODEventInfo
24 // 2007/12/18 v1.02 Corrected CostCS for Like-Sign, added CostKh, CostHe and xf
25 // 2008/02/01 v1.03 Apply coding conventions
26 
27 #include "TRef.h"
28 #include "AliVParticle.h"
29 #include "AliAODTrack.h"
30 
31 class TLorentzVector;
32 
33 class AliAODDimuon: public AliVParticle {
34 public:
35  AliAODDimuon();
36  AliAODDimuon(const AliAODDimuon& dimu);
37  AliAODDimuon &operator=(const AliAODDimuon& dimu);
38  AliAODDimuon(TObject *mu0, TObject *mu1);
39  virtual ~AliAODDimuon();
40 
41  virtual void Clear(Option_t* opt="");
42 
43  // Methods to access kinematics
44  virtual Double_t Px() const;
45  virtual Double_t Py() const;
46  virtual Double_t Pz() const;
47  virtual Bool_t PxPyPz(Double_t* p) const { p[0]=Px(); p[1]=Py(); p[2]=Pz(); return 1;}
48  virtual Double_t Pt() const;
49  virtual Double_t P() const;
50 
51  virtual Double_t OneOverPt() const {return Pt()>0 ? 1./Pt() : -999999999;}
52  virtual Double_t Phi() const;
53  virtual Double_t Theta() const;
54 
55  virtual Double_t E() const;
56  virtual Double_t M() const;
57 
58  virtual Double_t Mass() const { return M(); }
59 
60  virtual Double_t Eta() const;
61  virtual Double_t Y() const;
62 
63  virtual Short_t Charge() const;
64 
65  // Dimuon vertex will be implemented when the muon track covariance matrix
66  // at vertex will be included in the ESD (and AOD)
67  // It would require also the information about magnetic field when filling AOD
68  virtual Double_t Xv() const {return -999999999;}
69  virtual Double_t Yv() const {return -999999999;}
70  virtual Double_t Zv() const {return -999999999;}
71  virtual Bool_t XvYvZv(Double_t* v) const { v[0]=-999999999; v[1]=-999999999; v[2]=-999999999; return 0;}
72 
73  // Added functions
74  Double_t XF(); // Feynman x
75  Double_t CostCS(); // Cosinus of the Collins-Soper polar decay angle
76  Double_t CostHe(); // Cosinus of the Helicity polar decay angle
77  Double_t PhiCS(); // Azimuthal angle in the Collins-Soper frame
78  Double_t PhiHe(); // Azimuthal angle in the Helicity frame
79  Int_t AnyPt();
80  Int_t LowPt();
81  Int_t HighPt();
82  Double_t MaxChi2Match();
83  // PID
84  virtual const Double_t *PID() const {return 0;} // return PID object (to be defined, still)
85 
86  //
87  Int_t GetLabel() const {return -1;}
88  // Additional getters and setters
89  AliAODTrack* GetMu(Int_t imu=0) const {return Mu(imu); } // Get a pointer to a muon
90  AliAODTrack* Mu(Int_t imu=0) const {return (imu==0||imu==1)&&(fMu[imu]!=0) ? (AliAODTrack*)fMu[imu].GetObject() : 0; } // Get a pointer to a muon
91 
92  void SetMu(Int_t imu=0, AliAODTrack *mu=0);
93  void SetMuons(AliAODTrack *mu0=0, AliAODTrack *mu1=0);
94  // Dummy
95  virtual Int_t PdgCode() const {return 0;}
96 
97 private:
98 
99  Int_t CheckPointers() const;
100 
101  TLorentzVector* TLV() const;
102 
103  // Data members
104  TRef fMu[2];
105  mutable TLorentzVector *fP;
106 
107  // Useful constants
108  Double_t fMProton;
109 
110  ClassDef(AliAODDimuon,2) // AliAODDimuon track
111 };
112 
113 #endif
virtual Double_t Zv() const
Definition: AliAODDimuon.h:70
TRef fMu[2]
Pointers to the reconstructed muons.
Definition: AliAODDimuon.h:104
Double_t CostHe()
Double_t PhiCS()
virtual Double_t Xv() const
Definition: AliAODDimuon.h:68
virtual Double_t Py() const
Double_t fMProton
! Proton mass (not stored into file)
Definition: AliAODDimuon.h:108
AliAODDimuon & operator=(const AliAODDimuon &dimu)
virtual Double_t Px() const
TLorentzVector * fP
! TLorentzVector of dimuon momentum (not stored into file)
Definition: AliAODDimuon.h:105
virtual Double_t Pt() const
Float_t p[]
Definition: kNNTest.C:133
Double_t PhiHe()
virtual Double_t Yv() const
Definition: AliAODDimuon.h:69
AliAODTrack * GetMu(Int_t imu=0) const
Definition: AliAODDimuon.h:89
virtual Double_t E() const
virtual Double_t Eta() const
Double_t MaxChi2Match()
Int_t GetLabel() const
Definition: AliAODDimuon.h:87
void SetMu(Int_t imu=0, AliAODTrack *mu=0)
virtual Double_t Theta() const
virtual Bool_t PxPyPz(Double_t *p) const
Definition: AliAODDimuon.h:47
void SetMuons(AliAODTrack *mu0=0, AliAODTrack *mu1=0)
virtual Short_t Charge() const
virtual const Double_t * PID() const
Definition: AliAODDimuon.h:84
virtual Double_t Mass() const
Definition: AliAODDimuon.h:58
TLorentzVector * TLV() const
virtual Double_t Phi() const
virtual Int_t PdgCode() const
Definition: AliAODDimuon.h:95
virtual Double_t OneOverPt() const
Definition: AliAODDimuon.h:51
virtual void Clear(Option_t *opt="")
AliAODDimuon: a class for AODs for the MUON Arm of the ALICE Experiment.
Definition: AliAODDimuon.h:33
virtual Double_t P() const
Int_t CheckPointers() const
virtual Bool_t XvYvZv(Double_t *v) const
Definition: AliAODDimuon.h:71
virtual Double_t M() const
AliAODTrack * Mu(Int_t imu=0) const
Definition: AliAODDimuon.h:90
Double_t CostCS()
virtual Double_t Pz() const
AOD track implementation of AliVTrack.
Definition: AliAODTrack.h:29
Double_t XF()
virtual ~AliAODDimuon()
virtual Double_t Y() const