Skip to content

Commit 9ca0c83

Browse files
authored
[PWGLF] K*(892)0 PbPb analysis update (#15303)
1 parent 088d3f9 commit 9ca0c83

File tree

1 file changed

+62
-25
lines changed

1 file changed

+62
-25
lines changed

PWGLF/Tasks/Resonances/k892analysispbpb.cxx

Lines changed: 62 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ struct K892analysispbpb {
114114
Configurable<bool> cTPClowpt{"cTPClowpt", true, "apply TPC at low pt"};
115115
Configurable<bool> cTOFonlyHighpt{"cTOFonlyHighpt", false, "apply TOF only at high pt"};
116116
Configurable<bool> cTOFandTPCHighpt{"cTOFandTPCHighpt", false, "apply TOF and TPC at high pt"};
117+
Configurable<bool> circularCut{"circularCut", false, "apply TOF and TPC circular cut (applied only if cTOFandTPCHighpt is true)"};
117118

118119
// rotational bkg
119120
Configurable<int> cfgNoRotations{"cfgNoRotations", 3, "Number of rotations per pair for rotbkg"};
@@ -409,10 +410,16 @@ struct K892analysispbpb {
409410

410411
} else if (cTOFandTPCHighpt) {
411412

412-
if (candidate.hasTOF() && std::abs(candidate.tofNSigmaKa()) <= cMaxTOFnSigmaKaon && candidate.hasTPC() && std::abs(candidate.tpcNSigmaKa()) <= cMaxTPCnSigmaKaon) { // tof and tpc cut
413-
return true;
414-
}
413+
if (circularCut) {
414+
415+
if (candidate.hasTOF() && candidate.hasTPC() && std::sqrt(std::pow(candidate.tpcNSigmaKa(), 2) + std::pow(candidate.tofNSigmaKa(), 2)) <= cMaxTPCnSigmaKaon) // tof and tpc circular cut
416+
return true;
415417

418+
} else {
419+
420+
if (candidate.hasTOF() && std::abs(candidate.tofNSigmaKa()) <= cMaxTOFnSigmaKaon && candidate.hasTPC() && std::abs(candidate.tpcNSigmaKa()) <= cMaxTPCnSigmaKaon) // tof and tpc cut
421+
return true;
422+
}
416423
} else {
417424

418425
if (candidate.hasTPC() && std::abs(candidate.tpcNSigmaKa()) <= cMaxTPCnSigmaKaon) { // tpc cut, tof when available
@@ -447,8 +454,15 @@ struct K892analysispbpb {
447454

448455
} else if (cTOFandTPCHighpt) {
449456

450-
if (candidate.hasTOF() && std::abs(candidate.tofNSigmaPi()) <= cMaxTOFnSigmaPion && candidate.hasTPC() && std::abs(candidate.tpcNSigmaPi()) <= cMaxTPCnSigmaPion) { // tof and tpc cut
451-
return true;
457+
if (circularCut) {
458+
459+
if (candidate.hasTOF() && candidate.hasTPC() && std::sqrt(std::pow(candidate.tpcNSigmaPi(), 2) + std::pow(candidate.tofNSigmaPi(), 2)) <= cMaxTPCnSigmaPion) // tof and tpc circular cut
460+
return true;
461+
462+
} else {
463+
464+
if (candidate.hasTOF() && std::abs(candidate.tofNSigmaPi()) <= cMaxTOFnSigmaPion && candidate.hasTPC() && std::abs(candidate.tpcNSigmaPi()) <= cMaxTPCnSigmaPion) // tof and tpc cut
465+
return true;
452466
}
453467

454468
} else {
@@ -838,47 +852,59 @@ struct K892analysispbpb {
838852

839853
Preslice<aod::Tracks> trackPerCollision = aod::track::collisionId;
840854

841-
template <bool IsMC, bool IsMix, bool IsRot, bool IsRun2, typename CollisionType, typename TracksType>
855+
template <bool IsMC, bool IsMix, bool IsRot, bool IsRun2, bool isLikeSig, typename CollisionType, typename TracksType>
842856
void callFillHistoswithPartitions(const CollisionType& collision1, const TracksType&, const CollisionType& collision2, const TracksType&)
843857
{
844858
if (cTPClowpt) {
845859
//+-
846860
auto candPosPitpc = posPitpc->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
847861
auto candNegKatpc = negKatpc->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
848862

849-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitpc, candNegKatpc);
850-
851863
//-+
852864
auto candNegPitpc = negPitpc->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
853865
auto candPosKatpc = posKatpc->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
854866

855-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitpc, candPosKatpc);
867+
if constexpr (!isLikeSig) {
868+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitpc, candNegKatpc);
869+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitpc, candPosKatpc);
870+
} else {
871+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitpc, candPosKatpc);
872+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitpc, candNegKatpc);
873+
}
856874

857875
} else if (cTOFandTPCHighpt) {
858876
//+-
859877
auto candPosPitoftpc = posPitoftpc->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
860878
auto candNegKatoftpc = negKatoftpc->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
861879

862-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitoftpc, candNegKatoftpc);
863-
864880
//-+
865881
auto candNegPitoftpc = negPitoftpc->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
866882
auto candPosKatoftpc = posKatoftpc->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
867883

868-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitoftpc, candPosKatoftpc);
884+
if constexpr (!isLikeSig) {
885+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitoftpc, candNegKatoftpc);
886+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitoftpc, candPosKatoftpc);
887+
} else {
888+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitoftpc, candPosKatoftpc);
889+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitoftpc, candNegKatoftpc);
890+
}
869891

