9 #include "Pandora/AlgorithmHeaders.h"
21 bool CheatingPfoCharacterisationAlgorithm::IsClearTrack(
const ParticleFlowObject *
const pPfo)
const
23 CaloHitList caloHitList;
24 LArPfoHelper::GetCaloHits(pPfo, TPC_VIEW_U, caloHitList);
25 LArPfoHelper::GetCaloHits(pPfo, TPC_VIEW_V, caloHitList);
26 LArPfoHelper::GetCaloHits(pPfo, TPC_VIEW_W, caloHitList);
28 MCParticleWeightMap mcParticleWeightMap;
30 for (
const CaloHit *
const pCaloHit : caloHitList)
32 for (
const MCParticleWeightMap::value_type &mapEntry : pCaloHit->GetMCParticleWeightMap())
33 mcParticleWeightMap[mapEntry.first] += mapEntry.second;
36 float bestWeight(0.f);
37 const MCParticle *pBestMCParticle(
nullptr);
39 MCParticleList mcParticleList;
40 for (
const auto &mapEntry : mcParticleWeightMap)
41 mcParticleList.push_back(mapEntry.first);
42 mcParticleList.sort(LArMCParticleHelper::SortByMomentum);
44 for (
const MCParticle *
const pMCParticle : mcParticleList)
46 const float weight(mcParticleWeightMap.at(pMCParticle));
48 if (weight > bestWeight)
50 pBestMCParticle = pMCParticle;
58 return ((PHOTON != pBestMCParticle->GetParticleId()) && (E_MINUS !=
std::abs(pBestMCParticle->GetParticleId())));
63 bool CheatingPfoCharacterisationAlgorithm::IsClearTrack(
const Cluster *
const )
const
65 throw StatusCodeException(STATUS_CODE_NOT_ALLOWED);
Header file for the pfo helper class.
Header file for the cheating pfo characterisation algorithm class.
Header file for the lar monte carlo particle helper helper class.
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora