@@ -102,6 +102,7 @@ struct femtoUniverseProducerTask {
102102 Produces<aod::FDExtParticles> outputDebugParts;
103103 Produces<aod::FDMCLabels> outputPartsMCLabels;
104104 Produces<aod::FDExtMCParticles> outputDebugPartsMC;
105+ Produces<aod::FDCascParticles> outputCascParts;
105106
106107 Configurable<bool > ConfIsDebug{" ConfIsDebug" , true , " Enable Debug tables" };
107108 // Choose if filtering or skimming version is run
@@ -123,7 +124,7 @@ struct femtoUniverseProducerTask {
123124 Configurable<bool > ConfEvtOfflineCheck{" ConfEvtOfflineCheck" , false , " Evt sel: check for offline selection" };
124125 Configurable<bool > ConfIsActivateV0{" ConfIsActivateV0" , false , " Activate filling of V0 into femtouniverse tables" };
125126 Configurable<bool > ConfActivateSecondaries{" ConfActivateSecondaries" , false , " Fill secondary MC gen particles that were reconstructed" };
126- Configurable<bool > ConfIsActivateCascade{" ConfIsActivateCascade" , true , " Activate filling of Cascade into femtouniverse tables" };
127+ Configurable<bool > ConfIsActivateCascade{" ConfIsActivateCascade" , false , " Activate filling of Cascade into femtouniverse tables" };
127128 Configurable<bool > ConfIsActivatePhi{" ConfIsActivatePhi" , false , " Activate filling of Phi into femtouniverse tables" };
128129 Configurable<bool > ConfMCTruthAnalysisWithPID{" ConfMCTruthAnalysisWithPID" , true , " 1: take only particles with specified PDG, 0: all particles (for MC Truth)" };
129130 Configurable<std::vector<int >> ConfMCTruthPDGCodes{" ConfMCTruthPDGCodes" , std::vector<int >{211 , -211 , 2212 , -2212 , 333 }, " PDG of particles to be stored" };
@@ -894,13 +895,23 @@ struct femtoUniverseProducerTask {
894895 auto cutContainer = trackCuts.getCutContainer <aod::femtouniverseparticle::cutContainerType>(track);
895896
896897 // now the table is filled
897- outputParts (outputCollision.lastIndex (), track.pt (), track.eta (),
898- track.phi (), aod::femtouniverseparticle::ParticleType::kTrack ,
899- cutContainer.at (
900- femtoUniverseTrackSelection::TrackContainerPosition::kCuts ),
901- cutContainer.at (
902- femtoUniverseTrackSelection::TrackContainerPosition::kPID ),
903- track.dcaXY (), childIDs, 0 , 0 );
898+ if (!ConfIsActivateCascade) {
899+ outputParts (outputCollision.lastIndex (), track.pt (), track.eta (),
900+ track.phi (), aod::femtouniverseparticle::ParticleType::kTrack ,
901+ cutContainer.at (
902+ femtoUniverseTrackSelection::TrackContainerPosition::kCuts ),
903+ cutContainer.at (
904+ femtoUniverseTrackSelection::TrackContainerPosition::kPID ),
905+ track.dcaXY (), childIDs, 0 , 0 );
906+ } else {
907+ outputCascParts (outputCollision.lastIndex (), track.pt (), track.eta (),
908+ track.phi (), aod::femtouniverseparticle::ParticleType::kTrack ,
909+ cutContainer.at (
910+ femtoUniverseTrackSelection::TrackContainerPosition::kCuts ),
911+ cutContainer.at (
912+ femtoUniverseTrackSelection::TrackContainerPosition::kPID ),
913+ track.dcaXY (), childIDs, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
914+ }
904915 tmpIDtrack.push_back (track.globalIndex ());
905916 if (ConfIsDebug) {
906917 fillDebugParticle<true , false , false >(track);
@@ -1027,18 +1038,28 @@ struct femtoUniverseProducerTask {
10271038 childIDs[0 ] = rowInPrimaryTrackTablePos; // pos
10281039 childIDs[1 ] = 0 ; // neg
10291040 childIDs[2 ] = 0 ; // bachelor
1030- outputParts (outputCollision.lastIndex (),
1031- casc.positivept (),
1032- casc.positiveeta (),
1033- casc.positivephi (),
1034- aod::femtouniverseparticle::ParticleType::kV0Child ,
1035- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kPosCuts),
1036- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kPosPID),
1037- 0 .,
1038- childIDs,
1039- 0 ,
1040- 0 );
1041- const int rowOfPosTrack = outputParts.lastIndex ();
1041+ outputCascParts (outputCollision.lastIndex (),
1042+ casc.positivept (),
1043+ casc.positiveeta (),
1044+ casc.positivephi (),
1045+ aod::femtouniverseparticle::ParticleType::kV0Child ,
1046+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kPosCuts),
1047+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kPosPID),
1048+ 0 .,
1049+ childIDs,
1050+ 0 ,
1051+ 0 ,
1052+ 0 ,
1053+ 0 ,
1054+ 0 ,
1055+ 0 ,
1056+ 0 ,
1057+ 0 ,
1058+ 0 ,
1059+ 0 ,
1060+ 0 ,
1061+ 0 );
1062+ const int rowOfPosTrack = outputCascParts.lastIndex ();
10421063 // if constexpr (isMC) {
10431064 // fillMCParticle(postrack, o2::aod::femtouniverseparticle::ParticleType::kV0Child);
10441065 // }
@@ -1048,18 +1069,28 @@ struct femtoUniverseProducerTask {
10481069 childIDs[0 ] = 0 ; // pos
10491070 childIDs[1 ] = rowInPrimaryTrackTableNeg; // neg
10501071 childIDs[2 ] = 0 ; // bachelor
1051- outputParts (outputCollision.lastIndex (),
1052- casc.negativept (),
1053- casc.negativeeta (),
1054- casc.negativephi (),
1055- aod::femtouniverseparticle::ParticleType::kV0Child ,
1056- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegCuts),
1057- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegPID),
1058- 0 .,
1059- childIDs,
1060- 0 ,
1061- 0 );
1062- const int rowOfNegTrack = outputParts.lastIndex ();
1072+ outputCascParts (outputCollision.lastIndex (),
1073+ casc.negativept (),
1074+ casc.negativeeta (),
1075+ casc.negativephi (),
1076+ aod::femtouniverseparticle::ParticleType::kV0Child ,
1077+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegCuts),
1078+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegPID),
1079+ 0 .,
1080+ childIDs,
1081+ 0 ,
1082+ 0 ,
1083+ 0 ,
1084+ 0 ,
1085+ 0 ,
1086+ 0 ,
1087+ 0 ,
1088+ 0 ,
1089+ 0 ,
1090+ 0 ,
1091+ 0 ,
1092+ 0 );
1093+ const int rowOfNegTrack = outputCascParts.lastIndex ();
10631094 // if constexpr (isMC) {
10641095 // fillMCParticle(negtrack, o2::aod::femtouniverseparticle::ParticleType::kV0Child);
10651096 // }
@@ -1070,31 +1101,51 @@ struct femtoUniverseProducerTask {
10701101 childIDs[0 ] = 0 ; // pos
10711102 childIDs[1 ] = 0 ; // neg
10721103 childIDs[2 ] = rowInPrimaryTrackTableBach; // bachelor
1073- outputParts (outputCollision.lastIndex (),
1074- casc.bachelorpt (),
1075- casc.bacheloreta (),
1076- casc.bachelorphi (),
1077- aod::femtouniverseparticle::ParticleType::kCascadeBachelor ,
1078- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegCuts),
1079- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegPID),
1080- 0 .,
1081- childIDs,
1082- 0 ,
1083- 0 );
1084- const int rowOfBachTrack = outputParts.lastIndex ();
1104+ outputCascParts (outputCollision.lastIndex (),
1105+ casc.bachelorpt (),
1106+ casc.bacheloreta (),
1107+ casc.bachelorphi (),
1108+ aod::femtouniverseparticle::ParticleType::kCascadeBachelor ,
1109+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegCuts),
1110+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kNegPID),
1111+ 0 .,
1112+ childIDs,
1113+ 0 ,
1114+ 0 ,
1115+ 0 ,
1116+ 0 ,
1117+ 0 ,
1118+ 0 ,
1119+ 0 ,
1120+ 0 ,
1121+ 0 ,
1122+ 0 ,
1123+ 0 ,
1124+ 0 );
1125+ const int rowOfBachTrack = outputCascParts.lastIndex ();
10851126 // cascade
10861127 std::vector<int > indexCascChildID = {rowOfPosTrack, rowOfNegTrack, rowOfBachTrack};
1087- outputParts (outputCollision.lastIndex (),
1088- casc.pt (),
1089- casc.eta (),
1090- casc.phi (),
1091- aod::femtouniverseparticle::ParticleType::kCascade ,
1092- 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kV0), // zmienic
1093- 0 ,
1094- casc.casccosPA (col.posX (), col.posY (), col.posZ ()),
1095- indexCascChildID,
1096- casc.mXi (),
1097- casc.mXi ());
1128+ outputCascParts (outputCollision.lastIndex (),
1129+ casc.pt (),
1130+ casc.eta (),
1131+ casc.phi (),
1132+ aod::femtouniverseparticle::ParticleType::kCascade ,
1133+ 0 , // cutContainerV0.at(femtoUniverseV0Selection::V0ContainerPosition::kV0),
1134+ 0 ,
1135+ 0 ,
1136+ indexCascChildID,
1137+ casc.mXi (),
1138+ casc.mXi (),
1139+ casc.dcaV0daughters (),
1140+ casc.v0cosPA (col.posX (), col.posY (), col.posZ ()),
1141+ casc.v0radius (),
1142+ casc.casccosPA (col.posX (), col.posY (), col.posZ ()),
1143+ casc.dcacascdaughters (),
1144+ casc.cascradius (),
1145+ casc.dcapostopv (),
1146+ casc.dcanegtopv (),
1147+ casc.dcabachtopv (),
1148+ casc.dcav0topv (col.posX (), col.posY (), col.posZ ()));
10981149 if (ConfIsDebug) {
10991150 fillDebugParticle<true , false , false >(posTrackCasc); // QA for positive daughter
11001151 fillDebugParticle<true , false , false >(negTrackCasc); // QA for negative daughter
0 commit comments