Updated AliMuonForwardTrack
authorauras <auras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2013 09:03:48 +0000 (09:03 +0000)
committerauras <auras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 30 Jan 2013 09:03:48 +0000 (09:03 +0000)
MFT/AliMuonForwardTrack.cxx
MFT/AliMuonForwardTrack.h

index 17ef329..04881e1 100644 (file)
@@ -34,6 +34,7 @@
 #include "AliMFTConstants.h"
 #include "TLorentzVector.h"
 #include "TDatabasePDG.h"
+#include "AliMUONConstants.h"
 
 ClassImp(AliMuonForwardTrack)
 
@@ -431,6 +432,49 @@ Double_t AliMuonForwardTrack::GetOffset(Double_t x, Double_t y, Double_t z) {
 
 //====================================================================================================================================================
 
+Double_t AliMuonForwardTrack::GetDCA(Double_t x, Double_t y, Double_t z) {
+
+  // Distance of Closest Approach, according to the standard MUON terminology. Actually, the offset of the track w.r.t. the primary vertex,
+  // where the extrapolation of the track DOES NOT include the MFT information
+
+  AliMUONTrackParam *param = GetTrackParamAtMUONCluster(0);
+  AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(param, z);
+  Double_t dX = param->GetNonBendingCoor() - x;
+  Double_t dY = param->GetBendingCoor()    - y;
+  return TMath::Sqrt(dX*dX + dY*dY);
+
+}
+
+//====================================================================================================================================================
+
+Double_t AliMuonForwardTrack::GetMomentumSpectrometer(Double_t z) {
+
+  // Momentum of the track at the primary vertex plane, where the extrapolation of the track DOES NOT include the MFT information
+
+  AliMUONTrackParam *param = GetTrackParamAtMUONCluster(0);
+  AliMUONTrackExtrap::ExtrapToVertexWithoutBranson(param, z);
+  return param->P();
+
+}
+
+//====================================================================================================================================================
+
+Double_t AliMuonForwardTrack::GetThetaAbs() {
+
+  // it is the angle defined by the imaginary line goingo from the vertex to the exit point of the track at the end of the hadron absorber
+  
+  Double_t z = AliMUONConstants::AbsZEnd();
+  AliMUONTrackParam *param = GetTrackParamAtMFTCluster(0);
+  AliMUONTrackExtrap::ExtrapToZ(param, z);
+  Double_t x = param->GetNonBendingCoor();
+  Double_t y = param->GetBendingCoor();
+
+  return 180. +TMath::ATan(TMath::Sqrt(x*x + y*y)/z)*TMath::RadToDeg();
+
+}
+
+//====================================================================================================================================================
+
 Bool_t AliMuonForwardTrack::IsFromResonance() {
 
   Bool_t result = kFALSE;
index 5ddd1d7..2d1c523 100644 (file)
@@ -67,8 +67,11 @@ 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();
 
   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; }