HierarchyValidationAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArMonitoring/HierarchyValidationAlgorithm.h
3  *
4  * @brief Header file for the hierarchy validation algorithm.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_HIERARCHY_VALIDATION_ALGORITHM_H
9 #define LAR_HIERARCHY_VALIDATION_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
15 
16 namespace lar_content
17 {
18 
19 /**
20  * @brief HierarchyValidationAlgorithm class
21  */
22 class HierarchyValidationAlgorithm : public pandora::Algorithm
23 {
24 public:
25  /**
26  * @brief Default constructor
27  */
29 
31 
32 private:
33  pandora::StatusCode Run();
34  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
35 
36  /**
37  * @brief Validate information at the level of MC nodes
38  *
39  * @param matchInfo The match info object to use for validation
40  */
41  void EventValidation(const LArHierarchyHelper::MatchInfo &matchInfo) const;
42 
43  /**
44  * @brief Validate information at the level of MC nodes
45  *
46  * @param matchInfo The match info object to use for validation
47  */
48  void MCValidation(const LArHierarchyHelper::MatchInfo &matchInfo) const;
49 
50  /**
51  * @brief Collates variables and fills ROOT tree for MC particles with matches
52  *
53  * @param matches The MCMatches object containing the matches
54  * @param matchInfo The MatchInfo object with the full event context
55  */
56  void Fill(const LArHierarchyHelper::MCMatches &matches, const LArHierarchyHelper::MatchInfo &matchInfo) const;
57 
58  int m_event; ///< The current event
59  std::string m_caloHitListName; ///< Name of input calo hit list
60  std::string m_pfoListName; ///< Name of input PFO list
61  bool m_writeTree; ///< Whether or not to output validation information to a ROOT file
62  std::string m_filename; ///< The name of the ROOT file to write
63  std::string m_treename; ///< The name of the ROOT tree to write
64  bool m_foldToPrimaries; ///< Whether or not to fold the hierarchy back to primary particles
65  bool m_foldDynamic; ///< Whether or not to fold the hierarchy dynamically
66  bool m_foldToLeadingShowers; ///< Whether or not to fold the hierarchy back to leading shower particles
67  bool m_validateEvent; ///< Whether to validate at the level of an event
68  bool m_validateMC; ///< Whether to validate at the level of MC nodes
69 };
70 
71 } // namespace lar_content
72 
73 #endif // LAR_HIERARCHY_VALIDATION_ALGORITHM_H
bool m_foldToPrimaries
Whether or not to fold the hierarchy back to primary particles.
std::string string
Definition: nybbler.cc:12
bool m_foldToLeadingShowers
Whether or not to fold the hierarchy back to leading shower particles.
void MCValidation(const LArHierarchyHelper::MatchInfo &matchInfo) const
Validate information at the level of MC nodes.
void EventValidation(const LArHierarchyHelper::MatchInfo &matchInfo) const
Validate information at the level of MC nodes.
Header file for the lar monte carlo particle helper helper class.
void Fill(const LArHierarchyHelper::MCMatches &matches, const LArHierarchyHelper::MatchInfo &matchInfo) const
Collates variables and fills ROOT tree for MC particles with matches.
std::string m_pfoListName
Name of input PFO list.
bool m_foldDynamic
Whether or not to fold the hierarchy dynamically.
Header file for the lar hierarchy helper class.
std::string m_caloHitListName
Name of input calo hit list.
bool m_writeTree
Whether or not to output validation information to a ROOT file.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::string m_filename
The name of the ROOT file to write.
std::string m_treename
The name of the ROOT tree to write.
bool m_validateMC
Whether to validate at the level of MC nodes.
bool m_validateEvent
Whether to validate at the level of an event.