PreProcessingAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArControlFlow/PreProcessingAlgorithm.h
3  *
4  * @brief Header file for the pre processing algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_PRE_PROCESSING_ALGORITHM_H
9 #define LAR_PRE_PROCESSING_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
13 namespace lar_content
14 {
15 
16 template <typename, unsigned int>
18 template <typename, unsigned int>
20 
21 //------------------------------------------------------------------------------------------------------------------------------------------
22 
23 /**
24  * @brief PreProcessingAlgorithm class
25  */
26 class PreProcessingAlgorithm : public pandora::Algorithm
27 {
28 public:
29  /**
30  * @brief Default constructor
31  */
33 
34 private:
37  typedef std::vector<HitKDNode2D> HitKDNode2DList;
38 
39  pandora::StatusCode Reset();
40  pandora::StatusCode Run();
41  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
42 
43  /**
44  * @brief Build separate CaloHitLists for each view
45  */
46  void ProcessCaloHits();
47 
48  /**
49  * @brief Build empty calo hit lists
50  */
51  void PopulateVoidCaloHitLists() noexcept;
52 
53  /**
54  * @brief Clean up the input CaloHitList
55  *
56  * @param inputList the input CaloHitList
57  * @param outputList the output CaloHitList
58  */
59  void GetFilteredCaloHitList(const pandora::CaloHitList &inputList, pandora::CaloHitList &outputList);
60 
61  /**
62  * @brief Build separate MCParticleLists for each view
63  */
64  void ProcessMCParticles();
65 
66  pandora::CaloHitSet m_processedHits; ///< The set of all previously processed calo hits
67 
68  float m_mipEquivalentCut; ///< Minimum mip equivalent energy for calo hit
69  float m_minCellLengthScale; ///< The minimum length scale for calo hit
70  float m_maxCellLengthScale; ///< The maximum length scale for calo hit
71  float m_searchRegion1D; ///< Search region, applied to each dimension, for look-up from kd-trees
72  unsigned int m_maxEventHits; ///< The maximum number of hits in an event to proceed with the reconstruction
73 
74  bool m_onlyAvailableCaloHits; ///< Whether to only include available calo hits
75  std::string m_inputCaloHitListName; ///< The input calo hit list name
76  std::string m_outputCaloHitListNameU; ///< The output calo hit list name for TPC_VIEW_U hits
77  std::string m_outputCaloHitListNameV; ///< The output calo hit list name for TPC_VIEW_V hits
78  std::string m_outputCaloHitListNameW; ///< The output calo hit list name for TPC_VIEW_W hits
79  std::string m_filteredCaloHitListName; ///< The output calo hit list name for all U, V and W hits
80  std::string m_currentCaloHitListReplacement; ///< The name of the calo hit list to replace the current list (optional)
81 };
82 
83 } // namespace lar_content
84 
85 #endif // #ifndef LAR_PRE_PROCESSING_ALGORITHM_H
PreProcessingAlgorithm class.
std::string m_outputCaloHitListNameV
The output calo hit list name for TPC_VIEW_V hits.
void GetFilteredCaloHitList(const pandora::CaloHitList &inputList, pandora::CaloHitList &outputList)
Clean up the input CaloHitList.
Class that implements the KDTree partition of 2D space and a closest point search algorithm...
float m_maxCellLengthScale
The maximum length scale for calo hit.
float m_mipEquivalentCut
Minimum mip equivalent energy for calo hit.
STL namespace.
void ProcessMCParticles()
Build separate MCParticleLists for each view.
unsigned int m_maxEventHits
The maximum number of hits in an event to proceed with the reconstruction.
std::string m_currentCaloHitListReplacement
The name of the calo hit list to replace the current list (optional)
Data stored in each KDTree node. The dim1/dim2 fields are usually the duplication of some PFRecHit va...
std::string m_outputCaloHitListNameW
The output calo hit list name for TPC_VIEW_W hits.
std::vector< HitKDNode2D > HitKDNode2DList
std::string m_filteredCaloHitListName
The output calo hit list name for all U, V and W hits.
float m_minCellLengthScale
The minimum length scale for calo hit.
KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > HitKDTree2D
KDTreeNodeInfoT< const pandora::CaloHit *, 2 > HitKDNode2D
std::string m_outputCaloHitListNameU
The output calo hit list name for TPC_VIEW_U hits.
std::string m_inputCaloHitListName
The input calo hit list name.
void ProcessCaloHits()
Build separate CaloHitLists for each view.
void PopulateVoidCaloHitLists() noexcept
Build empty calo hit lists.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float m_searchRegion1D
Search region, applied to each dimension, for look-up from kd-trees.
pandora::CaloHitSet m_processedHits
The set of all previously processed calo hits.
bool m_onlyAvailableCaloHits
Whether to only include available calo hits.