LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
TrainedVertexSelectionAlgorithm class. More...
#include "TrainedVertexSelectionAlgorithm.h"
Classes | |
class | EventFeatureInfo |
Event feature info class. More... | |
class | VertexFeatureInfo |
Vertex feature info class. More... | |
class | VertexSharedFeatureInfo |
Shared vertex feature info class. More... | |
Public Types | |
typedef std::map< const pandora::Vertex *const, VertexFeatureInfo > | VertexFeatureInfoMap |
typedef std::vector< VertexScore > | VertexScoreList |
typedef std::vector< SlidingFitData > | SlidingFitDataList |
typedef std::vector< ShowerCluster > | ShowerClusterList |
typedef std::map< pandora::HitType, const pandora::ClusterList & > | ClusterListMap |
Map array of cluster lists for passing to tools. More... | |
typedef std::map< pandora::HitType, const SlidingFitDataList > | SlidingFitDataListMap |
Map of sliding fit data lists for passing to tools. More... | |
typedef std::map< pandora::HitType, const ShowerClusterList > | ShowerClusterListMap |
Map of shower cluster lists for passing to tools. More... | |
typedef std::map< pandora::HitType, const std::reference_wrapper< HitKDTree2D > > | KDTreeMap |
Map array of hit kd trees for passing to tools. More... | |
typedef MvaFeatureTool< const VertexSelectionBaseAlgorithm *const, const pandora::Vertex *const, const SlidingFitDataListMap &, const ClusterListMap &, const KDTreeMap &, const ShowerClusterListMap &, const float, float & > | VertexFeatureTool |
The base type for the vertex feature tools. More... | |
Public Member Functions | |
TrainedVertexSelectionAlgorithm () | |
Default constructor. More... | |
Protected Types | |
typedef std::pair< pandora::CartesianVector, pandora::CartesianVector > | ClusterEndPoints |
typedef std::map< const pandora::Cluster *const, ClusterEndPoints > | ClusterEndPointsMap |
typedef std::vector< LArMvaHelper::MvaFeatureVector > | FeatureListVector |
typedef std::vector< pandora::VertexVector > | VectorOfVertexVectors |
typedef KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > | HitKDTree2D |
typedef KDTreeNodeInfoT< const pandora::CaloHit *, 2 > | HitKDNode2D |
typedef std::vector< HitKDNode2D > | HitKDNode2DList |
typedef std::unordered_map< const pandora::CaloHit *, const pandora::Cluster * > | HitToClusterMap |
Protected Member Functions | |
virtual void | GetVertexScoreList (const pandora::VertexVector &vertexVector, const BeamConstants &beamConstants, HitKDTree2D &kdTreeU, HitKDTree2D &kdTreeV, HitKDTree2D &kdTreeW, VertexScoreList &vertexScoreList) const =0 |
Get the vertex score list. More... | |
void | CalculateShowerClusterList (const pandora::ClusterList &inputClusterList, ShowerClusterList &showerClusterList) const |
Calculate the shower cluster map for a cluster list. More... | |
void | GetShowerLikeClusterEndPoints (const pandora::ClusterList &clusterList, pandora::ClusterList &showerLikeClusters, ClusterEndPointsMap &clusterEndPointsMap) const |
Add the endpoints of any shower-like clusters to the map. More... | |
void | PopulateKdTree (const pandora::ClusterList &clusterList, HitKDTree2D &kdTree, HitToClusterMap &hitToClusterMap) const |
Populate kd tree with information about hits in a provided list of clusters. More... | |
bool | AddClusterToShower (const ClusterEndPointsMap &clusterEndPointsMap, pandora::ClusterList &availableShowerLikeClusters, const pandora::Cluster *const pCluster, pandora::ClusterList &showerCluster) const |
Try to add an available cluster to a given shower cluster, using shower clustering approximation. More... | |
bool | AddClusterToShower (HitKDTree2D &kdTree, const HitToClusterMap &hitToClusterMap, pandora::ClusterList &availableShowerLikeClusters, const pandora::Cluster *const pCluster, pandora::ClusterList &showerCluster) const |
Try to add an available cluster to a given shower cluster, using cluster hit positions cached in kd tree. More... | |
EventFeatureInfo | CalculateEventFeatures (const pandora::ClusterList &clusterListU, const pandora::ClusterList &clusterListV, const pandora::ClusterList &clusterListW, const pandora::VertexVector &vertexVector) const |
Calculate the event parameters. More... | |
void | IncrementShoweryParameters (const pandora::ClusterList &clusterList, unsigned int &nShoweryHits, unsigned int &nHits, float &eventEnergy) const |
Increment the showery hit parameters for a cluster list. More... | |
bool | IsClusterShowerLike (const pandora::Cluster *const pCluster) const |
Find whether a cluster is shower-like. More... | |
void | GetLegacyEventShapeFeatures (const pandora::ClusterList &clusterList, float &eventVolume, float &longitudinality) const |
Get the event shape features. More... | |
void | GetEventShapeFeatures (const ClusterListMap &clusterListMap, float &eventArea, float &longitudinality) const |
Get the event shape features. More... | |
void | Get2DSpan (const pandora::ClusterList &clusterList, float &xSpan, float &zSpan) const |
Get the coordinate span in one view. More... | |
void | UpdateSpanCoordinate (const float minPositionCoord, const float maxPositionCoord, pandora::InputFloat &minCoord, pandora::InputFloat &maxCoord) const |
Update the min/max coordinate spans. More... | |
float | GetCoordinateSpan (const pandora::InputFloat &minCoord, const pandora::InputFloat &maxCoord) const |
Get the coordinate span. More... | |
void | AddEventFeaturesToVector (const EventFeatureInfo &eventFeatureInfo, LArMvaHelper::MvaFeatureVector &featureVector) const |
Add the event features to a vector in the correct order. More... | |
void | PopulateVertexFeatureInfoMap (const BeamConstants &beamConstants, const ClusterListMap &clusterListMap, const SlidingFitDataListMap &slidingFitDataListMap, const ShowerClusterListMap &showerClusterListMap, const KDTreeMap &kdTreeMap, const pandora::Vertex *const pVertex, VertexFeatureInfoMap &vertexFeatureInfoMap) const |
Populate the vertex feature info map for a given vertex. More... | |
void | PopulateInitialScoreList (VertexFeatureInfoMap &vertexFeatureInfoMap, const pandora::Vertex *const pVertex, VertexScoreList &initialScoreList) const |
Populate the initial vertex score list for a given vertex. More... | |
void | GetBestRegionVertices (VertexScoreList &initialScoreList, pandora::VertexVector &bestRegionVertices) const |
Get the list of top-N separated vertices. More... | |
void | ProduceTrainingSets (const pandora::VertexVector &vertexVector, const pandora::VertexVector &bestRegionVertices, VertexFeatureInfoMap &vertexFeatureInfoMap, const LArMvaHelper::MvaFeatureVector &eventFeatureList, const KDTreeMap &kdTreeMap) const |
Produce the region and vertex training sets. More... | |
void | CalculateRPhiScores (pandora::VertexVector &vertexVector, VertexFeatureInfoMap &vertexFeatureInfoMap, const KDTreeMap &kdTreeMap) const |
Calculate the r/phi scores for the vertices in a vector, possibly erasing those that fail the fast score test. More... | |
std::string | GetInteractionType () const |
Get the interaction type string. More... | |
const pandora::Vertex * | ProduceTrainingExamples (const pandora::VertexVector &vertexVector, const VertexFeatureInfoMap &vertexFeatureInfoMap, std::bernoulli_distribution &coinFlip, std::mt19937 &generator, const std::string &interactionType, const std::string &trainingOutputFile, const LArMvaHelper::MvaFeatureVector &eventFeatureList, const KDTreeMap &kdTreeMap, const float maxRadius, const bool useRPhi) const |
Produce a set of training examples for a binary classifier. More... | |
void | GetBestVertex (const pandora::VertexVector &vertexVector, const pandora::Vertex *&pBestVertex, float &bestVertexDr) const |
Use the MC information to get the best vertex from a list. More... | |
void | GetSharedFeatures (const pandora::Vertex *const pVertex1, const pandora::Vertex *const pVertex2, const KDTreeMap &kdTreeMap, float &separation, float &axisHits) const |
Calculates the shared features of a pair of vertex candidates. More... | |
void | IncrementSharedAxisValues (const pandora::CartesianVector pos1, const pandora::CartesianVector pos2, HitKDTree2D &kdTree, float &axisHits) const |
Increments the axis hits information for one view. More... | |
bool | IsHitInBox (const pandora::CartesianVector &hitPos, const pandora::CartesianVector &point1, const pandora::CartesianVector &point2, const pandora::CartesianVector &point3, const pandora::CartesianVector &point4) const |
Determines whether a hit lies within the box defined by four other positions. More... | |
void | AddVertexFeaturesToVector (const VertexFeatureInfo &vertexFeatureInfo, LArMvaHelper::MvaFeatureVector &featureVector, const bool useRPhi) const |
Add the vertex features to a vector in the correct order. More... | |
void | AddSharedFeaturesToVector (const VertexSharedFeatureInfo &vertexSharedFeatureInfo, LArMvaHelper::MvaFeatureVector &featureVector) const |
Add the shared features to a vector in the correct order. More... | |
void | PopulateFinalVertexScoreList (const VertexFeatureInfoMap &vertexFeatureInfoMap, const pandora::Vertex *const pFavouriteVertex, const pandora::VertexVector &vertexVector, VertexScoreList &finalVertexScoreList) const |
Populate the final vertex score list using the r/phi score to find the best vertex in the vicinity. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
virtual void | FilterVertexList (const pandora::VertexList *const pInputVertexList, HitKDTree2D &kdTreeU, HitKDTree2D &kdTreeV, HitKDTree2D &kdTreeW, pandora::VertexVector &filteredVertices) const |
Filter the input list of vertices to obtain a reduced number of vertex candidates. More... | |
virtual void | GetBeamConstants (const pandora::VertexVector &vertexVector, BeamConstants &beamConstants) const |
Get the beam score constants for a provided list of candidate vertices. More... | |
void | GetClusterLists (const pandora::StringVector &inputClusterListNames, pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const |
Get the cluster lists. More... | |
void | CalculateClusterSlidingFits (const pandora::ClusterList &inputClusterList, const unsigned int minClusterCaloHits, const unsigned int slidingFitWindow, SlidingFitDataList &slidingFitDataList) const |
Calculate the cluster sliding fits. More... | |
float | GetBeamDeweightingScore (const BeamConstants &beamConstants, const pandora::Vertex *const pVertex) const |
Get the beam deweighting score for a vertex. More... | |
bool | IsBeamModeOn () const |
Whether algorithm is running in beam mode, assuming neutrinos travel in positive z-direction. More... | |
float | GetVertexEnergy (const pandora::Vertex *const pVertex, const KDTreeMap &kdTreeMap) const |
Calculate the energy of a vertex candidate by summing values from all three planes. More... | |
float | VertexHitEnergy (const pandora::Vertex *const pVertex, const pandora::HitType hitType, HitKDTree2D &kdTree) const |
Finds the energy of the nearest hit to the vertex candidate in this view. More... | |
Protected Attributes | |
VertexFeatureTool::FeatureToolVector | m_featureToolVector |
The feature tool vector. More... | |
bool | m_trainingSetMode |
Whether to train. More... | |
bool | m_allowClassifyDuringTraining |
Whether classification is allowed during training. More... | |
float | m_mcVertexXCorrection |
The correction to the x-coordinate of the MC vertex position. More... | |
std::string | m_trainingOutputFileRegion |
The training output file for the region mva. More... | |
std::string | m_trainingOutputFileVertex |
The training output file for the vertex mva. More... | |
std::string | m_mcParticleListName |
The MC particle list for creating training examples. More... | |
std::string | m_caloHitListName |
The 2D CaloHit list name. More... | |
pandora::StringVector | m_inputClusterListNames |
The list of cluster list names. More... | |
unsigned int | m_minClusterCaloHits |
The min number of hits parameter in the energy score. More... | |
unsigned int | m_slidingFitWindow |
The layer window for the sliding linear fits. More... | |
float | m_minShowerSpineLength |
The minimum length at which all are considered to be tracks. More... | |
float | m_beamDeweightingConstant |
The beam deweighting constant for the initial region score list. More... | |
float | m_localAsymmetryConstant |
The local asymmetry constant for the initial region score list. More... | |
float | m_globalAsymmetryConstant |
The global asymmetry constant for the initial region score list. More... | |
float | m_showerAsymmetryConstant |
The shower asymmetry constant for the initial region score list. More... | |
float | m_energyKickConstant |
The energy kick constant for the initial region score list. More... | |
float | m_showerClusteringDistance |
The shower clustering distance. More... | |
unsigned int | m_minShowerClusterHits |
The minimum number of shower cluster hits. More... | |
bool | m_useShowerClusteringApproximation |
Whether to use the shower clustering distance approximation. More... | |
float | m_regionRadius |
The radius for a vertex region. More... | |
float | m_rPhiFineTuningRadius |
The maximum distance the r/phi tune can move a vertex. More... | |
float | m_maxTrueVertexRadius |
The maximum distance at which a vertex candidate can be considered the 'true' vertex. More... | |
bool | m_useRPhiFeatureForRegion |
Whether to use the r/phi feature for the region vertex. More... | |
bool | m_dropFailedRPhiFastScoreCandidates |
Whether to drop candidates that fail the r/phi fast score test. More... | |
bool | m_testBeamMode |
Test beam mode. More... | |
bool | m_legacyEventShapes |
Whether to use the old event shapes calculation. More... | |
bool | m_legacyVariables |
Whether to only use the old variables. More... | |
TrainedVertexSelectionAlgorithm class.
Definition at line 36 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 131 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 132 of file TrainedVertexSelectionAlgorithm.h.
|
inherited |
Map array of cluster lists for passing to tools.
Definition at line 227 of file VertexSelectionBaseAlgorithm.h.
|
protected |
Definition at line 133 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 168 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 169 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 167 of file TrainedVertexSelectionAlgorithm.h.
|
protected |
Definition at line 171 of file TrainedVertexSelectionAlgorithm.h.
|
inherited |
Map array of hit kd trees for passing to tools.
Definition at line 230 of file VertexSelectionBaseAlgorithm.h.
|
inherited |
Definition at line 221 of file VertexSelectionBaseAlgorithm.h.
|
inherited |
Map of shower cluster lists for passing to tools.
Definition at line 229 of file VertexSelectionBaseAlgorithm.h.
|
inherited |
Definition at line 175 of file VertexSelectionBaseAlgorithm.h.
|
inherited |
Map of sliding fit data lists for passing to tools.
Definition at line 228 of file VertexSelectionBaseAlgorithm.h.
|
protected |
Definition at line 134 of file TrainedVertexSelectionAlgorithm.h.
typedef std::map<const pandora::Vertex *const, VertexFeatureInfo> lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfoMap |
Definition at line 70 of file TrainedVertexSelectionAlgorithm.h.
|
inherited |
The base type for the vertex feature tools.
Definition at line 234 of file VertexSelectionBaseAlgorithm.h.
|
inherited |
Definition at line 82 of file VertexSelectionBaseAlgorithm.h.
lar_content::TrainedVertexSelectionAlgorithm::TrainedVertexSelectionAlgorithm | ( | ) |
Default constructor.
Definition at line 36 of file TrainedVertexSelectionAlgorithm.cc.
|
protected |
Try to add an available cluster to a given shower cluster, using shower clustering approximation.
clusterEndPointsMap | the map of shower-like cluster endpoints |
availableShowerLikeClusters | the list of shower-like clusters still available |
pCluster | the cluster in the shower cluster from which to consider distances |
showerCluster | the shower cluster |
Referenced by CalculateShowerClusterList(), and PopulateKdTree().
|
protected |
Try to add an available cluster to a given shower cluster, using cluster hit positions cached in kd tree.
kdTree | the kd tree, used purely for efficiency in events with large hit multiplicity |
hitToClusterMap | the hit to cluster map, used to interpret kd tree findings |
availableShowerLikeClusters | the list of shower-like clusters still available |
pCluster | the cluster in the shower cluster from which to consider distances |
showerCluster | the shower cluster |
|
protected |
Add the event features to a vector in the correct order.
eventFeatureInfo | the event feature info |
featureVector | the vector of doubles to append |
Definition at line 412 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::VertexSelectionBaseAlgorithm::IsBeamModeOn(), lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_eventArea, lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_eventEnergy, lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_eventShoweryness, lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_longitudinality, lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_nCandidates, lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_nClusters, and lar_content::TrainedVertexSelectionAlgorithm::EventFeatureInfo::m_nHits.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Add the shared features to a vector in the correct order.
vertexSharedFeatureInfo | the shared vertex feature info |
featureVector | the vector of floats to append |
Definition at line 829 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::TrainedVertexSelectionAlgorithm::VertexSharedFeatureInfo::m_axisHits, and lar_content::TrainedVertexSelectionAlgorithm::VertexSharedFeatureInfo::m_separation.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::CompareVertices(), and ProduceTrainingExamples().
|
protected |
Add the vertex features to a vector in the correct order.
vertexFeatureInfo | the vertex feature info |
featureVector | the vector of floats to append |
useRPhi | whether to include the r/phi feature |
Definition at line 807 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::VertexSelectionBaseAlgorithm::IsBeamModeOn(), lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_beamDeweighting, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_dEdxAsymmetry, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_energyKick, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_globalAsymmetry, m_legacyVariables, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_localAsymmetry, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_rPhiFeature, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_showerAsymmetry, and lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_vertexEnergy.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::CompareVertices(), and ProduceTrainingExamples().
|
protectedinherited |
Calculate the cluster sliding fits.
inputClusterList | the input cluster list |
minClusterCaloHits | the minimum number of cluster calo hits |
slidingFitWindow | the sliding fit window |
slidingFitDataList | the list of sliding fits to fill |
Definition at line 120 of file VertexSelectionBaseAlgorithm.cc.
References lar_content::LArGeometryHelper::GetWireZPitch(), and lar_content::LArClusterHelper::SortByNHits().
Referenced by lar_content::EnergyKickVertexSelectionAlgorithm::GetVertexScoreList(), and lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Calculate the event parameters.
clusterListU | the U-view cluster list |
clusterListV | the V-view cluster list |
clusterListW | the W-view cluster list |
vertexVector | the vector of vertex candidates |
Definition at line 240 of file TrainedVertexSelectionAlgorithm.cc.
References f, GetEventShapeFeatures(), GetLegacyEventShapeFeatures(), IncrementShoweryParameters(), and m_legacyEventShapes.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Calculate the r/phi scores for the vertices in a vector, possibly erasing those that fail the fast score test.
vertexVector | the vector of vertices |
vertexFeatureInfoMap | the vertex feature info map |
kdTreeMap | the kd tree map |
Definition at line 571 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_beamDeweighting, m_dropFailedRPhiFastScoreCandidates, m_featureToolVector, and lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_rPhiFeature.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), and ProduceTrainingSets().
|
protected |
Calculate the shower cluster map for a cluster list.
inputClusterList | the input cluster list |
showerClusterList | the shower cluster list to populate |
Definition at line 65 of file TrainedVertexSelectionAlgorithm.cc.
References AddClusterToShower(), GetShowerLikeClusterEndPoints(), lar_content::LArGeometryHelper::GetWireZPitch(), m_minClusterCaloHits, m_slidingFitWindow, m_useShowerClusteringApproximation, and PopulateKdTree().
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protectedvirtualinherited |
Filter the input list of vertices to obtain a reduced number of vertex candidates.
pInputVertexList | the address of the input vertex list |
kdTreeU | the kd tree for u hits |
kdTreeV | the kd tree for v hits |
kdTreeW | the kd tree for w hits |
filteredVertices | to receive the filtered vertex list |
Definition at line 40 of file VertexSelectionBaseAlgorithm.cc.
References lar_content::KDTreeLinkerAlgo< DATA, DIM >::empty(), lar_content::VertexSelectionBaseAlgorithm::IsVertexInGap(), lar_content::VertexSelectionBaseAlgorithm::IsVertexOnHit(), lar_content::VertexSelectionBaseAlgorithm::m_isEmptyViewAcceptable, lar_content::VertexSelectionBaseAlgorithm::m_minVertexAcceptableViews, and lar_content::VertexSelectionBaseAlgorithm::SortByVertexZPosition().
Referenced by lar_content::VertexSelectionBaseAlgorithm::Run().
|
protected |
Get the coordinate span in one view.
clusterList | the cluster list in one view |
xSpan | the coordinate span in the drift direction |
zSpan | the coordinate span in the wire direction |
Definition at line 352 of file TrainedVertexSelectionAlgorithm.cc.
Referenced by GetEventShapeFeatures().
|
protectedvirtualinherited |
Get the beam score constants for a provided list of candidate vertices.
vertexVector | the vertex vector |
beamConstants | to receive the beam constants |
Definition at line 65 of file VertexSelectionBaseAlgorithm.cc.
References f, lar_content::VertexSelectionBaseAlgorithm::m_beamMode, lar_content::VertexSelectionBaseAlgorithm::m_nDecayLengthsInZSpan, and lar_content::VertexSelectionBaseAlgorithm::BeamConstants::SetConstants().
Referenced by lar_content::VertexSelectionBaseAlgorithm::Run().
|
inlineprotectedinherited |
Get the beam deweighting score for a vertex.
beamConstants | the beam constants |
pVertex | address of the vertex |
Definition at line 419 of file VertexSelectionBaseAlgorithm.h.
References lar_content::VertexSelectionBaseAlgorithm::BeamConstants::GetDecayConstant(), and lar_content::VertexSelectionBaseAlgorithm::BeamConstants::GetMinZCoordinate().
Referenced by lar_content::EnergyKickVertexSelectionAlgorithm::GetVertexScoreList(), and PopulateVertexFeatureInfoMap().
|
protected |
Get the list of top-N separated vertices.
initialScoreList | the initial score list |
bestRegionVertices | the list of best region vertices populate |
Definition at line 498 of file TrainedVertexSelectionAlgorithm.cc.
References m_regionRadius.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Use the MC information to get the best vertex from a list.
vertexVector | the vector of vertices |
pBestVertex | address of the best vertex |
bestVertexDr | dR of the best vertex |
Definition at line 764 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::LArMCParticleHelper::GetTrueNeutrinos(), lar_content::LArMCParticleHelper::GetTrueTestBeamParticles(), m_mcParticleListName, m_mcVertexXCorrection, and m_testBeamMode.
Referenced by ProduceTrainingExamples().
|
protectedinherited |
Get the cluster lists.
inputClusterListNames | the input cluster list names |
clusterListU | the U-view cluster list to populate |
clusterListV | the V-view cluster list to populate |
clusterListW | the W-view cluster list to populate |
Definition at line 91 of file VertexSelectionBaseAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType().
Referenced by lar_content::EnergyKickVertexSelectionAlgorithm::GetVertexScoreList(), and lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
inlineprotected |
Get the coordinate span.
minCoord | the min coordinate |
maxCoord | the max coordinate |
Definition at line 402 of file TrainedVertexSelectionAlgorithm.cc.
Referenced by GetLegacyEventShapeFeatures().
|
protected |
Get the event shape features.
clusterList | the map of cluster lists for each view |
eventArea | the event area |
longitudinality | the event longitudinality |
Definition at line 332 of file TrainedVertexSelectionAlgorithm.cc.
References f, and Get2DSpan().
Referenced by CalculateEventFeatures().
|
protected |
Get the interaction type string.
Definition at line 594 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::LArInteractionTypeHelper::GetInteractionType(), lar_content::LArMCParticleHelper::IsBeamNeutrinoFinalState(), lar_content::LArMCParticleHelper::IsTriggeredBeamParticle(), m_caloHitListName, m_mcParticleListName, m_testBeamMode, lar_content::LArMCParticleHelper::SelectReconstructableMCParticles(), lar_content::LArMCParticleHelper::SortByMomentum(), and lar_content::LArInteractionTypeHelper::ToString().
Referenced by ProduceTrainingSets().
|
protected |
Get the event shape features.
clusterList | the cluster list |
eventVolume | the event volume |
longitudinality | the event longitudinality |
Definition at line 292 of file TrainedVertexSelectionAlgorithm.cc.
References f, lar_content::LArClusterHelper::GetClusterBoundingBox(), GetCoordinateSpan(), and UpdateSpanCoordinate().
Referenced by CalculateEventFeatures().
|
protected |
Calculates the shared features of a pair of vertex candidates.
pVertex1 | the address of the first vertex |
pVertex2 | the address of the second vertex |
kdTreeMap | the map of 2D hit kd trees |
separation | the 3D distance between the two vertex candidates |
axisHits | the number of hits between the two candidates normalised to the distance between them |
Definition at line 688 of file TrainedVertexSelectionAlgorithm.cc.
References IncrementSharedAxisValues(), and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::CompareVertices(), and ProduceTrainingExamples().
|
protected |
Add the endpoints of any shower-like clusters to the map.
clusterList | the list of clusters |
showerLikeClusters | the list of shower-like clusters to populate |
clusterEndPointsMap | the map of shower-like cluster endpoints to populate |
Definition at line 119 of file TrainedVertexSelectionAlgorithm.cc.
References IsClusterShowerLike(), m_minShowerClusterHits, and lar_content::LArClusterHelper::SortHitsByPosition().
Referenced by CalculateShowerClusterList().
|
protectedinherited |
Calculate the energy of a vertex candidate by summing values from all three planes.
pVertex | the address of the vertex |
kdTreeMap | the map of 2D hit kd trees |
Definition at line 243 of file VertexSelectionBaseAlgorithm.cc.
References f, lar_content::VertexSelectionBaseAlgorithm::IsVertexInGap(), and lar_content::VertexSelectionBaseAlgorithm::VertexHitEnergy().
Referenced by PopulateVertexFeatureInfoMap().
|
protectedpure virtual |
Get the vertex score list.
vertexVector | the vector of vertices |
beamConstants | the beam constants |
kdTreeU | the hit kd tree for the U view |
kdTreeV | the hit kd tree for the V view |
kdTreeW | the hit kd tree for the W view |
vertexScoreList | the vertex score list to fill |
Implements lar_content::VertexSelectionBaseAlgorithm.
Implemented in lar_content::MvaVertexSelectionAlgorithm< T >, and lar_content::CheatingVertexSelectionAlgorithm.
|
protected |
Increments the axis hits information for one view.
pos1 | 2D projected position of the first vertex |
pos2 | 2D projected position of the second vertex |
kdTree | the kd tree of 2D hits |
axisHits | the number of hits between the two candidates |
Definition at line 707 of file TrainedVertexSelectionAlgorithm.cc.
References f, IsHitInBox(), and lar_content::KDTreeLinkerAlgo< DATA, DIM >::search().
Referenced by GetSharedFeatures().
|
protected |
Increment the showery hit parameters for a cluster list.
clusterList | the cluster list |
nShoweryHits | the number of showery hits |
nHits | the number of hits |
eventEnergy | the event energy |
Definition at line 270 of file TrainedVertexSelectionAlgorithm.cc.
References IsClusterShowerLike().
Referenced by CalculateEventFeatures().
|
inlineprotectedinherited |
Whether algorithm is running in beam mode, assuming neutrinos travel in positive z-direction.
Definition at line 427 of file VertexSelectionBaseAlgorithm.h.
References lar_content::VertexSelectionBaseAlgorithm::m_beamMode.
Referenced by AddEventFeaturesToVector(), AddVertexFeaturesToVector(), lar_content::EnergyKickVertexSelectionAlgorithm::GetVertexScoreList(), and PopulateVertexFeatureInfoMap().
|
inlineprotected |
Find whether a cluster is shower-like.
pCluster | the cluster |
Definition at line 285 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::LArClusterHelper::GetLength(), and m_minShowerSpineLength.
Referenced by GetShowerLikeClusterEndPoints(), and IncrementShoweryParameters().
|
protected |
Determines whether a hit lies within the box defined by four other positions.
hitPos | the hit position |
point1 | the first corner of the box |
point2 | the second corner of the box |
point3 | the third corner of the box |
point4 | the fourth corner of the box |
Definition at line 747 of file TrainedVertexSelectionAlgorithm.cc.
Referenced by IncrementSharedAxisValues().
|
protected |
Populate the final vertex score list using the r/phi score to find the best vertex in the vicinity.
vertexFeatureInfoMap | the vertex feature info map |
pFavouriteVertex | address of the favourite vertex |
vertexVector | the vector of all vertex candidates |
finalVertexScoreList | the final vertex score list to populate |
Definition at line 838 of file TrainedVertexSelectionAlgorithm.cc.
References m_rPhiFineTuningRadius.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Populate the initial vertex score list for a given vertex.
vertexFeatureInfoMap | the vertex feature info map |
pVertex | the vertex |
initialScoreList | the score list to populate |
Definition at line 482 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_beamDeweighting, m_beamDeweightingConstant, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_energyKick, m_energyKickConstant, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_globalAsymmetry, m_globalAsymmetryConstant, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_localAsymmetry, m_localAsymmetryConstant, lar_content::TrainedVertexSelectionAlgorithm::VertexFeatureInfo::m_showerAsymmetry, and m_showerAsymmetryConstant.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Populate kd tree with information about hits in a provided list of clusters.
clusterList | the list of clusters |
kdTree | to receive the populated kd tree |
hitToClusterMap | to receive the populated hit to cluster map |
Definition at line 146 of file TrainedVertexSelectionAlgorithm.cc.
References AddClusterToShower(), lar_content::KDTreeLinkerAlgo< DATA, DIM >::build(), lar_content::build_2d_kd_search_region(), lar_content::fill_and_bound_2d_kd_tree(), m_showerClusteringDistance, and lar_content::KDTreeLinkerAlgo< DATA, DIM >::search().
Referenced by CalculateShowerClusterList().
|
protected |
Populate the vertex feature info map for a given vertex.
beamConstants | the beam constants |
clusterListMap | the cluster list map |
slidingFitDataListMap | the sliding fit data list map |
showerClusterListMap | the shower cluster list map |
kdTreeMap | the kd tree map |
pVertex | the vertex |
vertexFeatureInfoMap | the map to populate |
Definition at line 428 of file TrainedVertexSelectionAlgorithm.cc.
References f, Get, lar_content::VertexSelectionBaseAlgorithm::GetBeamDeweightingScore(), lar_content::VertexSelectionBaseAlgorithm::GetVertexEnergy(), lar_content::VertexSelectionBaseAlgorithm::IsBeamModeOn(), m_featureToolVector, and m_legacyVariables.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Produce a set of training examples for a binary classifier.
vertexVector | the vector of vertices to use |
vertexFeatureInfoMap | the vertex feature info map |
coinFlip | a distribution for producing coin flips |
generator | the random number generator |
interactionType | the interaction type string |
trainingOutputFile | the training set output file |
eventFeatureList | the event feature list |
kdTreeMap | the map of 2D hit kd trees |
maxRadius | the maximum allowed radius for the 'best' vertex |
useRPhi | whether to include the r/phi feature |
Definition at line 628 of file TrainedVertexSelectionAlgorithm.cc.
References AddSharedFeaturesToVector(), AddVertexFeaturesToVector(), lar_content::LArMvaHelper::ConcatenateFeatureLists(), f, GetBestVertex(), GetSharedFeatures(), m_legacyVariables, and lar_content::LArMvaHelper::ProduceTrainingExample().
Referenced by ProduceTrainingSets().
|
protected |
Produce the region and vertex training sets.
vertexVector | the vector of all vertices |
bestRegionVertices | the best region vertices |
vertexFeatureInfoMap | the vertex feature info map |
eventFeatureList | the list of event features |
kdTreeMap |
Definition at line 531 of file TrainedVertexSelectionAlgorithm.cc.
References CalculateRPhiScores(), GetInteractionType(), m_maxTrueVertexRadius, m_regionRadius, m_trainingOutputFileRegion, m_trainingOutputFileVertex, m_useRPhiFeatureForRegion, and ProduceTrainingExamples().
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList().
|
protected |
Definition at line 859 of file TrainedVertexSelectionAlgorithm.cc.
References lar_content::LArMvaHelper::AddFeatureToolToVector(), m_allowClassifyDuringTraining, m_beamDeweightingConstant, m_caloHitListName, m_dropFailedRPhiFastScoreCandidates, m_energyKickConstant, m_featureToolVector, m_globalAsymmetryConstant, m_inputClusterListNames, m_legacyEventShapes, m_legacyVariables, m_localAsymmetryConstant, m_maxTrueVertexRadius, m_mcParticleListName, m_mcVertexXCorrection, m_minClusterCaloHits, m_minShowerClusterHits, m_minShowerSpineLength, m_regionRadius, m_rPhiFineTuningRadius, m_showerAsymmetryConstant, m_showerClusteringDistance, m_slidingFitWindow, m_testBeamMode, m_trainingOutputFileRegion, m_trainingOutputFileVertex, m_trainingSetMode, m_useRPhiFeatureForRegion, m_useShowerClusteringApproximation, and lar_content::VertexSelectionBaseAlgorithm::ReadSettings().
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::ReadSettings().
|
inlineprotected |
Update the min/max coordinate spans.
minPositionCoord | the min position coordinate |
maxPositionCoord | the max position coordinate |
minCoord | the current min coordinate |
maxCoord | the current max coordinate |
Definition at line 390 of file TrainedVertexSelectionAlgorithm.cc.
Referenced by GetLegacyEventShapeFeatures().
|
protectedinherited |
Finds the energy of the nearest hit to the vertex candidate in this view.
pVertex | the address of the vertex |
hitType | the relevant hit type |
kdTree | the kd tree of 2D hits |
Definition at line 261 of file VertexSelectionBaseAlgorithm.cc.
References lar_content::build_2d_kd_search_region(), energy, lar_content::VertexSelectionBaseAlgorithm::m_maxOnHitDisplacement, lar_content::LArGeometryHelper::ProjectPosition(), and lar_content::KDTreeLinkerAlgo< DATA, DIM >::search().
Referenced by lar_content::VertexSelectionBaseAlgorithm::GetVertexEnergy().
|
protected |
Whether classification is allowed during training.
Definition at line 454 of file TrainedVertexSelectionAlgorithm.h.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), lar_content::MvaVertexSelectionAlgorithm< T >::ReadSettings(), and ReadSettings().
|
protected |
The beam deweighting constant for the initial region score list.
Definition at line 466 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateInitialScoreList(), and ReadSettings().
|
protected |
The 2D CaloHit list name.
Definition at line 459 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetInteractionType(), and ReadSettings().
|
protected |
Whether to drop candidates that fail the r/phi fast score test.
Definition at line 479 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateRPhiScores(), and ReadSettings().
|
protected |
The energy kick constant for the initial region score list.
Definition at line 470 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateInitialScoreList(), and ReadSettings().
|
protected |
The feature tool vector.
Definition at line 452 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateRPhiScores(), PopulateVertexFeatureInfoMap(), and ReadSettings().
|
protected |
The global asymmetry constant for the initial region score list.
Definition at line 468 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateInitialScoreList(), and ReadSettings().
|
protected |
The list of cluster list names.
Definition at line 461 of file TrainedVertexSelectionAlgorithm.h.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), and ReadSettings().
|
protected |
Whether to use the old event shapes calculation.
Definition at line 481 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateEventFeatures(), and ReadSettings().
|
protected |
Whether to only use the old variables.
Definition at line 482 of file TrainedVertexSelectionAlgorithm.h.
Referenced by AddVertexFeaturesToVector(), lar_content::MvaVertexSelectionAlgorithm< T >::CompareVertices(), PopulateVertexFeatureInfoMap(), ProduceTrainingExamples(), and ReadSettings().
|
protected |
The local asymmetry constant for the initial region score list.
Definition at line 467 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateInitialScoreList(), and ReadSettings().
|
protected |
The maximum distance at which a vertex candidate can be considered the 'true' vertex.
Definition at line 477 of file TrainedVertexSelectionAlgorithm.h.
Referenced by ProduceTrainingSets(), and ReadSettings().
|
protected |
The MC particle list for creating training examples.
Definition at line 458 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetBestVertex(), GetInteractionType(), and ReadSettings().
|
protected |
The correction to the x-coordinate of the MC vertex position.
Definition at line 455 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetBestVertex(), and ReadSettings().
|
protected |
The min number of hits parameter in the energy score.
Definition at line 462 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateShowerClusterList(), lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), and ReadSettings().
|
protected |
The minimum number of shower cluster hits.
Definition at line 473 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetShowerLikeClusterEndPoints(), and ReadSettings().
|
protected |
The minimum length at which all are considered to be tracks.
Definition at line 464 of file TrainedVertexSelectionAlgorithm.h.
Referenced by IsClusterShowerLike(), and ReadSettings().
|
protected |
The radius for a vertex region.
Definition at line 475 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetBestRegionVertices(), lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), ProduceTrainingSets(), and ReadSettings().
|
protected |
The maximum distance the r/phi tune can move a vertex.
Definition at line 476 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateFinalVertexScoreList(), and ReadSettings().
|
protected |
The shower asymmetry constant for the initial region score list.
Definition at line 469 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateInitialScoreList(), and ReadSettings().
|
protected |
The shower clustering distance.
Definition at line 472 of file TrainedVertexSelectionAlgorithm.h.
Referenced by PopulateKdTree(), and ReadSettings().
|
protected |
The layer window for the sliding linear fits.
Definition at line 463 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateShowerClusterList(), lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), and ReadSettings().
|
protected |
Test beam mode.
Definition at line 480 of file TrainedVertexSelectionAlgorithm.h.
Referenced by GetBestVertex(), GetInteractionType(), and ReadSettings().
|
protected |
The training output file for the region mva.
Definition at line 456 of file TrainedVertexSelectionAlgorithm.h.
Referenced by ProduceTrainingSets(), and ReadSettings().
|
protected |
The training output file for the vertex mva.
Definition at line 457 of file TrainedVertexSelectionAlgorithm.h.
Referenced by ProduceTrainingSets(), and ReadSettings().
|
protected |
Whether to train.
Definition at line 453 of file TrainedVertexSelectionAlgorithm.h.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), lar_content::MvaVertexSelectionAlgorithm< T >::ReadSettings(), and ReadSettings().
|
protected |
Whether to use the r/phi feature for the region vertex.
Definition at line 478 of file TrainedVertexSelectionAlgorithm.h.
Referenced by lar_content::MvaVertexSelectionAlgorithm< T >::GetVertexScoreList(), ProduceTrainingSets(), and ReadSettings().
|
protected |
Whether to use the shower clustering distance approximation.
Definition at line 474 of file TrainedVertexSelectionAlgorithm.h.
Referenced by CalculateShowerClusterList(), and ReadSettings().