NeutrinoEventValidationAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArMonitoring/NeutrinoEventValidationAlgorithm.h
3  *
4  * @brief Header file for the neutrino event validation algorithm.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_NEUTRINO_EVENT_VALIDATION_ALGORITHM_H
9 #define LAR_NEUTRINO_EVENT_VALIDATION_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
14 
16 
17 #ifdef MONITORING
18 #include "PandoraMonitoringApi.h"
19 #endif
20 
21 #include <map>
22 
23 namespace lar_content
24 {
25 
26 /**
27  * @brief NeutrinoEventValidationAlgorithm class
28  */
30 {
31 public:
32  /**
33  * @brief Default constructor
34  */
36 
37  /**
38  * @brief Destructor
39  */
41 
42 private:
43  /**
44  * @brief Fill the validation info containers
45  *
46  * @param pMCParticleList the address of the mc particle list
47  * @param pCaloHitList the address of the calo hit list
48  * @param pPfoList the address of the pfo list
49  * @param validationInfo to receive the validation info
50  */
51  void FillValidationInfo(const pandora::MCParticleList *const pMCParticleList, const pandora::CaloHitList *const pCaloHitList,
52  const pandora::PfoList *const pPfoList, ValidationInfo &validationInfo) const;
53 
54  typedef std::unordered_map<const pandora::ParticleFlowObject *, unsigned int> PfoToIdMap;
55 
56  /**
57  * @brief Print matching information in a provided validation info object, and write information to tree if configured to do so
58  *
59  * @param validationInfo the validation info
60  * @param useInterpretedMatching whether to use the interpreted (rather than raw) matching information
61  * @param printToScreen whether to print the information to screen
62  * @param fillTree whether to write the information to tree
63  */
64  void ProcessOutput(const ValidationInfo &validationInfo, const bool useInterpretedMatching, const bool printToScreen, const bool fillTree) const;
65 
66  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
67 
68  typedef std::vector<pandora::HitType> HitTypeVector;
69 
70  bool m_useTrueNeutrinosOnly; ///< Whether to consider only mc particles that were neutrino induced
71 };
72 
73 } // namespace lar_content
74 
75 #endif // LAR_NEUTRINO_EVENT_VALIDATION_ALGORITHM_H
void FillValidationInfo(const pandora::MCParticleList *const pMCParticleList, const pandora::CaloHitList *const pCaloHitList, const pandora::PfoList *const pPfoList, ValidationInfo &validationInfo) const
Fill the validation info containers.
bool m_useTrueNeutrinosOnly
Whether to consider only mc particles that were neutrino induced.
Header file for the event validation algorithm.
Header file for the lar monte carlo particle helper helper class.
std::unordered_map< const pandora::ParticleFlowObject *, unsigned int > PfoToIdMap
void ProcessOutput(const ValidationInfo &validationInfo, const bool useInterpretedMatching, const bool printToScreen, const bool fillTree) const
Print matching information in a provided validation info object, and write information to tree if con...
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)