LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar_content::AmbiguousRegionFeatureTool Class Referenceabstract

AmbiguousRegionFeatureTool to calculate variables related to the shower region. More...

#include "ConnectionPathwayFeatureTool.h"

Inheritance diagram for lar_content::AmbiguousRegionFeatureTool:
lar_content::MvaFeatureTool< Ts >

Public Types

typedef std::vector< MvaFeatureTool< Ts... > * > FeatureToolVector
 
typedef std::map< std::string, MvaFeatureTool< Ts... > * > FeatureToolMap
 

Public Member Functions

 AmbiguousRegionFeatureTool ()
 Default constructor. More...
 
void Run (LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pShowerPfo, const pandora::CartesianVector &nuVertex3D, const ProtoShowerMatch &protoShowerMatch, const pandora::CartesianPointVector &showerStarts3D)
 
void Run (LArMvaHelper::MvaFeatureMap &featureMap, pandora::StringVector &featureOrder, const std::string &featureToolName, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pShowerPfo, const pandora::CartesianVector &nuVertex3D, const ProtoShowerMatch &protoShowerMatch, const pandora::CartesianPointVector &showerStarts3D)
 
virtual void Run (MvaTypes::MvaFeatureVector &featureVector, Ts...args)=0
 Run the algorithm tool. More...
 
virtual void Run (MvaTypes::MvaFeatureMap &featureMap, pandora::StringVector &featureOrder, const std::string &featureToolName, Ts...)
 

Private Member Functions

pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
void CalculateNAmbiguousViews (const ProtoShowerMatch &protoShowerMatch, float &nAmbiguousViews)
 Count the number of views with ambiguous hits. More...
 
bool GetViewAmbiguousHitVariables (const pandora::Algorithm *const pAlgorithm, const ProtoShowerMatch &protoShowerMatch, const pandora::HitType hitType, const pandora::CartesianVector &nuVertex3D, float &unaccountedHitEnergy)
 Calculate the ambiguous region variables for the input view. More...
 
void BuildAmbiguousSpines (const pandora::Algorithm *const pAlgorithm, const pandora::HitType hitType, const ProtoShower &protoShower, const pandora::CartesianVector &nuVertex2D, std::map< int, pandora::CaloHitList > &ambiguousHitSpines, pandora::CaloHitList &hitsToExcludeInEnergyCalcs)
 Determine the spine hits of the particles with which the ambiguous hits are shared. More...
 
pandora::StatusCode GetHitListOfType (const pandora::Algorithm *const pAlgorithm, const pandora::HitType hitType, const pandora::CaloHitList *&pCaloHitList) const
 Obtain the event hit list of a given view. More...
 
pandora::CaloHitList FindAmbiguousContinuousSpine (const pandora::CaloHitList &caloHitList, const pandora::CaloHitList &ambiguousHitList, const pandora::CartesianVector &nuVertex2D)
 Determine a continuous pathway of an ambigous particle's spine hits. More...
 

Private Attributes

float m_defaultFloat
 Default float value. More...
 
std::string m_caloHitListNameU
 The event U view hit list. More...
 
std::string m_caloHitListNameV
 The event V view hit list. More...
 
std::string m_caloHitListNameW
 The event W view hit list. More...
 
float m_maxTransverseDistance
 The max. proximity of a hits, included in a trajectory energy calcs. More...
 
unsigned int m_maxSampleHits
 The max. number of hits considered in the spine energy calcs. More...
 
float m_maxHitSeparation
 The max. separation of connected hits. More...
 
float m_maxTrackFraction
 The fraction of found hits which are considered in the energy calcs. More...
 

Detailed Description

AmbiguousRegionFeatureTool to calculate variables related to the shower region.

Definition at line 268 of file ConnectionPathwayFeatureTool.h.

Member Typedef Documentation

template<typename... Ts>
typedef std::map<std::string, MvaFeatureTool<Ts...> *> lar_content::MvaFeatureTool< Ts >::FeatureToolMap
inherited