870892
} else if (cTOFonlyHighpt) {
871893
//+-
872894
auto candPosPitof = posPitof->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
873895
auto candNegKatof = negKatof->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
874896

875-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitof, candNegKatof);
876-
877897
//-+
878898
auto candNegPitof = negPitof->sliceByCached(aod::track::collisionId, collision1.globalIndex(), cache);
879899
auto candPosKatof = posKatof->sliceByCached(aod::track::collisionId, collision2.globalIndex(), cache);
880900

881-
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitof, candPosKatof);
901+
if constexpr (!isLikeSig) {
902+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitof, candNegKatof);
903+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitof, candPosKatof);
904+
} else {
905+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candPosPitof, candPosKatof);
906+
fillHistograms<IsMC, IsMix, IsRot, IsRun2>(collision1, candNegPitof, candNegKatof);
907+
}
882908
}
883909
}
884910

@@ -898,8 +924,8 @@ struct K892analysispbpb {
898924
histos.fill(HIST("TestME/hCollisionIndexSameE"), collision.globalIndex());
899925
histos.fill(HIST("TestME/hnTrksSameE"), tracks.size());
900926
}
901-
// <IsMC, IsMix, IsRot, IsRun2>
902-
callFillHistoswithPartitions<false, false, false, false>(collision, tracks, collision, tracks);
927+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
928+
callFillHistoswithPartitions<false, false, false, false, false>(collision, tracks, collision, tracks);
903929
}
904930
PROCESS_SWITCH(K892analysispbpb, processSameEvent, "Process Same event", true);
905931

@@ -918,8 +944,8 @@ struct K892analysispbpb {
918944
histos.fill(HIST("TestME/hnTrksSameE"), tracks.size());
919945
}
920946

921-
// <IsMC, IsMix, IsRot, IsRun2>
922-
callFillHistoswithPartitions<false, false, false, true>(collision, tracks, collision, tracks);
947+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
948+
callFillHistoswithPartitions<false, false, false, true, false>(collision, tracks, collision, tracks);
923949
}
924950
PROCESS_SWITCH(K892analysispbpb, processSameEventRun2, "Process Same event Run2", false);
925951

@@ -929,8 +955,8 @@ struct K892analysispbpb {
929955
if (!myEventSelections(collision))
930956
return;
931957

932-
// <IsMC, IsMix, IsRot, IsRun2>
933-
callFillHistoswithPartitions<false, false, true, false>(collision, tracks, collision, tracks);
958+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
959+
callFillHistoswithPartitions<false, false, true, false, false>(collision, tracks, collision, tracks);
934960
}
935961
PROCESS_SWITCH(K892analysispbpb, processRotationalBkg, "Process Rotational Background", false);
936962

@@ -945,6 +971,17 @@ struct K892analysispbpb {
945971
}
946972
PROCESS_SWITCH(K892analysispbpb, processRotationalBkgMC, "Process Rotational Background MC", false);
947973

974+
void processLikeSign(EventCandidates::iterator const& collision, TrackCandidates const& tracks, aod::BCs const&)
975+
{
976+
977+
if (!myEventSelections(collision))
978+
return;
979+
980+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
981+
callFillHistoswithPartitions<false, false, false, false, true>(collision, tracks, collision, tracks);
982+
}
983+
PROCESS_SWITCH(K892analysispbpb, processLikeSign, "Process Like Sign", false);
984+
948985
void processMixedEvent(EventCandidates const& collisions, TrackCandidates const& tracks)
949986
{
950987
auto tracksTuple = std::make_tuple(tracks);
@@ -966,8 +1003,8 @@ struct K892analysispbpb {
9661003
histos.fill(HIST("TestME/hnTrksMixedE"), tracks1.size());
9671004
}
9681005

969-
// <IsMC, IsMix, IsRot, IsRun2>
970-
callFillHistoswithPartitions<false, true, false, false>(collision1, tracks1, collision2, tracks2);
1006+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
1007+
callFillHistoswithPartitions<false, true, false, false, false>(collision1, tracks1, collision2, tracks2);
9711008
}
9721009
}
9731010
PROCESS_SWITCH(K892analysispbpb, processMixedEvent, "Process Mixed event", true);
@@ -991,8 +1028,8 @@ struct K892analysispbpb {
9911028
histos.fill(HIST("TestME/hnTrksMixedE"), tracks1.size());
9921029
}
9931030

994-
// <IsMC, IsMix, IsRot, IsRun2>
995-
callFillHistoswithPartitions<false, true, false, true>(collision1, tracks1, collision2, tracks2);
1031+
// <IsMC, IsMix, IsRot, IsRun2, isLikeSig>
1032+
callFillHistoswithPartitions<false, true, false, true, false>(collision1, tracks1, collision2, tracks2);
9961033
}
9971034
}
9981035
PROCESS_SWITCH(K892analysispbpb, processMixedEventRun2, "Process Mixed event Run2", false);

0 commit comments

Comments
 (0)