]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MFT/AliMuonForwardTrack.h
add linkDef
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrack.h
index 939009e003a70e1b6b1da7cf2a181e7ddc798e3f..7b89057351c6e40bc03e0d6e6267a2bf8b84141e 100644 (file)
@@ -21,6 +21,7 @@
 #include "TClonesArray.h"
 #include "TParticle.h"
 #include "AliMFTConstants.h"
+#include "TLorentzVector.h"
 
 //====================================================================================================================================================
 
@@ -36,13 +37,16 @@ public:
   AliMuonForwardTrack(const AliMuonForwardTrack&);
   AliMuonForwardTrack &operator=(const AliMuonForwardTrack&);
   
-  virtual ~AliMuonForwardTrack();
+  virtual ~AliMuonForwardTrack(); 
+  virtual void Clear(const Option_t* /*opt*/);
 
   void SetMUONTrack(AliMUONTrack *MUONTrack);
   void SetMCTrackRef(TParticle *MCTrackRef);
   AliMUONTrack* GetMUONTrack() { return fMUONTrack; }
   TParticle* GetMCTrackRef() { return fMCTrackRef; }
 
+  Int_t GetCharge() { return TMath::Nint(GetTrackParamAtMUONCluster(0)->GetCharge()); }
+
   AliMUONVCluster* GetMUONCluster(Int_t iMUONCluster);
   AliMFTCluster*   GetMFTCluster(Int_t iMFTCluster);
   
@@ -63,8 +67,16 @@ public:
 
   Double_t GetWeightedOffset(Double_t x, Double_t y, Double_t z);
   Double_t GetOffset(Double_t x, Double_t y, Double_t z);
+  Double_t GetDCA(Double_t x, Double_t y, Double_t z);
+  Double_t GetMomentumSpectrometer(Double_t z);
   Double_t GetOffsetX(Double_t x, Double_t z);
   Double_t GetOffsetY(Double_t y, Double_t z);
+  Double_t GetThetaAbs();
+
+  Double_t GetRAtAbsorberEnd() { return fRAtAbsorberEnd; }
+  void SetRAtAbsorberEnd(Double_t rAtAbsorberEnd) { fRAtAbsorberEnd = rAtAbsorberEnd; }
+
+  Double_t GetChi2OverNdf() { return GetGlobalChi2()/Double_t(GetNMUONClusters()+GetNMFTClusters()-5); };   // chi2/ndf
 
   void SetParentMCLabel(Int_t iParent, Int_t MClabel) { if (0<=iParent && iParent<fgkNParentsMax) fParentMCLabel[iParent] = MClabel; }
   void SetParentPDGCode(Int_t iParent, Int_t PDGCode) { if (0<=iParent && iParent<fgkNParentsMax) fParentPDGCode[iParent] = PDGCode; }
@@ -75,11 +87,40 @@ public:
   void SetNWrongClustersMC(Int_t nClusters) { fNWrongClustersMC = nClusters; }
   Int_t GetNWrongClustersMC() { return fNWrongClustersMC; }
 
-  Double_t Pt() { return TMath::Sqrt(TMath::Power(GetTrackParamAtMFTCluster(0)->Px(),2)+TMath::Power(GetTrackParamAtMFTCluster(0)->Py(),2)); }
+  Double_t Pt()       { return fKinem.Pt(); }
+  Double_t Eta()      { return fKinem.Eta(); }
+  Double_t Rapidity() { return fKinem.Rapidity(); }
+  Double_t Px()       { return fKinem.Px(); }
+  Double_t Py()       { return fKinem.Py(); }
+  Double_t Pz()       { return fKinem.Pz(); }
+  Double_t P()        { return fKinem.P();  }
+
+  TMatrixD GetParamCovMatrix() { return fParamCovMatrix; }
+
+  void EvalKinem(Double_t z);
 
   void SetTrackMCId(Int_t id) { fTrackMCId = id; }
   Int_t GetTrackMCId() { return fTrackMCId; }
   
+  Bool_t IsFromDirectResonance();
+  Bool_t IsFromDirectCharm();
+  Bool_t IsFromDirectBeauty();
+  Bool_t IsFromChainResonance();
+  Bool_t IsFromChainCharm();
+  Bool_t IsFromChainBeauty();
+  Bool_t IsFromCharm()  { return IsFromDirectCharm()  || IsFromChainCharm();  }
+  Bool_t IsFromBeauty() { return IsFromDirectBeauty() || IsFromChainBeauty(); }
+  Bool_t IsMuon();
+  Bool_t IsFake();
+  Bool_t IsPDGResonance(Int_t pdg);
+  Bool_t IsPDGCharm(Int_t pdg);
+  Bool_t IsPDGBeauty(Int_t pdg);
+  Bool_t IsMuonFromBackground();
+
+  Int_t GetFirstMotherID();
+
+  void PrintHistory();
+
 protected:
 
   static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes;        // max number of MFT planes
@@ -98,7 +139,13 @@ protected:
 
   Int_t fTrackMCId;   // this number will identify the track within a MC simulation: run, event, MUON track
 
-  ClassDef(AliMuonForwardTrack,1)
+  TLorentzVector fKinem;
+
+  TMatrixD fParamCovMatrix;
+
+  Double_t fRAtAbsorberEnd;
+
+  ClassDef(AliMuonForwardTrack,2)
     
 };