Definition at line 37 of file LArMvaHelper.h.

template<typename... Ts>
typedef std::vector<MvaFeatureTool<Ts...> *> lar_content::MvaFeatureTool< Ts >::FeatureToolVector
inherited

Definition at line 36 of file LArMvaHelper.h.

Constructor & Destructor Documentation

lar_content::AmbiguousRegionFeatureTool::AmbiguousRegionFeatureTool ( )

Default constructor.

Definition at line 870 of file ConnectionPathwayFeatureTool.cc.

References CalculateNAmbiguousViews(), f, GetViewAmbiguousHitVariables(), m_defaultFloat, and Run().

870  :
871  m_defaultFloat(-10.f),
872  m_caloHitListNameU("CaloHitListU"),
873  m_caloHitListNameV("CaloHitListV"),
874  m_caloHitListNameW("CaloHitListW"),
876  m_maxSampleHits(3),
879 {
880 }
float m_maxTransverseDistance
The max. proximity of a hits, included in a trajectory energy calcs.
std::string m_caloHitListNameW
The event W view hit list.
TFile f
Definition: plotHisto.C:6
std::string m_caloHitListNameU
The event U view hit list.
unsigned int m_maxSampleHits
The max. number of hits considered in the spine energy calcs.
float m_maxHitSeparation
The max. separation of connected hits.
std::string m_caloHitListNameV
The event V view hit list.
float m_maxTrackFraction
The fraction of found hits which are considered in the energy calcs.

Member Function Documentation

void lar_content::AmbiguousRegionFeatureTool::BuildAmbiguousSpines ( const pandora::Algorithm *const  pAlgorithm,
const pandora::HitType  hitType,
const ProtoShower protoShower,
const pandora::CartesianVector &  nuVertex2D,
std::map< int, pandora::CaloHitList > &  ambiguousHitSpines,
pandora::CaloHitList &  hitsToExcludeInEnergyCalcs 
)
private

Determine the spine hits of the particles with which the ambiguous hits are shared.

Parameters
pAlgorithmthe algorithm
hitTypethe 2D view
protoShowerthe ProtoShower
nuVertex2Dthe 2D neutrino vertex
ambiguousHitSpinesthe output [particle index -> shower spine hits] map
hitsToExcludeInEnergyCalcsthe list of hits to exclude in energy calculations

Definition at line 1040 of file ConnectionPathwayFeatureTool.cc.

References f, FindAmbiguousContinuousSpine(), lar_content::ProtoShower::GetAmbiguousDirectionVector(), lar_content::ProtoShower::GetAmbiguousHitList(), GetHitListOfType(), and m_maxTransverseDistance.

Referenced by GetViewAmbiguousHitVariables().

