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);
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
// {
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; }
// 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