|
18 | 18 | /// \author Suraj Prasad (suraj.prasad@cern.ch) |
19 | 19 |
|
20 | 20 | #include <cmath> |
21 | | -// #include <tuple> |
22 | 21 | #include <vector> |
| 22 | +#include <TGraph.h> |
| 23 | +#include <Framework/Configurable.h> |
| 24 | +#include <CommonConstants/MathConstants.h> |
23 | 25 |
|
24 | | -// #include "Framework/ASoAHelpers.h" |
25 | 26 | #include "Framework/AnalysisDataModel.h" |
26 | 27 | #include "Framework/AnalysisTask.h" |
27 | 28 | #include "Framework/HistogramRegistry.h" |
28 | | -// #include "Framework/StaticFor.h" |
29 | 29 | #include "Framework/runDataProcessing.h" |
| 30 | +#include "Framework/O2DatabasePDGPlugin.h" |
30 | 31 |
|
31 | | -// #include "Common/Core/TrackSelection.h" |
32 | | -// #include "Common/Core/TrackSelectionDefaults.h" |
33 | 32 | #include "Common/DataModel/EventSelection.h" |
34 | 33 | #include "Common/DataModel/Multiplicity.h" |
35 | 34 | #include "Common/DataModel/TrackSelectionTables.h" |
36 | | -// #include "ReconstructionDataFormats/Track.h" |
37 | | -#include "Framework/O2DatabasePDGPlugin.h" |
38 | | - |
39 | | -#include <CommonConstants/MathConstants.h> |
40 | | -#include <TGraph.h> |
41 | | - |
42 | 35 | #include "Common/DataModel/PIDResponse.h" |
| 36 | + |
43 | 37 | #include "PWGLF/DataModel/LFStrangenessTables.h" |
44 | 38 | #include "PWGLF/Utils/inelGt.h" |
45 | 39 |
|
@@ -137,7 +131,8 @@ struct Lambdak0sflattenicity { |
137 | 131 |
|
138 | 132 | Configurable<int> flattenicityforanalysis{"flattenicityforanalysis", 0, |
139 | 133 | "Which Flattenicity to be used for analysis, 0 for FV0, 1 for FT0, 2 for FV0+FT0C"}; |
140 | | - |
| 134 | + Configurable<bool> flattenicityforLossCorrRec{"flattenicityforLossCorrRec", true, |
| 135 | + "Flattenicity from Rec Tracks are used for Signal and Event loss calculations"}; |
141 | 136 | // Common Configurable parameters for V0 selection |
142 | 137 | Configurable<float> v0settingDcav0dau{"v0settingDcav0dau", 1, |
143 | 138 | "DCA V0 Daughters"}; |
@@ -254,6 +249,9 @@ struct Lambdak0sflattenicity { |
254 | 249 | rEventSelection.add("hFlattenicityDistributionMCGen", "hFlattenicityDistributionMCGen", |
255 | 250 | {HistType::kTH1D, {flatAxis}}); |
256 | 251 |
|
| 252 | + rEventSelection.add("hFlattenicityDistributionRecMCGen", "hFlattenicityDistributionRecMCGen", |
| 253 | + {HistType::kTH1D, {flatAxis}}); |
| 254 | + |
257 | 255 | rEventSelection.add("hFlat_RecoColl_MC", "hFlat_RecoColl_MC", {HistType::kTH1D, {flatAxis}}); |
258 | 256 | rEventSelection.add("hFlat_RecoColl_MC_INELgt0", "hFlat_RecoColl_MC_INELgt0", {HistType::kTH1D, {flatAxis}}); |
259 | 257 | rEventSelection.add("hFlat_GenRecoColl_MC", "hFlat_GenRecoColl_MC", {HistType::kTH1D, {flatAxis}}); |
@@ -1206,8 +1204,7 @@ struct Lambdak0sflattenicity { |
1206 | 1204 | soa::Join<aod::Collisions, aod::EvSels, |
1207 | 1205 | aod::PVMults>::iterator const& collision, |
1208 | 1206 | soa::Filtered<aod::V0Datas> const& V0s, TrackCandidates const& tracks, |
1209 | | - soa::Join<aod::BCs, aod::Timestamps> const& /*bcs*/, |
1210 | | - aod::MFTTracks const& /*mfttracks*/, aod::FT0s const& /*ft0s*/, |
| 1207 | + soa::Join<aod::BCs, aod::Timestamps> const& /*bcs*/, aod::FT0s const& /*ft0s*/, |
1211 | 1208 | aod::FV0As const& /*fv0s*/) |
1212 | 1209 | { |
1213 | 1210 | if (applyEvSel && |
@@ -1363,8 +1360,7 @@ struct Lambdak0sflattenicity { |
1363 | 1360 | soa::Join<aod::Collisions, aod::EvSels, |
1364 | 1361 | aod::PVMults, aod::McCollisionLabels> const& collisions, |
1365 | 1362 | soa::Filtered<soa::Join<aod::V0Datas, aod::McV0Labels>> const& V0s, aod::McCollisions const&, TrackCandidatesMC const& tracks, |
1366 | | - soa::Join<aod::BCs, aod::Timestamps> const& /*bcs*/, |
1367 | | - aod::MFTTracks const& /*mfttracks*/, aod::FT0s const& /*ft0s*/, |
| 1363 | + soa::Join<aod::BCs, aod::Timestamps> const& /*bcs*/, aod::FT0s const& /*ft0s*/, |
1368 | 1364 | aod::FV0As const& /*fv0s*/, aod::McParticles const& mcParticles) |
1369 | 1365 | { |
1370 | 1366 | for (const auto& collision : collisions) { |
@@ -1547,10 +1543,25 @@ struct Lambdak0sflattenicity { |
1547 | 1543 |
|
1548 | 1544 | // Filter posZFilterMC = (nabs(o2::aod::mccollision::posZ) < cutzvertex); |
1549 | 1545 | void processGenMC( |
1550 | | - o2::aod::McCollision const& mcCollision, const soa::SmallGroups<soa::Join<o2::aod::Collisions, o2::aod::McCollisionLabels, o2::aod::EvSels, aod::PVMults>>& collisions, o2::aod::McParticles const& mcParticles) |
| 1546 | + o2::aod::McCollision const& mcCollision, const soa::SmallGroups<soa::Join<o2::aod::Collisions, o2::aod::McCollisionLabels, o2::aod::EvSels, aod::PVMults>>& collisions, TrackCandidatesMC const& tracks, aod::FT0s const& /*ft0s*/, |
| 1547 | + aod::FV0As const& /*fv0s*/, o2::aod::McParticles const& mcParticles) |
1551 | 1548 | { |
1552 | | - float flattenicity = estimateFlattenicityFV0MC(mcParticles); |
1553 | | - rEventSelection.fill(HIST("hFlattenicityDistributionMCGen"), flattenicity); |
| 1549 | + |
| 1550 | + float flattenicity; |
| 1551 | + if (flattenicityforLossCorrRec) { |
| 1552 | + float flattenicityRec = 999.0; |
| 1553 | + for (const auto& collision : collisions) { |
| 1554 | + flattenicityRec = estimateFlattenicity(collision, tracks); |
| 1555 | + // printf("FoundFlattenicity, Gen=%f, Rec=%f \n", flattenicity, flattenicityRec); |
| 1556 | + } |
| 1557 | + rEventSelection.fill(HIST("hFlattenicityDistributionRecMCGen"), flattenicityRec); |
| 1558 | + flattenicity = flattenicityRec; |
| 1559 | + } else { |
| 1560 | + float flattenicityGen = estimateFlattenicityFV0MC(mcParticles); |
| 1561 | + rEventSelection.fill(HIST("hFlattenicityDistributionMCGen"), flattenicityGen); |
| 1562 | + flattenicity = flattenicityGen; |
| 1563 | + } |
| 1564 | + |
1554 | 1565 | //==================================== |
1555 | 1566 | //===== Event Loss Denominator ======= |
1556 | 1567 | //==================================== |
|
0 commit comments