1042 {
1043  const CaloHitList *pCaloHitList;
1044 
1045  if (this->GetHitListOfType(pAlgorithm, hitType, pCaloHitList) != STATUS_CODE_SUCCESS)
1046  return;
1047 
1048  std::map<int, CaloHitList> ambiguousHitSpinesTemp;
1049 
1050  for (const CaloHit *const pCaloHit : *pCaloHitList)
1051  {
1052  if (std::find(protoShower.GetAmbiguousHitList().begin(), protoShower.GetAmbiguousHitList().end(), pCaloHit) !=
1053  protoShower.GetAmbiguousHitList().end())
1054  continue;
1055 
1056  int count(0);
1057 
1058  // A hit can be in more than one spine
1059  for (unsigned int i = 0; i < protoShower.GetAmbiguousDirectionVector().size(); ++i)
1060  {
1061  const CartesianVector &significantDirection(protoShower.GetAmbiguousDirectionVector()[i]);
1062  const CartesianVector displacement(pCaloHit->GetPositionVector() - nuVertex2D);
1063  const float thisT(significantDirection.GetCrossProduct(displacement).GetMagnitude());
1064  const float thisL(significantDirection.GetDotProduct(displacement));
1065 
1066  if ((thisL > 0.f) && (thisT < m_maxTransverseDistance))
1067  {
1068  ++count;
1069  ambiguousHitSpinesTemp[i].push_back(pCaloHit);
1070  }
1071 
1072  if (count == 2)
1073  hitsToExcludeInEnergyCalcs.push_back(pCaloHit);
1074  }
1075  }
1076 
1077  if (ambiguousHitSpinesTemp.empty())
1078  return;
1079 
1080  // Make sure the pathways are continuous
1081  for (const auto &entry : ambiguousHitSpinesTemp)
1082  {
1083  CaloHitList continuousSpine(this->FindAmbiguousContinuousSpine(entry.second, protoShower.GetAmbiguousHitList(), nuVertex2D));
1084 
1085  if (continuousSpine.size() > 0)
1086  ambiguousHitSpines[entry.first] = continuousSpine;
1087  }
1088 }
float m_maxTransverseDistance
The max. proximity of a hits, included in a trajectory energy calcs.
TFile f
Definition: plotHisto.C:6
pandora::StatusCode GetHitListOfType(const pandora::Algorithm *const pAlgorithm, const pandora::HitType hitType, const pandora::CaloHitList *&pCaloHitList) const
Obtain the event hit list of a given view.
pandora::CaloHitList FindAmbiguousContinuousSpine(const pandora::CaloHitList &caloHitList, const pandora::CaloHitList &ambiguousHitList, const pandora::CartesianVector &nuVertex2D)
Determine a continuous pathway of an ambigous particle&#39;s spine hits.
void lar_content::AmbiguousRegionFeatureTool::CalculateNAmbiguousViews ( const ProtoShowerMatch protoShowerMatch,
float &  nAmbiguousViews 
)
private

Count the number of views with ambiguous hits.

Parameters
protoShowerMatchthe ProtoShower match
nAmbiguousViewsthe output number of ambiguous views

Definition at line 937 of file ConnectionPathwayFeatureTool.cc.

References f, lar_content::ProtoShower::GetAmbiguousHitList(), lar_content::ProtoShowerMatch::GetProtoShowerU(), lar_content::ProtoShowerMatch::GetProtoShowerV(), and lar_content::ProtoShowerMatch::GetProtoShowerW().

Referenced by AmbiguousRegionFeatureTool().

938 {
939  nAmbiguousViews = 0.f;
940 
941  const int nAmbiguousHitsU(protoShowerMatch.GetProtoShowerU().GetAmbiguousHitList().size());
942  nAmbiguousViews += (nAmbiguousHitsU == 0) ? 0.f : 1.f;
943 
944  const int nAmbiguousHitsV(protoShowerMatch.GetProtoShowerV().GetAmbiguousHitList().size());
945  nAmbiguousViews += (nAmbiguousHitsV == 0) ? 0.f : 1.f;
946 
947  const int nAmbiguousHitsW(protoShowerMatch.GetProtoShowerW().GetAmbiguousHitList().size());
948  nAmbiguousViews += (nAmbiguousHitsW == 0) ? 0.f : 1.f;
949 }
TFile f
Definition: plotHisto.C:6
CaloHitList lar_content::AmbiguousRegionFeatureTool::FindAmbiguousContinuousSpine ( const pandora::CaloHitList &  caloHitList,
const pandora::CaloHitList &  ambiguousHitList,
const pandora::CartesianVector &  nuVertex2D 
)
private

Determine a continuous pathway of an ambigous particle's spine hits.

Parameters
caloHitListthe input ambiguous particle spine hit list
ambiguousHitListthe ambiguous hit list
nuVertex2Dthe 2D neutrino vertex
Returns
a continuous hit pathway

Definition at line 1109 of file ConnectionPathwayFeatureTool.cc.

References lar_content::LArClusterHelper::GetClosestDistance(), m_maxHitSeparation, and m_maxTrackFraction.

Referenced by BuildAmbiguousSpines().

