59 const int SHOWER_IDX{0}, TRACK_IDX{1};
62 const CaloHitList *pCaloHitList(
nullptr);
63 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetList(*
this, listName, pCaloHitList));
64 const MCParticleList *pMCParticleList(
nullptr);
65 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetCurrentList(*
this, pMCParticleList));
67 const HitType view{pCaloHitList->front()->GetHitType()};
69 if (!(view == TPC_VIEW_U || view == TPC_VIEW_V || view == TPC_VIEW_W))
70 return STATUS_CODE_NOT_ALLOWED;
78 LArMCParticleHelper::SelectReconstructableMCParticles(
79 pMCParticleList, pCaloHitList, parameters, LArMCParticleHelper::IsBeamNeutrinoFinalState, targetMCParticleToHitsMap);
81 for (
const CaloHit *pCaloHit : *pCaloHitList)
85 const MCParticle *
const pMCParticle(MCParticleHelper::GetMainMCParticle(pCaloHit));
86 const int pdg{
std::abs(pMCParticle->GetParticleId())};
87 const int truth{(
pdg == 11 ||
pdg == 22) ? SHOWER_IDX : TRACK_IDX};
90 const float pShower{pLArCaloHit->GetShowerProbability()};
91 const int cls{(pShower > pTrack) ? SHOWER_IDX : TRACK_IDX};
92 if (view == TPC_VIEW_U)
94 else if (view == TPC_VIEW_V)
99 catch (
const StatusCodeException &)
106 return STATUS_CODE_SUCCESS;
std::unordered_map< const pandora::MCParticle *, pandora::CaloHitList > MCContributionMap
int m_confusionW[2][2]
Confusion matrix for the W view.
pandora::StringVector m_caloHitListNames
Name of input calo hit list.
int m_confusionU[2][2]
Confusion matrix for the U view.
unsigned int m_minHitsForGoodView
the minimum number of Hits for a good view
float m_maxPhotonPropagation
the maximum photon propagation length
int m_confusionV[2][2]
Confusion matrix for the V view.
static int max(int a, int b)
float GetTrackProbability() const
Get the probability that the hit is track-like.