Skip to content

Commit ebd5a34

Browse files
authored
PWGDQ: fix small issue on using KFParticle in VarManage::FillDileptonTrackVertexing::DileptonHadron (#4443)
1 parent 690a979 commit ebd5a34

File tree

1 file changed

+34
-31
lines changed

1 file changed

+34
-31
lines changed

PWGDQ/Core/VarManager.h

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)