1111 {
1112  CaloHitList continuousHitList;
1113 
1114  CaloHitVector caloHitVector(caloHitList.begin(), caloHitList.end());
1115  std::sort(caloHitVector.begin(), caloHitVector.end(), LArConnectionPathwayHelper::SortByDistanceToPoint(nuVertex2D));
1116 
1117  for (unsigned int i = 0; i < caloHitVector.size(); ++i)
1118  {
1119  CaloHitList connectedHitList;
1120  connectedHitList.push_back(caloHitVector[i]);
1121 
1122  if (LArClusterHelper::GetClosestDistance(connectedHitList.front()->GetPositionVector(), ambiguousHitList) > m_maxHitSeparation)
1123  continue;
1124 
1125  bool found(true);
1126 
1127  while (found)
1128  {
1129  found = false;
1130 
1131  for (unsigned int j = (i + 1); j < caloHitVector.size(); ++j)
1132  {
1133  const CaloHit *const pCaloHit(caloHitVector[j]);
1134 
1135  if (std::find(connectedHitList.begin(), connectedHitList.end(), pCaloHit) != connectedHitList.end())
1136  continue;
1137 
1138  if (LArClusterHelper::GetClosestDistance(pCaloHit->GetPositionVector(), connectedHitList) < m_maxHitSeparation)
1139  {
1140  // to avoid ends of tracks
1141  if (static_cast<float>(connectedHitList.size()) < static_cast<float>(caloHitVector.size() * m_maxTrackFraction))
1142  {
1143  found = true;
1144  connectedHitList.push_back(pCaloHit);
1145  }
1146 
1147  break;
1148  }
1149  }
1150  }
1151 
1152  if (connectedHitList.size() >= 2)
1153  {
1154  continuousHitList.insert(continuousHitList.begin(), connectedHitList.begin(), connectedHitList.end());
1155  break;
1156  }
1157  }
1158 
1159  return continuousHitList;
1160 }
float m_maxHitSeparation
The max. separation of connected hits.
float m_maxTrackFraction
The fraction of found hits which are considered in the energy calcs.
static float GetClosestDistance(const pandora::ClusterList &clusterList1, const pandora::ClusterList &clusterList2)
Get closest distance between clusters in a pair of cluster lists.
StatusCode lar_content::AmbiguousRegionFeatureTool::GetHitListOfType ( const pandora::Algorithm *const  pAlgorithm,
const pandora::HitType  hitType,
const pandora::CaloHitList *&  pCaloHitList 
) const
private

Obtain the event hit list of a given view.

Parameters
pAlgorithmthe algorithm
hitTypethe 2D view
pCaloHitListthe output 2D hit list
Returns
whether a valid 2D hit list could be found

Definition at line 1092 of file ConnectionPathwayFeatureTool.cc.

References m_caloHitListNameU, m_caloHitListNameV, and m_caloHitListNameW.

Referenced by BuildAmbiguousSpines().

1093 {
1094  const std::string typeHitListName(hitType == TPC_VIEW_U ? m_caloHitListNameU
1095  : hitType == TPC_VIEW_V ? m_caloHitListNameV
1096  : m_caloHitListNameW);
1097 
1098  PANDORA_THROW_RESULT_IF_AND_IF(
1099  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_INITIALIZED, !=, PandoraContentApi::GetList(*pAlgorithm, typeHitListName, pCaloHitList));
1100 
1101  if (!pCaloHitList || pCaloHitList->empty())
1102  return STATUS_CODE_NOT_INITIALIZED;
1103 
1104  return STATUS_CODE_SUCCESS;
1105 }
std::string m_caloHitListNameW
The event W view hit list.
std::string m_caloHitListNameU
The event U view hit list.
std::string m_caloHitListNameV
The event V view hit list.
bool lar_content::AmbiguousRegionFeatureTool::GetViewAmbiguousHitVariables ( const pandora::Algorithm *const  pAlgorithm,
const ProtoShowerMatch protoShowerMatch,
const pandora::HitType  hitType,
const pandora::CartesianVector &  nuVertex3D,
float &  unaccountedHitEnergy 
)
private

Calculate the ambiguous region variables for the input view.

