@@ -28,9 +28,6 @@ using namespace o2::framework::expressions;
2828using namespace o2 ::aod::hf_cand_2prong;
2929using namespace o2 ::analysis::hf_cuts_d0_to_pi_k;
3030
31- constexpr static int useDCAFitterN = 0 ;
32- constexpr static int useKFParticle = 1 ;
33-
3431// / D0 analysis task
3532struct HfTaskD0 {
3633 Configurable<int > selectionFlagD0{" selectionFlagD0" , 1 , " Selection Flag for D0" };
@@ -166,8 +163,8 @@ struct HfTaskD0 {
166163 registry.add (" hDecLengthxyVsPtSig" , " 2-prong candidates;decay length xy (cm) vs #it{p}_{T} for signal;entries" , {HistType::kTH2F , {{800 , 0 ., 4 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
167164 }
168165
169- template <int ReconstructionType, typename THfCand2Prong, typename THfCand2ProngSel>
170- void processData (THfCand2Prong& candidates, THfCand2ProngSel& selectedD0CandidatesSets)
166+ template <int ReconstructionType, typename THfCand2ProngSel>
167+ void processData (THfCand2ProngSel& selectedD0CandidatesSets)
171168 {
172169 for (auto & candidate : selectedD0CandidatesSets) {
173170 if (!(candidate.hfflag () & 1 << DecayType::D0ToPiK)) {
@@ -178,14 +175,13 @@ struct HfTaskD0 {
178175 }
179176
180177 float massD0, massD0bar;
181- if constexpr (ReconstructionType == useDCAFitterN) {
178+ if constexpr (ReconstructionType == o2::aod::hf_cand::useKFParticle) {
179+ massD0 = candidate.kfGeoMassD0 ();
180+ massD0bar = candidate.kfGeoMassD0bar ();
181+ } else {
182182 massD0 = invMassD0ToPiK (candidate);
183183 massD0bar = invMassD0barToKPi (candidate);
184184 }
185- if constexpr (ReconstructionType == useKFParticle) {
186- massD0 = candidate.kfGeoMass_DZero ();
187- massD0bar = candidate.kfGeoMass_DZeroBar ();
188- }
189185 auto ptCandidate = candidate.pt ();
190186
191187 if (candidate.isSelD0 () >= selectionFlagD0) {
@@ -228,20 +224,20 @@ struct HfTaskD0 {
228224 registry.fill (HIST (" hCPAXYFinerBinning" ), candidate.cpaXY (), ptCandidate);
229225 }
230226 }
231- void processWithDCAFitterN (soa::Join<aod::HfCand2Prong, aod::HfSelD0> const & candidates )
227+ void processWithDCAFitterN (soa::Join<aod::HfCand2Prong, aod::HfSelD0> const &)
232228 {
233- processData<0 >(candidates, selectedD0Candidates);
229+ processData<0 >(selectedD0Candidates);
234230 }
235- void processWithKFParticle (soa::Join<aod::HfCand2Prong, aod::HfCand2ProngKF, aod::HfSelD0> const & candidates)
231+ PROCESS_SWITCH (HfTaskD0, processWithDCAFitterN, " process taskD0 with DCAFitterN" , true );
232+
233+ void processWithKFParticle (soa::Join<aod::HfCand2Prong, aod::HfCand2ProngKF, aod::HfSelD0> const &)
236234 {
237- processData<1 >(candidates, selectedD0CandidatesKF);
235+ processData<1 >(selectedD0CandidatesKF);
238236 }
239-
240- PROCESS_SWITCH (HfTaskD0, processWithDCAFitterN, " process taskD0 with DCAFitterN" , true );
241237 PROCESS_SWITCH (HfTaskD0, processWithKFParticle, " process taskD0 with KFParticle" , false );
242238
243- template <int ReconstructionType, typename THfCand2Prong, typename THfCand2ProngFlag>
244- void processMc (THfCand2Prong& candidates, THfCand2ProngFlag& recoFlag2ProngSets,
239+ template <int ReconstructionType, typename THfCand2ProngFlag>
240+ void processMc (THfCand2ProngFlag& recoFlag2ProngSets,
245241 soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const & particlesMC, aod::TracksWMc const & tracks)
246242 {
247243 // MC rec.
@@ -254,14 +250,13 @@ struct HfTaskD0 {
254250 continue ;
255251 }
256252 float massD0, massD0bar;
257- if constexpr (ReconstructionType == useDCAFitterN) {
253+ if constexpr (ReconstructionType == o2::aod::hf_cand::useKFParticle) {
254+ massD0 = candidate.kfGeoMassD0 ();
255+ massD0bar = candidate.kfGeoMassD0bar ();
256+ } else {
258257 massD0 = invMassD0ToPiK (candidate);
259258 massD0bar = invMassD0barToKPi (candidate);
260259 }
261- if constexpr (ReconstructionType == useKFParticle) {
262- massD0 = candidate.kfGeoMass_DZero ();
263- massD0bar = candidate.kfGeoMass_DZeroBar ();
264- }
265260 if (std::abs (candidate.flagMcMatchRec ()) == 1 << DecayType::D0ToPiK) {
266261 // Get the corresponding MC particle.
267262 auto indexMother = RecoDecay::getMother (particlesMC, candidate.template prong0_as <aod::TracksWMc>().template mcParticle_as <soa::Join<aod::McParticles, aod::HfCand2ProngMcGen>>(), pdg::Code::kD0 , true );
@@ -435,19 +430,16 @@ struct HfTaskD0 {
435430 }
436431 }
437432
438- void processMcWithDCAFitterN (soa::Join<aod::HfCand2Prong, aod::HfSelD0, aod::HfCand2ProngMcRec>& candidates,
439- soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const & particlesMC, aod::TracksWMc const & tracks)
433+ void processMcWithDCAFitterN (soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const & particlesMC, aod::TracksWMc const & tracks)
440434 {
441- processMc<0 >(candidates, recoFlag2Prong, particlesMC, tracks);
435+ processMc<0 >(recoFlag2Prong, particlesMC, tracks);
442436 }
437+ PROCESS_SWITCH (HfTaskD0, processMcWithDCAFitterN, " Process MC with DCAFitterN" , false );
443438
444- void processMcWithKFParticle (soa::Join<aod::HfCand2Prong, aod::HfCand2ProngKF, aod::HfSelD0, aod::HfCand2ProngMcRec>& candidates,
445- soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const & particlesMC, aod::TracksWMc const & tracks)
439+ void processMcWithKFParticle (soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const & particlesMC, aod::TracksWMc const & tracks)
446440 {
447- processMc<1 >(candidates, recoFlag2ProngKF, particlesMC, tracks);
441+ processMc<1 >(recoFlag2ProngKF, particlesMC, tracks);
448442 }
449-
450- PROCESS_SWITCH (HfTaskD0, processMcWithDCAFitterN, " Process MC with DCAFitterN" , false );
451443 PROCESS_SWITCH (HfTaskD0, processMcWithKFParticle, " Process MC with KFParticle" , false );
452444};
453445
0 commit comments