Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
CheatingNeutrinoCreationAlgorithm.h
Go to the documentation of this file.
1
8#ifndef LAR_CHEATING_NEUTRINO_CREATION_ALGORITHM_H
9#define LAR_CHEATING_NEUTRINO_CREATION_ALGORITHM_H 1
10
11#include "Pandora/Algorithm.h"
12
14
15#include <unordered_map>
16
17namespace lar_content
18{
19
24{
25public:
30
31private:
33
39 void GetMCNeutrinoVector(pandora::MCParticleVector &mcNeutrinoVector) const;
40
47 void CreateAndSaveNeutrinoPfo(const pandora::MCParticle *const pMCNeutrino, const pandora::ParticleFlowObject *&pNeutrinoPfo) const;
48
55 void AddNeutrinoVertex(const pandora::MCParticle *const pMCNeutrino, const pandora::ParticleFlowObject *const pNeutrinoPfo) const;
56
57 typedef std::unordered_map<const pandora::MCParticle *, const pandora::ParticleFlowObject *> MCParticleToPfoMap;
58
64 void GetMCParticleToDaughterPfoMap(MCParticleToPfoMap &mcParticleToPfoMap) const;
65
73 void CreatePfoHierarchy(const pandora::MCParticle *const pParentMCParticle, const pandora::ParticleFlowObject *const pParentPfo,
74 const MCParticleToPfoMap &mcParticleToPfoMap) const;
75
77
79
82
83 std::string m_vertexListName;
85
87};
88
89} // namespace lar_content
90
91#endif // #ifndef LAR_CHEATING_NEUTRINO_CREATION_ALGORITHM_H
Header file for the algorithm class.
Header file for the lar monte carlo particle helper helper class.
CheatingNeutrinoCreationAlgorithm::Algorithm class.
pandora::StringVector m_daughterPfoListNames
The list of daughter pfo list names.
std::string m_mcParticleListName
The name of the three d mc particle list name.
void GetMCParticleToDaughterPfoMap(MCParticleToPfoMap &mcParticleToPfoMap) const
Extract candidate daughter pfos from external lists and populate a map from main mc particle (or prim...
void CreatePfoHierarchy(const pandora::MCParticle *const pParentMCParticle, const pandora::ParticleFlowObject *const pParentPfo, const MCParticleToPfoMap &mcParticleToPfoMap) const
Use information from mc particles and the mc particle to pfo map to fully-reconstruct the daughter pf...
void AddNeutrinoVertex(const pandora::MCParticle *const pMCNeutrino, const pandora::ParticleFlowObject *const pNeutrinoPfo) const
Extract reconstructed vertex from external list, check its position agrees with mc neutrino,...
void GetMCNeutrinoVector(pandora::MCParticleVector &mcNeutrinoVector) const
Get the mc neutrino vector.
std::string m_vertexListName
The name of the neutrino vertex list.
std::string m_neutrinoPfoListName
The name of the neutrino pfo list.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
void CreateAndSaveNeutrinoPfo(const pandora::MCParticle *const pMCNeutrino, const pandora::ParticleFlowObject *&pNeutrinoPfo) const
Create and save a neutrino pfo with properties dictated by the mc neutrino.
float m_vertexTolerance
Tolerance, 3d displacement, allowed between reco neutrino vertex and mc neutrino endpoint.
std::unordered_map< const pandora::MCParticle *, const pandora::ParticleFlowObject * > MCParticleToPfoMap
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
Definition Algorithm.h:21
MCParticle class.
Definition MCParticle.h:26
ParticleFlowObject class.
std::vector< std::string > StringVector
std::vector< const MCParticle * > MCParticleVector
StatusCode
The StatusCode enum.