8#ifndef LAR_BEAM_PARTICLE_ID_TOOL_H
9#define LAR_BEAM_PARTICLE_ID_TOOL_H 1
Header file for the master algorithm class.
pandora::CartesianVector m_point
A point on the plane.
float m_d
Parameter defining a plane.
pandora::CartesianVector m_unitNormal
Unit normal to plane.
pandora::CartesianVector GetLineIntersection(const pandora::CartesianVector &a0, const pandora::CartesianVector &a) const
Return the intersection between the plane and a line.
BeamParticleIdTool class.
void GetTPCIntercepts(const pandora::CartesianVector &a0, const pandora::CartesianVector &majorAxis, pandora::CartesianVector &interceptOne, pandora::CartesianVector &interceptTwo) const
Find the intercepts of a line with the protoDUNE detector.
float m_tpcMaxX
Global TPC volume maximum x extent.
pandora::CartesianVector m_beamDirection
Beam direction.
float m_tpcMinZ
Global TPC volume minimum z extent.
std::vector< Plane > PlaneVector
bool m_selectAllBeamParticles
First approach: select all beam particles, as opposed to selecting all cosmics.
BeamParticleIdTool()
Default constructor.
pandora::StatusCode Initialize()
Perform any operations that must occur after reading settings, but before running the process.
bool IsContained(const pandora::CartesianVector &spacePoint) const
Check if a given 3D spacepoint is inside the global TPC volume.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
void SelectOutputPfos(const pandora::Algorithm *const pAlgorithm, const SliceHypotheses &beamSliceHypotheses, const SliceHypotheses &crSliceHypotheses, pandora::PfoList &selectedPfos)
Select which reconstruction hypotheses to use; neutrino outcomes or cosmic-ray muon outcomes for each...
float m_tpcMinY
Global TPC volume minimum y extent.
float m_tpcMaxZ
Global TPC volume maximum z extent.
bool m_selectOnlyFirstSliceBeamParticles
First approach: select first slice beam particles, cosmics for all subsequent slices.
PlaneVector m_tpcPlanes
Vector of all planes making up global TPC volume.
float m_selectedFraction
Fraction of hits to use in 3D cluster fits.
float m_tpcMinX
Global TPC volume minimum x extent.
pandora::CartesianVector m_beamTPCIntersection
Intersection of beam and global TPC volume.
float m_projectionIntersectionCut
Projection intersection distance cut, used in beam event selection.
float m_closestDistanceCut
Closest distance (of hit to beam spot), used in beam event selection.
float m_tpcMaxY
Global TPC volume maximum y extent.
void GetSelectedCaloHits(const pandora::CaloHitList &inputCaloHitList, pandora::CaloHitList &outputCaloHitList, float &closestHitToFaceDistance) const
Select a given fraction of a slice's calo hits that are closest to the beam spot.
float m_angleToBeamCut
Angle between major axis and beam direction, used in beam event selection.
unsigned int m_nSelectedHits
Minimum number of hits to use in 3D cluster fits.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
std::vector< pandora::PfoList > SliceHypotheses
MANAGED_CONTAINER< const CaloHit * > CaloHitList
StatusCode
The StatusCode enum.
MANAGED_CONTAINER< const ParticleFlowObject * > PfoList