PFParticleValidation class. More...
Classes | |
class | MatchingDetails |
MatchingDetails class. More... | |
class | SimpleMatchedPfo |
SimpleMatchedPfo class. More... | |
class | SimpleMCPrimary |
SimpleMCPrimary class. More... | |
Public Member Functions | |
PFParticleValidation (fhicl::ParameterSet const &pset) | |
Constructor. More... | |
virtual | ~PFParticleValidation () |
Destructor. More... | |
void | beginJob () |
void | endJob () |
void | analyze (const art::Event &evt) |
void | reconfigure (fhicl::ParameterSet const &pset) |
Public Member Functions inherited from art::EDAnalyzer | |
EDAnalyzer (fhicl::ParameterSet const &pset) | |
template<typename Config > | |
EDAnalyzer (Table< Config > const &config) | |
std::string | workerType () const |
Public Member Functions inherited from art::detail::Analyzer | |
virtual | ~Analyzer () noexcept |
Analyzer (fhicl::ParameterSet const &pset) | |
template<typename Config > | |
Analyzer (Table< Config > const &config) | |
void | doBeginJob (SharedResources const &resources) |
void | doEndJob () |
void | doRespondToOpenInputFile (FileBlock const &fb) |
void | doRespondToCloseInputFile (FileBlock const &fb) |
void | doRespondToOpenOutputFiles (FileBlock const &fb) |
void | doRespondToCloseOutputFiles (FileBlock const &fb) |
bool | doBeginRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doEndRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed) |
Public Member Functions inherited from art::Observer | |
~Observer () noexcept | |
Observer (Observer const &)=delete | |
Observer (Observer &&)=delete | |
Observer & | operator= (Observer const &)=delete |
Observer & | operator= (Observer &&)=delete |
void | registerProducts (ProductDescriptions &, ModuleDescription const &) |
void | fillDescriptions (ModuleDescription const &) |
fhicl::ParameterSetID | selectorConfig () const |
Public Member Functions inherited from art::ModuleBase | |
virtual | ~ModuleBase () noexcept |
ModuleBase () | |
ModuleDescription const & | moduleDescription () const |
void | setModuleDescription (ModuleDescription const &) |
std::array< std::vector< ProductInfo >, NumBranchTypes > const & | getConsumables () const |
void | sortConsumables (std::string const ¤t_process_name) |
template<typename T , BranchType BT> | |
ViewToken< T > | consumesView (InputTag const &tag) |
template<typename T , BranchType BT> | |
ViewToken< T > | mayConsumeView (InputTag const &tag) |
Private Types | |
typedef std::vector< SimpleMCPrimary > | SimpleMCPrimaryList |
typedef std::vector< SimpleMatchedPfo > | SimpleMatchedPfoList |
typedef std::map< int, MatchingDetails > | MatchingDetailsMap |
typedef std::map< SimpleMCPrimary, SimpleMatchedPfoList > | MCPrimaryMatchingMap |
typedef std::map< art::Ptr< recob::PFParticle >, HitVector > | PFParticleToMatchedHits |
typedef std::map< art::Ptr< simb::MCParticle >, PFParticleToMatchedHits > | MCParticleMatchingMap |
typedef std::set< int > | IntSet |
Private Member Functions | |
void | GetMCParticleMatchingMap (const PFParticlesToHits &recoParticlesToHits, const MCParticlesToHits &trueParticlesToHits, const HitsToMCParticles &hitsToTrueParticles, MCParticleMatchingMap &mcParticleMatchingMap) const |
Performing matching between true and reconstructed particles. More... | |
void | GetSimpleMCPrimaryList (const art::Event &evt, const MCParticlesToHits &mcParticlesToHits, const HitsToMCParticles &hitsToMCParticles, const MCParticleMatchingMap &mcParticleMatchingMap, SimpleMCPrimaryList &simpleMCPrimaryList) const |
Extract details of each mc primary (ordered by number of true hits) More... | |
void | GetMCPrimaryMatchingMap (const SimpleMCPrimaryList &simpleMCPrimaryList, const MCParticleMatchingMap &mcParticleMatchingMap, const PFParticlesToHits &pfParticlesToHits, MCPrimaryMatchingMap &mcPrimaryMatchingMap) const |
Obtain a sorted list of matched pfos for each mc primary. More... | |
bool | IsNeutrinoInduced (const art::Ptr< simb::MCParticle > pMCParticle, const MCParticlesToMCTruth &artMCParticlesToMCTruth) const |
Whether a mc particle is neutrino induced. More... | |
void | GetMCTruth (const art::Event &evt, MCTruthVector &mcTruthVector) const |
Obtain a vector of mc truth. More... | |
void | GetRecoNeutrinos (const art::Event &evt, PFParticleVector &recoNeutrinoVector) const |
Obtain a vector of reco neutrinos. More... | |
void | PrintAllOutput (const MCTruthVector &mcTruthVector, const PFParticleVector &recoNeutrinoVector, const MCPrimaryMatchingMap &mcPrimaryMatchingMap) const |
Print all the raw matching output to screen. More... | |
void | PerformMatching (const MCPrimaryMatchingMap &mcPrimaryMatchingMap, MatchingDetailsMap &matchingDetailsMap) const |
Apply a well-defined matching procedure to the comprehensive matches in the provided mc primary matching map. More... | |
bool | GetStrongestPfoMatch (const MCPrimaryMatchingMap &mcPrimaryMatchingMap, IntSet &usedMCIds, IntSet &usedPfoIds, MatchingDetailsMap &matchingDetailsMap) const |
Get the strongest pfo match (most matched hits) between an available mc primary and an available pfo. More... | |
void | GetRemainingPfoMatches (const MCPrimaryMatchingMap &mcPrimaryMatchingMap, const IntSet &usedPfoIds, MatchingDetailsMap &matchingDetailsMap) const |
Get the best matches for any pfos left-over after the strong matching procedure. More... | |
void | PrintMatchingOutput (const MCPrimaryMatchingMap &mcPrimaryMatchingMap, const MatchingDetailsMap &matchingDetailsMap) const |
Print the results of the matching procedure. More... | |
bool | IsGoodMCPrimary (const SimpleMCPrimary &simpleMCPrimary) const |
Whether a provided mc primary passes selection, based on number of "good" hits. More... | |
bool | HasMatch (const SimpleMCPrimary &simpleMCPrimary, const SimpleMatchedPfoList &simpleMatchedPfoList, const MatchingDetailsMap &matchingDetailsMap) const |
Whether a provided mc primary has a match, of any quality (use simple matched pfo list and information in matching details map) More... | |
bool | IsGoodMatch (const SimpleMCPrimary &simpleMCPrimary, const SimpleMatchedPfo &simpleMatchedPfo) const |
Whether a provided mc primary and pfo are deemed to be a good match. More... | |
unsigned int | CountHitsByType (const geo::View_t view, const HitVector &hitVector) const |
Count the number of hits, in a provided vector, of a specified view. More... | |
Static Private Member Functions | |
static bool | SortSimpleMCPrimaries (const SimpleMCPrimary &lhs, const SimpleMCPrimary &rhs) |
Sort simple mc primaries by number of mc hits. More... | |
static bool | SortSimpleMatchedPfos (const SimpleMatchedPfo &lhs, const SimpleMatchedPfo &rhs) |
Sort simple matched pfos by number of matched hits. More... | |
Private Attributes | |
std::string | m_hitfinderLabel |
The name/label of the hit producer module. More... | |
std::string | m_particleLabel |
The name/label of the particle producer module. More... | |
std::string | m_geantModuleLabel |
The name/label of the geant module. More... | |
std::string | m_backtrackerLabel |
The name/label of the back-tracker module. More... | |
bool | m_printAllToScreen |
Whether to print all/raw matching details to screen. More... | |
bool | m_printMatchingToScreen |
Whether to print matching output to screen. More... | |
bool | m_neutrinoInducedOnly |
Whether to consider only mc particles that were neutrino induced. More... | |
int | m_matchingMinPrimaryHits |
The minimum number of good mc primary hits used in matching scheme. More... | |
int | m_matchingMinHitsForGoodView |
The minimum number of good mc primary hits in given view to declare view to be good. More... | |
int | m_matchingMinPrimaryGoodViews |
The minimum number of good views for a mc primary. More... | |
bool | m_useSmallPrimaries |
Whether to consider matches to mc primaries with fewer than m_matchingMinPrimaryHits. More... | |
int | m_matchingMinSharedHits |
The minimum number of shared hits used in matching scheme. More... | |
float | m_matchingMinCompleteness |
The minimum particle completeness to declare a match. More... | |
float | m_matchingMinPurity |
The minimum particle purity to declare a match. More... | |
Additional Inherited Members | |
Public Types inherited from art::EDAnalyzer | |
using | WorkerType = WorkerT< EDAnalyzer > |
using | ModuleType = EDAnalyzer |
Protected Member Functions inherited from art::Observer | |
std::string const & | processName () const |
bool | wantAllEvents () const noexcept |
bool | wantEvent (ScheduleID id, Event const &e) const |
Handle< TriggerResults > | getTriggerResults (Event const &e) const |
Observer (fhicl::ParameterSet const &config) | |
Observer (std::vector< std::string > const &select_paths, std::vector< std::string > const &reject_paths, fhicl::ParameterSet const &config) | |
Protected Member Functions inherited from art::ModuleBase | |
ConsumesCollector & | consumesCollector () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | consumes (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | consumesView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | consumesMany () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | mayConsume (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | mayConsumeView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | mayConsumeMany () |
PFParticleValidation class.
Definition at line 24 of file PFParticleValidation_module.cc.
|
private |
Definition at line 204 of file PFParticleValidation_module.cc.
|
private |
Definition at line 121 of file PFParticleValidation_module.cc.
|
private |
Definition at line 125 of file PFParticleValidation_module.cc.
|
private |
Definition at line 122 of file PFParticleValidation_module.cc.
|
private |
Definition at line 124 of file PFParticleValidation_module.cc.
|
private |
Definition at line 103 of file PFParticleValidation_module.cc.
Definition at line 76 of file PFParticleValidation_module.cc.
lar_pandora::PFParticleValidation::PFParticleValidation | ( | fhicl::ParameterSet const & | pset | ) |
Constructor.
pset |
Definition at line 336 of file PFParticleValidation_module.cc.
|
virtual |
void lar_pandora::PFParticleValidation::analyze | ( | const art::Event & | evt | ) |
Definition at line 382 of file PFParticleValidation_module.cc.
|
virtual |
Reimplemented from art::EDAnalyzer.
Definition at line 370 of file PFParticleValidation_module.cc.
|
private |
Count the number of hits, in a provided vector, of a specified view.
view | the view |
hitVector | the hit vector |
Definition at line 857 of file PFParticleValidation_module.cc.
|
virtual |
Reimplemented from art::EDAnalyzer.
Definition at line 376 of file PFParticleValidation_module.cc.
|
private |
Performing matching between true and reconstructed particles.
recoParticlesToHits | the mapping from reconstructed particles to hits |
trueParticlesToHits | the mapping from true particles to hits |
hitsToTrueParticles | the mapping from hits to true particles |
mcParticleMatchingMap | the output matches between all reconstructed and true particles |
Definition at line 434 of file PFParticleValidation_module.cc.
|
private |
Obtain a sorted list of matched pfos for each mc primary.
simpleMCPrimaryList | the simple mc primary list |
mcToFullPfoMatchingMap | the mc to full pfo matching map |
pfoToHitListMap | the pfo to hit list map |
mcPrimaryMatchingMap | to receive the populated mc primary matching map |
Definition at line 526 of file PFParticleValidation_module.cc.
|
private |
Obtain a vector of mc truth.
evt | the event |
mcNeutrinoVector | to receive the populated vector of mc truth |
Definition at line 603 of file PFParticleValidation_module.cc.
|
private |
Obtain a vector of reco neutrinos.
evt | the event |
recoNeutrinoVector | to receive the populated vector of reco neutrinos |
Definition at line 623 of file PFParticleValidation_module.cc.
|
private |
Get the best matches for any pfos left-over after the strong matching procedure.
mcPrimaryMatchingMap | the input/raw mc primary matching map |
usedPfoIds | the list of pfo ids with an existing match |
matchingDetailsMap | the matching details map, to be populated |
Definition at line 732 of file PFParticleValidation_module.cc.
|
private |
Extract details of each mc primary (ordered by number of true hits)
evt | the event |
mcParticlesToHits | the mc primary to hits map |
hitsToMCParticles | the hits to mc particles map |
mcParticleMatchingMap | the mc to particle to pf particle matching map (to record number of matched pf particles) |
simpleMCPrimaryList | to receive the populated simple mc primary list |
Definition at line 465 of file PFParticleValidation_module.cc.
|
private |
Get the strongest pfo match (most matched hits) between an available mc primary and an available pfo.
mcPrimaryMatchingMap | the input/raw mc primary matching map |
usedMCIds | the list of mc primary ids with an existing match |
usedPfoIds | the list of pfo ids with an existing match |
matchingDetailsMap | the matching details map, to be populated |
Definition at line 685 of file PFParticleValidation_module.cc.
|
private |
Whether a provided mc primary has a match, of any quality (use simple matched pfo list and information in matching details map)
simpleMCPrimary | the simple mc primary |
simpleMatchedPfoList | the list of simple matched pfos |
matchingDetailsMap | the matching details map |
Definition at line 833 of file PFParticleValidation_module.cc.
|
private |
Whether a provided mc primary and pfo are deemed to be a good match.
simpleMCPrimary | the simple mc primary |
simpleMatchedPfo | the simple matched pfo |
Definition at line 847 of file PFParticleValidation_module.cc.
|
private |
Whether a provided mc primary passes selection, based on number of "good" hits.
simpleMCPrimary | the simple mc primary |
Definition at line 815 of file PFParticleValidation_module.cc.
|
private |
Whether a mc particle is neutrino induced.
pMCParticle | address of the mc particle |
artMCParticlesToMCTruth | the mapping from mc particles to mc truth |
Definition at line 513 of file PFParticleValidation_module.cc.
|
private |
Apply a well-defined matching procedure to the comprehensive matches in the provided mc primary matching map.
mcPrimaryMatchingMap | the input/raw mc primary matching map |
matchingDetailsMap | the matching details map, to be populated |
Definition at line 673 of file PFParticleValidation_module.cc.
|
private |
Print all the raw matching output to screen.
mcTruthVector | the mc truth vector |
recoNeutrinoVector | the reco neutrino vector |
mcPrimaryMatchingMap | the input/raw mc primary matching map |
Definition at line 632 of file PFParticleValidation_module.cc.
|
private |
Print the results of the matching procedure.
mcPrimaryMatchingMap | the input/raw mc primary matching map |
matchingDetailsMap | the matching details map |
Definition at line 761 of file PFParticleValidation_module.cc.
void lar_pandora::PFParticleValidation::reconfigure | ( | fhicl::ParameterSet const & | pset | ) |
Definition at line 350 of file PFParticleValidation_module.cc.
|
staticprivate |
Sort simple matched pfos by number of matched hits.
lhs | the left-hand side |
rhs | the right-hand side |
Definition at line 882 of file PFParticleValidation_module.cc.
|
staticprivate |
Sort simple mc primaries by number of mc hits.
lhs | the left-hand side |
rhs | the right-hand side |
Definition at line 872 of file PFParticleValidation_module.cc.
|
private |
The name/label of the back-tracker module.
Definition at line 296 of file PFParticleValidation_module.cc.
|
private |
The name/label of the geant module.
Definition at line 295 of file PFParticleValidation_module.cc.
|
private |
The name/label of the hit producer module.
Definition at line 293 of file PFParticleValidation_module.cc.
|
private |
The minimum particle completeness to declare a match.
Definition at line 309 of file PFParticleValidation_module.cc.
|
private |
The minimum number of good mc primary hits in given view to declare view to be good.
Definition at line 304 of file PFParticleValidation_module.cc.
|
private |
The minimum number of good views for a mc primary.
Definition at line 305 of file PFParticleValidation_module.cc.
|
private |
The minimum number of good mc primary hits used in matching scheme.
Definition at line 303 of file PFParticleValidation_module.cc.
|
private |
The minimum particle purity to declare a match.
Definition at line 310 of file PFParticleValidation_module.cc.
|
private |
The minimum number of shared hits used in matching scheme.
Definition at line 308 of file PFParticleValidation_module.cc.
|
private |
Whether to consider only mc particles that were neutrino induced.
Definition at line 301 of file PFParticleValidation_module.cc.
|
private |
The name/label of the particle producer module.
Definition at line 294 of file PFParticleValidation_module.cc.
|
private |
Whether to print all/raw matching details to screen.
Definition at line 298 of file PFParticleValidation_module.cc.
|
private |
Whether to print matching output to screen.
Definition at line 299 of file PFParticleValidation_module.cc.
|
private |
Whether to consider matches to mc primaries with fewer than m_matchingMinPrimaryHits.
Definition at line 307 of file PFParticleValidation_module.cc.