8 #ifndef LAR_STITCHING_HELPER_H 
    9 #define LAR_STITCHING_HELPER_H 1 
   11 #include "Geometry/LArTPC.h" 
   13 #include "Objects/ParticleFlowObject.h" 
   35     static const pandora::LArTPC &
FindClosestTPC(
const pandora::Pandora &
pandora, 
const pandora::LArTPC &inputTPC, 
const bool checkPositive);
 
   45     static bool CanTPCsBeStitched(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
   55     static bool AreTPCsAdjacent(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
   66     static bool AreTPCsAdjacent(
const pandora::Pandora &pandora, 
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
   76     static float GetTPCBoundaryCenterX(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
   86     static float GetTPCBoundaryWidthX(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
   96     static float GetTPCDisplacement(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC);
 
  121     static float CalculateX0(
const pandora::LArTPC &firstTPC, 
const pandora::LArTPC &secondTPC,
 
  130     static bool SortTPCs(
const pandora::LArTPC *
const pLhs, 
const pandora::LArTPC *
const pRhs);
 
  146     static float GetPfoX0(
const pandora::ParticleFlowObject *
const pPfo);
 
  151 #endif // #ifndef LAR_STITCHING_HELPER_H 
static float CalculateX0(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC, const LArPointingCluster::Vertex &firstVertex, const LArPointingCluster::Vertex &secondVertex)
Calculate X0 for a pair of vertices. 
Header file for the lar pointing cluster class. 
LArPointingCluster class. 
static bool CanTPCsBeStitched(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC)
Whether particles from a given pair of tpcs can be stitched together. 
static float GetTPCDisplacement(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC)
Calculate distance between central positions of a pair of tpcs. 
static bool HasPfoBeenStitched(const pandora::ParticleFlowObject *const pPfo)
Whether a pfo has been stitched. 
static float GetTPCBoundaryCenterX(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC)
Determine centre in X at the boundary between a pair of tpcs. 
static bool AreTPCsAdjacent(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC)
Whether a pair of drift volumes are adjacent to each other. 
static const pandora::LArTPC & FindClosestTPC(const pandora::Pandora &pandora, const pandora::LArTPC &inputTPC, const bool checkPositive)
Find closest tpc to a specified input tpc. 
static float GetTPCBoundaryWidthX(const pandora::LArTPC &firstTPC, const pandora::LArTPC &secondTPC)
Determine width in X at the boundary between a pair of tpcs. 
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora
static bool SortTPCs(const pandora::LArTPC *const pLhs, const pandora::LArTPC *const pRhs)
Sort tpcs by central positions. 
LArStitchingHelper class. 
static void GetClosestVertices(const pandora::LArTPC &larTPC1, const pandora::LArTPC &larTPC2, const LArPointingCluster &pointingCluster1, const LArPointingCluster &pointingCluster2, LArPointingCluster::Vertex &closestVertex1, LArPointingCluster::Vertex &closestVertex2)
Given a pair of pointing clusters, find the pair of vertices with smallest yz-separation. 
static float GetPfoX0(const pandora::ParticleFlowObject *const pPfo)
Return the x0 for a pfo.