Parameters
pAlgorithmthe algorithm
protoShowerMatchthe ProtoShower match
hitTypethe 2D view
nuVertex3Dthe 3D neutrino vertex
unaccountedHitEnergythe output unaccounted hit energy
Returns
whether the ambiguous region variables could be calculated

Definition at line 953 of file ConnectionPathwayFeatureTool.cc.

References BuildAmbiguousSpines(), f, lar_content::ProtoShower::GetAmbiguousHitList(), lar_content::ProtoShower::GetConnectionPathway(), lar_content::ProtoShowerMatch::GetProtoShowerU(), lar_content::ProtoShowerMatch::GetProtoShowerV(), lar_content::ProtoShowerMatch::GetProtoShowerW(), lar_content::ProtoShower::GetSpineHitList(), lar_content::ConnectionPathway::GetStartDirection(), m_maxSampleHits, m_maxTransverseDistance, and lar_content::LArGeometryHelper::ProjectPosition().

Referenced by AmbiguousRegionFeatureTool().

955 {
956  std::map<int, CaloHitList> ambiguousHitSpines;
957  CaloHitList hitsToExcludeInEnergyCalcs; // to avoid double counting
958  const CartesianVector nuVertex2D(LArGeometryHelper::ProjectPosition(pAlgorithm->GetPandora(), nuVertex3D, hitType));
959  const ProtoShower &protoShower(hitType == TPC_VIEW_U
960  ? protoShowerMatch.GetProtoShowerU()
961  : (hitType == TPC_VIEW_V ? protoShowerMatch.GetProtoShowerV() : protoShowerMatch.GetProtoShowerW()));
962 
963  this->BuildAmbiguousSpines(pAlgorithm, hitType, protoShower, nuVertex2D, ambiguousHitSpines, hitsToExcludeInEnergyCalcs);
964 
965  if (ambiguousHitSpines.empty())
966  return false;
967 
968  const CartesianVector &startDirection(protoShower.GetConnectionPathway().GetStartDirection());
969  float startL(-std::numeric_limits<float>::max());
970  float ambiguousHitEnergyMean(0.f);
971 
972  // Get average energy of the ambiguous hits
973  for (const CaloHit *const pAmbiguousCaloHit : protoShower.GetAmbiguousHitList())
974  {
975  const float thisT(startDirection.GetCrossProduct(pAmbiguousCaloHit->GetPositionVector() - nuVertex2D).GetMagnitude());
976  const float thisL(startDirection.GetDotProduct(pAmbiguousCaloHit->GetPositionVector() - nuVertex2D));
977 
978  if ((thisL > startL) && (thisT < m_maxTransverseDistance))
979  startL = thisL;
980 
981  ambiguousHitEnergyMean += pAmbiguousCaloHit->GetElectromagneticEnergy() * 1000.f;
982  }
983 
984  ambiguousHitEnergyMean /= protoShower.GetAmbiguousHitList().size();
985 
986  // Get mean energy of other pathways, avoiding the float counting hits
987  float otherEnergyMeanSum(0.f);
988 
989  for (const auto &entry : ambiguousHitSpines)
990  {
991  int nOtherEnergyHits(0);
992  float otherEnergyMean(0.f);
993 
994  for (const CaloHit *const pOtherCaloHit : entry.second)
995  {
996  if (std::find(hitsToExcludeInEnergyCalcs.begin(), hitsToExcludeInEnergyCalcs.end(), pOtherCaloHit) != hitsToExcludeInEnergyCalcs.end())
997  continue;
998 
999  otherEnergyMean += pOtherCaloHit->GetElectromagneticEnergy() * 1000.f;
1000  ++nOtherEnergyHits;
1001  }
1002 
1003  if (nOtherEnergyHits == 0)
1004  continue;
1005 
1006  otherEnergyMean /= static_cast<float>(nOtherEnergyHits);
1007  otherEnergyMeanSum += otherEnergyMean;
1008  }
1009 
1010  // Get the spine mean energy, only consider a limited number of non-ambiguous hits
1011  float spineEnergyMean(0.f);
1012  unsigned int nSpineEnergyHits(0);
1013 
1014  for (const CaloHit *const pSpineCaloHit : protoShower.GetSpineHitList())
1015  {
1016  if (std::find(protoShower.GetAmbiguousHitList().begin(), protoShower.GetAmbiguousHitList().end(), pSpineCaloHit) !=
1017  protoShower.GetAmbiguousHitList().end())
1018  continue;
1019 
1020  const float thisL(startDirection.GetDotProduct(pSpineCaloHit->GetPositionVector() - nuVertex2D));
1021 
1022  if ((thisL > startL) && (nSpineEnergyHits < m_maxSampleHits))
1023  {
1024  spineEnergyMean += pSpineCaloHit->GetElectromagneticEnergy() * 1000.f;
1025  ++nSpineEnergyHits;
1026  }
1027  }
1028 
1029  if (nSpineEnergyHits == 0)
1030  return false;
1031 
1032  spineEnergyMean /= static_cast<float>(nSpineEnergyHits);
1033  unaccountedHitEnergy = ambiguousHitEnergyMean - otherEnergyMeanSum - spineEnergyMean;
1034 
1035  return true;
1036 }
float m_maxTransverseDistance
The max. proximity of a hits, included in a trajectory energy calcs.
static pandora::CartesianVector ProjectPosition(const pandora::Pandora &pandora, const pandora::CartesianVector &position3D, const pandora::HitType view)
Project 3D position into a given 2D view.
TFile f
Definition: plotHisto.C:6
unsigned int m_maxSampleHits
The max. number of hits considered in the spine energy calcs.
void BuildAmbiguousSpines(const pandora::Algorithm *const pAlgorithm, const pandora::HitType hitType, const ProtoShower &protoShower, const pandora::CartesianVector &nuVertex2D, std::map< int, pandora::CaloHitList > &ambiguousHitSpines, pandora::CaloHitList &hitsToExcludeInEnergyCalcs)
Determine the spine hits of the particles with which the ambiguous hits are shared.
StatusCode lar_content::AmbiguousRegionFeatureTool::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 1164 of file ConnectionPathwayFeatureTool.cc.

