Skip to content

Commit 044f3e3

Browse files
committed
update v0v0 selectionss
1 parent ad9e095 commit 044f3e3

File tree

1 file changed

+34
-26
lines changed

1 file changed

+34
-26
lines changed

PWGLF/Tasks/Strangeness/lambdalambda.cxx

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,16 @@ struct lambdalambda {
118118
Configurable<float> cfgV0V0RapMax{"cfgV0V0RapMax", 0.5, "rapidity selection for V0V0"};
119119

120120
Configurable<bool> cfgV0V0Sel{"cfgV0V0Sel", false, "application of V0V0 selections"};
121-
Configurable<float> cfgV0V0Radius{"cfgV0V0Radius", 1.0, "maximum radius of v0v0"};
122-
Configurable<float> cfgV0V0CPA{"cfgV0V0CPA", 0.6, "minimum CPA of v0v0"};
123-
Configurable<float> cfgV0V0Distance{"cfgV0V0Distance", 1, "minimum distance of v0v0"};
124-
Configurable<float> cfgV0V0DCAR{"cfgV0V0DCAR", 1.0, "maximum DCA of v0v0 R"};
125-
Configurable<float> cfgV0V0DCAZ{"cfgV0V0DCAZ", 1.0, "maximum DCA of v0v0 Z"};
121+
122+
Configurable<float> cfgV0V0RadiusMin{"cfgV0V0RadiusMin", 1.0, "maximum radius of v0v0"};
123+
Configurable<float> cfgV0V0CPAMin{"cfgV0V0CPAMin", 0.6, "minimum CPA of v0v0"};
124+
Configurable<float> cfgV0V0DistanceMin{"cfgV0V0DistanceMin", 1, "minimum distance of v0v0"};
125+
Configurable<float> cfgV0V0DCAMin{"cfgV0V0DCAMin", 1.0, "maximum DCA of v0v0 R"};
126+
127+
Configurable<float> cfgV0V0RadiusMax{"cfgV0V0RadiusMax", 1.0, "maximum radius of v0v0"};
128+
Configurable<float> cfgV0V0CPAMax{"cfgV0V0CPAMax", 0.6, "maximum CPA of v0v0"};
129+
Configurable<float> cfgV0V0DistanceMax{"cfgV0V0DistanceMax", 1, "maximum distance of v0v0"};
130+
Configurable<float> cfgV0V0DCAMax{"cfgV0V0DCAMax", 1.0, "maximum DCA of v0v0 R"};
126131

127132
Configurable<bool> cfgEffCor{"cfgEffCor", false, "flag to apply efficiency correction"};
128133
Configurable<std::string> cfgEffCorPath{"cfgEffCorPath", "", "path for pseudo efficiency correction"};
@@ -181,6 +186,8 @@ struct lambdalambda {
181186
histos.add("h_InvMass_mixed_sel", "", {HistType::kTHnSparseF, {massAxis, ptAxis, centAxis, combAxis}});
182187
histos.add("h_InvMass_rot_sel", "", {HistType::kTHnSparseF, {massAxis, ptAxis, centAxis, combAxis}});
183188

189+
190+
184191
if (cfgQAv0) {
185192
histos.add("QA/CentDist", "", {HistType::kTH1F, {centQaAxis}});
186193
histos.add("QA/PVzDist", "", {HistType::kTH1F, {PVzQaAxis}});
@@ -289,22 +296,28 @@ struct lambdalambda {
289296
template <typename V01, typename V02>
290297
bool isSelectedV0V0(V01 const& v01, V02 const& v02)
291298
{
292-
if (std::sqrt(getDCAofV0V0(v01, v02).perp2()) > cfgV0V0DCAR)
299+
if (getDCAofV0V0(v01, v02) > cfgV0V0DCAMax)
293300
return false;
294-
if (getDCAofV0V0(v01, v02).z() > cfgV0V0DCAZ)
301+
if (getDCAofV0V0(v01, v02) < cfgV0V0DCAMin)
295302
return false;
296-
if (getCPA(v01, v02) < cfgV0V0CPA)
303+
if (getCPA(v01, v02) > cfgV0V0CPAMax)
297304
return false;
298-
if (getDistance(v01, v02) > cfgV0V0Distance)
305+
if (getCPA(v01, v02) < cfgV0V0CPAMin)
299306
return false;
300-
if (getRadius(v01, v02) > cfgV0V0Radius)
307+
if (getDistance(v01, v02) > cfgV0V0DistanceMax)
308+
return false;
309+
if (getDistance(v01, v02) < cfgV0V0DistanceMin)
310+
return false;
311+
if (getRadius(v01, v02) > cfgV0V0RadiusMax)
312+
return false;
313+
if (getRadius(v01, v02) < cfgV0V0RadiusMin)
301314
return false;
302315

303316
return true;
304317
}
305318

306319
template <typename V01, typename V02>
307-
ROOT::Math::XYZVector getDCAofV0V0(V01 const& v01, V02 const& v02)
320+
float getDCAofV0V0(V01 const& v01, V02 const& v02)
308321
{
309322
ROOT::Math::XYZVector v01pos, v02pos, v01mom, v02mom;
310323
v01pos.SetXYZ(v01.x(), v01.y(), v01.z());
@@ -315,7 +328,7 @@ struct lambdalambda {
315328
ROOT::Math::XYZVector posdiff = v02pos - v01pos;
316329
ROOT::Math::XYZVector cross = v01mom.Cross(v02mom);
317330
ROOT::Math::XYZVector dcaVec = (posdiff.Dot(cross) / cross.Mag2()) * cross;
318-
return dcaVec;
331+
return std::sqrt(dcaVec.Mag2());
319332
}
320333

321334
template <typename V01, typename V02>
@@ -445,32 +458,27 @@ struct lambdalambda {
445458
histos.fill(HIST("Radius_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), getRadius(v01, v02), V01Tag + V02Tag);
446459
histos.fill(HIST("CPA_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), getCPA(v01, v02), V01Tag + V02Tag);
447460
histos.fill(HIST("Distance_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), getDistance(v01, v02), V01Tag + V02Tag);
448-
histos.fill(HIST("DCAR_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), std::sqrt(getDCAofV0V0(v01, v02).perp2()), V01Tag + V02Tag);
449-
histos.fill(HIST("DCAZ_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), getDCAofV0V0(v01, v02).z(), V01Tag + V02Tag);
461+
histos.fill(HIST("DCA_V0V0_full"), RecoV0V0.M(), RecoV0V0.Pt(), getDCAofV0V0(v01, v02), V01Tag + V02Tag);
450462

451463
if (isSelectedV0V0(v01, v02)) {
452464
histos.fill(HIST("Radius_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), getRadius(v01, v02), V01Tag + V02Tag);
453465
histos.fill(HIST("CPA_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), getCPA(v01, v02), V01Tag + V02Tag);
454466
histos.fill(HIST("Distance_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), getDistance(v01, v02), V01Tag + V02Tag);
455-
histos.fill(HIST("DCAR_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), std::sqrt(getDCAofV0V0(v01, v02).perp2()), V01Tag + V02Tag);
456-
histos.fill(HIST("DCAZ_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), getDCAofV0V0(v01, v02).z(), V01Tag + V02Tag);
467+
histos.fill(HIST("DCA_V0V0_sel"), RecoV0V0.M(), RecoV0V0.Pt(), getDCAofV0V0(v01, v02), V01Tag + V02Tag);
457468
IsSelected = true;
458469
}
459470

460471
if (doprocessDataSame) {
461472
histos.fill(HIST("h_InvMass_same"), RecoV0V0.M(), RecoV0V0.Pt(), centrality, V01Tag + V02Tag);
462473
if (cfgV0V0Sel && isSelectedV0V0(v01, v02)) {
463474
histos.fill(HIST("h_InvMass_same_sel"), RecoV0V0.M(), RecoV0V0.Pt(), centrality, V01Tag + V02Tag);
464-
}
465-
if (cfgRotBkg) {
466-
for (int nr = 0; nr < cfgNRotBkg; nr++) {
467-
auto RanPhi = rn->Uniform(o2::constants::math::PI * 5.0 / 6.0, o2::constants::math::PI * 7.0 / 6.0);
468-
RanPhi += RecoV02.Phi();
469-
RecoV02Rot = ROOT::Math::PxPyPzMVector(RecoV02.Pt() * std::cos(RanPhi), RecoV02.Pt() * std::sin(RanPhi), RecoV02.Pz(), RecoV02.M());
470-
RecoV0V0Rot = RecoV01 + RecoV02Rot;
471-
histos.fill(HIST("h_InvMass_rot"), RecoV0V0Rot.M(), RecoV0V0Rot.Pt(), centrality, V01Tag + V02Tag);
472-
if (cfgV0V0Sel && isSelectedV0V0(v01, v02)) {
473-
histos.fill(HIST("h_InvMass_rot_sel"), RecoV0V0Rot.M(), RecoV0V0Rot.Pt(), centrality, V01Tag + V02Tag);
475+
if (cfgRotBkg) {
476+
for (int nr = 0; nr < cfgNRotBkg; nr++) {
477+
auto RanPhi = rn->Uniform(o2::constants::math::PI * 5.0 / 6.0, o2::constants::math::PI * 7.0 / 6.0);
478+
RanPhi += RecoV02.Phi();
479+
RecoV02Rot = ROOT::Math::PxPyPzMVector(RecoV02.Pt() * std::cos(RanPhi), RecoV02.Pt() * std::sin(RanPhi), RecoV02.Pz(), RecoV02.M());
480+
RecoV0V0Rot = RecoV01 + RecoV02Rot;
481+
histos.fill(HIST("h_InvMass_rot"), RecoV0V0Rot.M(), RecoV0V0Rot.Pt(), centrality, V01Tag + V02Tag);
474482
}
475483
}
476484
}

0 commit comments

Comments
 (0)