]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MFT/AliMuonForwardTrack.h
Fix bug in building local list of valid files.
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrack.h
index 3bdc15290ae5afcde6520335534081e916458c15..7b89057351c6e40bc03e0d6e6267a2bf8b84141e 100644 (file)
@@ -21,6 +21,7 @@
 #include "TClonesArray.h"
 #include "TParticle.h"
 #include "AliMFTConstants.h"
+#include "TLorentzVector.h"
 
 //====================================================================================================================================================
 
@@ -66,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; }
@@ -78,15 +87,39 @@ 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 IsFromResonance();
-  Bool_t IsFromCharm();
-  Bool_t IsFromBeauty();
-  Bool_t IsFromBackground();
+  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:
 
@@ -106,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)
     
 };