All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrackHitsBaseTool.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArThreeDReco/LArHitCreation/TrackHitsBaseTool.h
3  *
4  * @brief Header file for the track hits base tool.
5  *
6  * $Log: $
7  */
8 #ifndef TRACK_HITS_BASE_TOOL_H
9 #define TRACK_HITS_BASE_TOOL_H 1
10 
12 
14 
15 #include <unordered_map>
16 
17 namespace lar_content
18 {
19 
20 /**
21  * @brief TrackHitsBaseTool class
22  */
24 {
25 public:
26  /**
27  * @brief Default constructor
28  */
30 
31  virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo,
32  const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector);
33 
34 protected:
35  typedef std::map<pandora::HitType, TwoDSlidingFitResult> MatchedSlidingFitMap;
36 
37  /**
38  * @brief Calculate 3D hits from an input list of 2D hits
39  *
40  * @param pAlgorithm the hit creation algorithm
41  * @param inputTwoDHits the input vector of 2D hits
42  * @param matchedSlidingFitMap the group of sliding fit results
43  * @param protoHitVector to receive the new three dimensional proto hits
44  */
45  virtual void GetTrackHits3D(const pandora::CaloHitVector &inputTwoDHits, const MatchedSlidingFitMap &matchedSlidingFitMap,
46  ProtoHitVector &protoHitVector) const = 0;
47 
48  /**
49  * @brief Calculate sliding fit results for clusters from each view
50  *
51  * @param pPfo the input particle flow object
52  * @param matchedSlidingFitMap the group of sliding fit results
53  */
54  virtual void BuildSlidingFitMap(const pandora::ParticleFlowObject *const pPfo, MatchedSlidingFitMap &matchedSlidingFitMap) const;
55 
56  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
57 
58  unsigned int m_minViews; ///< The minimum number of views required for building hits
59  unsigned int m_slidingFitWindow; ///< The layer window for the sliding linear fits
60 };
61 
62 } // namespace lar_content
63 
64 #endif // #ifndef TRACK_HITS_BASE_TOOL_H
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
virtual void BuildSlidingFitMap(const pandora::ParticleFlowObject *const pPfo, MatchedSlidingFitMap &matchedSlidingFitMap) const
Calculate sliding fit results for clusters from each view.
virtual void GetTrackHits3D(const pandora::CaloHitVector &inputTwoDHits, const MatchedSlidingFitMap &matchedSlidingFitMap, ProtoHitVector &protoHitVector) const =0
Calculate 3D hits from an input list of 2D hits.
std::map< pandora::HitType, TwoDSlidingFitResult > MatchedSlidingFitMap
TrackHitsBaseTool()
Default constructor.
ThreeDHitCreationAlgorithm::ProtoHitVector ProtoHitVector
Header file for the hit creation base tool.
Header file for the lar two dimensional sliding fit result class.
TrackHitsBaseTool class.
unsigned int m_slidingFitWindow
The layer window for the sliding linear fits.
HitCreationBaseTool class.
unsigned int m_minViews
The minimum number of views required for building hits.
ThreeDHitCreationAlgorithm::Algorithm class.
virtual void Run(ThreeDHitCreationAlgorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pPfo, const pandora::CaloHitVector &inputTwoDHits, ProtoHitVector &protoHitVector)
Run the algorithm tool.