All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CheatingNeutrinoDaughterVerticesAlgorithm.h
Go to the documentation of this file.
1 /**
2  * @file larpandoracontent/LArCheating/CheatingNeutrinoDaughterVerticesAlgorithm.h
3  *
4  * @brief Header file for the cheating neutrino daughter vertices algorithm class.
5  *
6  * $Log: $
7  */
8 #ifndef LAR_CHEATING_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H
9 #define LAR_CHEATING_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
14 
15 namespace lar_content
16 {
17 
18 /**
19  * @brief CheatingNeutrinoDaughterVerticesAlgorithm::Algorithm class
20  */
21 class CheatingNeutrinoDaughterVerticesAlgorithm : public pandora::Algorithm
22 {
23 public:
24  /**
25  * @brief Default constructor
26  */
28 
29 private:
30  pandora::StatusCode Run();
31 
32  /**
33  * @brief Get the mapping from mc particle to primary, only required if collapsed mc particle hierarchy specified
34  *
35  * @param mcPrimaryMap to receive the mapping from mc particle to primary
36  */
37  void GetMCPrimaryMap(LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const;
38 
39  /**
40  * @brief Process the list of reconstructed neutrinos
41  *
42  * @param neutrinoPfos the list of neutrino pfos
43  * @param mcPrimaryMap the mapping from mc particle to primary, only required if collapsed mc particle hierarchy specified
44  */
45  void ProcessRecoNeutrinos(const pandora::PfoList &neutrinoPfos, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const;
46 
47  /**
48  * @brief Process a daughter pfo
49  *
50  * @param pDaughterPfo the address of a daughter pfo
51  * @param mcPrimaryMap the mapping from mc particle to primary, only required if collapsed mc particle hierarchy specified
52  */
53  void ProcessDaughterPfo(const pandora::ParticleFlowObject *const pDaughterPfo, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const;
54 
55  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
56 
57  bool m_collapseToPrimaryMCParticles; ///< Whether to collapse mc particle hierarchies to primary particles
58  std::string m_mcParticleListName; ///< The mc particle list name, required if want to collapse mc particle hierarchy
59 
60  std::string m_neutrinoListName; ///< The input list of pfo list names
61  std::string m_vertexListName; ///< The name of the output cosmic-ray vertex list
62 };
63 
64 } // namespace lar_content
65 
66 #endif // #ifndef LAR_CHEATING_NEUTRINO_DAUGHTER_VERTICES_ALGORITHM_H
std::string m_mcParticleListName
The mc particle list name, required if want to collapse mc particle hierarchy.
CheatingNeutrinoDaughterVerticesAlgorithm::Algorithm class.
std::string m_vertexListName
The name of the output cosmic-ray vertex list.
void GetMCPrimaryMap(LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const
Get the mapping from mc particle to primary, only required if collapsed mc particle hierarchy specifi...
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Header file for the lar monte carlo particle helper helper class.
void ProcessRecoNeutrinos(const pandora::PfoList &neutrinoPfos, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const
Process the list of reconstructed neutrinos.
void ProcessDaughterPfo(const pandora::ParticleFlowObject *const pDaughterPfo, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap) const
Process a daughter pfo.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
std::unordered_map< const pandora::MCParticle *, const pandora::MCParticle * > MCRelationMap