8 #ifndef LAR_THREE_VIEW_SHOWERS_ALGORITHM_H 
    9 #define LAR_THREE_VIEW_SHOWERS_ALGORITHM_H 1 
   11 #include "Pandora/Algorithm.h" 
   22 class ShowerTensorTool;
 
   48     void SelectInputClusters(
const pandora::ClusterList *
const pInputClusterList, pandora::ClusterList &selectedClusterList) 
const;
 
   75         pandora::StatusCode 
GetBin(
const float x, 
int &xBin) 
const;
 
  105     void CalculateOverlapResult(
const pandora::Cluster *
const pClusterU, 
const pandora::Cluster *
const pClusterV, 
const pandora::Cluster *
const pClusterW);
 
  115     pandora::StatusCode 
CalculateOverlapResult(
const pandora::Cluster *
const pClusterU, 
const pandora::Cluster *
const pClusterV,
 
  145         const ShowerPositionMapPair &positionMaps, 
unsigned int &nSampledHits, 
unsigned int &nMatchedHits) 
const;
 
  148     pandora::StatusCode 
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
 
  175     typedef std::vector<TensorType::ElementList::const_iterator> 
IteratorList;
 
  190 #endif // #ifndef LAR_THREE_VIEW_SHOWERS_ALGORITHM_H 
pandora::StatusCode GetBin(const float x, int &xBin) const 
Convert an x position into a sampling bin. 
Header file for the lar two dimensional sliding shower fit result class. 
float m_xOverlapSpan
The x-overlap span. 
NViewMatchingAlgorithm class. 
std::vector< ShowerTensorTool * > TensorToolVector
TensorToolVector m_algorithmToolVector
The algorithm tool vector. 
process_name opflash particleana ie x
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float m_wMaxX
The max x value in the w view. 
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools. 
float m_wMinX
The min x value in the w view. 
XSampling(const TwoDSlidingFitResult &fitResultU, const TwoDSlidingFitResult &fitResultV, const TwoDSlidingFitResult &fitResultW)
Constructor. 
NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > > BaseAlgorithm
virtual bool Run(ThreeViewShowersAlgorithm *const pAlgorithm, TensorType &overlapTensor)=0
Run the algorithm tool. 
ThreeViewShowersAlgorithm class. 
float m_uMaxX
The max x value in the u view. 
void RemoveFromSlidingFitCache(const pandora::Cluster *const pCluster)
Remova an existing sliding fit result, for the specified cluster, from the algorithm cache...
Header file for the n view matching algorithm class. 
float m_minX
The min x value of the common x-overlap range. 
void AddToSlidingFitCache(const pandora::Cluster *const pCluster)
Add a new sliding fit result, for the specified cluster, to the algorithm cache. 
TwoDSlidingShowerFitResult class. 
void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW)
Calculate cluster overlap result and store in container. 
std::pair< ShowerPositionMap, ShowerPositionMap > ShowerPositionMapPair
void SelectInputClusters(const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const 
Select a subset of input clusters for processing in this algorithm. 
std::vector< TensorType::ElementList::const_iterator > IteratorList
ShowerOverlapResult class. 
TwoDSlidingShowerFitResultMap m_slidingFitResultMap
The sliding shower fit result map. 
unsigned int m_minClusterCaloHits
The min number of hits in base cluster selection method. 
ThreeViewShowersAlgorithm::MatchingType::TensorType TensorType
unsigned int m_minShowerMatchedPoints
The minimum number of matched shower sampling points to allow shower grouping. 
float m_minClusterLengthSquared
The min length (squared) in base cluster selection method. 
void ExamineOverlapContainer()
Examine contents of overlap container, collect together best-matching 2D particles and modify cluster...
void PrepareInputClusters(pandora::ClusterList &preparedClusterList)
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results...
bool m_visualize
Visualize cluster matching procedure. 
unsigned int m_slidingFitWindow
The layer window for the sliding linear fits. 
Header file for the lar shower overlap result class. 
float m_uMinX
The min x value in the u view. 
ThreeViewShowersAlgorithm()
Default constructor. 
void GetShowerPositionMaps(const TwoDSlidingShowerFitResult &fitResultU, const TwoDSlidingShowerFitResult &fitResultV, const TwoDSlidingShowerFitResult &fitResultW, const XSampling &xSampling, ShowerPositionMapPair &positionMapsU, ShowerPositionMapPair &positionMapsV, ShowerPositionMapPair &positionMapsW) const 
Get the shower position maps. 
void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)
Update to reflect addition of a new cluster to the problem space. 
bool m_ignoreUnavailableClusters
Whether to ignore (skip-over) unavailable clusters. 
void TidyUp()
Tidy member variables in derived class. 
float m_vMinX
The min x value in the v view. 
float m_vMaxX
The max x value in the v view. 
void GetBestHitOverlapFraction(const pandora::Cluster *const pCluster, const XSampling &xSampling, const ShowerPositionMapPair &positionMaps, unsigned int &nSampledHits, unsigned int &nMatchedHits) const 
Get the best fraction of hits, in the common x-overlap range, contained within the provided pair of s...
float m_nPoints
The number of sampling points to be used. 
float m_minShowerMatchedFraction
The minimum shower matched sampling fraction to allow shower grouping. 
float m_maxX
The max x value of the common x-overlap range. 
Header file for the three view matching control class. 
std::unordered_map< const pandora::Cluster *, TwoDSlidingShowerFitResult > TwoDSlidingShowerFitResultMap
const TwoDSlidingShowerFitResult & GetCachedSlidingFitResult(const pandora::Cluster *const pCluster) const 
Get a sliding shower fit result from the algorithm cache. 
TwoDSlidingFitResult class. 
void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)
Update to reflect cluster deletion.