diff --git a/PWGLF/Tasks/Resonances/phispectrapbpbqa.cxx b/PWGLF/Tasks/Resonances/phispectrapbpbqa.cxx index 981365eefb1..40d04a9986b 100644 --- a/PWGLF/Tasks/Resonances/phispectrapbpbqa.cxx +++ b/PWGLF/Tasks/Resonances/phispectrapbpbqa.cxx @@ -90,6 +90,8 @@ struct phispectrapbpbqa { Configurable ConfPathTOF{"ConfPathTOF", "Users/s/skundu/My/Object/PIDcallib/TOF", "Weight path TOF"}; // events + Configurable applyStrictEvSel{"applyStrictEvSel", true, "Apply strict event selection"}; + Configurable applyMCsel8{"applyMCsel8", false, "Apply sel8 in MC"}; Configurable cfgNoMixedEvents{"cfgNoMixedEvents", 10, "Number of event mixing"}; ConfigurableAxis axisVertex{"axisVertex", {20, -10, 10}, "vertex axis for bin"}; // ConfigurableAxis axisMultiplicityClass{"axisMultiplicityClass", {8, 0, 80}, "multiplicity percentile for bin"}; @@ -104,10 +106,12 @@ struct phispectrapbpbqa { Configurable cfgITScluster{"cfgITScluster", 4, "Number of ITS cluster"}; Configurable cfgTPCcluster{"cfgTPCcluster", 80, "Number of TPC cluster"}; + Configurable cfgTPCPIDcluster{"cfgTPCPIDcluster", 80, "Number of TPC PID cluster"}; Configurable cfgTPCcrossedRows{"cfgTPCcrossedRows", 90, "Number of TPC crossed Rows"}; Configurable cfgUpdatePID{"cfgUpdatePID", false, "Update PID callibration"}; Configurable applyPID{"applyPID", true, "Apply PID"}; + Configurable applyPIDCluster{"applyPIDCluster", true, "Apply PID cluster"}; Configurable isDeepAngle{"isDeepAngle", false, "Deep Angle cut"}; Configurable cfgDeepAngle{"cfgDeepAngle", 0.04, "Deep Angle cut value"}; Configurable timeFrameMC{"timeFrameMC", false, "time frame cut in MC"}; @@ -130,7 +134,7 @@ struct phispectrapbpbqa { Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex; Filter centralityFilter = nabs(aod::cent::centFT0C) < cfgCutCentrality; Filter acceptanceFilter = (nabs(aod::track::eta) < cfgCutEta && nabs(aod::track::pt) > cfgCutPT); - // Filter PIDcutFilter = nabs(aod::pidtpc::tpcNSigmaKa) < nsigmaCutTPC; + Filter PIDcutFilter = nabs(aod::pidtpc::tpcNSigmaKa) < nsigmaCutTPC; // Filter DCAcutFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz); using EventCandidates = soa::Filtered>; @@ -180,7 +184,7 @@ struct phispectrapbpbqa { histos.add("hOccupancy", "hOccupancy", kTH2F, {axisOccupancy, cnfgaxis.configThnAxisCentrality}); histos.add("hMC", "hMC", kTH1F, {{20, 0.0f, 20.0f}}); histos.add("h1PhiRecsplit", "h1PhiRecsplit", kTH1F, {{100, 0.0f, 10.0f}}); - + histos.add("hData", "hData", kTH1F, {{20, 0.0f, 20.0f}}); ccdb->setURL(cfgCcdbParam.cfgURL); ccdbApi.init("http://alice-ccdb.cern.ch"); ccdb->setCaching(true); @@ -215,6 +219,9 @@ struct phispectrapbpbqa { if (!(candidate.isGlobalTrack() && candidate.isPVContributor() && candidate.itsNCls() > cfgITScluster && candidate.tpcNClsFound() > cfgTPCcluster && candidate.tpcNClsCrossedRows() > cfgTPCcrossedRows)) { return false; } + if (applyPIDCluster && candidate.tpcNClsPID() < cfgTPCPIDcluster) { + return false; + } return true; } @@ -330,24 +337,34 @@ struct phispectrapbpbqa { int lastRunNumber = -999; void processSameEvent(EventCandidates::iterator const& collision, TrackCandidates const&, aod::BCsWithTimestamps const&) { - if (!collision.sel8() || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) || !collision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll)) { + histos.fill(HIST("hData"), 1); + if (!collision.sel8() || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) { return; } + histos.fill(HIST("hData"), 2); if (rctCut.requireRCTFlagChecker) { if (!rctChecker(collision)) { return; } } + histos.fill(HIST("hData"), 3); + if (applyStrictEvSel && (!collision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow))) { + return; + } + histos.fill(HIST("hData"), 4); auto centrality = collision.centFT0C(); int occupancy = collision.trackOccupancyInTimeRange(); histos.fill(HIST("hCentrality"), centrality); histos.fill(HIST("hVtxZ"), collision.posZ()); - auto bc = collision.template bc_as(); + + /*auto bc = collision.template bc_as(); currentRunNumber = collision.bc_as().runNumber(); if (currentRunNumber != lastRunNumber) { bz = getMagneticField(bc.timestamp()); } lastRunNumber = currentRunNumber; + */ + auto posThisColl = posTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache); auto negThisColl = negTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache); @@ -488,10 +505,10 @@ struct phispectrapbpbqa { BinningTypeVertexContributor binningOnPositions{{axisVertex, cnfgaxis.configThnAxisCentrality, axisOccupancy}, true}; SameKindPair pair{binningOnPositions, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache}; for (auto& [collision1, tracks1, collision2, tracks2] : pair) { - if (!collision1.sel8() || !collision1.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision1.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision1.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision1.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision1.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) || !collision1.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll)) { + if (!collision1.sel8() || !collision1.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision1.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision1.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision1.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision1.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) { continue; } - if (!collision2.sel8() || !collision2.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision2.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision2.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision2.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision2.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) || !collision2.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll)) { + if (!collision2.sel8() || !collision2.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision2.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision2.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision2.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision2.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) { continue; } if (rctCut.requireRCTFlagChecker) { @@ -499,6 +516,12 @@ struct phispectrapbpbqa { continue; } } + if (applyStrictEvSel && (!collision1.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll) || !collision1.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow))) { + return; + } + if (applyStrictEvSel && (!collision2.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll) || !collision2.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow))) { + return; + } int occupancy = collision1.trackOccupancyInTimeRange(); auto centrality = collision1.centFT0C(); for (auto& [track1, track2] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) { @@ -584,11 +607,15 @@ struct phispectrapbpbqa { return; } for (auto& RecCollision : RecCollisions) { - if (!RecCollision.sel8()) { + if (applyMCsel8 && !RecCollision.sel8()) { + histos.fill(HIST("hMC"), 3); + continue; + } + if (!applyMCsel8 && !RecCollision.selection_bit(aod::evsel::kIsTriggerTVX)) { histos.fill(HIST("hMC"), 3); continue; } - if (!RecCollision.selection_bit(aod::evsel::kNoSameBunchPileup) || !RecCollision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !RecCollision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) || !RecCollision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll)) { + if (!RecCollision.selection_bit(aod::evsel::kNoSameBunchPileup) || !RecCollision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !RecCollision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) { histos.fill(HIST("hMC"), 4); continue; } @@ -601,7 +628,7 @@ struct phispectrapbpbqa { histos.fill(HIST("hMC"), 7); continue; } - if (readOutFrameMC && RecCollision.selection_bit(aod::evsel::kNoITSROFrameBorder)) { + if (readOutFrameMC && !RecCollision.selection_bit(aod::evsel::kNoITSROFrameBorder)) { histos.fill(HIST("hMC"), 8); continue; } @@ -612,6 +639,10 @@ struct phispectrapbpbqa { } } histos.fill(HIST("hMC"), 10); + if (applyStrictEvSel && (!RecCollision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll) || !RecCollision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow))) { + return; + } + histos.fill(HIST("hMC"), 11); auto centrality = RecCollision.centFT0C(); int occupancy = RecCollision.trackOccupancyInTimeRange(); histos.fill(HIST("hOccupancy"), occupancy, centrality);