9 #include "Pandora/AlgorithmHeaders.h"    26 PcaShowerParticleBuildingAlgorithm::PcaShowerParticleBuildingAlgorithm() : m_layerFitHalfWindow(20)
    61         pfoParameters.m_charge = PdgTable::GetParticleCharge(pfoParameters.m_particleId.Get());
    62         pfoParameters.m_mass = PdgTable::GetParticleMass(pfoParameters.m_particleId.Get());
    63         pfoParameters.m_energy = 0.f;
    64         pfoParameters.m_momentum = pInputPfo->GetMomentum();
    65         pfoParameters.m_propertiesToAdd = pInputPfo->GetPropertiesMap();
    76         PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ParticleFlowObject::Create(*
this, pfoParameters, pOutputPfo, pfoFactory));
    81             throw StatusCodeException(STATUS_CODE_FAILURE);
    84         const Vertex *pOutputVertex = 
nullptr;
    86         PandoraContentApi::Vertex::Parameters vtxParameters;
    87         vtxParameters.m_position = pInputVertex->GetPosition();
    88         vtxParameters.m_vertexLabel = pInputVertex->GetVertexLabel();
    89         vtxParameters.m_vertexType = pInputVertex->GetVertexType();
    91         PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::Vertex::Create(*
this, vtxParameters, pOutputVertex));
    92         PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::AddToPfo<Vertex>(*
this, pOutputPfo, pOutputVertex));
    94     catch (StatusCodeException &statusCodeException)
    96         if (STATUS_CODE_FAILURE == statusCodeException.GetStatusCode())
    97             throw statusCodeException;
   105     PANDORA_RETURN_RESULT_IF_AND_IF(
   106         STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, 
"LayerFitHalfWindow", 
m_layerFitHalfWindow));
 virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
 
static LArShowerPCA GetPrincipalComponents(const pandora::CartesianPointVector &pointVector, const pandora::CartesianVector &vertexPosition)
Perform PCA analysis on a set of 3D points and return results. 
 
Header file for the pfo helper class. 
 
pandora::InputFloat m_showerOpeningAngle
Shower opening angle. 
 
const pandora::CartesianVector & GetCentroid() const 
Return centroid. 
 
pandora::InputCartesianVector m_showerCentroid
Shower centroid from 3d shower fit. 
 
pandora::InputCartesianVector m_showerTertiaryVector
Shower teriary eigen vector. 
 
float GetPrimaryLength() const 
Return primary length. 
 
static const pandora::Vertex * GetVertex(const pandora::ParticleFlowObject *const pPfo)
Get the pfo vertex. 
 
Header file for the principal curve analysis helper class. 
 
pandora::InputCartesianVector m_showerVertex
Shower starting point. 
 
Header file for the geometry helper class. 
 
pandora::InputCartesianVector m_showerDirection
Shower direction, also the primary eigen vector. 
 
static bool IsShower(const pandora::ParticleFlowObject *const pPfo)
Return shower flag based on Pfo Particle ID. 
 
lar pfo object factory responsible for pfo creation 
 
const pandora::CartesianVector & GetEigenValues() const 
Return vector of eigenvalues. 
 
Header file for the cluster helper class. 
 
pandora::InputCartesianVector m_showerEigenValues
Shower eigenvalues from 3d PCA. 
 
Header file for the lar pfo class. 
 
const pandora::CartesianVector & GetAxisLengths() const 
Return vector of lengths. 
 
static bool IsNeutrino(const pandora::ParticleFlowObject *const pPfo)
Whether a pfo is a neutrino or (antineutrino) 
 
Header file for the lar three dimensional sliding fit result class. 
 
pandora::InputCartesianVector m_showerLength
Shower length and widths from 3d shower fit. 
 
static bool IsFinalState(const pandora::ParticleFlowObject *const pPfo)
Whether a pfo is a primary parent particle. 
 
unsigned int m_layerFitHalfWindow
 
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
 
pandora::InputCartesianVector m_showerSecondaryVector
Shower secondary eigen vector. 
 
static bool IsNeutrinoFinalState(const pandora::ParticleFlowObject *const pPfo)
Whether a pfo is a final-state particle from a neutrino (or antineutrino) interaction. 
 
const pandora::CartesianVector & GetSecondaryAxis() const 
Return secondary axis. 
 
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
 
const pandora::CartesianVector & GetTertiaryAxis() const 
Return tertiary axis. 
 
float GetSecondaryLength() const 
Return secondary length. 
 
void CreatePfo(const pandora::ParticleFlowObject *const pInputPfo, const pandora::ParticleFlowObject *&pOutputPfo) const 
Create specialised Pfo from an generic input Pfo. 
 
Header file for the neutrino event creation algorithm class. 
 
const pandora::CartesianVector & GetPrimaryAxis() const 
Return primary axis.