HitCreationBaseTool.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArHitCreation/HitCreationBaseTool.h
3  *
4  * @brief Header file for the hit creation base tool.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_HIT_CREATION_BASE_TOOL_H
9 #define LAR_HIT_CREATION_BASE_TOOL_H 1
10 
11 #include "Pandora/AlgorithmTool.h"
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief HitCreationBaseTool class
20  */
21 class HitCreationBaseTool : public pandora::AlgorithmTool
22 {
23 public:
27 
28  /**
29  * @brief Default constructor
30  */
32 
33  /**
34  * @brief Destructor
35  */
36  virtual ~HitCreationBaseTool();
37 
38  /**
39  * @brief Run the algorithm tool
40  *
41  * @param pAlgorithm address of the calling algorithm
42  * @param pPfo the address of the pfo
43  * @param inputTwoDHits the vector of input two dimensional hits
44  * @param protoHitVector to receive the new three dimensional proto hits
45  */
46  virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo,
47  const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector) = 0;
48 
49 protected:
50  /**
51  * @brief Get the three dimensional position using a provided two dimensional calo hit and candidate fit positions from the other two views
52  *
53  * @param hitType1 the hit type identifying the first view
54  * @param hitType2 the hit type identifying the second view
55  * @param fitPositionList1 the candidate sliding fit position in the first view
56  * @param fitPositionList2 the candidate sliding fit position in the second view
57  * @param protoHit to receive the populated proto hit
58  */
59  virtual void GetBestPosition3D(const pandora::HitType hitType1, const pandora::HitType hitType2,
60  const pandora::CartesianPointVector &fitPositionList1, const pandora::CartesianPointVector &fitPositionList2, ProtoHit &protoHit) const;
61 
62  /**
63  * @brief Get the three dimensional position using a provided two dimensional calo hit and candidate fit positions from the other two views
64  *
65  * @param hitType1 the hit type identifying the first view
66  * @param hitType2 the hit type identifying the second view
67  * @param fitPosition1 the candidate sliding fit position in the first view
68  * @param fitPosition2 the candidate sliding fit position in the second view
69  * @param protoHit to receive the populated proto hit
70  */
71  virtual void GetBestPosition3D(const pandora::HitType hitType1, const pandora::HitType hitType2,
72  const pandora::CartesianVector &fitPosition1, const pandora::CartesianVector &fitPosition2, ProtoHit &protoHit) const;
73 
74  /**
75  * @brief Get the three dimensional position using a provided two dimensional calo hit and a candidate fit position from another view
76  *
77  * @param hitType the hit type identifying the other view
78  * @param fitPosition the candidate sliding fit position in the other view
79  * @param protoHit to receive the populated proto hit
80  */
81  virtual void GetBestPosition3D(const pandora::HitType hitType, const pandora::CartesianVector &fitPosition, ProtoHit &protoHit) const;
82 
83  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
84 
85  double m_sigmaX2; ///< The sigmaX squared value, for calculation of chi2 deltaX term
86  double m_chiSquaredCut; ///< The chi squared cut (accept only values below the cut value)
87 };
88 
89 } // namespace lar_content
90 
91 #endif // #ifndef LAR_HIT_CREATION_BASE_TOOL_H
ThreeDHitCreationAlgorithm::ProtoHit ProtoHit
Proto hits are temporary constructs to be used during iterative 3D hit procedure. ...
double m_sigmaX2
The sigmaX squared value, for calculation of chi2 deltaX term.
enum cvn::HType HitType
ThreeDHitCreationAlgorithm::ProtoHitVector ProtoHitVector
ThreeDHitCreationAlgorithm::TrajectorySample TrajectorySample
double m_chiSquaredCut
The chi squared cut (accept only values below the cut value)
Header file for the three dimensional hit creation algorithm class.
HitCreationBaseTool()
Default constructor.
virtual void GetBestPosition3D(const pandora::HitType hitType1, const pandora::HitType hitType2, const pandora::CartesianPointVector &fitPositionList1, const pandora::CartesianPointVector &fitPositionList2, ProtoHit &protoHit) const
Get the three dimensional position using a provided two dimensional calo hit and candidate fit positi...
virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo, const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector)=0
Run the algorithm tool.
HitCreationBaseTool class.
Trajectory samples record the results of sampling a particles in a particular view.
ThreeDHitCreationAlgorithm::Algorithm class.
virtual ~HitCreationBaseTool()
Destructor.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)