|
16 | 16 | /// \since November 05, 2025 |
17 | 17 |
|
18 | 18 | #include "PWGCF/Core/CorrelationContainer.h" |
| 19 | +#include "PWGCF/Core/PairCuts.h" |
| 20 | +#include "PWGCF/DataModel/CorrelationsDerived.h" |
19 | 21 | #include "PWGCF/TwoParticleCorrelations/DataModel/LongRangeDerived.h" |
| 22 | +#include "PWGMM/Mult/DataModel/bestCollisionTable.h" |
20 | 23 | #include "PWGUD/Core/SGSelector.h" |
21 | 24 |
|
22 | 25 | #include "Common/Core/RecoDecay.h" |
23 | | - |
24 | | -#include <CommonConstants/MathConstants.h> |
25 | | -#include <Framework/AnalysisDataModel.h> |
26 | | -#include <Framework/AnalysisHelpers.h> |
27 | | -#include <Framework/AnalysisTask.h> |
28 | | -#include <Framework/BinningPolicy.h> |
29 | | -#include <Framework/Configurable.h> |
30 | | -#include <Framework/GroupedCombinations.h> |
31 | | -#include <Framework/HistogramRegistry.h> |
32 | | -#include <Framework/HistogramSpec.h> |
33 | | -#include <Framework/InitContext.h> |
34 | | -#include <Framework/OutputObjHeader.h> |
35 | | -#include <Framework/runDataProcessing.h> |
36 | | - |
37 | | -#include <cstdint> |
| 26 | +#include "Common/Core/TrackSelection.h" |
| 27 | +#include "Common/Core/trackUtilities.h" |
| 28 | +#include "Common/DataModel/Centrality.h" |
| 29 | +#include "Common/DataModel/CollisionAssociationTables.h" |
| 30 | +#include "Common/DataModel/EventSelection.h" |
| 31 | +#include "Common/DataModel/FT0Corrected.h" |
| 32 | +#include "Common/DataModel/Multiplicity.h" |
| 33 | +#include "Common/DataModel/PIDResponseITS.h" |
| 34 | +#include "Common/DataModel/PIDResponseTOF.h" |
| 35 | +#include "Common/DataModel/PIDResponseTPC.h" |
| 36 | +#include "Common/DataModel/TrackSelectionTables.h" |
| 37 | + |
| 38 | +#include "CCDB/BasicCCDBManager.h" |
| 39 | +#include "CCDB/CcdbApi.h" |
| 40 | +#include "CommonConstants/MathConstants.h" |
| 41 | +#include "CommonConstants/PhysicsConstants.h" |
| 42 | +#include "DetectorsCommonDataFormats/AlignParam.h" |
| 43 | +#include "FT0Base/Geometry.h" |
| 44 | +#include "FV0Base/Geometry.h" |
| 45 | +#include "Framework/ASoAHelpers.h" |
| 46 | +#include "Framework/AnalysisDataModel.h" |
| 47 | +#include "Framework/AnalysisTask.h" |
| 48 | +#include "Framework/HistogramRegistry.h" |
| 49 | +#include "Framework/O2DatabasePDGPlugin.h" |
| 50 | +#include "Framework/RunningWorkflowInfo.h" |
| 51 | +#include "Framework/StepTHn.h" |
| 52 | +#include "Framework/runDataProcessing.h" |
| 53 | +#include "ReconstructionDataFormats/PID.h" |
| 54 | +#include "ReconstructionDataFormats/Track.h" |
| 55 | + |
| 56 | +#include <TComplex.h> |
| 57 | +#include <TH1F.h> |
| 58 | +#include <TMath.h> |
| 59 | +#include <TPDGCode.h> |
| 60 | + |
| 61 | +#include <chrono> |
38 | 62 | #include <cstdio> |
39 | 63 | #include <experimental/type_traits> |
| 64 | +#include <memory> |
40 | 65 | #include <string> |
41 | 66 | #include <tuple> |
42 | 67 | #include <utility> |
@@ -83,6 +108,7 @@ struct LongrangecorrDerived { |
83 | 108 | ConfigurableAxis axisInvMass{"axisInvMass", {VARIABLE_WIDTH, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2.0}, "invariant mass axis"}; |
84 | 109 | ConfigurableAxis axisInvMassQA{"axisInvMassQA", {20, 0.45, 0.55}, "invariant mass axis for QA"}; |
85 | 110 | ConfigurableAxis axisAmplitude{"axisAmplitude", {5000, 0, 10000}, "FT0 amplitude"}; |
| 111 | + ConfigurableAxis axisChannel{"axisChannel", {208, 0, 208}, "FT0 channel"}; |
86 | 112 | ConfigurableAxis axisMultME{"axisMultME", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 1000}, "Mixing bins - multiplicity"}; |
87 | 113 | ConfigurableAxis axisVtxZME{"axisVtxZME", {VARIABLE_WIDTH, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10}, "Mixing bins - z-vertex"}; |
88 | 114 |
|
@@ -170,6 +196,9 @@ struct LongrangecorrDerived { |
170 | 196 | histos.add("Assoc_etavsphi", "Assoc_etavsphi", kTH2D, {axisPhi, axisEtaAssoc}); |
171 | 197 | histos.add("Assoc_pt", "Assoc_pt", kTH1D, {axisPtAssoc}); |
172 | 198 | histos.add("Assoc_amp", "Assoc_amp", kTH1D, {axisAmplitude}); |
| 199 | + histos.add("Assoc_amp_gaincorrected", "Assoc_amp_gaincorrected", kTH1D, {axisAmplitude}); |
| 200 | + histos.add("Channel_vs_Assoc_amp", "Channel_vs_Assoc_amp", kTH2D, {axisChannel, axisAmplitude}); |
| 201 | + histos.add("Channel_vs_Assoc_amp_gaincorrected", "Channel_vs_Assoc_amp_gaincorrected", kTH2D, {axisChannel, axisAmplitude}); |
173 | 202 |
|
174 | 203 | histos.add("deltaEta_deltaPhi_same", "", kTH2D, {axisDeltaPhi, axisDeltaEta}); |
175 | 204 | histos.add("deltaEta_deltaPhi_mixed", "", kTH2D, {axisDeltaPhi, axisDeltaEta}); |
@@ -205,6 +234,9 @@ struct LongrangecorrDerived { |
205 | 234 | histos.fill(HIST("Assoc_phi"), track.phi()); |
206 | 235 | if constexpr (std::experimental::is_detected<HasFt0, TTrack>::value) { |
207 | 236 | histos.fill(HIST("Assoc_amp"), track.amplitude()); |
| 237 | + histos.fill(HIST("Channel_vs_Assoc_amp"), track.channelID(), track.amplitude()); |
| 238 | + histos.fill(HIST("Assoc_amp_gaincorrected"), track.gainAmplitude()); |
| 239 | + histos.fill(HIST("Channel_vs_Assoc_amp_gaincorrected"), track.channelID(), track.gainAmplitude()); |
208 | 240 | } else { |
209 | 241 | histos.fill(HIST("Assoc_pt"), track.pt()); |
210 | 242 | } |
@@ -260,23 +292,25 @@ struct LongrangecorrDerived { |
260 | 292 | histos.fill(HIST("Trig_hist"), vz, multiplicity, triggerTrack.pt(), 1.0, eventWeight); |
261 | 293 | } |
262 | 294 | } |
| 295 | + auto ampl = 1.0f; |
263 | 296 | for (auto const& assoTrack : assocs) { |
264 | 297 | if constexpr (std::experimental::is_detected<HasFt0, typename TAssocs::iterator>::value) { |
265 | 298 | if (isApplyAmpCut && (assoTrack.amplitude() < cfgLowAmpCut)) |
266 | 299 | continue; |
| 300 | + ampl *= assoTrack.gainAmplitude(); |
267 | 301 | } |
268 | 302 | float deltaPhi = RecoDecay::constrainAngle(triggerTrack.phi() - assoTrack.phi(), -PIHalf); |
269 | 303 | float deltaEta = triggerTrack.eta() - assoTrack.eta(); |
270 | 304 | if (!mixing) { |
271 | 305 | fillAssocTrackQA(assoTrack); |
272 | | - histos.fill(HIST("deltaEta_deltaPhi_same"), deltaPhi, deltaEta); |
| 306 | + histos.fill(HIST("deltaEta_deltaPhi_same"), deltaPhi, deltaEta, eventWeight * ampl); |
273 | 307 | } else { |
274 | | - histos.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta); |
| 308 | + histos.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta, eventWeight * ampl); |
275 | 309 | } |
276 | 310 | if constexpr (std::experimental::is_detected<HasInvMass, typename TTriggers::iterator>::value) { |
277 | | - target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, triggerTrack.invMass(), eventWeight); |
| 311 | + target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, triggerTrack.invMass(), eventWeight * ampl); |
278 | 312 | } else { |
279 | | - target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, 1.0, eventWeight); |
| 313 | + target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, 1.0, eventWeight * ampl); |
280 | 314 | } |
281 | 315 | } // associated tracks |
282 | 316 | } // trigger tracks |
@@ -361,6 +395,7 @@ struct LongrangecorrDerived { |
361 | 395 | fillCorrHist<CorrelationContainer::kCFStepAll>(same, triggers, assocs, false, mccollision.posZ(), multiplicity, 1.0); |
362 | 396 | } // process MC same |
363 | 397 |
|
| 398 | + // PresliceUnsorted<aod::LRCollisionsWithLabel> collPerMCColl = aod::lrcorrcolltable::lrMcCollisionId; |
364 | 399 | template <typename... TrackTypes> |
365 | 400 | void processMcMixed(McCollsTable const& mccollisions, aod::LRCollisionsWithLabel const& collisions, TrackTypes&&... tracks) |
366 | 401 | { |
|
0 commit comments