References m_caloHitListNameU, m_caloHitListNameV, m_caloHitListNameW, m_defaultFloat, m_maxHitSeparation, m_maxSampleHits, m_maxTrackFraction, and m_maxTransverseDistance.

1165 {
1166  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "DefaultFloat", m_defaultFloat));
1167 
1168  PANDORA_RETURN_RESULT_IF_AND_IF(
1169  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "CaloHitListNameU", m_caloHitListNameU));
1170 
1171  PANDORA_RETURN_RESULT_IF_AND_IF(
1172  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "CaloHitListNameV", m_caloHitListNameV));
1173 
1174  PANDORA_RETURN_RESULT_IF_AND_IF(
1175  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "CaloHitListNameW", m_caloHitListNameW));
1176 
1177  PANDORA_RETURN_RESULT_IF_AND_IF(
1178  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MaxTransverseDistance", m_maxTransverseDistance));
1179 
1180  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MaxSampleHits", m_maxSampleHits));
1181 
1182  PANDORA_RETURN_RESULT_IF_AND_IF(
1183  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MaxHitSeparation", m_maxHitSeparation));
1184 
1185  PANDORA_RETURN_RESULT_IF_AND_IF(
1186  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MaxTrackFraction", m_maxTrackFraction));
1187 
1188  return STATUS_CODE_SUCCESS;
1189 }
float m_maxTransverseDistance
The max. proximity of a hits, included in a trajectory energy calcs.
std::string m_caloHitListNameW
The event W view hit list.
std::string m_caloHitListNameU
The event U view hit list.
unsigned int m_maxSampleHits
The max. number of hits considered in the spine energy calcs.
float m_maxHitSeparation
The max. separation of connected hits.
std::string m_caloHitListNameV
The event V view hit list.
float m_maxTrackFraction
The fraction of found hits which are considered in the energy calcs.
template<typename... Ts>
virtual void lar_content::MvaFeatureTool< Ts >::Run ( MvaTypes::MvaFeatureVector featureVector,
Ts...  args 
)
pure virtualinherited

Run the algorithm tool.

Parameters
featureVectorthe vector of features to append
argsarguments to pass to the tool
template<typename... Ts>
virtual void lar_content::MvaFeatureTool< Ts >::Run ( MvaTypes::MvaFeatureMap featureMap,
pandora::StringVector &  featureOrder,
const std::string &  featureToolName,
Ts...   
)
inlinevirtualinherited

Definition at line 51 of file LArMvaHelper.h.

52  {
53  (void)featureMap;
54  (void)featureOrder;
55  (void)featureToolName;
56  return;
57  };
void lar_content::AmbiguousRegionFeatureTool::Run ( LArMvaHelper::MvaFeatureVector featureVector,
const pandora::Algorithm *const  pAlgorithm,
const pandora::ParticleFlowObject *const  pShowerPfo,
const pandora::CartesianVector &  nuVertex3D,
const ProtoShowerMatch protoShowerMatch,
const pandora::CartesianPointVector &  showerStarts3D 
)
void lar_content::AmbiguousRegionFeatureTool::Run ( LArMvaHelper::MvaFeatureMap featureMap,
pandora::StringVector &  featureOrder,
const std::string &  featureToolName,
const pandora::Algorithm *const  pAlgorithm,
const pandora::ParticleFlowObject *const  pShowerPfo,
const pandora::CartesianVector &  nuVertex3D,
const ProtoShowerMatch protoShowerMatch,
const pandora::CartesianPointVector &  showerStarts3D 
)

Member Data Documentation

std::string lar_content::AmbiguousRegionFeatureTool::m_caloHitListNameU
private

The event U view hit list.

Definition at line 348 of file ConnectionPathwayFeatureTool.h.

Referenced by GetHitListOfType(), and ReadSettings().

std::string lar_content::AmbiguousRegionFeatureTool::m_caloHitListNameV
private

The event V view hit list.

Definition at line 349 of file ConnectionPathwayFeatureTool.h.

Referenced by GetHitListOfType(), and ReadSettings().

std::string lar_content::AmbiguousRegionFeatureTool::m_caloHitListNameW
private

The event W view hit list.

Definition at line 350 of file ConnectionPathwayFeatureTool.h.

Referenced by GetHitListOfType(), and ReadSettings().

float lar_content::AmbiguousRegionFeatureTool::m_defaultFloat
private

Default float value.

Definition at line 347 of file ConnectionPathwayFeatureTool.h.

Referenced by AmbiguousRegionFeatureTool(), and ReadSettings().

float lar_content::AmbiguousRegionFeatureTool::m_maxHitSeparation
private

The max. separation of connected hits.

Definition at line 353 of file ConnectionPathwayFeatureTool.h.

Referenced by FindAmbiguousContinuousSpine(), and ReadSettings().

unsigned int lar_content::AmbiguousRegionFeatureTool::m_maxSampleHits
private

The max. number of hits considered in the spine energy calcs.

Definition at line 352 of file ConnectionPathwayFeatureTool.h.

Referenced by GetViewAmbiguousHitVariables(), and ReadSettings().

float lar_content::AmbiguousRegionFeatureTool::m_maxTrackFraction
private

The fraction of found hits which are considered in the energy calcs.

Definition at line 354 of file ConnectionPathwayFeatureTool.h.

Referenced by FindAmbiguousContinuousSpine(), and ReadSettings().

float lar_content::AmbiguousRegionFeatureTool::m_maxTransverseDistance
private

The max. proximity of a hits, included in a trajectory energy calcs.

Definition at line 351 of file ConnectionPathwayFeatureTool.h.

Referenced by BuildAmbiguousSpines(), GetViewAmbiguousHitVariables(), and ReadSettings().


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