]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
-dca pair
authorJulian Book <Julian>
Tue, 10 Dec 2013 12:32:52 +0000 (13:32 +0100)
committerJulian Book <jbook@cern.ch>
Tue, 10 Dec 2013 12:32:52 +0000 (13:32 +0100)
PWGDQ/dielectron/AliDielectronPair.cxx
PWGDQ/dielectron/AliDielectronPair.h
PWGDQ/dielectron/AliDielectronVarManager.h

index 2ce04a40e95172be4edca8d331f9352582cce966..a26219000eeb14b6581b5f8ef5113917c2b9b500 100644 (file)
@@ -443,10 +443,10 @@ Double_t AliDielectronPair::GetCosPointingAngle(const AliVVertex *primVtx) const
   deltaPos[1] = fPair.GetY() - primVtx->GetY();
   deltaPos[2] = fPair.GetZ() - primVtx->GetZ();
 
-  Double_t momV02    = fPair.GetPx()*fPair.GetPx() + fPair.GetPy()*fPair.GetPy() + fPair.GetPz()*fPair.GetPz();
+  Double_t momV02    = Px()*Px() + Py()*Py() + Pz()*Pz();
   Double_t deltaPos2 = deltaPos[0]*deltaPos[0] + deltaPos[1]*deltaPos[1] + deltaPos[2]*deltaPos[2];
 
-  Double_t cosinePointingAngle = (deltaPos[0]*fPair.GetPx() + deltaPos[1]*fPair.GetPy() + deltaPos[2]*fPair.GetPz()) / TMath::Sqrt(momV02 * deltaPos2);
+  Double_t cosinePointingAngle = (deltaPos[0]*Px() + deltaPos[1]*Py() + deltaPos[2]*Pz()) / TMath::Sqrt(momV02 * deltaPos2);
   
   return TMath::Abs(cosinePointingAngle);
 
@@ -490,6 +490,22 @@ Double_t AliDielectronPair::GetArmPt() const
   return (momNeg.Perp(momTot));
 }
 
+//______________________________________________
+void AliDielectronPair::GetDCA(const AliVVertex *primVtx, Double_t d0z0[2]) const
+{
+  //
+  // Calculate the dca of the mother with respect to the primary vertex
+  //
+  if(!primVtx) return;
+
+  d0z0[0] = TMath::Sqrt(TMath::Power(Xv()-primVtx->GetX(),2) +
+                       TMath::Power(Yv()-primVtx->GetY(),2) );
+
+  d0z0[1] = Zv() - primVtx->GetZ();
+  return;
+
+}
+
 // //______________________________________________
 // Double_t AliDielectronPair::GetLXY(const AliVVertex * const vtx) const
 // {
index b71c73db149d114b68209349feba35fbea073ce3..8283093c7f0cf57ea889a16ac8c8f99430e027ab 100644 (file)
@@ -134,13 +134,14 @@ public:
 
   Double_t PsiPair(Double_t MagField)const; //Angle cut w.r.t. to magnetic field
   Double_t PhivPair(Double_t MagField)const; //Angle of ee plane w.r.t. to magnetic field
-\r
-  //Calculate the angle between ee decay plane and variables\r
-  Double_t GetPairPlaneAngle(const Double_t kv0CrpH2, const Int_t VariNum) const;\r
+
+  //Calculate the angle between ee decay plane and variables
+  Double_t GetPairPlaneAngle(const Double_t kv0CrpH2, const Int_t VariNum) const;
 
   Double_t GetCosPointingAngle(const AliVVertex *primVtx) const;
   Double_t GetArmAlpha() const;
   Double_t GetArmPt()    const;
+  void GetDCA(const AliVVertex *primVtx, Double_t d0z0[2]) const;
 
   // internal KF particle
   const AliKFParticle& GetKFParticle()       const { return fPair; }
index 70aef816e3960949608afe7a67e6e78e27383e0a..7db8f9331011af6473be90dbb6c4e50ded9493a5 100644 (file)
@@ -1268,6 +1268,14 @@ inline void AliDielectronVarManager::FillVarDielectronPair(const AliDielectronPa
   // values[AliDielectronVarManager::kPseudoProperTime] = fgEvent ? pair->GetPseudoProperTime(fgEvent->GetPrimaryVertex()): -1e10;
   values[AliDielectronVarManager::kPseudoProperTimeErr] = (errPseudoProperTime2 > 0) ? TMath::Sqrt(errPseudoProperTime2) : -1e10;
 
+  // impact parameter
+  Double_t d0z0[2];
+  d0z0[0]=-999.;
+  d0z0[1]=-999.;
+  if(fgEvent) pair->GetDCA(fgEvent->GetPrimaryVertex(), d0z0);
+  values[AliDielectronVarManager::kImpactParXY]   = d0z0[0];
+  values[AliDielectronVarManager::kImpactParZ]    = d0z0[1];
+
  
   if (!(pair->GetKFUsage())) {
        //if KF Pairing is not enabled, overwrite values that can be easily derived from legs