@@ -186,6 +186,7 @@ struct cascadeFlow {
186186 // Output filling criteria
187187 struct : ConfigurableGroup {
188188 Configurable<bool > isFillTree{" isFillTree" , 1 , " " };
189+ Configurable<bool > isFillTreeFull{" isFillTreeFull" , 0 , " " };
189190 Configurable<bool > isFillTHNXi{" isFillTHNXi" , 1 , " " };
190191 Configurable<bool > isFillTHNXi_PzVsPsi{" isFillTHNXi_PzVsPsi" , 1 , " " };
191192 Configurable<bool > isFillTHNOmega{" isFillTHNOmega" , 1 , " " };
@@ -656,6 +657,7 @@ struct cascadeFlow {
656657 // Tables to produce
657658 Produces<aod::CascTraining> trainingSample;
658659 Produces<aod::CascAnalysis> analysisSample;
660+ Produces<aod::CascAnalysisFull> analysisTopoSample;
659661 Produces<aod::LambdaAnalysis> analysisLambdaSample;
660662 Configurable<LabeledArray<double >> parSigmaMass{
661663 " parSigmaMass" ,
@@ -694,8 +696,8 @@ struct cascadeFlow {
694696 pdgCode);
695697 }
696698
697- template <class collision_t , class cascade_t >
698- void fillAnalysedTable (collision_t coll, bool hasEventPlane, bool hasSpectatorPlane, cascade_t casc, float v2CSP, float v2CEP, float v1SP_ZDCA, float v1SP_ZDCC, float PsiT0C, float BDTresponseXi, float BDTresponseOmega, int pdgCode)
699+ template <class collision_t , class cascade_t , class bachExtra_t >
700+ void fillAnalysedTable (collision_t coll, bool hasEventPlane, bool hasSpectatorPlane, cascade_t casc, float v2CSP, float v2CEP, float v1SP_ZDCA, float v1SP_ZDCC, float PsiT0C, float BDTresponseXi, float BDTresponseOmega, int pdgCode, bachExtra_t bachExtra )
699701 {
700702 double masses[nParticles]{o2::constants::physics::MassXiMinus, o2::constants::physics::MassOmegaMinus};
701703 ROOT ::Math::PxPyPzMVector cascadeVector[nParticles], lambdaVector, protonVector;
@@ -730,29 +732,66 @@ struct cascadeFlow {
730732 // bool isTVXinTRD = 0;
731733 // if (coll.alias_bit(kTVXinTRD)) isTVXinTRD = 1;
732734
733- analysisSample (coll.centFT0C (),
734- isNoCollInTimeRangeStd,
735- isNoCollInRofStd,
736- hasEventPlane,
737- hasSpectatorPlane,
738- casc.sign (),
739- casc.pt (),
740- casc.eta (),
741- casc.phi (),
742- casc.mLambda (),
743- casc.mXi (),
744- casc.mOmega (),
745- v2CSP,
746- v2CEP,
747- v1SP_ZDCA,
748- v1SP_ZDCC,
749- PsiT0C,
750- BDTresponseXi,
751- BDTresponseOmega,
752- cosThetaStarLambda[0 ],
753- cosThetaStarLambda[1 ],
754- cosThetaStarProton,
755- pdgCode);
735+ if (fillingConfigs.isFillTreeFull ) {
736+ analysisTopoSample (coll.centFT0C (),
737+ hasEventPlane,
738+ hasSpectatorPlane,
739+ casc.sign (),
740+ casc.pt (),
741+ casc.eta (),
742+ casc.phi (),
743+ casc.mLambda (),
744+ casc.mXi (),
745+ casc.mOmega (),
746+ casc.cascradius (),
747+ casc.v0radius (),
748+ casc.casccosPA (coll.posX (), coll.posY (), coll.posZ ()),
749+ casc.v0cosPA (coll.posX (), coll.posY (), coll.posZ ()),
750+ casc.dcapostopv (),
751+ casc.dcanegtopv (),
752+ casc.dcabachtopv (),
753+ casc.dcacascdaughters (),
754+ casc.dcaV0daughters (),
755+ casc.dcav0topv (coll.posX (), coll.posY (), coll.posZ ()),
756+ casc.bachBaryonCosPA (),
757+ casc.bachBaryonDCAxyToPV (),
758+ bachExtra.tpcNSigmaKa (),
759+ v2CSP,
760+ v2CEP,
761+ v1SP_ZDCA,
762+ v1SP_ZDCC,
763+ PsiT0C,
764+ BDTresponseXi,
765+ BDTresponseOmega,
766+ cosThetaStarLambda[0 ],
767+ cosThetaStarLambda[1 ],
768+ cosThetaStarProton,
769+ pdgCode);
770+ } else {
771+ analysisSample (coll.centFT0C (),
772+ isNoCollInTimeRangeStd,
773+ isNoCollInRofStd,
774+ hasEventPlane,
775+ hasSpectatorPlane,
776+ casc.sign (),
777+ casc.pt (),
778+ casc.eta (),
779+ casc.phi (),
780+ casc.mLambda (),
781+ casc.mXi (),
782+ casc.mOmega (),
783+ v2CSP,
784+ v2CEP,
785+ v1SP_ZDCA,
786+ v1SP_ZDCC,
787+ PsiT0C,
788+ BDTresponseXi,
789+ BDTresponseOmega,
790+ cosThetaStarLambda[0 ],
791+ cosThetaStarLambda[1 ],
792+ cosThetaStarProton,
793+ pdgCode);
794+ }
756795 }
757796
758797 template <class collision_t , class v0_t >
@@ -1581,7 +1620,7 @@ struct cascadeFlow {
15811620
15821621 if (isSelectedCasc[0 ] || isSelectedCasc[1 ]) {
15831622 if (fillingConfigs.isFillTree )
1584- fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 );
1623+ fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 , bachExtra );
15851624 }
15861625 }
15871626 }
@@ -1899,7 +1938,7 @@ struct cascadeFlow {
18991938
19001939 if (isSelectedCasc[0 ] || isSelectedCasc[1 ]) {
19011940 if (fillingConfigs.isFillTree )
1902- fillAnalysedTable (coll, hasEventPlane, 0 , casc, v2CSP, v2CEP, 0 , 0 , psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 );
1941+ fillAnalysedTable (coll, hasEventPlane, 0 , casc, v2CSP, v2CEP, 0 , 0 , psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 , bachExtra );
19031942 }
19041943 }
19051944 }
@@ -2414,7 +2453,7 @@ struct cascadeFlow {
24142453 }
24152454 if (isSelectedCasc[0 ] || isSelectedCasc[1 ])
24162455 if (fillingConfigs.isFillTree )
2417- fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 );
2456+ fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0CCorr, BDTresponse[0 ], BDTresponse[1 ], 0 , bachExtra );
24182457 }
24192458 }
24202459
@@ -2556,7 +2595,7 @@ struct cascadeFlow {
25562595 continue ;
25572596 }
25582597 if (isSelectedCasc[0 ] || isSelectedCasc[1 ])
2559- fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0C, BDTresponse[0 ], BDTresponse[1 ], pdgCode);
2598+ fillAnalysedTable (coll, hasEventPlane, hasSpectatorPlane, casc, v2CSP, v2CEP, v1SP_ZDCA, v1SP_ZDCC, psiT0C, BDTresponse[0 ], BDTresponse[1 ], pdgCode, bachExtra );
25602599 }
25612600 }
25622601
0 commit comments