@@ -102,23 +102,68 @@ inline float getMass(int pdgCode)
102102 return mass;
103103}
104104
105- inline int checkDaughterType (o2::aod::femtodreamparticle::ParticleType partType, int motherPDG)
105+ inline int checkDaughterType (o2::aod::femtodreamparticle::ParticleType partType, int motherPDG, int daughterPDG = 0 )
106106{
107107 int partOrigin = 0 ;
108+ const auto absMotherPDG = std::abs (motherPDG);
109+ const auto absDaughterPDG = std::abs (daughterPDG);
110+ const bool isTrackLike = partType == o2::aod::femtodreamparticle::ParticleType::kTrack ||
111+ partType == o2::aod::femtodreamparticle::ParticleType::kV0Child ||
112+ partType == o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child ||
113+ partType == o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor ;
114+
115+ if (absDaughterPDG == kKPlus && isTrackLike) {
116+ switch (absMotherPDG) {
117+ case kOmegaMinus :
118+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterOmegaMinus ;
119+ break ;
120+ default :
121+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary ;
122+ }
123+ return partOrigin;
124+ }
125+
108126 if (partType == o2::aod::femtodreamparticle::ParticleType::kTrack ) {
109- switch (std::abs (motherPDG) ) {
127+ switch (absMotherPDG ) {
110128 case kLambda0 :
111129 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterLambda ;
112130 break ;
113131 case kSigmaPlus :
114132 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigmaplus ;
115133 break ;
134+ case kSigma0 :
135+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigma0 ;
136+ break ;
137+ case kSigmaMinus :
138+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigmaminus ;
139+ break ;
140+ case kXiMinus :
141+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXiMinus ;
142+ break ;
143+ case o2::constants::physics::Pdg::kXi0 :
144+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXi0 ;
145+ break ;
146+ case kOmegaMinus :
147+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterOmegaMinus ;
148+ break ;
149+ case kK0Long :
150+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterK0Long ;
151+ break ;
152+ case kK0Short :
153+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterK0Short ;
154+ break ;
155+ case kKPlus :
156+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterKCharged ;
157+ break ;
158+ case kPiPlus :
159+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterPionCharged ;
160+ break ;
116161 default :
117162 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary ;
118163 } // switch
119164
120165 } else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0 ) {
121- switch (std::abs (motherPDG) ) {
166+ switch (absMotherPDG ) {
122167 case kSigma0 :
123168 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigma0 ;
124169 break ;
@@ -133,19 +178,46 @@ inline int checkDaughterType(o2::aod::femtodreamparticle::ParticleType partType,
133178 }
134179
135180 } else if (partType == o2::aod::femtodreamparticle::ParticleType::kV0Child || partType == o2::aod::femtodreamparticle::ParticleType::kCascadeV0Child || partType == o2::aod::femtodreamparticle::ParticleType::kCascadeBachelor ) {
136- switch (abs (motherPDG) ) {
181+ switch (absMotherPDG ) {
137182 case kLambda0 :
138183 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterLambda ;
139184 break ;
140185 case kSigmaPlus :
141186 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigmaplus ;
142187 break ;
188+ case kSigma0 :
189+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigma0 ;
190+ break ;
191+ case kSigmaMinus :
192+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterSigmaminus ;
193+ break ;
194+ case kXiMinus :
195+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXiMinus ;
196+ break ;
197+ case o2::constants::physics::Pdg::kXi0 :
198+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterXi0 ;
199+ break ;
200+ case kOmegaMinus :
201+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterOmegaMinus ;
202+ break ;
203+ case kK0Long :
204+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterK0Long ;
205+ break ;
206+ case kK0Short :
207+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterK0Short ;
208+ break ;
209+ case kKPlus :
210+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterKCharged ;
211+ break ;
212+ case kPiPlus :
213+ partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterPionCharged ;
214+ break ;
143215 default :
144216 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondary ;
145217 } // switch
146218
147219 } else if (partType == o2::aod::femtodreamparticle::ParticleType::kCascade ) {
148- switch (std::abs (motherPDG) ) {
220+ switch (absMotherPDG ) {
149221 case kOmegaMinus :
150222 partOrigin = aod::femtodreamMCparticle::ParticleOriginMCTruth::kSecondaryDaughterOmegaMinus ;
151223 break ;
0 commit comments