ShowerHitsBaseTool.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArHitCreation/ShowerHitsBaseTool.h
3  *
4  * @brief Header file for the shower hits base tool.
5  *
6  * $Log: $
7  */
8 #ifndef SHOWER_HITS_BASE_TOOL_H
9 #define SHOWER_HITS_BASE_TOOL_H 1
10 
12 
13 namespace lar_content
14 {
15 
16 /**
17  * @brief ShowerHitsBaseTool class
18  */
20 {
21 public:
22  /**
23  * @brief Default constructor
24  */
26 
27  virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo,
28  const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector);
29 
30 protected:
31  /**
32  * @brief Get the three dimensional position for to a two dimensional calo hit, using the hit and a list of candidate matched
33  * hits in the other two views
34  *
35  * @param caloHitVector1 the vector of candidate hits in view 1
36  * @param caloHitVector2 the vector of candidate hits in view 2
37  * @param protoHit to receive the populated proto hit
38  */
39  virtual void GetShowerHit3D(const pandora::CaloHitVector &caloHitVector1, const pandora::CaloHitVector &caloHitVector2, ProtoHit &protoHit) const = 0;
40 
41  /**
42  * @brief Create three dimensional hits, using a list of input two dimensional hits and the hits (contained in the same particle)
43  * from the other two views
44  *
45  * @param inputTwoDHits the list of input two dimensional hits
46  * @param caloHitVector1 hits in the first alternate view
47  * @param caloHitVector2 hits in the second alternate view
48  * @param protoHitVector to receive the new three dimensional proto hits
49  */
50  virtual void GetShowerHits3D(const pandora::CaloHitVector &inputTwoDHits, const pandora::CaloHitVector &caloHitVector1,
51  const pandora::CaloHitVector &caloHitVector2, ProtoHitVector &protoHitVector) const;
52 
53  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
54 
55 private:
56  /**
57  * @brief Filter a list of calo hits to find those within a specified tolerance of a give x position
58  *
59  * @param x the x position
60  * @param xTolerance the x tolerance
61  * @param inputCaloHitVector the input calo hit vector
62  * @param outputCaloHitVector to receive the output calo hit vector
63  */
64  void FilterCaloHits(const float x, const float xTolerance, const pandora::CaloHitVector &inputCaloHitVector,
65  pandora::CaloHitVector &outputCaloHitVector) const;
66 
67  float m_xTolerance; ///< The x tolerance to use when looking for associated calo hits between views
68 };
69 
70 } // namespace lar_content
71 
72 #endif // #ifndef SHOWER_HITS_BASE_TOOL_H
Proto hits are temporary constructs to be used during iterative 3D hit procedure. ...
ThreeDHitCreationAlgorithm::ProtoHitVector ProtoHitVector
float m_xTolerance
The x tolerance to use when looking for associated calo hits between views.
void FilterCaloHits(const float x, const float xTolerance, const pandora::CaloHitVector &inputCaloHitVector, pandora::CaloHitVector &outputCaloHitVector) const
Filter a list of calo hits to find those within a specified tolerance of a give x position...
Header file for the hit creation base tool.
ShowerHitsBaseTool()
Default constructor.
virtual void GetShowerHit3D(const pandora::CaloHitVector &caloHitVector1, const pandora::CaloHitVector &caloHitVector2, ProtoHit &protoHit) const =0
Get the three dimensional position for to a two dimensional calo hit, using the hit and a list of can...
ShowerHitsBaseTool class.
virtual void GetShowerHits3D(const pandora::CaloHitVector &inputTwoDHits, const pandora::CaloHitVector &caloHitVector1, const pandora::CaloHitVector &caloHitVector2, ProtoHitVector &protoHitVector) const
Create three dimensional hits, using a list of input two dimensional hits and the hits (contained in ...
HitCreationBaseTool class.
ThreeDHitCreationAlgorithm::Algorithm class.
list x
Definition: train.py:276
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo, const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector)
Run the algorithm tool.