@@ -74,20 +74,28 @@ struct HfTaskXic {
74
74
HistogramRegistry registry{
75
75
" registry" , // histo not in pt bins
76
76
{
77
- {" Data/hPt" , " 3-prong candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}}, // pt Xic
78
- {" Data/hEta" , " 3-prong candidates;candidate #it{eta};entries" , {HistType::kTH1F , {{100 , -5 ., 5 .}}}}, // eta Xic
79
- {" Data/hPhi" , " 3-prong candidates;candidate #varphi;entries" , {HistType::kTH1F , {{72 , 0 ., constants::math::TwoPI}}}}, // phi Xic
80
- {" Data/hMass" , " 3-prong candidates; inv. mass (p K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1F , {{600 , 2.18 , 2.58 }}}}, // mass Xic
81
- {" Data/hMultiplicity" , " multiplicity;multiplicity;entries" , {HistType::kTH1F , {{1000 , 0 ., 1000 .}}}},
82
-
83
- {" MC/reconstructed/signal/hPtRecSig" , " 3-prong candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}}, // pt Xic
84
- {" MC/reconstructed/background/hPtRecBg" , " 3-prong candidates (unmatched);#it{p}_{T}^{rec.} (GeV/#it{c});entries" , {HistType::kTH1F , {{100 , 0 ., 10 .}}}},
85
- {" MC/generated/hPtGen" , " MC particles (matched);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1F , {{100 , 0 ., 10 .}}}},
86
- {" MC/generated/hPtGenWithProngsInAcceptance" , " MC particles (generated-daughters in acceptance); #it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1F , {{100 , 0 ., 10 .}}}},
87
- {" MC/generated/hEtaGen" , " MC particles; #it{eta}^{gen} ;#it{p}_{T}^{gen.};entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}}},
88
- {" MC/generated/hYGen" , " MC particles; #it{y}^{gen} ;#it{p}_{T}^{gen.} ;entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}}},
89
- // add generated in acceptance!!
90
- }};
77
+ {" Data/hPt" , " 3-prong candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}}, // pt Xic
78
+ {" Data/hEta" , " 3-prong candidates;candidate #it{eta};entries" , {HistType::kTH1D , {{100 , -5 ., 5 .}}}}, // eta Xic
79
+ {" Data/hPhi" , " 3-prong candidates;candidate #varphi;entries" , {HistType::kTH1D , {{72 , 0 ., constants::math::TwoPI}}}}, // phi Xic
80
+ {" Data/hMass" , " 3-prong candidates; inv. mass (p K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1D , {{600 , 2.18 , 2.58 }}}}, // mass Xic
81
+ {" Data/hMultiplicity" , " multiplicity;multiplicity;entries" , {HistType::kTH1D , {{1000 , 0 ., 1000 .}}}},
82
+ {" MC/generated/signal/hPtGenSig" , " 3-prong candidates (matched);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
83
+ {" MC/generated/signal/hPtGen" , " MC particles (matched);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
84
+ {" MC/generated/prompt/hPtGenPrompt" , " MC particles (matched, prompt);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
85
+ {" MC/generated/nonprompt/hPtGenNonPrompt" , " MC particles (matched, non-prompt);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
86
+ {" MC/generated/signal/hEtaGen" , " MC particles (matched);#it{#eta};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
87
+ {" MC/generated/prompt/hEtaGenPrompt" , " MC particles (matched, prompt);#it{#eta};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
88
+ {" MC/generated/nonprompt/hEtaGenNonPrompt" , " MC particles (matched, non-prompt);#it{#eta};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
89
+ {" MC/generated/signal/hYGen" , " MC particles (matched);#it{y};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
90
+ {" MC/generated/prompt/hYGenPrompt" , " MC particles (matched, prompt);#it{y};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
91
+ {" MC/generated/nonprompt/hYGenNonPrompt" , " MC particles (matched, non-prompt);#it{y};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
92
+ {" MC/reconstructed/signal/hMassRecSig" , " 3-prong candidates (matched);inv. mass (p K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1D , {{600 , 2.18 , 2.58 }}}},
93
+ {" MC/reconstructed/prompt/hMassRecSigPrompt" , " 3-prong candidates (matched, prompt);inv. mass (p K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1D , {{600 , 2.18 , 2.58 }}}},
94
+ {" MC/reconstructed/nonprompt/hMassRecSigNonPrompt" , " 3-prong candidates (matched, non-prompt);inv. mass (p K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1D , {{600 , 2.18 , 2.58 }}}},
95
+ {" MC/reconstructed/signal/hPtRecSig" , " 3-prong candidates (matched);#it{p}_{T}^{rec.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
96
+ {" MC/reconstructed/prompt/hPtRecSigPrompt" , " 3-prong candidates (matched, prompt);#it{p}_{T}^{rec.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
97
+ {" MC/reconstructed/nonprompt/hPtRecSigNonPrompt" , " 3-prong candidates (matched, non-prompt);#it{p}_{T}^{rec.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
98
+ {" MC/reconstructed/background/hPtRecBg" , " 3-prong candidates (unmatched);#it{p}_{T}^{rec.} (GeV/#it{c});entries" , {HistType::kTH1D , {{100 , 0 ., 10 .}}}}}};
91
99
92
100
void init (InitContext&)
93
101
{
@@ -174,6 +182,22 @@ struct HfTaskXic {
174
182
registry.add (" MC/reconstructed/signal/hPtProng2RecSig" , " 3-prong candidates;prong 2 #it{p}_{T} (GeV/#it{c});;entries" , {HistType::kTH2F , {{100 , 0 ., 10 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
175
183
registry.add (" MC/reconstructed/signal/hChi2PCARecSig" , " 3-prong candidates;prong Chi2PCA to sec. vertex (cm);; entries" , {HistType::kTH2F , {{100 , 0 , 120 }, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
176
184
185
+ registry.add (" MC/reconstructed/signal/hMassVsPtRecSig" , " 3-prong candidates (matched);inv. mass (p K #pi) (GeV/#it{c}^{2}); p_{T}" , {HistType::kTH2F , {{600 , 2.18 , 2.58 }, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
186
+ registry.add (" MC/reconstructed/prompt/hMassVsPtRecSigPrompt" , " 3-prong candidates (matched, prompt);inv. mass (p K #pi) (GeV/#it{c}^{2}); p_{T}" , {HistType::kTH2F , {{600 , 2.18 , 2.58 }, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
187
+ registry.add (" MC/reconstructed/nonprompt/hMassVsPtRecSigNonPrompt" , " 3-prong candidates (matched, non-prompt);inv. mass (p K #pi) (GeV/#it{c}^{2}); p_{T}" , {HistType::kTH2F , {{600 , 2.18 , 2.58 }, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
188
+
189
+ registry.add (" MC/reconstructed/signal/hEtaVsPtRecSig" , " 3-prong candidates (matched);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
190
+ registry.add (" MC/reconstructed/prompt/hEtaVsPtRecSigPrompt" , " 3-prong candidates (matched, prompt);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
191
+ registry.add (" MC/reconstructed/nonprompt/hEtaVsPtRecSigNonPrompt" , " 3-prong candidates (matched, non-prompt);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
192
+
193
+ registry.add (" MC/generated/signal/hEtaVsPtGenSig" , " 3-prong candidates (matched);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
194
+ registry.add (" MC/generated/prompt/hEtaVsPtGenSigPrompt" , " 3-prong candidates (matched, prompt);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
195
+ registry.add (" MC/generated/nonprompt/hEtaVsPtGenSigNonPrompt" , " 3-prong candidates (matched, non-prompt);candidate #it{#eta};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
196
+
197
+ registry.add (" MC/generated/signal/hYVsPtGenSig" , " 3-prong candidates (matched);candidate #it{y};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
198
+ registry.add (" MC/generated/prompt/hYVsPtGenSigPrompt" , " 3-prong candidates (matched, prompt);candidate #it{y};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
199
+ registry.add (" MC/generated/nonprompt/hYVsPtGenSigNonPrompt" , " 3-prong candidates (matched, non-prompt);candidate #it{y};entries" , {HistType::kTH2F , {{100 , -2 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
200
+
177
201
// background
178
202
registry.add (" MC/reconstructed/background/hMassBg" , " Invariant mass (unmatched);m (p K #pi) (GeV/#it{c}^{2});;entries" , {HistType::kTH2F , {{500 , 1.6 , 3.1 }, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
179
203
registry.add (" MC/reconstructed/background/hDecLengthRecBg" , " 3-prong candidates;decay length (cm);;entries" , {HistType::kTH2F , {{200 , 0 ., 2 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
@@ -413,12 +437,13 @@ struct HfTaskXic {
413
437
registry.fill (HIST (" MC/reconstructed/signal/hPtRecSig" ), ptCandidate); // rec. level pT
414
438
415
439
if (massXicToPKPi != 0 .) {
416
- registry.fill (HIST (" MC/reconstructed/signal/hMassSig" ), massXicToPKPi, ptCandidate);
440
+ registry.fill (HIST (" MC/reconstructed/signal/hMassVsPtRecSig" ), massXicToPKPi, ptCandidate);
441
+ registry.fill (HIST (" MC/reconstructed/signal/hMassRecSig" ), massXicToPKPi);
417
442
}
418
443
if (massXicToPiKP != 0 .) {
419
- registry.fill (HIST (" MC/reconstructed/signal/hMassSig" ), massXicToPiKP, ptCandidate);
444
+ registry.fill (HIST (" MC/reconstructed/signal/hMassVsPtRecSig" ), massXicToPiKP, ptCandidate);
445
+ registry.fill (HIST (" MC/reconstructed/signal/hMassRecSig" ), massXicToPiKP);
420
446
}
421
-
422
447
registry.fill (HIST (" MC/reconstructed/signal/hDecLengthRecSig" ), candidate.decayLength (), ptCandidate);
423
448
registry.fill (HIST (" MC/reconstructed/signal/hDecLengthXYRecSig" ), candidate.decayLengthXY (), ptCandidate);
424
449
registry.fill (HIST (" MC/reconstructed/signal/hNormalisedDecayLengthXYRecSig" ), candidate.decayLengthXYNormalised (), ptCandidate);
@@ -436,6 +461,32 @@ struct HfTaskXic {
436
461
registry.fill (HIST (" MC/reconstructed/signal/hImpParErrSig" ), candidate.errorImpactParameter0 (), ptCandidate);
437
462
registry.fill (HIST (" MC/reconstructed/signal/hDecLenErrSig" ), candidate.errorDecayLength (), ptCandidate);
438
463
registry.fill (HIST (" MC/reconstructed/signal/hChi2PCARecSig" ), candidate.chi2PCA (), ptCandidate);
464
+ registry.fill (HIST (" MC/reconstructed/signal/hEtaVsPtRecSig" ), candidate.eta (), ptCandidate);
465
+
466
+ // / reconstructed signal prompt
467
+ if (candidate.originMcRec () == RecoDecay::OriginType::Prompt) {
468
+ if ((candidate.isSelXicToPKPi () >= selectionFlagXic) && pdgCodeProng0 == kProton ) {
469
+ registry.fill (HIST (" MC/reconstructed/prompt/hMassRecSigPrompt" ), massXicToPKPi);
470
+ registry.fill (HIST (" MC/reconstructed/prompt/hMassVsPtRecSigPrompt" ), massXicToPKPi, ptCandidate);
471
+ }
472
+ if ((candidate.isSelXicToPiKP () >= selectionFlagXic) && pdgCodeProng0 == kPiPlus ) {
473
+ registry.fill (HIST (" MC/reconstructed/prompt/hMassRecSigPrompt" ), massXicToPiKP);
474
+ registry.fill (HIST (" MC/reconstructed/prompt/hMassVsPtRecSigPrompt" ), massXicToPiKP, ptCandidate);
475
+ }
476
+ registry.fill (HIST (" MC/reconstructed/prompt/hEtaVsPtRecSigPrompt" ), candidate.eta (), ptCandidate);
477
+ registry.fill (HIST (" MC/reconstructed/prompt/hPtRecSigPrompt" ), ptCandidate);
478
+ } else {
479
+ if ((candidate.isSelXicToPKPi () >= selectionFlagXic) && pdgCodeProng0 == kProton ) {
480
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hMassRecSigNonPrompt" ), massXicToPKPi);
481
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hMassVsPtRecSigNonPrompt" ), massXicToPKPi, ptCandidate);
482
+ }
483
+ if ((candidate.isSelXicToPiKP () >= selectionFlagXic) && pdgCodeProng0 == kPiPlus ) {
484
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hMassRecSigNonPrompt" ), massXicToPiKP);
485
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hMassVsPtRecSigNonPrompt" ), massXicToPiKP, ptCandidate);
486
+ }
487
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hEtaVsPtRecSigNonPrompt" ), candidate.eta (), ptCandidate);
488
+ registry.fill (HIST (" MC/reconstructed/nonprompt/hPtRecSigNonPrompt" ), ptCandidate);
489
+ }
439
490
440
491
if (enableTHn) {
441
492
double massXic (-1 );
@@ -519,31 +570,31 @@ struct HfTaskXic {
519
570
// MC gen.
520
571
for (const auto & particle : mcParticles) {
521
572
if (std::abs (particle.flagMcMatchGen ()) == 1 << aod::hf_cand_3prong::DecayType::XicToPKPi) {
522
- auto yParticle = RecoDecay::y (particle.pVector (), o2::constants::physics::MassXiCPlus);
523
- if (yCandGenMax >= 0 . && std::abs (yParticle ) > yCandGenMax) {
573
+ auto yGen = RecoDecay::y (particle.pVector (), o2::constants::physics::MassXiCPlus);
574
+ if (yCandGenMax >= 0 . && std::abs (yGen ) > yCandGenMax) {
524
575
continue ;
525
576
}
526
- auto ptParticle = particle.pt ();
527
- std::array<float , 3 > ptProngs;
528
- std::array<float , 3 > yProngs;
529
- std::array<float , 3 > etaProngs;
530
- int counter = 0 ;
531
- for (const auto & daught : particle.daughters_as <soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>()) {
532
- ptProngs[counter] = daught.pt ();
533
- etaProngs[counter] = daught.eta ();
534
- yProngs[counter] = RecoDecay::y (daught.pVector (), pdg->Mass (daught.pdgCode ()));
535
- counter++;
577
+ auto ptGen = particle.pt ();
578
+ registry.fill (HIST (" MC/generated/signal/hPtGen" ), ptGen);
579
+ registry.fill (HIST (" MC/generated/signal/hEtaGen" ), particle.eta ());
580
+ registry.fill (HIST (" MC/generated/signal/hYGen" ), yGen);
581
+ registry.fill (HIST (" MC/generated/signal/hEtaVsPtGenSig" ), particle.eta (), ptGen);
582
+ registry.fill (HIST (" MC/generated/signal/hYVsPtGenSig" ), yGen, ptGen);
583
+
584
+ if (particle.originMcGen () == RecoDecay::OriginType::Prompt) {
585
+ registry.fill (HIST (" MC/generated/prompt/hPtGenPrompt" ), ptGen);
586
+ registry.fill (HIST (" MC/generated/prompt/hEtaGenPrompt" ), particle.eta ());
587
+ registry.fill (HIST (" MC/generated/prompt/hYGenPrompt" ), yGen);
588
+ registry.fill (HIST (" MC/generated/prompt/hEtaVsPtGenSigPrompt" ), particle.eta (), ptGen);
589
+ registry.fill (HIST (" MC/generated/prompt/hYVsPtGenSigPrompt" ), yGen, ptGen);
536
590
}
537
- registry. fill ( HIST ( " MC/generated/hPtGen " ), ptParticle);
538
- registry.fill (HIST (" MC/generated/hEtaGen " ), particle. eta (), ptParticle );
539
- registry.fill (HIST (" MC/generated/hYGen " ), yParticle, ptParticle );
540
- // reject Xic daughters that are not in geometrical acceptance
541
- if (! isProngInAcceptance (etaProngs[ 0 ], ptProngs[ 0 ]) || ! isProngInAcceptance (etaProngs[ 1 ], ptProngs[ 1 ]) || ! isProngInAcceptance (etaProngs[ 2 ], ptProngs[ 2 ])) {
542
- continue ;
591
+ if (particle. originMcGen () == RecoDecay::OriginType::NonPrompt) {
592
+ registry.fill (HIST (" MC/generated/nonprompt/hPtGenNonPrompt " ), ptGen );
593
+ registry.fill (HIST (" MC/generated/nonprompt/hEtaGenNonPrompt " ), particle. eta () );
594
+ registry. fill ( HIST ( " MC/generated/nonprompt/hYGenNonPrompt " ), yGen);
595
+ registry. fill ( HIST ( " MC/generated/nonprompt/hEtaVsPtGenSigNonPrompt " ), particle. eta (), ptGen);
596
+ registry. fill ( HIST ( " MC/generated/nonprompt/hYVsPtGenSigNonPrompt " ), yGen, ptGen) ;
543
597
}
544
- registry.fill (HIST (" MC/generated/hPtGenWithProngsInAcceptance" ), ptParticle);
545
- registry.fill (HIST (" MC/generated/hYGenWithProngsInAcceptance" ), yParticle, ptParticle);
546
- registry.fill (HIST (" MC/generated/hEtaGenWithProngsInAcceptance" ), particle.eta (), ptParticle);
547
598
}
548
599
}
549
600
}
0 commit comments