|
24 | 24 | #include "DCAFitter/DCAFitterN.h" |
25 | 25 | #include "DataFormatsParameters/GRPMagField.h" |
26 | 26 | #include "DataFormatsParameters/GRPObject.h" |
27 | | -#include "MathUtils/BetheBlochAleph.h" |
28 | 27 | #include "DetectorsBase/Propagator.h" |
29 | 28 | #include "DetectorsVertexing/PVertexer.h" |
30 | 29 | #include "Framework/ASoA.h" |
31 | 30 | #include "Framework/ASoAHelpers.h" |
32 | 31 | #include "Framework/AnalysisDataModel.h" |
33 | 32 | #include "Framework/AnalysisTask.h" |
34 | 33 | #include "Framework/HistogramRegistry.h" |
| 34 | +#include "Framework/O2DatabasePDGPlugin.h" |
35 | 35 | #include "Framework/runDataProcessing.h" |
| 36 | +#include "MathUtils/BetheBlochAleph.h" |
36 | 37 | #include "ReconstructionDataFormats/Vertex.h" |
37 | 38 |
|
38 | 39 | #include "Math/Vector4D.h" |
@@ -175,12 +176,12 @@ std::vector<NPCascCandidate> gCandidatesNT; |
175 | 176 | } // namespace |
176 | 177 |
|
177 | 178 | struct NonPromptCascadeTask { |
178 | | - |
179 | 179 | Produces<o2::aod::NPCascTable> NPCTable; |
180 | 180 | Produces<o2::aod::NPCascTableMC> NPCTableMC; |
181 | 181 | Produces<o2::aod::NPCascTableNT> NPCTableNT; |
182 | 182 | Produces<o2::aod::NPCascTableMCNT> NPCTableMCNT; |
183 | 183 | Produces<o2::aod::NPCascTableGen> NPCTableGen; |
| 184 | + Produces<o2::aod::NPPileUpTable> NPPUTable; |
184 | 185 |
|
185 | 186 | using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>; |
186 | 187 | using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>; |
@@ -227,6 +228,7 @@ struct NonPromptCascadeTask { |
227 | 228 | std::array<int, 2> mProcessCounter = {0, 0}; // {Tracked, All} |
228 | 229 | std::map<uint64_t, uint32_t> mToiMap; |
229 | 230 | // |
| 231 | + Service<o2::framework::O2DatabasePDG> pdgDB; |
230 | 232 | HistogramRegistry mRegistryMults{"Multhistos"}; |
231 | 233 | HistogramRegistry mRegistrydNdeta{"dNdetahistos"}; |
232 | 234 |
|
@@ -315,9 +317,10 @@ struct NonPromptCascadeTask { |
315 | 317 | AxisSpec centAxisFV0{centBinning, "Centrality FV0 (%)"}; |
316 | 318 | AxisSpec trackAxisMC{trackBinning, "NTracks MC"}; |
317 | 319 | AxisSpec trackAxis{trackBinning, "NTracks Global Reco"}; |
| 320 | + AxisSpec numContribAxis{trackBinning, "Num of Contrib"}; |
318 | 321 | AxisSpec runsAxis{runsBinning, "Run Number"}; |
319 | 322 |
|
320 | | - mRegistryMults.add("hCentMultsRuns", "hCentMultsRuns", HistType::kTHnSparseF, {centAxisFT0M, multAxis, centAxisFV0, multAxisFV0, nTracksAxis, runsAxis}); |
| 323 | + mRegistryMults.add("hCentMultsRuns", "hCentMultsRuns", HistType::kTHnSparseF, {centAxisFT0M, multAxis, numContribAxis, nTracksAxis, runsAxis}); |
321 | 324 | // |
322 | 325 | // dN/deta |
323 | 326 | // |
@@ -411,11 +414,12 @@ struct NonPromptCascadeTask { |
411 | 414 | for (const auto& coll : collisions) { |
412 | 415 | float centFT0M = coll.centFT0M(); |
413 | 416 | float multFT0M = coll.multFT0M(); |
414 | | - float centFV0A = coll.centFV0A(); |
415 | | - float multFV0A = coll.multFV0A(); |
| 417 | + // float centFV0A = coll.centFV0A(); |
| 418 | + // float multFV0A = coll.multFV0A(); |
416 | 419 | float multNTracks = coll.multNTracksGlobal(); |
417 | 420 | float run = mRunNumber; |
418 | | - mRegistryMults.fill(HIST("hCentMultsRuns"), centFT0M, multFT0M, centFV0A, multFV0A, multNTracks, run); |
| 421 | + float numContrib = coll.numContrib(); |
| 422 | + mRegistryMults.fill(HIST("hCentMultsRuns"), centFT0M, multFT0M, numContrib, multNTracks, run); |
419 | 423 | } |
420 | 424 | }; |
421 | 425 |
|
@@ -729,7 +733,7 @@ struct NonPromptCascadeTask { |
729 | 733 | fillCandidatesVector<TracksExtMC>(collisions, tracks, trackedCascades, gCandidates); |
730 | 734 | fillMCtable<aod::AssignedTrackedCascades>(mcParticles, collisions, gCandidates); |
731 | 735 | } |
732 | | - PROCESS_SWITCH(NonPromptCascadeTask, processTrackedCascadesMC, "process cascades from strangeness tracking: MC analysis", true); |
| 736 | + PROCESS_SWITCH(NonPromptCascadeTask, processTrackedCascadesMC, "process cascades from strangeness tracking: MC analysis", false); |
733 | 737 |
|
734 | 738 | void processCascadesMC(CollisionCandidatesRun3MC const& collisions, aod::Cascades const& cascades, |
735 | 739 | aod::V0s const& /*v0s*/, TracksExtMC const& tracks, |
@@ -817,7 +821,7 @@ struct NonPromptCascadeTask { |
817 | 821 | if (std::abs(mcp.eta()) > 0.5f) |
818 | 822 | continue; |
819 | 823 | int q = 0; |
820 | | - if (auto pdg = TDatabasePDG::Instance()->GetParticle(mcp.pdgCode())) { |
| 824 | + if (auto pdg = pdgDB->GetParticle(mcp.pdgCode())) { |
821 | 825 | q = int(std::round(pdg->Charge() / 3.0)); |
822 | 826 | } |
823 | 827 | if (q == 0) |
@@ -928,7 +932,7 @@ struct NonPromptCascadeTask { |
928 | 932 | } |
929 | 933 |
|
930 | 934 | int q = 0; |
931 | | - if (auto pdgEntry = TDatabasePDG::Instance()->GetParticle(mcPar.pdgCode())) { |
| 935 | + if (auto pdgEntry = pdgDB->GetParticle(mcPar.pdgCode())) { |
932 | 936 | q = int(std::round(pdgEntry->Charge() / 3.0)); |
933 | 937 | } |
934 | 938 | if (q == 0) { |
@@ -971,6 +975,20 @@ struct NonPromptCascadeTask { |
971 | 975 | } |
972 | 976 |
|
973 | 977 | PROCESS_SWITCH(NonPromptCascadeTask, processdNdetaMC, "process mc dN/deta", false); |
| 978 | + |
| 979 | + void processPileUp(CollisionCandidatesRun3 const& collisions, aod::BCsWithTimestamps const&) |
| 980 | + { |
| 981 | + std::cout << "Processing pile up" << std::endl; |
| 982 | + for (const auto& coll : collisions) { |
| 983 | + float centFT0M = coll.centFT0M(); |
| 984 | + float multFT0M = coll.multFT0M(); |
| 985 | + auto bc = coll.template bc_as<aod::BCsWithTimestamps>(); |
| 986 | + uint64_t globalBC = bc.globalBC(); |
| 987 | + NPPUTable(mRunNumber, globalBC, coll.numContrib(), coll.multNTracksGlobal(), centFT0M, multFT0M); |
| 988 | + // NPPileUpTable(mRunNumber, globalBC, multNTracks, centFT0M, multFT0M); |
| 989 | + } |
| 990 | + }; |
| 991 | + PROCESS_SWITCH(NonPromptCascadeTask, processPileUp, "pile up studies", true); |
974 | 992 | }; |
975 | 993 |
|
976 | 994 | WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) |
|
0 commit comments