|
18 | 18 | /// \author Suraj Prasad ([email protected])
|
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