@@ -38,6 +38,7 @@ using namespace o2::framework;
3838
3939struct Alice3DecayerQA {
4040 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
41+ SliceCache cache;
4142
4243 struct : ConfigurableGroup {
4344 ConfigurableAxis axisCollisionId{" axisCollisionId" , {1000 , 0 , 999 }, " CollisionId axis for QA histograms" };
@@ -54,34 +55,33 @@ struct Alice3DecayerQA {
5455 ConfigurableAxis axisIsAlive{" axisIsAlive" , {2 , 0 , 1 }, " IsAlive axis for QA histograms" };
5556 ConfigurableAxis axisIsPrimary{" axisIsPrimary" , {2 , 0 , 1 }, " IsPrimary axis for QA histograms" };
5657 ConfigurableAxis axisPt{" axisPt" , {VARIABLE_WIDTH, 0 .0f , 0 .1f , 0 .2f , 0 .3f , 0 .4f , 0 .5f , 0 .6f , 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .1f , 1 .2f , 1 .3f , 1 .4f , 1 .5f , 1 .6f , 1 .7f , 1 .8f , 1 .9f , 2 .0f , 2 .2f , 2 .4f , 2 .6f , 2 .8f , 3 .0f , 3 .2f , 3 .4f , 3 .6f , 3 .8f , 4 .0f , 4 .4f , 4 .8f , 5 .2f , 5 .6f , 6 .0f , 6 .5f , 7 .0f , 7 .5f , 8 .0f , 9 .0f , 10 .0f , 11 .0f , 12 .0f , 13 .0f , 14 .0f , 15 .0f , 17 .0f , 19 .0f , 21 .0f , 23 .0f , 25 .0f , 30 .0f , 35 .0f , 40 .0f , 50 .0f }, " pt axis for QA histograms" };
58+ ConfigurableAxis axisRadiusLog{"axisRadiusLog", {VARIABLE_WIDTH, 0.0f, 0.01f, 0.0104713f, 0.0109648f, 0.0114815f, 0.0120226f, 0.0125893f, 0.0131826f, 0.0138038f, 0.0144544f, 0.0151356f, 0.0158489f, 0.0165959f, 0.017378f, 0.018197f, 0.0190546f, 0.0199526f, 0.020893f, 0.0218776f, 0.0229087f, 0.0239883f, 0.0251189f, 0.0263027f, 0.0275423f, 0.0288403f, 0.0301995f, 0.0316228f, 0.0331131f, 0.0346737f, 0.0363078f, 0.0380189f, 0.0398107f, 0.0416869f, 0.0436516f, 0.0457088f, 0.047863f, 0.0501187f, 0.0524807f, 0.0549541f, 0.057544f, 0.060256f, 0.0630957f, 0.0660693f, 0.0691831f, 0.0724436f, 0.0758578f, 0.0794328f, 0.0831764f, 0.0870964f, 0.0912011f, 0.0954993f, 0.1f, 0.104713f, 0.109648f, 0.114815f, 0.120226f, 0.125893f, 0.131826f, 0.138038f, 0.144544f, 0.151356f, 0.158489f, 0.165959f, 0.17378f, 0.18197f, 0.190546f, 0.199526f, 0.20893f, 0.218776f, 0.229087f, 0.239883f, 0.251189f, 0.263027f, 0.275423f, 0.288403f, 0.301995f, 0.316228f, 0.331131f, 0.346737f, 0.363078f, 0.380189f, 0.398107f, 0.416869f, 0.436516f, 0.457088f, 0.47863f, 0.501187f, 0.524807f, 0.549541f, 0.57544f, 0.60256f, 0.630957f, 0.660693f, 0.691831f, 0.724436f, 0.758578f, 0.794328f, 0.831764f, 0.870964f, 0.912011f, 0.954993f, 1.0f, 1.04713f, 1.09648f, 1.14815f, 1.20226f, 1.25893f, 1.31826f, 1.38038f, 1.44544f, 1.51356f, 1.58489f, 1.65959f, 1.7378f, 1.8197f, 1.90546f, 1.99526f, 2.0893f, 2.18776f, 2.29087f, 2.39883f, 2.51189f, 2.63027f, 2.75423f, 2.88403f, 3.01995f, 3.16228f, 3.31131f, 3.46737f, 3.63078f, 3.80189f, 3.98107f, 4.16869f, 4.36516f, 4.57088f, 4.7863f, 5.01187f, 5.24807f, 5.49541f, 5.7544f, 6.0256f, 6.30957f, 6.60693f, 6.91831f, 7.24436f, 7.58578f, 7.94328f, 8.31764f, 8.70964f, 9.12011f, 9.54993f, 10.0f, 10.4713f, 10.9648f, 11.4815f, 12.0226f, 12.5893f, 13.1826f, 13.8038f, 14.4544f, 15.1356f, 15.8489f, 16.5959f, 17.378f, 18.197f, 19.0546f, 19.9526f, 20.893f, 21.8776f, 22.9087f, 23.9883f, 25.1189f, 26.3027f, 27.5423f, 28.8403f, 30.1995f, 31.6228f, 33.1131f, 34.6737f, 36.3078f, 38.0189f, 39.8107f, 41.6869f, 43.6516f, 45.7088f, 47.863f, 50.1187f, 52.4807f, 54.9541f, 57.544f, 60.256f, 63.0957f, 66.0693f, 69.1831f, 72.4436f, 75.8578f, 79.4328f, 83.1764f, 87.0964f, 91.2011f, 95.4993f, 100.0f}, "Radial axis"};
59+ ConfigurableAxis axisPtLog{"axisPtLog", {VARIABLE_WIDTH, 0.0f, 0.001f, 0.00104713f, 0.00109648f, 0.00114815f, 0.00120226f, 0.00125893f, 0.00131826f, 0.00138038f, 0.00144544f, 0.00151356f, 0.00158489f, 0.00165959f, 0.0017378f, 0.0018197f, 0.00190546f, 0.00199526f, 0.0020893f, 0.00218776f, 0.00229087f, 0.00239883f, 0.00251189f, 0.00263027f, 0.00275423f, 0.00288403f, 0.00301995f, 0.00316228f, 0.00331131f, 0.00346737f, 0.00363078f, 0.00380189f, 0.00398107f, 0.00416869f, 0.00436516f, 0.00457088f, 0.0047863f, 0.00501187f, 0.00524807f, 0.00549541f, 0.0057544f, 0.0060256f, 0.00630957f, 0.00660693f, 0.00691831f, 0.00724436f, 0.00758578f, 0.00794328f, 0.00831764f, 0.00870964f, 0.00912011f, 0.00954993f, 0.01f, 0.0104713f, 0.0109648f, 0.0114815f, 0.0120226f, 0.0125893f, 0.0131826f, 0.0138038f, 0.0144544f, 0.0151356f, 0.0158489f, 0.0165959f, 0.017378f, 0.018197f, 0.0190546f, 0.0199526f, 0.020893f, 0.0218776f, 0.0229087f, 0.0239883f, 0.0251189f, 0.0263027f, 0.0275423f, 0.0288403f, 0.0301995f, 0.0316228f, 0.0331131f, 0.0346737f, 0.0363078f, 0.0380189f, 0.0398107f, 0.0416869f, 0.0436516f, 0.0457088f, 0.047863f, 0.0501187f, 0.0524807f, 0.0549541f, 0.057544f, 0.060256f, 0.0630957f, 0.0660693f, 0.0691831f, 0.0724436f, 0.0758578f, 0.0794328f, 0.0831764f, 0.0870964f, 0.0912011f, 0.0954993f, 0.1f, 0.104713f, 0.109648f, 0.114815f, 0.120226f, 0.125893f, 0.131826f, 0.138038f, 0.144544f, 0.151356f, 0.158489f, 0.165959f, 0.17378f, 0.18197f, 0.190546f, 0.199526f, 0.20893f, 0.218776f, 0.229087f, 0.239883f, 0.251189f, 0.263027f, 0.275423f, 0.288403f, 0.301995f, 0.316228f, 0.331131f, 0.346737f, 0.363078f, 0.380189f, 0.398107f, 0.416869f, 0.436516f, 0.457088f, 0.47863f, 0.501187f, 0.524807f, 0.549541f, 0.57544f, 0.60256f, 0.630957f, 0.660693f, 0.691831f, 0.724436f, 0.758578f, 0.794328f, 0.831764f, 0.870964f, 0.912011f, 0.954993f, 1.0f, 1.04713f, 1.09648f, 1.14815f, 1.20226f, 1.25893f, 1.31826f, 1.38038f, 1.44544f, 1.51356f, 1.58489f, 1.65959f, 1.7378f, 1.8197f, 1.90546f, 1.99526f, 2.0893f, 2.18776f, 2.29087f, 2.39883f, 2.51189f, 2.63027f, 2.75423f, 2.88403f, 3.01995f, 3.16228f, 3.31131f, 3.46737f, 3.63078f, 3.80189f, 3.98107f, 4.16869f, 4.36516f, 4.57088f, 4.7863f, 5.01187f, 5.24807f, 5.49541f, 5.7544f, 6.0256f, 6.30957f, 6.60693f, 6.91831f, 7.24436f, 7.58578f, 7.94328f, 8.31764f, 8.70964f, 9.12011f, 9.54993f, 10.0f}, "pt axis for QA histograms"};
5760 } axes;
5861
59- Partition<aod::McParticles> trueEl = aod::mcparticle::pdgCode == static_cast <int >(kElectron );
60- Partition<aod::McParticles> trueMu = aod::mcparticle::pdgCode == static_cast <int >(kMuonMinus );
61- Partition<aod::McParticles> truePi = aod::mcparticle::pdgCode == static_cast <int >(kPiPlus );
62- Partition<aod::McParticles> trueKa = aod::mcparticle::pdgCode == static_cast <int >(kKMinus );
63- Partition<aod::McParticles> truePr = aod::mcparticle::pdgCode == static_cast <int >(kProton );
62+ Partition<aod::McPartWithDaus> trueElectrons = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kElectron );
63+ Partition<aod::McPartWithDaus> trueMuons = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kMuonMinus );
64+ Partition<aod::McPartWithDaus> truePions = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kPiPlus );
65+ Partition<aod::McPartWithDaus> trueKaons = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kKMinus );
66+ Partition<aod::McPartWithDaus> trueProtons = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kProton );
67+ Partition<aod::McPartWithDaus> trueK0Short = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kK0Short );
68+ Partition<aod::McPartWithDaus> trueLambdas = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kLambda0 );
69+ Partition<aod::McPartWithDaus> trueXiMinus = aod::mcparticle::pdgCode == static_cast <int >(PDG_t::kXiMinus );
6470
65- Partition<aod::McPartWithDaus> trueElWithDau = aod::mcparticle::pdgCode == static_cast < int >( kElectron );
66- Partition<aod::McPartWithDaus> trueMuWithDau = aod::mcparticle::pdgCode == static_cast < int >( kMuonMinus );
67- Partition<aod::McPartWithDaus> truePiWithDau = aod::mcparticle::pdgCode == static_cast < int >( kPiPlus );
68- Partition<aod::McPartWithDaus> trueKaWithDau = aod::mcparticle::pdgCode == static_cast < int >( kKMinus );
69- Partition<aod::McPartWithDaus> truePrWithDau = aod::mcparticle::pdgCode == static_cast < int >( kProton );
71+ template < typename TParticle>
72+ float radius ( const TParticle& particle) const
73+ {
74+ return std::hypot (particle. vx (), particle. vy () );
75+ }
7076
7177 void init (o2::framework::InitContext&)
7278 {
73- histos.add (" DefaultMC/hElPt" , " hElPt" , kTH1D , {axes.axisPt });
74- histos.add (" DefaultMC/hMuPt" , " hMuPt" , kTH1D , {axes.axisPt });
75- histos.add (" DefaultMC/hPiPt" , " hPiPt" , kTH1D , {axes.axisPt });
76- histos.add (" DefaultMC/hKaPt" , " hKaPt" , kTH1D , {axes.axisPt });
77- histos.add (" DefaultMC/hPrPt" , " hPrPt" , kTH1D , {axes.axisPt });
78-
79+ // QA with Table entries
7980 histos.add (" MCWithDau/hElPt" , " hElPt" , kTH1D , {axes.axisPt });
8081 histos.add (" MCWithDau/hMuPt" , " hMuPt" , kTH1D , {axes.axisPt });
8182 histos.add (" MCWithDau/hPiPt" , " hPiPt" , kTH1D , {axes.axisPt });
8283 histos.add (" MCWithDau/hKaPt" , " hKaPt" , kTH1D , {axes.axisPt });
8384 histos.add (" MCWithDau/hPrPt" , " hPrPt" , kTH1D , {axes.axisPt });
84-
8585 histos.add (" MCWithDau/hCollisionId" , " hCollisionId" , kTH1D , {axes.axisCollisionId });
8686 histos.add (" MCWithDau/hPdgCode" , " hPdgCode" , kTH1D , {axes.axisPdgCode });
8787 histos.add (" MCWithDau/hStatusCode" , " hStatusCode" , kTH1D , {axes.axisStatusCode });
@@ -104,44 +104,137 @@ struct Alice3DecayerQA {
104104 histos.add (" MCWithDau/hPt" , " hPt" , kTH1D , {axes.axisPt });
105105 histos.add (" MCWithDau/hP" , " hP" , kTH1D , {axes.axisPt });
106106 histos.add (" MCWithDau/hE" , " hE" , kTH1D , {axes.axisPt });
107- }
108107
109- void processMC (const aod::McParticles&)
110- {
111- for (const auto & particle : trueEl) {
112- histos.fill (HIST (" DefaultMC/hElPt" ), particle.pt ());
113- }
114- for (const auto & particle : trueMu) {
115- histos.fill (HIST (" DefaultMC/hMuPt" ), particle.pt ());
116- }
117- for (const auto & particle : truePi) {
118- histos.fill (HIST (" DefaultMC/hPiPt" ), particle.pt ());
119- }
120- for (const auto & particle : trueKa) {
121- histos.fill (HIST (" DefaultMC/hKaPt" ), particle.pt ());
122- }
123- for (const auto & particle : truePr) {
124- histos.fill (HIST (" DefaultMC/hPrPt" ), particle.pt ());
125- }
108+ // QA with daughters from Decayer
109+ histos.add (" K0S/hGeneratedPt" , " hGeneratedPt" , kTH1D , {axes.axisPt });
110+ histos.add (" K0S/hHasDecayed" , " hHasDecayed" , kTH1D , {{2 , -0.5 , 1.5 }});
111+ histos.add (" K0S/hPosDauDecayRadius" , " hPosDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
112+ histos.add (" K0S/hNegDauDecayRadius" , " hNegDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
113+ histos.add (" Lambda/hGeneratedPt" , " hGeneratedPt" , kTH1D , {axes.axisPt });
114+ histos.add (" Lambda/hHasDecayed" , " hHasDecayed" , kTH1D , {{2 , -0.5 , 1.5 }});
115+ histos.add (" Lambda/hPosDauDecayRadius" , " hPosDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
116+ histos.add (" Lambda/hNegDauDecayRadius" , " hNegDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
117+ histos.add (" XiMinus/hGeneratedPt" , " hGeneratedPt" , kTH1D , {axes.axisPt });
118+ histos.add (" XiMinus/hHasDecayed" , " hHasDecayed" , kTH1D , {{2 , -0.5 , 1.5 }});
119+ histos.add (" XiMinus/hBachDauDecayRadius" , " hBachDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
120+ histos.add (" XiMinus/hV0DauDecayRadius" , " hV0DauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
121+ histos.add (" XiMinus/hPosDauDecayRadius" , " hPosDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
122+ histos.add (" XiMinus/hNegDauDecayRadius" , " hNegDauDecayRadius" , kTH2D , {axes.axisRadiusLog , axes.axisPtLog });
126123 }
127124
128- void processMCWithDau (const aod::McCollision&, const aod::McPartWithDaus& particles)
125+ void process (const aod::McCollision& collision , const aod::McPartWithDaus& particles)
129126 {
130- for (const auto & particle : trueElWithDau) {
127+ // Group with collision
128+ auto trueElectronsGrouped = trueElectrons->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
129+ auto trueMuonsGrouped = trueMuons->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
130+ auto truePionsGrouped = truePions->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
131+ auto trueKaonsGrouped = trueKaons->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
132+ auto trueProtonsGrouped = trueProtons->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
133+ auto trueK0ShortGrouped = trueK0Short->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
134+ auto trueLambdasGrouped = trueLambdas->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
135+ auto trueXiMinusGrouped = trueXiMinus->sliceByCached (aod::mcparticle::mcCollisionId, collision.globalIndex (), cache);
136+
137+ for (const auto & particle : trueElectronsGrouped) {
131138 histos.fill (HIST (" MCWithDau/hElPt" ), particle.pt ());
132139 }
133- for (const auto & particle : trueMuWithDau ) {
140+ for (const auto & particle : trueMuonsGrouped ) {
134141 histos.fill (HIST (" MCWithDau/hMuPt" ), particle.pt ());
135142 }
136- for (const auto & particle : truePiWithDau ) {
143+ for (const auto & particle : truePionsGrouped ) {
137144 histos.fill (HIST (" MCWithDau/hPiPt" ), particle.pt ());
138145 }
139- for (const auto & particle : trueKaWithDau ) {
146+ for (const auto & particle : trueKaonsGrouped ) {
140147 histos.fill (HIST (" MCWithDau/hKaPt" ), particle.pt ());
141148 }
142- for (const auto & particle : truePrWithDau ) {
149+ for (const auto & particle : trueProtonsGrouped ) {
143150 histos.fill (HIST (" MCWithDau/hPrPt" ), particle.pt ());
144151 }
152+ for (const auto & particle : trueK0ShortGrouped) {
153+ histos.fill (HIST (" K0S/hGeneratedPt" ), particle.pt ());
154+ if (particle.has_daughters ()) {
155+ histos.fill (HIST (" K0S/hHasDecayed" ), 0 );
156+ auto daughters = particle.daughtersIds ();
157+ if (daughters.size () == 2 ) {
158+ auto dau0 = particles.rawIteratorAt (daughters.front ());
159+ auto dau1 = particles.rawIteratorAt (daughters.back ());
160+
161+ // K0S -> pi+ pi-
162+ const bool k0sDecay = (dau0.pdgCode () == PDG_t::kPiPlus && dau1.pdgCode () == PDG_t::kPiMinus ) ||
163+ (dau0.pdgCode () == PDG_t::kPiMinus && dau1.pdgCode () == PDG_t::kPiPlus );
164+ if (k0sDecay) {
165+ auto & positive = dau0.pdgCode () == PDG_t::kPiPlus ? dau0 : dau1;
166+ auto & negative = dau0.pdgCode () == PDG_t::kPiPlus ? dau1 : dau0;
167+ histos.fill (HIST (" K0S/hPosDauDecayRadius" ), radius (positive), positive.pt ());
168+ histos.fill (HIST (" K0S/hNegDauDecayRadius" ), radius (negative), negative.pt ());
169+ }
170+ }
171+ } else {
172+ histos.fill (HIST (" K0S/hHasDecayed" ), 1 );
173+ }
174+ }
175+ for (const auto & particle : trueLambdasGrouped) {
176+ histos.fill (HIST (" Lambda/hGeneratedPt" ), particle.pt ());
177+ if (particle.has_daughters ()) {
178+ histos.fill (HIST (" Lambda/hHasDecayed" ), 0 );
179+ auto daughters = particle.daughtersIds ();
180+ if (daughters.size () == 2 ) {
181+ auto dau0 = particles.rawIteratorAt (daughters[0 ]);
182+ auto dau1 = particles.rawIteratorAt (daughters[1 ]);
183+
184+ // Lambda -> p pi-
185+ const bool lambdaDecay = (dau0.pdgCode () == PDG_t::kProton && dau1.pdgCode () == PDG_t::kPiMinus ) ||
186+ (dau0.pdgCode () == PDG_t::kPiMinus && dau1.pdgCode () == PDG_t::kProton );
187+ if (lambdaDecay) {
188+ auto & positive = dau0.pdgCode () == PDG_t::kProton ? dau0 : dau1;
189+ auto & negative = dau0.pdgCode () == PDG_t::kProton ? dau1 : dau0;
190+ histos.fill (HIST (" Lambda/hPosDauDecayRadius" ), radius (positive), positive.pt ());
191+ histos.fill (HIST (" Lambda/hNegDauDecayRadius" ), radius (negative), negative.pt ());
192+ }
193+ }
194+ } else {
195+ histos.fill (HIST (" Lambda/hHasDecayed" ), 1 );
196+ }
197+ }
198+ for (const auto & particle : trueXiMinusGrouped) {
199+ histos.fill (HIST (" XiMinus/hGeneratedPt" ), particle.pt ());
200+ if (particle.has_daughters ()) {
201+ histos.fill (HIST (" XiMinus/hHasDecayed" ), 0 );
202+ auto daughters = particle.daughtersIds ();
203+ if (daughters.size () == 2 ) {
204+ auto dau0 = particles.rawIteratorAt (daughters.front ());
205+ auto dau1 = particles.rawIteratorAt (daughters.back ());
206+
207+ // Xi- -> Lambda pi-
208+ const bool xiDecay = (dau0.pdgCode () == PDG_t::kLambda0 && dau1.pdgCode () == PDG_t::kPiMinus ) ||
209+ (dau0.pdgCode () == PDG_t::kPiMinus && dau1.pdgCode () == PDG_t::kLambda0 );
210+ if (xiDecay) {
211+ auto & v0 = dau0.pdgCode () == PDG_t::kLambda0 ? dau0 : dau1;
212+ auto & bachelor = dau0.pdgCode () == PDG_t::kLambda0 ? dau1 : dau0;
213+ histos.fill (HIST (" XiMinus/hBachDauDecayRadius" ), radius (bachelor), bachelor.pt ());
214+ histos.fill (HIST (" XiMinus/hV0DauDecayRadius" ), radius (v0), v0.pt ());
215+
216+ // Lambda -> p pi-
217+ if (v0.has_daughters ()) {
218+ auto v0daughters = v0.daughtersIds ();
219+ if (v0daughters.size () == 2 ) {
220+ auto v0dau0 = particles.rawIteratorAt (v0daughters.front ());
221+ auto v0dau1 = particles.rawIteratorAt (v0daughters.back ());
222+ const bool lambdaDecay = (v0dau0.pdgCode () == PDG_t::kProton && v0dau1.pdgCode () == PDG_t::kPiMinus ) ||
223+ (v0dau0.pdgCode () == PDG_t::kPiMinus && v0dau1.pdgCode () == PDG_t::kProton );
224+ if (lambdaDecay) {
225+ auto & positive = v0dau0.pdgCode () == PDG_t::kProton ? v0dau0 : v0dau1;
226+ auto & negative = v0dau0.pdgCode () == PDG_t::kProton ? v0dau1 : v0dau0;
227+ histos.fill (HIST (" XiMinus/hPosDauDecayRadius" ), radius (positive), positive.pt ());
228+ histos.fill (HIST (" XiMinus/hNegDauDecayRadius" ), radius (negative), negative.pt ());
229+ }
230+ }
231+ }
232+ }
233+ }
234+ } else {
235+ histos.fill (HIST (" XiMinus/hHasDecayed" ), 1 );
236+ }
237+ }
145238
146239 for (const auto & particle : particles) {
147240 histos.fill (HIST (" MCWithDau/hCollisionId" ), particle.mcCollisionId ());
@@ -167,14 +260,13 @@ struct Alice3DecayerQA {
167260 for (const auto & motherParticleId : particle.mothersIds ()) {
168261 histos.fill (HIST (" MCWithDau/hMothersIds" ), motherParticleId);
169262 }
170- for (const auto & dauParticleId : particle.mothersIds ()) {
263+ for (const auto & dauParticleId : particle.daughtersIds ()) {
171264 histos.fill (HIST (" MCWithDau/hDaughtersIds" ), dauParticleId);
172265 }
173266 }
174267 }
175268
176- PROCESS_SWITCH (Alice3DecayerQA, processMC, " fill MC-only histograms" , false );
177- PROCESS_SWITCH (Alice3DecayerQA, processMCWithDau, " fill MC-with-dau histograms" , true );
269+ PROCESS_SWITCH (Alice3DecayerQA, process, " fill MC-with-dau histograms" , true );
178270};
179271
180272WorkflowSpec defineDataProcessing (ConfigContext const & ctx)
0 commit comments