#ifndef AliESDMuonGlobalTrack_H
#define AliESDMuonGlobalTrack_H
#include "TMath.h"
#include "TMatrixD.h"
#include "TDatabasePDG.h"
#include "TArrayI.h"
#include "TLorentzVector.h"
#include "AliESDVertex.h"
#include "TRef.h"
#include "AliVParticle.h"
class AliESDEvent;
class TClonesArray;
class AliESDMuonGlobalTrack : public AliVParticle {
public:
AliESDMuonGlobalTrack();
AliESDMuonGlobalTrack(Double_t px, Double_t py, Double_t pz);
virtual ~AliESDMuonGlobalTrack() {;}
AliESDMuonGlobalTrack(const AliESDMuonGlobalTrack& esdTrack);
AliESDMuonGlobalTrack& operator=(const AliESDMuonGlobalTrack& esdTrack);
virtual void Copy(TObject &obj) const;
void SetCharge(Int_t charge) { fCharge = charge; }
Short_t GetCharge() const { return fCharge; }
void SetPxPyPz(Double_t px, Double_t py, Double_t pz);
Double_t GetChi2OverNdf() const { return fChi2OverNdf; }
void SetChi2OverNdf(Double_t chi2) { fChi2OverNdf = chi2; }
Double_t GetChi2MatchTrigger() const { return fChi2MatchTrigger; }
void SetChi2MatchTrigger(Double_t chi2MatchTrigger) { fChi2MatchTrigger = chi2MatchTrigger; }
UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;}
void SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;}
UInt_t GetHitsPatternInTrigChTrk() const {return fHitsPatternInTrigChTrk;}
void SetHitsPatternInTrigChTrk(UInt_t hitsPatternInTrigChTrk) {fHitsPatternInTrigChTrk = hitsPatternInTrigChTrk;}
UInt_t GetMuonClusterMap() const {return fMuonClusterMap;}
void SetMuonClusterMap(UInt_t muonClusterMap) {fMuonClusterMap = muonClusterMap;}
Int_t GetLoCircuit() const { return fLoCircuit; }
void SetLoCircuit(Int_t loCircuit) { fLoCircuit = loCircuit; }
Bool_t IsConnected() const { return fIsConnected; }
void Connected(Bool_t flag) { fIsConnected = flag; }
void SetMatchTrigger(Int_t matchTrigger) { fMatchTrigger = matchTrigger; }
Int_t GetMatchTrigger() { return fMatchTrigger; }
void SetNMFTClusters(Int_t nMFTClusters) { fNMFTClusters = nMFTClusters; }
Short_t GetNMFTClusters() { return fNMFTClusters; }
void SetNWrongMFTClustersMC(Int_t nWrongMFTClustersMC) { fNWrongMFTClustersMC = nWrongMFTClustersMC; }
Short_t GetNWrongMFTClustersMC() { return fNWrongMFTClustersMC; }
void SetMFTClusterPattern(ULong_t mftClusterPattern) { fMFTClusterPattern = mftClusterPattern; }
ULong_t GetMFTClusterPattern() { return fMFTClusterPattern; }
Double_t Pt() const { return fPt; }
Double_t Eta() const { return fEta; }
Double_t Rapidity() const { return fRapidity; }
Double_t Px() const { return fPx; }
Double_t Py() const { return fPy; }
Double_t Pz() const { return fPz; }
Double_t P() const { return fP; }
Bool_t PxPyPz(Double_t p[3]) const { p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
void SetFirstTrackingPoint(Double_t x, Double_t y, Double_t z) {fFirstTrackingPointX = x; fFirstTrackingPointY = y; fFirstTrackingPointZ = z; }
void GetFirstTrackingPoint(Double_t x[3]) { x[0] = fFirstTrackingPointX; x[1] = fFirstTrackingPointY; x[2] = fFirstTrackingPointZ; }
void SetXYAtVertex(Double_t x, Double_t y) { fXAtVertex = x; fYAtVertex = y; }
void GetXYAtVertex(Double_t x[2]) { x[0] = fXAtVertex; x[1] = fYAtVertex; }
Double_t GetRAtAbsorberEnd() { return fRAtAbsorberEnd; }
void SetRAtAbsorberEnd(Double_t r) { fRAtAbsorberEnd = r; }
Double_t Xv() const {return -999.;}
Double_t Yv() const {return -999.;}
Double_t Zv() const {return -999.;}
Bool_t XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }
Double_t OneOverPt() const { return (Pt() != 0.) ? 1./Pt() : FLT_MAX; }
Double_t Phi() const { return TMath::Pi()+TMath::ATan2(-Py(), -Px()); }
Double_t Theta() const { return TMath::ATan2(Pt(), Pz()); }
Double_t E() const { return TMath::Sqrt(M()*M() + P()*P()); }
Double_t M() const { return TDatabasePDG::Instance()->GetParticle("mu-")->Mass(); }
Double_t Y() const { return Rapidity(); }
Short_t Charge() const { return fCharge; }
Bool_t ContainTrackerData() const {return (fMuonClusterMap>0) ? kTRUE : kFALSE;}
const Double_t *PID() const { return (Double_t*)0x0; }
Int_t PdgCode() const { return 0; }
void SetLabel(Int_t label) { fLabel = label; }
Int_t GetLabel() const { return fLabel; }
void SetProdVertexXYZ(Double_t x, Double_t y, Double_t z) { fProdVertexXYZ[0]=x; fProdVertexXYZ[1]=y; fProdVertexXYZ[2]=z; }
void GetProdVertexXYZ(Double_t *vertex) { vertex[0]=fProdVertexXYZ[0]; vertex[1]=fProdVertexXYZ[1]; vertex[2]=fProdVertexXYZ[2]; }
const TMatrixD& GetCovariances() const;
void SetCovariances(const TMatrixD& covariances);
AliESDEvent* GetESDEvent() const { return fESDEvent; }
void SetESDEvent(AliESDEvent* evt) { fESDEvent = evt; }
protected:
Short_t fCharge, fMatchTrigger, fNMFTClusters, fNWrongMFTClustersMC;
ULong_t fMFTClusterPattern;
Double_t fPx, fPy, fPz, fPt, fP, fEta, fRapidity;
Double_t fFirstTrackingPointX, fFirstTrackingPointY, fFirstTrackingPointZ;
Double_t fXAtVertex, fYAtVertex;
Double_t fRAtAbsorberEnd;
mutable TMatrixD *fCovariances;
Double_t fChi2OverNdf;
Double_t fChi2MatchTrigger;
Int_t fLabel;
UInt_t fMuonClusterMap;
UShort_t fHitsPatternInTrigCh;
UInt_t fHitsPatternInTrigChTrk;
Int_t fLoCircuit;
Bool_t fIsConnected;
Double_t fProdVertexXYZ[3];
AliESDEvent *fESDEvent;
ClassDef(AliESDMuonGlobalTrack,4)
};
#endif
AliESDMuonGlobalTrack.h:1 AliESDMuonGlobalTrack.h:2 AliESDMuonGlobalTrack.h:3 AliESDMuonGlobalTrack.h:4 AliESDMuonGlobalTrack.h:5 AliESDMuonGlobalTrack.h:6 AliESDMuonGlobalTrack.h:7 AliESDMuonGlobalTrack.h:8 AliESDMuonGlobalTrack.h:9 AliESDMuonGlobalTrack.h:10 AliESDMuonGlobalTrack.h:11 AliESDMuonGlobalTrack.h:12 AliESDMuonGlobalTrack.h:13 AliESDMuonGlobalTrack.h:14 AliESDMuonGlobalTrack.h:15 AliESDMuonGlobalTrack.h:16 AliESDMuonGlobalTrack.h:17 AliESDMuonGlobalTrack.h:18 AliESDMuonGlobalTrack.h:19 AliESDMuonGlobalTrack.h:20 AliESDMuonGlobalTrack.h:21 AliESDMuonGlobalTrack.h:22 AliESDMuonGlobalTrack.h:23 AliESDMuonGlobalTrack.h:24 AliESDMuonGlobalTrack.h:25 AliESDMuonGlobalTrack.h:26 AliESDMuonGlobalTrack.h:27 AliESDMuonGlobalTrack.h:28 AliESDMuonGlobalTrack.h:29 AliESDMuonGlobalTrack.h:30 AliESDMuonGlobalTrack.h:31 AliESDMuonGlobalTrack.h:32 AliESDMuonGlobalTrack.h:33 AliESDMuonGlobalTrack.h:34 AliESDMuonGlobalTrack.h:35 AliESDMuonGlobalTrack.h:36 AliESDMuonGlobalTrack.h:37 AliESDMuonGlobalTrack.h:38 AliESDMuonGlobalTrack.h:39 AliESDMuonGlobalTrack.h:40 AliESDMuonGlobalTrack.h:41 AliESDMuonGlobalTrack.h:42 AliESDMuonGlobalTrack.h:43 AliESDMuonGlobalTrack.h:44 AliESDMuonGlobalTrack.h:45 AliESDMuonGlobalTrack.h:46 AliESDMuonGlobalTrack.h:47 AliESDMuonGlobalTrack.h:48 AliESDMuonGlobalTrack.h:49 AliESDMuonGlobalTrack.h:50 AliESDMuonGlobalTrack.h:51 AliESDMuonGlobalTrack.h:52 AliESDMuonGlobalTrack.h:53 AliESDMuonGlobalTrack.h:54 AliESDMuonGlobalTrack.h:55 AliESDMuonGlobalTrack.h:56 AliESDMuonGlobalTrack.h:57 AliESDMuonGlobalTrack.h:58 AliESDMuonGlobalTrack.h:59 AliESDMuonGlobalTrack.h:60 AliESDMuonGlobalTrack.h:61 AliESDMuonGlobalTrack.h:62 AliESDMuonGlobalTrack.h:63 AliESDMuonGlobalTrack.h:64 AliESDMuonGlobalTrack.h:65 AliESDMuonGlobalTrack.h:66 AliESDMuonGlobalTrack.h:67 AliESDMuonGlobalTrack.h:68 AliESDMuonGlobalTrack.h:69 AliESDMuonGlobalTrack.h:70 AliESDMuonGlobalTrack.h:71 AliESDMuonGlobalTrack.h:72 AliESDMuonGlobalTrack.h:73 AliESDMuonGlobalTrack.h:74 AliESDMuonGlobalTrack.h:75 AliESDMuonGlobalTrack.h:76 AliESDMuonGlobalTrack.h:77 AliESDMuonGlobalTrack.h:78 AliESDMuonGlobalTrack.h:79 AliESDMuonGlobalTrack.h:80 AliESDMuonGlobalTrack.h:81 AliESDMuonGlobalTrack.h:82 AliESDMuonGlobalTrack.h:83 AliESDMuonGlobalTrack.h:84 AliESDMuonGlobalTrack.h:85 AliESDMuonGlobalTrack.h:86 AliESDMuonGlobalTrack.h:87 AliESDMuonGlobalTrack.h:88 AliESDMuonGlobalTrack.h:89 AliESDMuonGlobalTrack.h:90 AliESDMuonGlobalTrack.h:91 AliESDMuonGlobalTrack.h:92 AliESDMuonGlobalTrack.h:93 AliESDMuonGlobalTrack.h:94 AliESDMuonGlobalTrack.h:95 AliESDMuonGlobalTrack.h:96 AliESDMuonGlobalTrack.h:97 AliESDMuonGlobalTrack.h:98 AliESDMuonGlobalTrack.h:99 AliESDMuonGlobalTrack.h:100 AliESDMuonGlobalTrack.h:101 AliESDMuonGlobalTrack.h:102 AliESDMuonGlobalTrack.h:103 AliESDMuonGlobalTrack.h:104 AliESDMuonGlobalTrack.h:105 AliESDMuonGlobalTrack.h:106 AliESDMuonGlobalTrack.h:107 AliESDMuonGlobalTrack.h:108 AliESDMuonGlobalTrack.h:109 AliESDMuonGlobalTrack.h:110 AliESDMuonGlobalTrack.h:111 AliESDMuonGlobalTrack.h:112 AliESDMuonGlobalTrack.h:113 AliESDMuonGlobalTrack.h:114 AliESDMuonGlobalTrack.h:115 AliESDMuonGlobalTrack.h:116 AliESDMuonGlobalTrack.h:117 AliESDMuonGlobalTrack.h:118 AliESDMuonGlobalTrack.h:119 AliESDMuonGlobalTrack.h:120 AliESDMuonGlobalTrack.h:121 AliESDMuonGlobalTrack.h:122 AliESDMuonGlobalTrack.h:123 AliESDMuonGlobalTrack.h:124 AliESDMuonGlobalTrack.h:125 AliESDMuonGlobalTrack.h:126 AliESDMuonGlobalTrack.h:127 AliESDMuonGlobalTrack.h:128 AliESDMuonGlobalTrack.h:129 AliESDMuonGlobalTrack.h:130 AliESDMuonGlobalTrack.h:131 AliESDMuonGlobalTrack.h:132 AliESDMuonGlobalTrack.h:133 AliESDMuonGlobalTrack.h:134 AliESDMuonGlobalTrack.h:135 AliESDMuonGlobalTrack.h:136 AliESDMuonGlobalTrack.h:137 AliESDMuonGlobalTrack.h:138 AliESDMuonGlobalTrack.h:139 AliESDMuonGlobalTrack.h:140 AliESDMuonGlobalTrack.h:141 AliESDMuonGlobalTrack.h:142 AliESDMuonGlobalTrack.h:143 AliESDMuonGlobalTrack.h:144 AliESDMuonGlobalTrack.h:145 AliESDMuonGlobalTrack.h:146 AliESDMuonGlobalTrack.h:147 AliESDMuonGlobalTrack.h:148 AliESDMuonGlobalTrack.h:149 AliESDMuonGlobalTrack.h:150 AliESDMuonGlobalTrack.h:151 AliESDMuonGlobalTrack.h:152 AliESDMuonGlobalTrack.h:153 AliESDMuonGlobalTrack.h:154 AliESDMuonGlobalTrack.h:155 AliESDMuonGlobalTrack.h:156 AliESDMuonGlobalTrack.h:157 AliESDMuonGlobalTrack.h:158 AliESDMuonGlobalTrack.h:159 AliESDMuonGlobalTrack.h:160 AliESDMuonGlobalTrack.h:161 AliESDMuonGlobalTrack.h:162 AliESDMuonGlobalTrack.h:163 AliESDMuonGlobalTrack.h:164 AliESDMuonGlobalTrack.h:165 AliESDMuonGlobalTrack.h:166 AliESDMuonGlobalTrack.h:167 AliESDMuonGlobalTrack.h:168 AliESDMuonGlobalTrack.h:169 AliESDMuonGlobalTrack.h:170 AliESDMuonGlobalTrack.h:171 AliESDMuonGlobalTrack.h:172 AliESDMuonGlobalTrack.h:173 AliESDMuonGlobalTrack.h:174 AliESDMuonGlobalTrack.h:175 AliESDMuonGlobalTrack.h:176 AliESDMuonGlobalTrack.h:177