From 40ee77c2140f6007ca717bd6e8b6fd80c37d59f2 Mon Sep 17 00:00:00 2001 From: maciacco Date: Mon, 23 Oct 2023 15:30:12 +0200 Subject: [PATCH 1/2] merge loops over collisions + add histogram for # contrib study vs time + update binnings --- PWGLF/Tasks/QC/vertexQA.cxx | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/PWGLF/Tasks/QC/vertexQA.cxx b/PWGLF/Tasks/QC/vertexQA.cxx index 9fc60a68436..c1b63ee7ed5 100644 --- a/PWGLF/Tasks/QC/vertexQA.cxx +++ b/PWGLF/Tasks/QC/vertexQA.cxx @@ -67,18 +67,21 @@ struct vertexQA { Configurable maxTime{"maxTime", 100000., "Maximum time difference between split vertices in ns"}; ConfigurableAxis xVtxAxis{"xVtxBins", {100, -0.1f, 0.1f}, "Binning for the vertex x (y) in cm"}; - ConfigurableAxis zVtxAxis{"zVtxBins", {100, -10.f, 10.f}, "Binning for the vertex z in cm"}; + ConfigurableAxis zVtxAxis{"zVtxBins", {100, -20.f, 20.f}, "Binning for the vertex z in cm"}; ConfigurableAxis tVtxAxis{"tVtxBins", {100, -20.f, 20.f}, "Binning for the vertex t in ns"}; - ConfigurableAxis xDiffVtxAxis{"xDiffVtxBins", {200, -0.1f, 0.1f}, "Binning for the vertex x (y) distance in cm"}; - ConfigurableAxis xyDiffVtxAxis{"xyDiffVtxBins", {200, 0.f, 0.1f}, "Binning for the vertex xy distance in cm"}; + ConfigurableAxis xDiffVtxAxis{"xDiffVtxBins", {200, -0.05f, 0.05f}, "Binning for the vertex x (y) distance in cm"}; + ConfigurableAxis xyDiffVtxAxis{"xyDiffVtxBins", {200, 0.f, 0.05f}, "Binning for the vertex xy distance in cm"}; ConfigurableAxis zDiffVtxAxis{"zDiffVtxBins", {200, -10.f, 10.f}, "Binning for the vertex z distance in cm"}; - ConfigurableAxis tDiffVtxAxis{"tDiffVtxBins", {200, 0.f, 50.f}, "Binning for the vertex t distance in ns"}; + ConfigurableAxis zDiffVtxAxis2{"zDiffVtxBins2", {1000, -0.5f, 0.5f}, "Binning for the vertex z distance in cm (2)"}; + ConfigurableAxis tDiffVtxAxis{"tDiffVtxBins", {300, 0.f, 30.f}, "Binning for the vertex t distance in ns"}; ConfigurableAxis tDiffVtxAxisExtend{"tDiffVtxBinsExtend", {1000, 0.f, 100000.f}, "Binning for the vertex t distance in ns, extended range"}; + ConfigurableAxis tDiffVtxAxisExtendSigned{"tDiffVtxBinsExtendSigned", {1000, -100000.f, 100000.f}, "Binning for the vertex t distance in ns, extended range, signed"}; ConfigurableAxis nVtxAxis{"nVtxBins", {11, -0.5, 10.5}, "Binning for the number of reconstructed vertices per BC"}; ConfigurableAxis nVtxTwoAxis{"nVtxTwoBins", {2, 0.5, 2.5}, "Binning for the number of reconstructed vertices vs. time"}; ConfigurableAxis nContribAxis{"nContribBins", {1000, 0, 5000}, "Binning for number of contributors to PV"}; + ConfigurableAxis nContribDiffAxis{"nContribDiffBins", {1000, -5000, 5000}, "Binning for the difference in number of contributors to PV"}; HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject}; @@ -103,11 +106,12 @@ struct vertexQA { histos.add("tTwoVtxHistogram", ";#it{t}_{vtx}^{1} (ns);#it{t}_{vtx}^{2} (ns)", HistType::kTH2F, {tVtxAxis, tVtxAxis}); histos.add("nVtxTimeSeriesHistogram", ";#it{N}_{vtx}^{rec};Entries", HistType::kTH1F, {nVtxTwoAxis}); - histos.add("zDistVtxTimeSeriesHistogram", ";#Delta#it{z}_{vtx} (cm);Entries", HistType::kTH1F, {zDiffVtxAxis}); + histos.add("zDistVtxTimeSeriesHistogram", ";#Delta#it{z}_{vtx} (cm);Entries", HistType::kTH1F, {zDiffVtxAxis2}); histos.add("tDistVtxTimeSeriesHistogram", ";#Delta#it{t}_{vtx} (ns);Entries", HistType::kTH1F, {tDiffVtxAxisExtend}); - histos.add("tCollTwoVtxTimeSeriesHistogram", ";#Delta#it{t}^{coll}_{vtx,1} (ns);#Delta#it{t}^{coll}_{vtx,2} (ns)", HistType::kTH2F, {tVtxAxis, tVtxAxis}); - histos.add("zDistVsTDistVtxTimeSeriesHistogram", ";#Delta#it{t}_{vtx} (ns);#Delta#it{z}_{vtx} (cm)", HistType::kTH2F, {tDiffVtxAxisExtend, zDiffVtxAxis}); - histos.add("nContribTwoVtxTimeSeriesHistogram", ";#it{N}_{vtx,1};#it{N}_{vtx,2}", HistType::kTH2F, {nContribAxis, nContribAxis}); + histos.add("tCollTwoVtxTimeSeriesHistogram", ";#Delta#it{t}_{coll}^{1} (ns);#Delta#it{t}_{coll}^{2} (ns)", HistType::kTH2F, {tVtxAxis, tVtxAxis}); + histos.add("zDistVsTDistVtxTimeSeriesHistogram", ";#Delta#it{t}_{vtx} (ns);#Delta#it{z}_{vtx} (cm)", HistType::kTH2F, {tDiffVtxAxisExtend, zDiffVtxAxis2}); + histos.add("nContribTwoVtxTimeSeriesHistogram", ";#it{N}_{contrib}^{1};#it{N}_{contrib}^{2}", HistType::kTH2F, {nContribAxis, nContribAxis}); + histos.add("nContribVsTDistTimeSeriesHistogram", ";#Delta#it{t}_{vtx} (ns);#Delta#it{N}_{contrib}", HistType::kTH2F, {tDiffVtxAxisExtendSigned, nContribDiffAxis}); } std::deque colls; @@ -147,6 +151,8 @@ struct vertexQA { histos.fill(HIST("yVtxHistogram"), posY); histos.fill(HIST("zVtxHistogram"), posZ); histos.fill(HIST("tVtxHistogram"), posT); + + colls.emplace_back(bc, collision); } if (collSize == 2) { @@ -162,10 +168,6 @@ struct vertexQA { histos.fill(HIST("tTwoVtxHistogram"), collPosT[0], collPosT[1]); } - for (auto col : collisions) { - colls.emplace_back(bc, col); - } - if (colls.size() > nCollMax) { auto delta = colls.size() - nCollMax; for (long unsigned int iC{0}; iC < delta; ++iC) { @@ -196,11 +198,12 @@ struct vertexQA { auto coll1 = std::get(colls.front()); auto coll2 = std::get(*id); double deltaT = deltaTimeColl(colls.front(), *id); - histos.fill(HIST("zDistVtxTimeSeriesHistogram"), coll1.posZ() - coll2.posZ()); + histos.fill(HIST("zDistVtxTimeSeriesHistogram"), coll2.posZ() - coll1.posZ()); histos.fill(HIST("tDistVtxTimeSeriesHistogram"), std::abs(deltaT)); histos.fill(HIST("tCollTwoVtxTimeSeriesHistogram"), coll1.collisionTime(), coll2.collisionTime()); - histos.fill(HIST("zDistVsTDistVtxTimeSeriesHistogram"), std::abs(deltaT), coll1.posZ() - coll2.posZ()); + histos.fill(HIST("zDistVsTDistVtxTimeSeriesHistogram"), std::abs(deltaT), coll2.posZ() - coll1.posZ()); histos.fill(HIST("nContribTwoVtxTimeSeriesHistogram"), coll1.numContrib(), coll2.numContrib()); + histos.fill(HIST("nContribVsTDistTimeSeriesHistogram"), -deltaT, coll2.numContrib() - coll1.numContrib()); histos.fill(HIST("nVtxTimeSeriesHistogram"), 2); colls.erase(id); colls.pop_front(); From 890c18a01cd0d4fd599435334a8fbf64ad70c61c Mon Sep 17 00:00:00 2001 From: Mario Ciacco Date: Mon, 23 Oct 2023 15:45:50 +0200 Subject: [PATCH 2/2] fix cpp issues (megalinter) --- PWGLF/Tasks/QC/vertexQA.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/QC/vertexQA.cxx b/PWGLF/Tasks/QC/vertexQA.cxx index c1b63ee7ed5..d4c19a57088 100644 --- a/PWGLF/Tasks/QC/vertexQA.cxx +++ b/PWGLF/Tasks/QC/vertexQA.cxx @@ -54,13 +54,14 @@ DECLARE_SOA_TABLE(VtxQAtable, "AOD", "VTXQATABLE", collision::CollisionTime, collision::CollisionTimeRes, collision::NumContrib) -} +} // namespace o2::aod + struct vertexQA { Produces vtxQAtable; Configurable storeTree{"storeTree", 1000, "Store in tree collisions from BC's with more than 'storeTree' vertices, for in-depth analysis"}; - Configurable nCollMax{"nCollMax", 20, "Maximum size of collision buffer"}; + Configurable nCollMax{"nCollMax", 20, "Maximum size of collision buffer"}; Configurable nSigmaZ{"nSigmaZ", 1000., "Number of sigmas for z of vertices"}; Configurable nSigmaR{"nSigmaR", 1000., "Number of sigmas for transverse displacement of vertices"}; Configurable nSigmaT{"nSigmaT", 1000., "Number of sigmas for time of vertices"}; @@ -170,7 +171,7 @@ struct vertexQA { if (colls.size() > nCollMax) { auto delta = colls.size() - nCollMax; - for (long unsigned int iC{0}; iC < delta; ++iC) { + for (uint64_t iC{0}; iC < delta; ++iC) { histos.fill(HIST("nVtxTimeSeriesHistogram"), 1); colls.pop_front(); }