@@ -125,6 +125,7 @@ struct derivedlambdakzeroanalysis {
125125 Configurable<bool > doMCAssociation{" doMCAssociation" , true , " if MC, do MC association" };
126126 Configurable<bool > doTreatPiToMuon{" doTreatPiToMuon" , false , " Take pi decay into muon into account in MC" };
127127 Configurable<bool > doCollisionAssociationQA{" doCollisionAssociationQA" , true , " check collision association" };
128+ Configurable<bool > doSecondaryV0s{" doSecondaryV0s" , false , " Look at secondary V0s?" };
128129
129130 struct : ConfigurableGroup {
130131 std::string prefix = " eventSelections" ; // JSON group name
@@ -1002,10 +1003,18 @@ struct derivedlambdakzeroanalysis {
10021003 if (analyseLambda && calculateFeeddownMatrix && (doprocessMonteCarloRun3 || doprocessMonteCarloRun2)) {
10031004 histos.add (" h3dLambdaFeeddown" , " h3dLambdaFeeddown" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisPtXi });
10041005 histos.add (" h3dLambdaFeeddownFromXi0" , " h3dLambdaFeeddownFromXi0" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisPtXi });
1006+ if (doSecondaryV0s) {
1007+ histos.add (" h3dMassSecLambdaFromXi" , " h3dMassSecLambdaFromXi" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisLambdaMass });
1008+ histos.add (" h3dMassSecLambdaFromXiAndXi0" , " h3dMassSecLambdaFromXiAndXi0" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisLambdaMass });
1009+ }
10051010 }
10061011 if (analyseAntiLambda && calculateFeeddownMatrix && (doprocessMonteCarloRun3 || doprocessMonteCarloRun2)) {
10071012 histos.add (" h3dAntiLambdaFeeddown" , " h3dAntiLambdaFeeddown" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisPtXi });
10081013 histos.add (" h3dAntiLambdaFeeddownFromXi0" , " h3dAntiLambdaFeeddownFromXi0" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisPtXi });
1014+ if (doSecondaryV0s) {
1015+ histos.add (" h3dMassSecAntiLambdaFromXi" , " h3dMassSecAntiLambdaFromXi" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisLambdaMass });
1016+ histos.add (" h3dMassSecAntiLambdaFromXiAndXi0" , " h3dMassSecAntiLambdaFromXiAndXi0" , kTH3D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt , axisConfigurations.axisLambdaMass });
1017+ }
10091018 }
10101019
10111020 if (analyseK0Short)
@@ -1126,6 +1135,29 @@ struct derivedlambdakzeroanalysis {
11261135 histos.add (" h2dGenXiPlusVsMultMC" , " h2dGenXiPlusVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
11271136 histos.add (" h2dGenOmegaMinusVsMultMC" , " h2dGenOmegaMinusVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
11281137 histos.add (" h2dGenOmegaPlusVsMultMC" , " h2dGenOmegaPlusVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1138+
1139+ if (doSecondaryV0s) {
1140+ histos.add (" h2dGenSecLambda" , " h2dGenSecLambda" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1141+ histos.add (" h2dGenSecAntiLambda" , " h2dGenSecAntiLambda" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1142+ histos.add (" h2dGenSecLambdaFromXi" , " h2dGenSecLambdaFromXi" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1143+ histos.add (" h2dGenSecAntiLambdaFromXi" , " h2dGenSecAntiLambdaFromXi" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1144+ histos.add (" h2dGenSecLambdaFromOmega" , " h2dGenSecLambdaFromOmega" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1145+ histos.add (" h2dGenSecAntiLambdaFromOmega" , " h2dGenSecAntiLambdaFromOmega" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
1146+
1147+ histos.add (" h2dGenSecLambda_VsRecoedEvt" , " h2dGenSecLambda_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1148+ histos.add (" h2dGenSecAntiLambda_VsRecoedEvt" , " h2dGenSecAntiLambda_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1149+ histos.add (" h2dGenSecLambdaFromXiVsMultMC_VsRecoedEvt" , " h2dGenSecLambdaFromXiVsMultMC_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1150+ histos.add (" h2dGenSecAntiLambdaFromXiVsMultMC_VsRecoedEvt" , " h2dGenSecAntiLambdaFromXiVsMultMC_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1151+ histos.add (" h2dGenSecLambdaFromOmegaVsMultMC_VsRecoedEvt" , " h2dGenSecLambdaFromOmegaVsMultMC_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1152+ histos.add (" h2dGenSecAntiLambdaFromOmegaVsMultMC_VsRecoedEvt" , " h2dGenSecAntiLambdaFromOmegaVsMultMC_VsRecoedEvt" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1153+
1154+ histos.add (" h2dGenSecLambdaVsMultMC" , " h2dGenSecLambdaVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1155+ histos.add (" h2dGenSecAntiLambdaVsMultMC" , " h2dGenSecAntiLambdaVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1156+ histos.add (" h2dGenSecLambdaFromXiVsMultMC" , " h2dGenSecLambdaFromXiVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1157+ histos.add (" h2dGenSecAntiLambdaFromXiVsMultMC" , " h2dGenSecAntiLambdaFromXiVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1158+ histos.add (" h2dGenSecLambdaFromOmegaVsMultMC" , " h2dGenSecLambdaFromOmegaVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1159+ histos.add (" h2dGenSecAntiLambdaFromOmegaVsMultMC" , " h2dGenSecAntiLambdaFromOmegaVsMultMC" , kTH2D , {axisConfigurations.axisNch , axisConfigurations.axisPt });
1160+ }
11291161 }
11301162 if (doprocessBinnedGenerated) {
11311163 histos.add (" h2dGeneratedK0Short" , " h2dGeneratedK0Short" , kTH2D , {axisConfigurations.axisCentrality , axisConfigurations.axisPt });
@@ -2074,18 +2106,34 @@ struct derivedlambdakzeroanalysis {
20742106 // __________________________________________
20752107 if (verifyMask (selMap, secondaryMaskSelectionLambda) && analyseLambda) {
20762108 if (v0mother.isPhysicalPrimary ()) {
2077- if (v0mother.pdgCode () == PDG_t::kXiMinus )
2109+ if (v0mother.pdgCode () == PDG_t::kXiMinus ) {
20782110 histos.fill (HIST (" h3dLambdaFeeddown" ), centrality, pt, std::hypot (v0mother.px (), v0mother.py ()));
2079- if (v0mother.pdgCode () == PDG_t::kXiMinus || v0mother.pdgCode () == o2::constants::physics::Pdg::kXi0 )
2111+ if (doSecondaryV0s) {
2112+ histos.fill (HIST (" h3dMassSecLambdaFromXi" ), centrality, pt, v0.mLambda ());
2113+ }
2114+ }
2115+ if (v0mother.pdgCode () == PDG_t::kXiMinus || v0mother.pdgCode () == o2::constants::physics::Pdg::kXi0 ) {
20802116 histos.fill (HIST (" h3dLambdaFeeddownFromXi0" ), centrality, pt, std::hypot (v0mother.px (), v0mother.py ()));
2117+ if (doSecondaryV0s) {
2118+ histos.fill (HIST (" h3dMassSecLambdaFromXiAndXi0" ), centrality, pt, v0.mLambda ());
2119+ }
2120+ }
20812121 }
20822122 }
20832123 if (verifyMask (selMap, secondaryMaskSelectionAntiLambda) && analyseAntiLambda) {
20842124 if (v0mother.isPhysicalPrimary ()) {
2085- if (v0mother.pdgCode () == PDG_t::kXiPlusBar )
2125+ if (v0mother.pdgCode () == PDG_t::kXiPlusBar ) {
20862126 histos.fill (HIST (" h3dAntiLambdaFeeddown" ), centrality, pt, std::hypot (v0mother.px (), v0mother.py ()));
2087- if (v0mother.pdgCode () == PDG_t::kXiPlusBar || v0mother.pdgCode () == -o2::constants::physics::Pdg::kXi0 )
2127+ if (doSecondaryV0s) {
2128+ histos.fill (HIST (" h3dMassSecAntiLambdaFromXi" ), centrality, pt, v0.mAntiLambda ());
2129+ }
2130+ }
2131+ if (v0mother.pdgCode () == PDG_t::kXiPlusBar || v0mother.pdgCode () == -o2::constants::physics::Pdg::kXi0 ) {
20882132 histos.fill (HIST (" h3dAntiLambdaFeeddownFromXi0" ), centrality, pt, std::hypot (v0mother.px (), v0mother.py ()));
2133+ if (doSecondaryV0s) {
2134+ histos.fill (HIST (" h3dMassSecAntiLambdaFromXiAndXi0" ), centrality, pt, v0.mAntiLambda ());
2135+ }
2136+ }
20892137 }
20902138 }
20912139 }
@@ -2902,6 +2950,28 @@ struct derivedlambdakzeroanalysis {
29022950 if (cascMC.pdgCode () == PDG_t::kOmegaPlusBar ) {
29032951 histos.fill (HIST (" h2dGenOmegaPlusVsMultMC_RecoedEvt" ), mcCollision.multMCNParticlesEta05 (), ptmc);
29042952 }
2953+
2954+ if (doSecondaryV0s && std::abs (cascMC.pdgCodeV0 ()) == kLambda0 ) {
2955+ float v0PtMc = std::hypot (cascMC.pxPosMC () + cascMC.pxNegMC (), cascMC.pyPosMC () + cascMC.pyNegMC ());
2956+ if (cascMC.pdgCodeV0 () == kLambda0 ) {
2957+ histos.fill (HIST (" h2dGenSecLambda_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2958+ }
2959+ if (cascMC.pdgCodeV0 () == kLambda0Bar ) {
2960+ histos.fill (HIST (" h2dGenSecAntiLambda_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2961+ }
2962+ if (cascMC.pdgCode () == PDG_t::kXiMinus && cascMC.pdgCodeV0 () == kLambda0 ) {
2963+ histos.fill (HIST (" h2dGenSecLambdaFromXiVsMultMC_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2964+ }
2965+ if (cascMC.pdgCode () == PDG_t::kXiPlusBar && cascMC.pdgCodeV0 () == kLambda0Bar ) {
2966+ histos.fill (HIST (" h2dGenSecAntiLambdaFromXiVsMultMC_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2967+ }
2968+ if (cascMC.pdgCode () == PDG_t::kOmegaMinus && cascMC.pdgCodeV0 () == kLambda0 ) {
2969+ histos.fill (HIST (" h2dGenSecLambdaFromOmegaVsMultMC_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2970+ }
2971+ if (cascMC.pdgCode () == PDG_t::kOmegaPlusBar && cascMC.pdgCodeV0 () == kLambda0Bar ) {
2972+ histos.fill (HIST (" h2dGenSecAntiLambdaFromOmegaVsMultMC_VsRecoedEvt" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2973+ }
2974+ }
29052975 }
29062976
29072977 if (cascMC.pdgCode () == PDG_t::kXiMinus ) {
@@ -2920,6 +2990,34 @@ struct derivedlambdakzeroanalysis {
29202990 histos.fill (HIST (" h2dGenOmegaPlus" ), centrality, ptmc);
29212991 histos.fill (HIST (" h2dGenOmegaPlusVsMultMC" ), mcCollision.multMCNParticlesEta05 (), ptmc);
29222992 }
2993+
2994+ if (doSecondaryV0s && std::abs (cascMC.pdgCodeV0 ()) == kLambda0 ) {
2995+ float v0PtMc = std::hypot (cascMC.pxPosMC () + cascMC.pxNegMC (), cascMC.pyPosMC () + cascMC.pyNegMC ());
2996+ if (cascMC.pdgCodeV0 () == kLambda0 ) {
2997+ histos.fill (HIST (" h2dGenSecLambda" ), centrality, v0PtMc);
2998+ histos.fill (HIST (" h2dGenSecLambdaVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
2999+ }
3000+ if (cascMC.pdgCodeV0 () == kLambda0Bar ) {
3001+ histos.fill (HIST (" h2dGenSecAntiLambda" ), centrality, v0PtMc);
3002+ histos.fill (HIST (" h2dGenSecAntiLambdaVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
3003+ }
3004+ if (cascMC.pdgCode () == PDG_t::kXiMinus && cascMC.pdgCodeV0 () == kLambda0 ) {
3005+ histos.fill (HIST (" h2dGenSecLambdaFromXi" ), centrality, v0PtMc);
3006+ histos.fill (HIST (" h2dGenSecLambdaFromXiVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
3007+ }
3008+ if (cascMC.pdgCode () == PDG_t::kXiPlusBar && cascMC.pdgCodeV0 () == kLambda0Bar ) {
3009+ histos.fill (HIST (" h2dGenSecAntiLambdaFromXi" ), centrality, v0PtMc);
3010+ histos.fill (HIST (" h2dGenSecAntiLambdaFromXiVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
3011+ }
3012+ if (cascMC.pdgCode () == PDG_t::kOmegaMinus && cascMC.pdgCodeV0 () == kLambda0 ) {
3013+ histos.fill (HIST (" h2dGenSecLambdaFromOmega" ), centrality, v0PtMc);
3014+ histos.fill (HIST (" h2dGenSecLambdaFromOmegaVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
3015+ }
3016+ if (cascMC.pdgCode () == PDG_t::kOmegaPlusBar && cascMC.pdgCodeV0 () == kLambda0Bar ) {
3017+ histos.fill (HIST (" h2dGenSecAntiLambdaFromOmega" ), centrality, v0PtMc);
3018+ histos.fill (HIST (" h2dGenSecAntiLambdaFromOmegaVsMultMC" ), mcCollision.multMCNParticlesEta05 (), v0PtMc);
3019+ }
3020+ }
29233021 }
29243022 }
29253023
0 commit comments