Public Member Functions | Private Member Functions | Private Attributes | List of all members
lar_content::CheatingCosmicRayIdentificationAlg Class Reference

CheatingCosmicRayIdentificationAlg class. More...

#include <CheatingCosmicRayIdentificationAlg.h>

Inheritance diagram for lar_content::CheatingCosmicRayIdentificationAlg:

Public Member Functions

 CheatingCosmicRayIdentificationAlg ()
 Default constructor. More...
 

Private Member Functions

pandora::StatusCode Run ()
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 

Private Attributes

std::string m_inputPfoListName
 The input pfo list name. More...
 
std::string m_outputPfoListName
 The output pfo list name. More...
 
std::string m_inputDaughterPfoListName
 The input daughter pfo list name (if not specified, will assume same as main input list) More...
 
std::string m_outputDaughterPfoListName
 The output daughter pfo list name (if not specified, will assume same as main output list) More...
 
float m_maxNeutrinoFraction
 The maximum true neutrino fraction in a particle to be labelled as a cosmic ray. More...
 

Detailed Description

CheatingCosmicRayIdentificationAlg class.

Definition at line 19 of file CheatingCosmicRayIdentificationAlg.h.

Constructor & Destructor Documentation

lar_content::CheatingCosmicRayIdentificationAlg::CheatingCosmicRayIdentificationAlg ( )

Default constructor.

Definition at line 22 of file CheatingCosmicRayIdentificationAlg.cc.

23 {
24 }
float m_maxNeutrinoFraction
The maximum true neutrino fraction in a particle to be labelled as a cosmic ray.

Member Function Documentation

StatusCode lar_content::CheatingCosmicRayIdentificationAlg::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 73 of file CheatingCosmicRayIdentificationAlg.cc.

74 {
75  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputPfoListName", m_inputPfoListName));
76 
77  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "OutputPfoListName", m_outputPfoListName));
78 
80  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
81  XmlHelper::ReadValue(xmlHandle, "InputDaughterPfoListName", m_inputDaughterPfoListName));
82 
84  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
85  XmlHelper::ReadValue(xmlHandle, "OutputDaughterPfoListName", m_outputDaughterPfoListName));
86 
87  PANDORA_RETURN_RESULT_IF_AND_IF(
88  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MaxNeutrinoFraction", m_maxNeutrinoFraction));
89 
90  return STATUS_CODE_SUCCESS;
91 }
std::string m_inputDaughterPfoListName
The input daughter pfo list name (if not specified, will assume same as main input list) ...
std::string m_outputDaughterPfoListName
The output daughter pfo list name (if not specified, will assume same as main output list) ...
float m_maxNeutrinoFraction
The maximum true neutrino fraction in a particle to be labelled as a cosmic ray.
StatusCode lar_content::CheatingCosmicRayIdentificationAlg::Run ( )
private

Definition at line 28 of file CheatingCosmicRayIdentificationAlg.cc.

29 {
30  const PfoList *pPfoList(nullptr);
31  PANDORA_RETURN_RESULT_IF_AND_IF(
32  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_INITIALIZED, !=, PandoraContentApi::GetList(*this, m_inputPfoListName, pPfoList));
33 
34  if (!pPfoList)
35  {
36  if (PandoraContentApi::GetSettings(*this)->ShouldDisplayAlgorithmInfo())
37  std::cout << "CheatingCosmicRayIdentificationAlg: pfo list " << m_inputPfoListName << " unavailable." << std::endl;
38 
39  return STATUS_CODE_SUCCESS;
40  }
41 
42  PfoList outputPfoList, outputDaughterPfoList;
43 
44  for (const ParticleFlowObject *const pPfo : *pPfoList)
45  {
46  if (!pPfo->GetParentPfoList().empty())
47  continue;
48 
49  PfoList downstreamPfos;
50  LArPfoHelper::GetAllDownstreamPfos(pPfo, downstreamPfos);
51 
52  float thisNeutrinoWeight(0.f), thisTotalWeight(0.f);
53  CheatingSliceIdBaseTool::GetTargetParticleWeight(&downstreamPfos, thisNeutrinoWeight, thisTotalWeight, LArMCParticleHelper::IsNeutrino);
54 
55  if ((thisTotalWeight < std::numeric_limits<float>::epsilon()) || ((thisNeutrinoWeight / thisTotalWeight) < m_maxNeutrinoFraction))
56  outputPfoList.push_back(pPfo);
57  }
58 
59  if (!outputPfoList.empty())
60  {
61  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList(*this, m_inputPfoListName, m_outputPfoListName, outputPfoList));
62 
63  if (!outputDaughterPfoList.empty())
64  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=,
65  PandoraContentApi::SaveList(*this, m_inputDaughterPfoListName, m_outputDaughterPfoListName, outputDaughterPfoList));
66  }
67 
68  return STATUS_CODE_SUCCESS;
69 }
std::string m_inputDaughterPfoListName
The input daughter pfo list name (if not specified, will assume same as main input list) ...
std::string m_outputDaughterPfoListName
The output daughter pfo list name (if not specified, will assume same as main output list) ...
float m_maxNeutrinoFraction
The maximum true neutrino fraction in a particle to be labelled as a cosmic ray.
static void GetTargetParticleWeight(const pandora::PfoList *const pPfoList, float &targetParticleWeight, float &totalWeight, std::function< bool(const pandora::MCParticle *const)> fCriteria)
Get the target particle weight in a list of pfos.
static void GetAllDownstreamPfos(const pandora::PfoList &inputPfoList, pandora::PfoList &outputPfoList)
Get a flat list of all pfos, recursively, of all daughters associated with those pfos in an input lis...
static bool IsNeutrino(const pandora::MCParticle *const pMCParticle)
Whether a mc particle is a neutrino or antineutrino.
QTextStream & endl(QTextStream &s)

Member Data Documentation

std::string lar_content::CheatingCosmicRayIdentificationAlg::m_inputDaughterPfoListName
private

The input daughter pfo list name (if not specified, will assume same as main input list)

Definition at line 33 of file CheatingCosmicRayIdentificationAlg.h.

std::string lar_content::CheatingCosmicRayIdentificationAlg::m_inputPfoListName
private

The input pfo list name.

Definition at line 31 of file CheatingCosmicRayIdentificationAlg.h.

float lar_content::CheatingCosmicRayIdentificationAlg::m_maxNeutrinoFraction
private

The maximum true neutrino fraction in a particle to be labelled as a cosmic ray.

Definition at line 35 of file CheatingCosmicRayIdentificationAlg.h.

std::string lar_content::CheatingCosmicRayIdentificationAlg::m_outputDaughterPfoListName
private

The output daughter pfo list name (if not specified, will assume same as main output list)

Definition at line 34 of file CheatingCosmicRayIdentificationAlg.h.

std::string lar_content::CheatingCosmicRayIdentificationAlg::m_outputPfoListName
private

The output pfo list name.

Definition at line 32 of file CheatingCosmicRayIdentificationAlg.h.


The documentation for this class was generated from the following files: