29 #ifndef CALOHITHELPER_H
30 #define CALOHITHELPER_H
32 #include "Pandora/PandoraInternal.h"
33 #include "Pandora/StatusCodes.h"
38 namespace pandora {
class Algorithm;
class CaloHit;
class Track; }
40 namespace april_content
61 static pandora::StatusCode
RemoveConnections(
const pandora::CaloHitList *
const pCaloHitList);
70 static pandora::StatusCode
ExtractCurrentSeedCaloHitList(
const pandora::Algorithm &algorithm, pandora::CaloHitList &seedCaloHitList,
bool discriminateLeafHits =
false);
79 static pandora::StatusCode
ExtractSeedCaloHitList(
const pandora::CaloHitList *
const pCaloHitList, pandora::CaloHitList &seedCaloHitList,
bool discriminateLeafHits =
false);
88 static pandora::StatusCode
ExtractCurrentLeafCaloHitList(
const pandora::Algorithm &algorithm, pandora::CaloHitList &leafCaloHitList,
bool discriminateSeedHits =
false);
97 static pandora::StatusCode
ExtractLeafCaloHitList(
const pandora::CaloHitList *
const pCaloHitList, pandora::CaloHitList &leafCaloHitList,
bool discriminateSeedHits =
false);
119 unsigned int connectionLimit,
unsigned int pseudoLayerLimit);
130 pandora::CartesianVector &direction,
unsigned int depth);
144 static bool CanConnect(
const CaloHit *
const pCaloHit1,
const CaloHit *
const pCaloHit2,
const pandora::CartesianVector &expectedDirection,
145 const float normaleMaxAngle,
const float normaleMaxDistance,
146 const float transverseMaxAngle,
const float transverseMaxDistance);
159 static bool CanConnect(
const pandora::Track *
const pTrack,
const CaloHit *
const pCaloHit,
160 const float normaleMaxAngle,
const float normaleMaxDistance,
161 const float transverseMaxAngle,
const float transverseMaxDistance);
175 static bool IsInRegionOfInterest(
const pandora::CartesianVector &startRegionPosition,
const pandora::CartesianVector &testPosition,
const pandora::CartesianVector &expectedDirection,
176 const pandora::CartesianVector &normaleVector,
const float normaleMaxAngle,
const float normaleMaxDistance,
const float transverseMaxAngle,
const float transverseMaxDistance);
181 #endif // CALOHITHELPER_H
static pandora::StatusCode ExtractCurrentLeafCaloHitList(const pandora::Algorithm &algorithm, pandora::CaloHitList &leafCaloHitList, bool discriminateSeedHits=false)
Extract the calo hit leaf list from the current calo hit list.
Definition: CaloHitHelper.cc:102
static pandora::StatusCode ExtractCurrentSeedCaloHitList(const pandora::Algorithm &algorithm, pandora::CaloHitList &seedCaloHitList, bool discriminateLeafHits=false)
Extract the calo hit seed list from the current calo hit list.
Definition: CaloHitHelper.cc:71
static pandora::StatusCode BuildCaloHitList(const CaloHit *const pCaloHit, ConnectorDirection direction, pandora::CaloHitList &calohitList)
Build the calo hit list starting from a calo hit by looking recursively in the connector list (forwar...
Definition: CaloHitHelper.cc:133
CaloHit class.
Definition: CaloHit.h:52
static pandora::StatusCode RemoveConnections(const pandora::CaloHitList *const pCaloHitList)
Remove the connections of the calo hit list.
Definition: CaloHitHelper.cc:53
static pandora::StatusCode RemoveCurrentConnections(const pandora::Algorithm &algorithm)
Remove the connections of the current calo hit list.
Definition: CaloHitHelper.cc:43
CaloHitHelper class.
Definition: CaloHitHelper.h:46
static bool CanConnect(const CaloHit *const pCaloHit1, const CaloHit *const pCaloHit2, const pandora::CartesianVector &expectedDirection, const float normaleMaxAngle, const float normaleMaxDistance, const float transverseMaxAngle, const float transverseMaxDistance)
Whether the two calo hits can be connected. The valid region to connect two hits is contained within ...
Definition: CaloHitHelper.cc:234
static pandora::StatusCode ExtractSeedCaloHitList(const pandora::CaloHitList *const pCaloHitList, pandora::CaloHitList &seedCaloHitList, bool discriminateLeafHits=false)
Extract the calo hit seed list from the calo hit list.
Definition: CaloHitHelper.cc:82
ConnectorDirection
ConnectorDirection enumerator.
Definition: APRILInputTypes.h:56
static pandora::StatusCode GetMeanDirection(const CaloHit *const pCaloHit, ConnectorDirection connectorDirection, pandora::CartesianVector &direction, unsigned int depth)
Get the mean direction of the calo hit in a given direction.
Definition: CaloHitHelper.cc:193
static bool IsInRegionOfInterest(const pandora::CartesianVector &startRegionPosition, const pandora::CartesianVector &testPosition, const pandora::CartesianVector &expectedDirection, const pandora::CartesianVector &normaleVector, const float normaleMaxAngle, const float normaleMaxDistance, const float transverseMaxAngle, const float transverseMaxDistance)
Whether the tested position is in the region of interest. The valid region is contained within a cone...
Definition: CaloHitHelper.cc:270
static pandora::StatusCode ExtractLeafCaloHitList(const pandora::CaloHitList *const pCaloHitList, pandora::CaloHitList &leafCaloHitList, bool discriminateSeedHits=false)
Extract the calo hit leaf list from the calo hit list.
Definition: CaloHitHelper.cc:113