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

TwoDShowerFitFeatureTool to calculate variables related to sliding shower fit. More...

#include "TrackShowerIdFeatureTool.h"

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

Public Types

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

Public Member Functions

 TwoDShowerFitFeatureTool ()
 Default constructor. More...
 
void Run (LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
 
void Run (LArMvaHelper::MvaFeatureMap &featureMap, pandora::StringVector &featureOrder, const std::string &featureToolName, const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
 
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)
 
float CalculateShowerFitWidth (const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster) const
 Calculation of the shower fit width variable. More...
 

Private Attributes

unsigned int m_slidingShowerFitWindow
 The sliding shower fit window. More...
 
unsigned int m_slidingLinearFitWindow
 The sliding linear fit window. More...
 

Detailed Description

TwoDShowerFitFeatureTool to calculate variables related to sliding shower fit.

Definition at line 26 of file TrackShowerIdFeatureTool.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::TwoDShowerFitFeatureTool::TwoDShowerFitFeatureTool ( )

Default constructor.

Definition at line 27 of file TrackShowerIdFeatureTool.cc.

27  :
30 {
31 }
unsigned int m_slidingShowerFitWindow
The sliding shower fit window.
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.

Member Function Documentation

float lar_content::TwoDShowerFitFeatureTool::CalculateShowerFitWidth ( const pandora::Algorithm *const  pAlgorithm,
const pandora::Cluster *const  pCluster 
) const
private

Calculation of the shower fit width variable.

Parameters
pAlgorithmaddress of the calling algorithm
pClusterthe cluster we are characterizing
Returns
shower fit width
StatusCode lar_content::TwoDShowerFitFeatureTool::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 76 of file TrackShowerIdFeatureTool.cc.

References m_slidingLinearFitWindow, and m_slidingShowerFitWindow.

77 {
78  PANDORA_RETURN_RESULT_IF_AND_IF(
79  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "SlidingShowerFitWindow", m_slidingShowerFitWindow));
80 
81  PANDORA_RETURN_RESULT_IF_AND_IF(
82  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "SlidingLinearFitWindow", m_slidingLinearFitWindow));
83 
84  return STATUS_CODE_SUCCESS;
85 }
unsigned int m_slidingShowerFitWindow
The sliding shower fit window.
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
void lar_content::TwoDShowerFitFeatureTool::Run ( LArMvaHelper::MvaFeatureVector featureVector,
const pandora::Algorithm *const  pAlgorithm,
const pandora::Cluster *const  pCluster 
)

Definition at line 35 of file TrackShowerIdFeatureTool.cc.

References f, lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerPosition(), lar_content::CutClusterCharacterisationAlgorithm::GetShowerFitWidth(), lar_content::LArGeometryHelper::GetWireZPitch(), m_slidingLinearFitWindow, and m_slidingShowerFitWindow.

36 {
37  if (PandoraContentApi::GetSettings(*pAlgorithm)->ShouldDisplayAlgorithmInfo())
38  std::cout << "----> Running Algorithm Tool: " << this->GetInstanceName() << ", " << this->GetType() << std::endl;
39 
40  float ratio(-1.f);
41  try
42  {
43  const TwoDSlidingFitResult slidingFitResultLarge(pCluster, m_slidingLinearFitWindow, LArGeometryHelper::GetWireZPitch(this->GetPandora()));
44  const float straightLineLength =
45  (slidingFitResultLarge.GetGlobalMaxLayerPosition() - slidingFitResultLarge.GetGlobalMinLayerPosition()).GetMagnitude();
46  if (straightLineLength > std::numeric_limits<float>::epsilon())
47  ratio = (CutClusterCharacterisationAlgorithm::GetShowerFitWidth(pAlgorithm, pCluster, m_slidingShowerFitWindow)) / straightLineLength;
48  }
49  catch (const StatusCodeException &)
50  {
51  ratio = -1.f;
52  }
53  featureVector.push_back(ratio);
54 }
unsigned int m_slidingShowerFitWindow
The sliding shower fit window.
static float GetWireZPitch(const pandora::Pandora &pandora, const float maxWirePitchDiscrepancy=0.01)
Return the wire pitch.
TFile f
Definition: plotHisto.C:6
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
static float GetShowerFitWidth(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster, const unsigned int showerFitWindow)
Get a measure of the width of a cluster, using a sliding shower fit result.
void lar_content::TwoDShowerFitFeatureTool::Run ( LArMvaHelper::MvaFeatureMap featureMap,
pandora::StringVector &  featureOrder,
const std::string &  featureToolName,
const pandora::Algorithm *const  pAlgorithm,
const pandora::Cluster *const  pCluster 
)
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  };

Member Data Documentation

unsigned int lar_content::TwoDShowerFitFeatureTool::m_slidingLinearFitWindow
private

The sliding linear fit window.

Definition at line 52 of file TrackShowerIdFeatureTool.h.

Referenced by ReadSettings(), and Run().

unsigned int lar_content::TwoDShowerFitFeatureTool::m_slidingShowerFitWindow
private

The sliding shower fit window.

Definition at line 51 of file TrackShowerIdFeatureTool.h.

Referenced by ReadSettings(), and Run().


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