diff --git a/PWGLF/Tasks/Resonances/f0980pbpbanalysis.cxx b/PWGLF/Tasks/Resonances/f0980pbpbanalysis.cxx index 6cf4b2b176c..50de563683f 100644 --- a/PWGLF/Tasks/Resonances/f0980pbpbanalysis.cxx +++ b/PWGLF/Tasks/Resonances/f0980pbpbanalysis.cxx @@ -99,14 +99,12 @@ struct F0980pbpbanalysis { // Track Selection Configurables Configurable cfgTrackPtMin{"cfgTrackPtMin", 0.15, "Minimum transverse momentum for charged track"}; Configurable cfgTrackEtaMax{"cfgTrackEtaMax", 0.8, "Maximum pseudorapidiy for charged track"}; - Configurable cfgTrackDCArToPVcutMax{"cfgTrackDCArToPVcutMax", 0.5, "Maximum transverse DCA"}; - Configurable cfgTrackDCAzToPVcutMax{"cfgTrackDCAzToPVcutMax", 2.0, "Maximum longitudinal DCA"}; Configurable cfgTrackRapMin{"cfgTrackRapMin", -0.5, "Minimum rapidity for pair"}; Configurable cfgTrackRapMax{"cfgTrackRapMax", 0.5, "Maximum rapidity for pair"}; - Configurable cfgTrackIsPrimaryTrack{"cfgTrackIsPrimaryTrack", true, "Primary track selection"}; - Configurable cfgTrackIsGlobalWoDCATrack{"cfgTrackIsGlobalWoDCATrack", true, "Global track selection without DCA"}; Configurable cfgTrackIsPVContributor{"cfgTrackIsPVContributor", true, "PV contributor track selection"}; + Configurable cfgTrackIsGlobalWoDCATrack{"cfgTrackIsGlobalWoDCATrack", true, "Global track selection without DCA"}; + Configurable cfgTrackIsPrimaryTrack{"cfgTrackIsPrimaryTrack", true, "Primary track selection"}; Configurable cfgTrackNTPCCrossedRows{"cfgTrackNTPCCrossedRows", 70, "nCrossed TPC Rows"}; Configurable cfgTrackNFindableTPCClusters{"cfgTrackNFindableTPCClusters", 50, "nFindable TPC Clusters"}; @@ -115,6 +113,17 @@ struct F0980pbpbanalysis { Configurable cfgTrackNITSChi2{"cfgTrackNITSChi2", 36.0, "nITS Chi2 per Cluster"}; + Configurable cfgTrackDCArToPVcutMax{"cfgTrackDCArToPVcutMax", 0.5, "Maximum transverse DCA"}; + Configurable cfgTrackDCAzToPVcutMax{"cfgTrackDCAzToPVcutMax", 2.0, "Maximum longitudinal DCA"}; + + Configurable cfgTrackDCArDepPTSel{"cfgTrackDCArDepPTSel", false, "Flag for pT dependent transverse DCA cut"}; // 7 - sigma cut + Configurable cfgTrackDCArDepPTP0{"cfgTrackDCArDepPTP0", 0.004, "Coeff. of transverse DCA for p0"}; + Configurable cfgTrackDCArDepPTExp{"cfgTrackDCArDepPTExp", 0.013, "Coeff. of transverse DCA for power law term"}; + + Configurable cfgTrackDCAzDepPTSel{"cfgTrackDCAzDepPTSel", false, "Flag for pT dependent longitudinal DCA cut"}; // 7 - sigma cut + Configurable cfgTrackDCAzDepPTP0{"cfgTrackDCAzDepPTP0", 0.004, "Coeff. of longitudinal DCA for p0"}; + Configurable cfgTrackDCAzDepPTExp{"cfgTrackDCAzDepPTExp", 0.013, "Coeff. of longitudinal DCA for power law term"}; + // PID Configurables Configurable cfgPIDUSETOF{"cfgPIDUSETOF", true, "TOF usage"}; @@ -294,6 +303,8 @@ struct F0980pbpbanalysis { if (!pass) { histos.fill(HIST("TrackQA/DCArToPv_BC"), obj.dcaXY()); histos.fill(HIST("TrackQA/DCAzToPv_BC"), obj.dcaZ()); + histos.fill(HIST("TrackQA/DCArVsPT_BC"), obj.pt(), obj.dcaXY()); + histos.fill(HIST("TrackQA/DCAzVsPT_BC"), obj.pt(), obj.dcaZ()); histos.fill(HIST("TrackQA/IsPrim_BC"), obj.isPrimaryTrack()); histos.fill(HIST("TrackQA/IsGood_BC"), obj.isGlobalTrackWoDCA()); histos.fill(HIST("TrackQA/IsPrimCont_BC"), obj.isPVContributor()); @@ -304,6 +315,8 @@ struct F0980pbpbanalysis { } else { histos.fill(HIST("TrackQA/DCArToPv_AC"), obj.dcaXY()); histos.fill(HIST("TrackQA/DCAzToPv_AC"), obj.dcaZ()); + histos.fill(HIST("TrackQA/DCArVsPT_AC"), obj.pt(), obj.dcaXY()); + histos.fill(HIST("TrackQA/DCAzVsPT_AC"), obj.pt(), obj.dcaZ()); histos.fill(HIST("TrackQA/IsPrim_AC"), obj.isPrimaryTrack()); histos.fill(HIST("TrackQA/IsGood_AC"), obj.isGlobalTrackWoDCA()); histos.fill(HIST("TrackQA/IsPrimCont_AC"), obj.isPVContributor()); @@ -417,34 +430,46 @@ struct F0980pbpbanalysis { if (std::abs(track.eta()) > cfgTrackEtaMax) { return 0; } - if (std::abs(track.dcaXY()) > cfgTrackDCArToPVcutMax) { + if (cfgTrackIsPVContributor && !track.isPVContributor()) { return 0; } - if (std::abs(track.dcaZ()) > cfgTrackDCAzToPVcutMax) { + if (cfgTrackIsGlobalWoDCATrack && !track.isGlobalTrackWoDCA()) { return 0; } - if (cfgTrackIsPVContributor && !track.isPVContributor()) { + if (cfgTrackNTPCCrossedRows > 0 && track.tpcNClsCrossedRows() < cfgTrackNTPCCrossedRows) { return 0; } - if (cfgTrackIsPrimaryTrack && !track.isPrimaryTrack()) { + if (cfgTrackNTPCChi2 > 0 && track.tpcChi2NCl() > cfgTrackNTPCChi2) { return 0; } - if (cfgTrackIsGlobalWoDCATrack && !track.isGlobalTrackWoDCA()) { + if (cfgTrackNITSChi2 > 0 && track.itsChi2NCl() > cfgTrackNITSChi2) { return 0; } - if (cfgTrackNTPCCrossedRows > 0 && track.tpcNClsCrossedRows() < cfgTrackNTPCCrossedRows) { - return 0; + if (cfgTrackDCArDepPTSel) { + if (std::abs(track.dcaXY()) > (cfgTrackDCArDepPTP0 + (cfgTrackDCArDepPTExp / track.pt()))) { + return 0; + } + } else { + if (std::abs(track.dcaXY()) > cfgTrackDCArToPVcutMax) { + return 0; + } } - if (cfgTrackNFindableTPCClusters > 0 && track.tpcNClsFindable() < cfgTrackNFindableTPCClusters) { - return 0; + if (cfgTrackDCAzDepPTSel) { + if (std::abs(track.dcaZ()) > (cfgTrackDCAzDepPTP0 + (cfgTrackDCAzDepPTExp / track.pt()))) { + return 0; + } + } else { + if (std::abs(track.dcaZ()) > cfgTrackDCAzToPVcutMax) { + return 0; + } } - if (cfgTrackNRowsOverFindable > 0 && track.tpcCrossedRowsOverFindableCls() > cfgTrackNRowsOverFindable) { + if (cfgTrackIsPrimaryTrack && !track.isPrimaryTrack()) { return 0; } - if (cfgTrackNTPCChi2 > 0 && track.tpcChi2NCl() > cfgTrackNTPCChi2) { + if (cfgTrackNFindableTPCClusters > 0 && track.tpcNClsFindable() < cfgTrackNFindableTPCClusters) { return 0; } - if (cfgTrackNITSChi2 > 0 && track.itsChi2NCl() > cfgTrackNITSChi2) { + if (cfgTrackNRowsOverFindable > 0 && track.tpcCrossedRowsOverFindableCls() > cfgTrackNRowsOverFindable) { return 0; } return 1; @@ -717,6 +742,8 @@ struct F0980pbpbanalysis { if (cfgQATrackCut) { histos.add("TrackQA/DCArToPv_BC", "", {HistType::kTH1F, {histAxisDCAz}}); histos.add("TrackQA/DCAzToPv_BC", "", {HistType::kTH1F, {histAxisDCAz}}); + histos.add("TrackQA/DCArVsPT_BC", "", {HistType::kTH2F, {qaPtAxis, histAxisDCAr}}); + histos.add("TrackQA/DCAzVsPT_BC", "", {HistType::kTH2F, {qaPtAxis, histAxisDCAz}}); histos.add("TrackQA/IsPrim_BC", "", kTH1F, {{2, -0.5, 1.5}}); histos.add("TrackQA/IsGood_BC", "", kTH1F, {{2, -0.5, 1.5}}); histos.add("TrackQA/IsPrimCont_BC", "", kTH1F, {{2, -0.5, 1.5}}); @@ -728,6 +755,8 @@ struct F0980pbpbanalysis { // histos.add("TrackQA/DCArToPv_AC", "", {HistType::kTH1F, {histAxisDCAz}}); histos.add("TrackQA/DCAzToPv_AC", "", {HistType::kTH1F, {histAxisDCAz}}); + histos.add("TrackQA/DCArVsPT_AC", "", {HistType::kTH2F, {qaPtAxis, histAxisDCAr}}); + histos.add("TrackQA/DCAzVsPT_AC", "", {HistType::kTH2F, {qaPtAxis, histAxisDCAz}}); histos.add("TrackQA/IsPrim_AC", "", kTH1F, {{2, -0.5, 1.5}}); histos.add("TrackQA/IsGood_AC", "", kTH1F, {{2, -0.5, 1.5}}); histos.add("TrackQA/IsPrimCont_AC", "", kTH1F, {{2, -0.5, 1.5}});