|
11 | 11 | // |
12 | 12 | // Build hypertriton candidates from V0s and tracks |
13 | 13 |
|
| 14 | +#include <memory> |
| 15 | +#include <string> |
14 | 16 | #include <array> |
| 17 | +#include <vector> |
| 18 | +#include <algorithm> |
15 | 19 |
|
16 | 20 | #include "Framework/runDataProcessing.h" |
17 | 21 | #include "Framework/AnalysisTask.h" |
@@ -58,6 +62,7 @@ constexpr double betheBlochDefault[1][6]{{-1.e32, -1.e32, -1.e32, -1.e32, -1.e32 |
58 | 62 | static const std::vector<std::string> betheBlochParNames{"p0", "p1", "p2", "p3", "p4", "resolution"}; |
59 | 63 | static const std::vector<std::string> particleName{"He3"}; |
60 | 64 | std::shared_ptr<TH1> hEvents; |
| 65 | +std::shared_ptr<TH1> hEventsZorro; |
61 | 66 | std::shared_ptr<TH1> hZvtx; |
62 | 67 | std::shared_ptr<TH1> hCentFT0A; |
63 | 68 | std::shared_ptr<TH1> hCentFT0C; |
@@ -243,10 +248,14 @@ struct hyperRecoTask { |
243 | 248 | hH4LMassBefSel = qaRegistry.add<TH1>("hH4LMassBefSel", ";M (GeV/#it{c}^{2}); ", HistType::kTH1D, {{60, 3.76, 3.84}}); |
244 | 249 | hH4LMassTracked = qaRegistry.add<TH1>("hH4LMassTracked", ";M (GeV/#it{c}^{2}); ", HistType::kTH1D, {{60, 3.76, 3.84}}); |
245 | 250 |
|
246 | | - hEvents = qaRegistry.add<TH1>("hEvents", ";Events; ", HistType::kTH1D, {{3, -0.5, 2.5}}); |
| 251 | + hEvents = qaRegistry.add<TH1>("hEvents", ";Events; ", HistType::kTH1D, {{2, -0.5, 1.5}}); |
247 | 252 | hEvents->GetXaxis()->SetBinLabel(1, "All"); |
248 | 253 | hEvents->GetXaxis()->SetBinLabel(2, "Selected"); |
249 | | - hEvents->GetXaxis()->SetBinLabel(3, "Zorro He events"); |
| 254 | + |
| 255 | + hEventsZorro = qaRegistry.add<TH1>("hEventsZorro", ";Events; ", HistType::kTH1D, {{2, -0.5, 1.5}}); |
| 256 | + hEventsZorro->GetXaxis()->SetBinLabel(1, "Zorro before evsel"); |
| 257 | + hEventsZorro->GetXaxis()->SetBinLabel(2, "Zorro after evsel"); |
| 258 | + |
250 | 259 | if (doprocessMC) { |
251 | 260 | hDecayChannel = qaRegistry.add<TH1>("hDecayChannel", ";Decay channel; ", HistType::kTH1D, {{2, -0.5, 1.5}}); |
252 | 261 | hDecayChannel->GetXaxis()->SetBinLabel(1, "2-body"); |
@@ -331,17 +340,27 @@ struct hyperRecoTask { |
331 | 340 | initCCDB(bc); |
332 | 341 | hEvents->Fill(0.); |
333 | 342 |
|
334 | | - if (!collision.sel8() || std::abs(collision.posZ()) > 10) { |
| 343 | + if (!collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) { |
335 | 344 | continue; |
336 | 345 | } |
337 | 346 |
|
| 347 | + bool zorroSelected = false; |
338 | 348 | if (cfgSkimmedProcessing) { |
339 | | - bool zorroSelected = zorro.isSelected(collision.template bc_as<aod::BCsWithTimestamps>().globalBC()); /// Just let Zorro do the accounting |
| 349 | + // accounting done after ITS border cut, to properly correct with the MC |
| 350 | + zorroSelected = zorro.isSelected(collision.template bc_as<aod::BCsWithTimestamps>().globalBC()); |
340 | 351 | if (zorroSelected) { |
341 | | - hEvents->Fill(2.); |
| 352 | + hEventsZorro->Fill(0.); |
342 | 353 | } |
343 | 354 | } |
344 | 355 |
|
| 356 | + if (!collision.selection_bit(aod::evsel::kIsTriggerTVX) || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || std::abs(collision.posZ()) > 10) { |
| 357 | + continue; |
| 358 | + } |
| 359 | + |
| 360 | + if (zorroSelected) { |
| 361 | + hEventsZorro->Fill(1.); |
| 362 | + } |
| 363 | + |
345 | 364 | goodCollision[collision.globalIndex()] = true; |
346 | 365 | hEvents->Fill(1.); |
347 | 366 | hZvtx->Fill(collision.posZ()); |
|
0 commit comments