@@ -2089,7 +2089,7 @@ void VarManager::FillPairVertexing(C const& collision, T const& t1, T const& t2,
20892089 if (fgUsedVars[kKFDCAxyzBetweenProngs ])
20902090 values[kKFDCAxyzBetweenProngs ] = trk0KF.GetDistanceFromParticle (trk1KF);
20912091 if (fgUsedVars[kKFDCAxyBetweenProngs ])
2092- values[kKFDCAxyBetweenProngs ] = trk0KF.GetDistanceFromParticle (trk1KF);
2092+ values[kKFDCAxyBetweenProngs ] = trk0KF.GetDistanceFromParticleXY (trk1KF);
20932093
20942094 if (fgUsedVars[kKFTracksDCAxyzMax ]) {
20952095 values[kKFTracksDCAxyzMax ] = values[kKFTrack0DCAxyz ] > values[kKFTrack1DCAxyz ] ? values[kKFTrack0DCAxyz ] : values[kKFTrack1DCAxyz ];
@@ -2350,48 +2350,51 @@ void VarManager::FillDileptonTrackVertexing(C const& collision, T1 const& lepton
23502350 KFParticle lepton1KF;
23512351 KFParticle lepton2KF;
23522352 KFParticle hadronKF;
2353- KFParticle KFGeoThreeProngBarrel;
2353+ KFParticle KFGeoTwoLeptons;
2354+ KFParticle KFGeoThreeProng;
23542355
23552356 if constexpr ((candidateType == kBtoJpsiEEK ) && trackHasCov) {
23562357 KFPTrack kfpTrack0 = createKFPTrackFromTrack (lepton1);
2357- lepton1KF = KFParticle (kfpTrack0, 11 * lepton1.sign ());
2358+ lepton1KF = KFParticle (kfpTrack0, - 11 * lepton1.sign ());
23582359 KFPTrack kfpTrack1 = createKFPTrackFromTrack (lepton2);
2359- lepton2KF = KFParticle (kfpTrack1, 11 * lepton2.sign ());
2360+ lepton2KF = KFParticle (kfpTrack1, - 11 * lepton2.sign ());
23602361 KFPTrack kfpTrack2 = createKFPTrackFromTrack (track);
23612362 hadronKF = KFParticle (kfpTrack2, 321 * track.sign ()); // kaon mass
23622363
2363- KFGeoThreeProngBarrel .SetConstructMethod (2 );
2364- KFGeoThreeProngBarrel .AddDaughter (lepton1KF);
2365- KFGeoThreeProngBarrel .AddDaughter (lepton2KF);
2364+ KFGeoTwoLeptons .SetConstructMethod (2 );
2365+ KFGeoTwoLeptons .AddDaughter (lepton1KF);
2366+ KFGeoTwoLeptons .AddDaughter (lepton2KF);
23662367
23672368 if (fgUsedVars[kPairMassDau ] || fgUsedVars[kPairPtDau ]) {
2368- values[VarManager::kPairMassDau ] = KFGeoThreeProngBarrel .GetMass ();
2369- values[VarManager::kPairPtDau ] = KFGeoThreeProngBarrel .GetPt ();
2369+ values[VarManager::kPairMassDau ] = KFGeoTwoLeptons .GetMass ();
2370+ values[VarManager::kPairPtDau ] = KFGeoTwoLeptons .GetPt ();
23702371 }
23712372
23722373 // Quantities between 3rd prong and candidate
23732374 if (fgUsedVars[kKFDCAxyzBetweenProngs ])
2374- values[kKFDCAxyzBetweenProngs ] = KFGeoThreeProngBarrel .GetDistanceFromParticle (hadronKF);
2375+ values[kKFDCAxyzBetweenProngs ] = KFGeoTwoLeptons .GetDistanceFromParticle (hadronKF);
23752376
2376- KFGeoThreeProngBarrel.AddDaughter (hadronKF); // third prong
2377+ KFGeoThreeProng.SetConstructMethod (2 );
2378+ KFGeoThreeProng.AddDaughter (KFGeoTwoLeptons);
2379+ KFGeoThreeProng.AddDaughter (hadronKF);
23772380
23782381 if (fgUsedVars[kKFMass ])
2379- values[kKFMass ] = KFGeoThreeProngBarrel .GetMass ();
2382+ values[kKFMass ] = KFGeoThreeProng .GetMass ();
23802383
23812384 if constexpr (eventHasVtxCov) {
23822385 KFPVertex kfpVertex = createKFPVertexFromCollision (collision);
23832386 KFParticle KFPV (kfpVertex);
2384- double dxTriplet3PV = KFGeoThreeProngBarrel .GetX () - KFPV.GetX ();
2385- double dyTriplet3PV = KFGeoThreeProngBarrel .GetY () - KFPV.GetY ();
2386- double dzTriplet3PV = KFGeoThreeProngBarrel .GetZ () - KFPV.GetZ ();
2387+ double dxTriplet3PV = KFGeoThreeProng .GetX () - KFPV.GetX ();
2388+ double dyTriplet3PV = KFGeoThreeProng .GetY () - KFPV.GetY ();
2389+ double dzTriplet3PV = KFGeoThreeProng .GetZ () - KFPV.GetZ ();
23872390
23882391 if (fgUsedVars[kVertexingLxy ] || fgUsedVars[kVertexingLz ] || fgUsedVars[kVertexingLxyz ] || fgUsedVars[kVertexingLxyErr ] || fgUsedVars[kVertexingLzErr ] || fgUsedVars[kVertexingTauxy ] || fgUsedVars[kVertexingLxyOverErr ] || fgUsedVars[kVertexingLzOverErr ] || fgUsedVars[kVertexingLxyzOverErr ] || fgUsedVars[kCosPointingAngle ]) {
23892392 values[kVertexingLxy ] = std::sqrt (dxTriplet3PV * dxTriplet3PV + dyTriplet3PV * dyTriplet3PV);
23902393 values[kVertexingLz ] = std::sqrt (dzTriplet3PV * dzTriplet3PV);
23912394 values[kVertexingLxyz ] = std::sqrt (dxTriplet3PV * dxTriplet3PV + dyTriplet3PV * dyTriplet3PV + dzTriplet3PV * dzTriplet3PV);
2392- values[kVertexingLxyErr ] = (KFPV.GetCovariance (0 ) + KFGeoThreeProngBarrel .GetCovariance (0 )) * dxTriplet3PV * dxTriplet3PV + (KFPV.GetCovariance (2 ) + KFGeoThreeProngBarrel .GetCovariance (2 )) * dyTriplet3PV * dyTriplet3PV + 2 * ((KFPV.GetCovariance (1 ) + KFGeoThreeProngBarrel .GetCovariance (1 )) * dxTriplet3PV * dyTriplet3PV);
2393- values[kVertexingLzErr ] = (KFPV.GetCovariance (5 ) + KFGeoThreeProngBarrel .GetCovariance (5 )) * dzTriplet3PV * dzTriplet3PV;
2394- values[kVertexingLxyzErr ] = (KFPV.GetCovariance (0 ) + KFGeoThreeProngBarrel .GetCovariance (0 )) * dxTriplet3PV * dxTriplet3PV + (KFPV.GetCovariance (2 ) + KFGeoThreeProngBarrel .GetCovariance (2 )) * dyTriplet3PV * dyTriplet3PV + (KFPV.GetCovariance (5 ) + KFGeoThreeProngBarrel .GetCovariance (5 )) * dzTriplet3PV * dzTriplet3PV + 2 * ((KFPV.GetCovariance (1 ) + KFGeoThreeProngBarrel .GetCovariance (1 )) * dxTriplet3PV * dyTriplet3PV + (KFPV.GetCovariance (3 ) + KFGeoThreeProngBarrel .GetCovariance (3 )) * dxTriplet3PV * dzTriplet3PV + (KFPV.GetCovariance (4 ) + KFGeoThreeProngBarrel .GetCovariance (4 )) * dyTriplet3PV * dzTriplet3PV);
2395+ values[kVertexingLxyErr ] = (KFPV.GetCovariance (0 ) + KFGeoThreeProng .GetCovariance (0 )) * dxTriplet3PV * dxTriplet3PV + (KFPV.GetCovariance (2 ) + KFGeoThreeProng .GetCovariance (2 )) * dyTriplet3PV * dyTriplet3PV + 2 * ((KFPV.GetCovariance (1 ) + KFGeoThreeProng .GetCovariance (1 )) * dxTriplet3PV * dyTriplet3PV);
2396+ values[kVertexingLzErr ] = (KFPV.GetCovariance (5 ) + KFGeoThreeProng .GetCovariance (5 )) * dzTriplet3PV * dzTriplet3PV;
2397+ values[kVertexingLxyzErr ] = (KFPV.GetCovariance (0 ) + KFGeoThreeProng .GetCovariance (0 )) * dxTriplet3PV * dxTriplet3PV + (KFPV.GetCovariance (2 ) + KFGeoThreeProng .GetCovariance (2 )) * dyTriplet3PV * dyTriplet3PV + (KFPV.GetCovariance (5 ) + KFGeoThreeProng .GetCovariance (5 )) * dzTriplet3PV * dzTriplet3PV + 2 * ((KFPV.GetCovariance (1 ) + KFGeoThreeProng .GetCovariance (1 )) * dxTriplet3PV * dyTriplet3PV + (KFPV.GetCovariance (3 ) + KFGeoThreeProng .GetCovariance (3 )) * dxTriplet3PV * dzTriplet3PV + (KFPV.GetCovariance (4 ) + KFGeoThreeProng .GetCovariance (4 )) * dyTriplet3PV * dzTriplet3PV);
23952398 if (fabs (values[kVertexingLxy ]) < 1 .e -8f )
23962399 values[kVertexingLxy ] = 1 .e -8f ;
23972400 values[kVertexingLxyErr ] = values[kVertexingLxyErr ] < 0 . ? 1 .e8f : std::sqrt (values[kVertexingLxyErr ]) / values[kVertexingLxy ];
@@ -2403,27 +2406,27 @@ void VarManager::FillDileptonTrackVertexing(C const& collision, T1 const& lepton
24032406 values[kVertexingLxyzErr ] = values[kVertexingLxyzErr ] < 0 . ? 1 .e8f : std::sqrt (values[kVertexingLxyzErr ]) / values[kVertexingLxyz ];
24042407
24052408 if (fgUsedVars[kVertexingTauxy ])
2406- values[kVertexingTauxy ] = KFGeoThreeProngBarrel .GetPseudoProperDecayTime (KFPV, KFGeoThreeProngBarrel .GetMass ()) / (o2::constants::physics::LightSpeedCm2NS);
2409+ values[kVertexingTauxy ] = KFGeoThreeProng .GetPseudoProperDecayTime (KFPV, KFGeoThreeProng .GetMass ()) / (o2::constants::physics::LightSpeedCm2NS);
24072410 if (fgUsedVars[kVertexingTauxyErr ])
2408- values[kVertexingTauxyErr ] = values[kVertexingLxyErr ] * KFGeoThreeProngBarrel .GetMass () / (KFGeoThreeProngBarrel .GetPt () * o2::constants::physics::LightSpeedCm2NS);
2411+ values[kVertexingTauxyErr ] = values[kVertexingLxyErr ] * KFGeoThreeProng .GetMass () / (KFGeoThreeProng .GetPt () * o2::constants::physics::LightSpeedCm2NS);
24092412
24102413 if (fgUsedVars[kCosPointingAngle ])
2411- values[VarManager::kCosPointingAngle ] = (dxTriplet3PV * KFGeoThreeProngBarrel .GetPx () +
2412- dyTriplet3PV * KFGeoThreeProngBarrel .GetPy () +
2413- dzTriplet3PV * KFGeoThreeProngBarrel .GetPz ()) /
2414- (KFGeoThreeProngBarrel .GetP () * values[VarManager::kVertexingLxyz ]);
2414+ values[VarManager::kCosPointingAngle ] = (dxTriplet3PV * KFGeoThreeProng .GetPx () +
2415+ dyTriplet3PV * KFGeoThreeProng .GetPy () +
2416+ dzTriplet3PV * KFGeoThreeProng .GetPz ()) /
2417+ (KFGeoThreeProng .GetP () * values[VarManager::kVertexingLxyz ]);
24152418 } // end calculate vertex variables
24162419
24172420 // As defined in Run 2 (projected onto momentum)
24182421 if (fgUsedVars[kVertexingLxyProjected ] || fgUsedVars[kVertexingLxyzProjected ] || fgUsedVars[kVertexingLzProjected ]) {
2419- values[kVertexingLzProjected ] = (dzTriplet3PV * KFGeoThreeProngBarrel .GetPz ()) / TMath::Sqrt (KFGeoThreeProngBarrel .GetPz () * KFGeoThreeProngBarrel .GetPz ());
2420- values[kVertexingLxyProjected ] = (dxTriplet3PV * KFGeoThreeProngBarrel .GetPx ()) + (dyTriplet3PV * KFGeoThreeProngBarrel .GetPy ());
2421- values[kVertexingLxyProjected ] = values[kVertexingLxyProjected ] / TMath::Sqrt ((KFGeoThreeProngBarrel .GetPx () * KFGeoThreeProngBarrel .GetPx ()) + (KFGeoThreeProngBarrel .GetPy () * KFGeoThreeProngBarrel .GetPy ()));
2422- values[kVertexingLxyzProjected ] = (dxTriplet3PV * KFGeoThreeProngBarrel .GetPx ()) + (dyTriplet3PV * KFGeoThreeProngBarrel .GetPy ()) + (dzTriplet3PV * KFGeoThreeProngBarrel .GetPz ());
2423- values[kVertexingLxyzProjected ] = values[kVertexingLxyzProjected ] / TMath::Sqrt ((KFGeoThreeProngBarrel .GetPx () * KFGeoThreeProngBarrel .GetPx ()) + (KFGeoThreeProngBarrel .GetPy () * KFGeoThreeProngBarrel .GetPy ()) + (KFGeoThreeProngBarrel .GetPz () * KFGeoThreeProngBarrel .GetPz ()));
2424- values[kVertexingTauxyProjected ] = (values[kVertexingLxyProjected ] * KFGeoThreeProngBarrel .GetMass ()) / (KFGeoThreeProngBarrel .GetP ());
2422+ values[kVertexingLzProjected ] = (dzTriplet3PV * KFGeoThreeProng .GetPz ()) / TMath::Sqrt (KFGeoThreeProng .GetPz () * KFGeoThreeProng .GetPz ());
2423+ values[kVertexingLxyProjected ] = (dxTriplet3PV * KFGeoThreeProng .GetPx ()) + (dyTriplet3PV * KFGeoThreeProng .GetPy ());
2424+ values[kVertexingLxyProjected ] = values[kVertexingLxyProjected ] / TMath::Sqrt ((KFGeoThreeProng .GetPx () * KFGeoThreeProng .GetPx ()) + (KFGeoThreeProng .GetPy () * KFGeoThreeProng .GetPy ()));
2425+ values[kVertexingLxyzProjected ] = (dxTriplet3PV * KFGeoThreeProng .GetPx ()) + (dyTriplet3PV * KFGeoThreeProng .GetPy ()) + (dzTriplet3PV * KFGeoThreeProng .GetPz ());
2426+ values[kVertexingLxyzProjected ] = values[kVertexingLxyzProjected ] / TMath::Sqrt ((KFGeoThreeProng .GetPx () * KFGeoThreeProng .GetPx ()) + (KFGeoThreeProng .GetPy () * KFGeoThreeProng .GetPy ()) + (KFGeoThreeProng .GetPz () * KFGeoThreeProng .GetPz ()));
2427+ values[kVertexingTauxyProjected ] = (values[kVertexingLxyProjected ] * KFGeoThreeProng .GetMass ()) / (KFGeoThreeProng .GetP ());
24252428 values[kVertexingTauxyProjectedNs ] = values[kVertexingTauxyProjected ] / o2::constants::physics::LightSpeedCm2NS;
2426- values[kVertexingTauzProjected ] = (values[kVertexingLzProjected ] * KFGeoThreeProngBarrel .GetMass ()) / KFGeoThreeProngBarrel .GetP ();
2429+ values[kVertexingTauzProjected ] = (values[kVertexingLzProjected ] * KFGeoThreeProng .GetMass ()) / KFGeoThreeProng .GetP ();
24272430 } // end Run 2 quantities
24282431 } // end eventHasVtxCov
24292432 } // end (candidateType == kBtoJpsiEEK) && trackHasCov
0 commit comments