9 #include "Pandora/AlgorithmHeaders.h" 10 #include "Helpers/MCParticleHelper.h" 21 StatusCode CheatingCosmicRayRemovalAlgorithm::Run()
23 const MCParticleList *pMCParticleList(
nullptr);
24 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetList(*
this, m_mcParticleListName, pMCParticleList));
26 const CaloHitList *pCaloHitList(
nullptr);
27 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetList(*
this, m_inputCaloHitListName, pCaloHitList));
29 CaloHitList outputCaloHitList;
31 for (
const CaloHit *pCaloHit : *pCaloHitList)
35 const MCParticle *
const pMCParticle(MCParticleHelper::GetMainMCParticle(pCaloHit));
36 if (!LArMCParticleHelper::IsCosmicRay(LArMCParticleHelper::GetParentMCParticle(pMCParticle)))
37 outputCaloHitList.push_back(pCaloHit);
39 catch (
const StatusCodeException &)
41 std::cout <<
"CheatingCosmicRayRemovalAlgorithm::Run - Unable to determine MCParticle origin for an input CaloHit, which will be skipped." << std::endl;
46 PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList(*
this, outputCaloHitList, m_outputCaloHitListName));
47 PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ReplaceCurrentList<CaloHit>(*
this, m_outputCaloHitListName));
49 return STATUS_CODE_SUCCESS;
54 StatusCode CheatingCosmicRayRemovalAlgorithm::ReadSettings(
const TiXmlHandle xmlHandle)
56 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle,
"InputCaloHitListName", m_inputCaloHitListName));
57 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle,
"MCParticleListName", m_mcParticleListName));
58 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle,
"OutputCaloHitListName", m_outputCaloHitListName));
60 return STATUS_CODE_SUCCESS;
Header file for the cheating cosmic ray removal algorithm class.
Header file for the lar monte carlo particle helper helper class.