LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
lar_pandora::LArPandoraEvent Class Reference

LArPandoraEvent class. More...

#include "LArPandoraEvent.h"

Classes

class  Labels
 Class to handle the required producer labels. More...
 

Public Member Functions

 LArPandoraEvent (art::EDProducer *pProducer, art::Event *pEvent, const Labels &inputLabels, const bool shouldProduceT0s=false, const size_t shift=100000)
 Constructor from an art::Event. More...
 
 LArPandoraEvent (const LArPandoraEvent &event, const PFParticleVector &selectedPFParticles)
 Construct by copying an existing LArPandoraEvent, replacing the collections and associations by any objects associated with a PFParticle in the selection supplied. More...
 
LArPandoraEvent FilterByPdgCode (const bool shouldProduceNeutrinos) const
 Produce a copy of the event keeping only the collections that are associated with a top-level particle whose Pdg code is a neutrino (non-neutrino) if shouldProduceNeutrinos is set to true (false) More...
 
LArPandoraEvent FilterByCRTag (const bool shouldProduceNeutrinos, const std::string &tagProducerLabel) const
 Produce a copy of the event keeping only the collections that are associated with a top-level particle that is not tagged as a neutrino (non-neutrino) if shouldProduceNeutrinos is set to true (false) More...
 
void WriteToEvent () const
 Write (put) the collections in this LArPandoraEvent to the art::Event. More...
 
LArPandoraEvent Merge (const LArPandoraEvent &other) const
 Merge collections from two events into one. More...
 
template<>
void WriteCollection (const std::vector< art::Ptr< recob::PFParticle > > &collection) const
 

Private Types

enum  Pdg { nue = 12, numu = 14, nutau = 16 }
 pdg enumeration More...
 

Private Member Functions

void GetCollections ()
 Get the collections and associations from m_pEvent with the required labels. More...
 
template<typename T >
void GetCollection (const Labels::LabelType &inputLabel, art::Handle< std::vector< T > > &outputHandle, std::vector< art::Ptr< T > > &outputCollection) const
 Gets a given collection from m_pEvent with the label supplied. More...
 
template<typename T , typename U >
void GetAssociationMap (const Labels::LabelType &inputLabel, art::Handle< std::vector< T > > &inputHandleT, std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &outputAssociationMap) const
 Get the mapping between two collections using the specified label. More...
 
void GetPFParticleHierarchy ()
 Get the mapping from PFParticles to their daughters. More...
 
void GetPrimaryPFParticles (PFParticleVector &primaryPFParticles) const
 Filters primary PFParticles from the m_pfParticles. More...
 
void GetFilteredParticlesByPdgCode (const bool shouldProduceNeutrinos, const PFParticleVector &inputPFParticles, PFParticleVector &outputPFParticles) const
 Filters PFParticles based on their Pdg from the inputPFParticles. More...
 
void GetFilteredParticlesByCRTag (const bool shouldProduceNeutrinos, const std::string &tagProducerLabel, const PFParticleVector &inputPFParticles, PFParticleVector &outputPFParticles) const
 Filters PFParticles based on their Pdg from the inputPFParticles. More...
 
void GetFilteredHierarchyMap (const PFParticleVector &filteredParticles, const PFParticlesToPFParticles &unfilteredPFParticleDaughterMap, PFParticlesToPFParticles &outputPFParticleDaughterMap) const
 Filters the hierarchy map using a given vector of filteredParticles. More...
 
void GetIdToPFParticleMap (std::map< size_t, art::Ptr< recob::PFParticle > > &idToPFParticleMap) const
 Produce a mapping between PFParticles and their ID. More...
 
void GetDownstreamPFParticles (const PFParticleVector &inputPFParticles, PFParticleVector &downstreamPFParticles) const
 Get particles downstream of any particle in an input vector. More...
 
void GetDownstreamPFParticles (const art::Ptr< recob::PFParticle > &part, PFParticleVector &downstreamPFParticles) const
 Get particles downstream of a supplied particle. More...
 
void FillPFParticleToOriginIdMap (const std::map< art::Ptr< recob::PFParticle >, unsigned int > &existingMap)
 Fills the PFParticleToOriginIdMap using an existing map from another LArPandoraEvent. More...
 
template<typename T , typename U >
void CollectAssociated (const art::Ptr< T > &anObject, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationTtoU, std::vector< art::Ptr< U > > &associatedU) const
 Collects all objects of type U associated to a given object of type T. More...
 
template<typename T , typename U >
void GetFilteredAssociationMap (const std::vector< art::Ptr< T > > &collectionT, const std::vector< art::Ptr< U > > &collectionU, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &inputAssociationTtoU, std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &outputAssociationTtoU) const
 Gets the mapping between two filtered collections. More...
 
template<typename T >
void WriteCollection (const std::vector< art::Ptr< T > > &collection) const
 Write a given collection to the event. More...
 
template<typename T , typename U >
void WriteAssociation (const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationMap, const std::vector< art::Ptr< T > > &collectionT, const std::vector< art::Ptr< U > > &collectionU, const bool thisProducesU=true) const
 Write a given association to the event. More...
 
void MergePFParticleToOriginIdMap (std::map< art::Ptr< recob::PFParticle >, unsigned int > &mapToMerge, const std::map< art::Ptr< recob::PFParticle >, unsigned int > &mapToAdd) const
 Merge two PFParticle to origin ID maps ensuring no ID collisions. More...
 
template<typename T >
void MergeCollection (std::vector< art::Ptr< T > > &collectionToMerge, const std::vector< art::Ptr< T > > &collection) const
 Append a collection onto an other collection. More...
 
template<typename T , typename U >
void MergeAssociation (std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationToMerge, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &association) const
 Append an association to another association. More...
 

Private Attributes

art::EDProducerm_pProducer
 The producer which should write the output collections and associations. More...
 
art::Eventm_pEvent
 The event to consider. More...
 
Labels m_labels
 A set of labels describing the producers for each input collection. More...
 
std::map< art::Ptr< recob::PFParticle >, unsigned int > m_pfParticleToOriginIdMap
 Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep track of merges) More...
 
bool m_shouldProduceT0s
 If T0s should be produced (usually only true for use cases with multiple drift volumes) More...
 
const size_t m_shift
 Amount by which to shift PFParticle IDs when merging two reconstructions of the same event. More...
 
PFParticleVector m_pfParticles
 The input collection of PFParticles. More...
 
SpacePointVector m_spacePoints
 The input collection of SpacePoints. More...
 
ClusterVector m_clusters
 The input collection of Clusters. More...
 
VertexVector m_vertices
 The input collection of Vertices. More...
 
TrackVector m_tracks
 The input collection of Tracks. More...
 
ShowerVector m_showers
 The input collection of Showers. More...
 
T0Vector m_t0s
 The input collection of T0s. More...
 
MetadataVector m_metadata
 The input collection of PFParticle metadata. More...
 
PCAxisVector m_pcAxes
 The input collection of PCAxes. More...
 
HitVector m_hits
 The input collection of Hits. More...
 
PFParticlesToSpacePoints m_pfParticleSpacePointMap
 The input associations: PFParticle -> SpacePoint. More...
 
PFParticlesToClusters m_pfParticleClusterMap
 The input associations: PFParticle -> Cluster. More...
 
PFParticlesToVertices m_pfParticleVertexMap
 The input associations: PFParticle -> Vertex. More...
 
PFParticlesToTracks m_pfParticleTrackMap
 The input associations: PFParticle -> Track. More...
 
PFParticlesToShowers m_pfParticleShowerMap
 The input associations: PFParticle -> Shower. More...
 
PFParticlesToT0s m_pfParticleT0Map
 The input associations: PFParticle -> T0. More...
 
PFParticlesToMetadata m_pfParticleMetadataMap
 The input associations: PFParticle -> Metadata. More...
 
PFParticlesToPCAxes m_pfParticlePCAxisMap
 The input associations: PFParticle -> PCAxis. More...
 
SpacePointsToHitVector m_spacePointHitMap
 The input associations: SpacePoint -> Hit. More...
 
ClustersToHits m_clusterHitMap
 The input associations: Cluster -> Hit. More...
 
TracksToHits m_trackHitMap
 The input associations: Track -> Hit. More...
 
ShowersToHits m_showerHitMap
 The input associations: Shower -> Hit. More...
 
ShowersToPCAxes m_showerPCAxisMap
 The input associations: PCAxis -> Shower. More...
 
PFParticlesToPFParticles m_pfParticleDaughterMap
 The mapping from parent to daughter PFParticles. More...
 

Detailed Description

LArPandoraEvent class.

Definition at line 48 of file LArPandoraEvent.h.

Member Enumeration Documentation

pdg enumeration

Enumerator
nue 
numu 
nutau 

Definition at line 181 of file LArPandoraEvent.h.

Constructor & Destructor Documentation

lar_pandora::LArPandoraEvent::LArPandoraEvent ( art::EDProducer pProducer,
art::Event pEvent,
const Labels inputLabels,
const bool  shouldProduceT0s = false,
const size_t  shift = 100000 
)

Constructor from an art::Event.

Parameters
pProducerpointer to the producer to write the output
pEventpointer to the event to process
inputLabellabels for the producers of the input collections
shouldProduceT0sif T0s should be produced (usually only for multiple drift volume use cases)
shiftamount by which to shift PFParticle IDs when merging

Definition at line 12 of file LArPandoraEvent.cxx.

References GetCollections(), m_pfParticles, m_pfParticleToOriginIdMap, and part.

12  :
13  m_pProducer(pProducer),
14  m_pEvent(pEvent),
15  m_labels(inputLabels),
16  m_shouldProduceT0s(shouldProduceT0s),
17  m_shift(shift)
18 {
19  this->GetCollections();
20 
22  {
23  if (!m_pfParticleToOriginIdMap.insert(std::map< art::Ptr< recob::PFParticle >, unsigned int >::value_type(part, 0)).second)
24  throw cet::exception("LArPandora") << " LArPandoraEvent::LArPandoraEvent -- Repeated input PFParticles!" << std::endl;
25  }
26 }
void GetCollections()
Get the collections and associations from m_pEvent with the required labels.
std::map< art::Ptr< recob::PFParticle >, unsigned int > m_pfParticleToOriginIdMap
Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep tr...
TString part[npart]
Definition: Style.C:32
art::Event * m_pEvent
The event to consider.
PFParticleVector m_pfParticles
The input collection of PFParticles.
art::EDProducer * m_pProducer
The producer which should write the output collections and associations.
Labels m_labels
A set of labels describing the producers for each input collection.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
const size_t m_shift
Amount by which to shift PFParticle IDs when merging two reconstructions of the same event...
bool m_shouldProduceT0s
If T0s should be produced (usually only true for use cases with multiple drift volumes) ...
lar_pandora::LArPandoraEvent::LArPandoraEvent ( const LArPandoraEvent event,
const PFParticleVector selectedPFParticles 
)

Construct by copying an existing LArPandoraEvent, replacing the collections and associations by any objects associated with a PFParticle in the selection supplied.

Parameters
eventinput event to copy and filter
pfParticleVectorinput vector of selected particles

Definition at line 30 of file LArPandoraEvent.cxx.

References CollectAssociated(), FillPFParticleToOriginIdMap(), GetFilteredAssociationMap(), GetFilteredHierarchyMap(), m_clusterHitMap, m_clusters, m_hits, m_metadata, m_pcAxes, m_pfParticleClusterMap, m_pfParticleDaughterMap, m_pfParticleMetadataMap, m_pfParticlePCAxisMap, m_pfParticles, m_pfParticleShowerMap, m_pfParticleSpacePointMap, m_pfParticleT0Map, m_pfParticleToOriginIdMap, m_pfParticleTrackMap, m_pfParticleVertexMap, m_shouldProduceT0s, m_showerHitMap, m_showerPCAxisMap, m_showers, m_spacePointHitMap, m_spacePoints, m_t0s, m_trackHitMap, m_tracks, m_vertices, and part.

30  :
31  m_pProducer(event.m_pProducer),
32  m_pEvent(event.m_pEvent),
33  m_labels(event.m_labels),
34  m_shouldProduceT0s(event.m_shouldProduceT0s),
35  m_shift(event.m_shift),
36  m_hits(event.m_hits)
37 {
38  m_pfParticles = selectedPFParticles;
39  this->FillPFParticleToOriginIdMap(event.m_pfParticleToOriginIdMap);
40 
41  for (art::Ptr< recob::PFParticle > part : selectedPFParticles)
42  {
43  this->CollectAssociated(part, event.m_pfParticleSpacePointMap, m_spacePoints);
44  this->CollectAssociated(part, event.m_pfParticleClusterMap, m_clusters);
45  this->CollectAssociated(part, event.m_pfParticleVertexMap, m_vertices);
46  this->CollectAssociated(part, event.m_pfParticleTrackMap, m_tracks);
47  this->CollectAssociated(part, event.m_pfParticleShowerMap, m_showers);
48  this->CollectAssociated(part, event.m_pfParticlePCAxisMap, m_pcAxes);
49  this->CollectAssociated(part, event.m_pfParticleMetadataMap, m_metadata);
50 
52  this->CollectAssociated(part, event.m_pfParticleT0Map, m_t0s);
53  }
54 
62  this->GetFilteredAssociationMap(m_spacePoints, event.m_hits, event.m_spacePointHitMap, m_spacePointHitMap);
63  this->GetFilteredAssociationMap(m_clusters, event.m_hits, event.m_clusterHitMap, m_clusterHitMap);
64  this->GetFilteredAssociationMap(m_tracks, event.m_hits, event.m_trackHitMap, m_trackHitMap);
65  this->GetFilteredAssociationMap(m_showers, event.m_hits, event.m_showerHitMap, m_showerHitMap);
67 
68  this->GetFilteredHierarchyMap(selectedPFParticles, event.m_pfParticleDaughterMap, m_pfParticleDaughterMap);
69 }
ShowersToHits m_showerHitMap
The input associations: Shower -> Hit.
void GetFilteredAssociationMap(const std::vector< art::Ptr< T > > &collectionT, const std::vector< art::Ptr< U > > &collectionU, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &inputAssociationTtoU, std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &outputAssociationTtoU) const
Gets the mapping between two filtered collections.
SpacePointVector m_spacePoints
The input collection of SpacePoints.
MetadataVector m_metadata
The input collection of PFParticle metadata.
ShowerVector m_showers
The input collection of Showers.
ClustersToHits m_clusterHitMap
The input associations: Cluster -> Hit.
PFParticlesToVertices m_pfParticleVertexMap
The input associations: PFParticle -> Vertex.
PFParticlesToMetadata m_pfParticleMetadataMap
The input associations: PFParticle -> Metadata.
ShowersToPCAxes m_showerPCAxisMap
The input associations: PCAxis -> Shower.
void FillPFParticleToOriginIdMap(const std::map< art::Ptr< recob::PFParticle >, unsigned int > &existingMap)
Fills the PFParticleToOriginIdMap using an existing map from another LArPandoraEvent.
VertexVector m_vertices
The input collection of Vertices.
PFParticlesToPFParticles m_pfParticleDaughterMap
The mapping from parent to daughter PFParticles.
HitVector m_hits
The input collection of Hits.
PFParticlesToSpacePoints m_pfParticleSpacePointMap
The input associations: PFParticle -> SpacePoint.
TString part[npart]
Definition: Style.C:32
TrackVector m_tracks
The input collection of Tracks.
PFParticlesToTracks m_pfParticleTrackMap
The input associations: PFParticle -> Track.
art::Event * m_pEvent
The event to consider.
void GetFilteredHierarchyMap(const PFParticleVector &filteredParticles, const PFParticlesToPFParticles &unfilteredPFParticleDaughterMap, PFParticlesToPFParticles &outputPFParticleDaughterMap) const
Filters the hierarchy map using a given vector of filteredParticles.
T0Vector m_t0s
The input collection of T0s.
PCAxisVector m_pcAxes
The input collection of PCAxes.
SpacePointsToHitVector m_spacePointHitMap
The input associations: SpacePoint -> Hit.
ClusterVector m_clusters
The input collection of Clusters.
PFParticleVector m_pfParticles
The input collection of PFParticles.
art::EDProducer * m_pProducer
The producer which should write the output collections and associations.
void CollectAssociated(const art::Ptr< T > &anObject, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationTtoU, std::vector< art::Ptr< U > > &associatedU) const
Collects all objects of type U associated to a given object of type T.
TracksToHits m_trackHitMap
The input associations: Track -> Hit.
Labels m_labels
A set of labels describing the producers for each input collection.
PFParticlesToPCAxes m_pfParticlePCAxisMap
The input associations: PFParticle -> PCAxis.
PFParticlesToClusters m_pfParticleClusterMap
The input associations: PFParticle -> Cluster.
Event finding and building.
const size_t m_shift
Amount by which to shift PFParticle IDs when merging two reconstructions of the same event...
bool m_shouldProduceT0s
If T0s should be produced (usually only true for use cases with multiple drift volumes) ...
PFParticlesToShowers m_pfParticleShowerMap
The input associations: PFParticle -> Shower.

Member Function Documentation

template<typename T , typename U >
void lar_pandora::LArPandoraEvent::CollectAssociated ( const art::Ptr< T > &  anObject,
const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  associationTtoU,
std::vector< art::Ptr< U > > &  associatedU 
) const
inlineprivate

Collects all objects of type U associated to a given object of type T.

Parameters
anObjectan input object of type T with which we want to collect associated objects of type U
associationTtoUthe general input association between objects of type U and T
associatedUoutput vector of objects of type U associated with anObject

Definition at line 439 of file LArPandoraEvent.h.

Referenced by LArPandoraEvent().

441 {
442  if (associationTtoU.find(anObject) == associationTtoU.end())
443  throw cet::exception("LArPandora") << " LArPandoraEvent::CollectAssociated -- Can not find association for object supplied." << std::endl;
444 
445  std::vector<art::Ptr<U> > associatedObjects = associationTtoU.at(anObject);
446  associatedU.insert(associatedU.end(), associatedObjects.begin(), associatedObjects.end());
447 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::FillPFParticleToOriginIdMap ( const std::map< art::Ptr< recob::PFParticle >, unsigned int > &  existingMap)
private

Fills the PFParticleToOriginIdMap using an existing map from another LArPandoraEvent.

Parameters
existingMapinput map from PFParticles to origin IDs

Definition at line 358 of file LArPandoraEvent.cxx.

References m_pfParticles, m_pfParticleToOriginIdMap, and part.

Referenced by LArPandoraEvent().

359 {
361  {
362  if (existingMap.find(part) == existingMap.end())
363  throw cet::exception("LArPandora") << " LArPandoraEvent::FillPFParticleToOriginIdMap -- Can't access map entry for PFParticle supplied." << std::endl;
364 
365  if (!m_pfParticleToOriginIdMap.insert(std::map< art::Ptr< recob::PFParticle >, unsigned int >::value_type(part, existingMap.at(part))).second)
366  throw cet::exception("LArPandora") << " LArPandoraEvent::FillPFParticleToOriginIdMap -- Can't add multiple map entries for same PFParticle" << std::endl;
367  }
368 }
std::map< art::Ptr< recob::PFParticle >, unsigned int > m_pfParticleToOriginIdMap
Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep tr...
TString part[npart]
Definition: Style.C:32
PFParticleVector m_pfParticles
The input collection of PFParticles.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
LArPandoraEvent lar_pandora::LArPandoraEvent::FilterByCRTag ( const bool  shouldProduceNeutrinos,
const std::string &  tagProducerLabel 
) const

Produce a copy of the event keeping only the collections that are associated with a top-level particle that is not tagged as a neutrino (non-neutrino) if shouldProduceNeutrinos is set to true (false)

Parameters
shouldProduceNeutrinosif the returned event should contain neutrinos (or non-neutrinos)
tagProducerLabellabel for the producer of the CRTags

Definition at line 91 of file LArPandoraEvent.cxx.

References GetDownstreamPFParticles(), GetFilteredParticlesByCRTag(), and GetPrimaryPFParticles().

Referenced by lar_pandora::CollectionMerging::produce().

92 {
93  PFParticleVector primaryPFParticles;
94  this->GetPrimaryPFParticles(primaryPFParticles);
95 
96  PFParticleVector filteredPFParticles;
97  this->GetFilteredParticlesByCRTag(shouldProduceNeutrinos, tagProducerLabel, primaryPFParticles, filteredPFParticles);
98 
99  PFParticleVector selectedPFParticles;
100  this->GetDownstreamPFParticles(filteredPFParticles, selectedPFParticles);
101 
102  LArPandoraEvent filteredEvent(*this, selectedPFParticles);
103 
104  return filteredEvent;
105 }
LArPandoraEvent(art::EDProducer *pProducer, art::Event *pEvent, const Labels &inputLabels, const bool shouldProduceT0s=false, const size_t shift=100000)
Constructor from an art::Event.
std::vector< art::Ptr< recob::PFParticle > > PFParticleVector
void GetFilteredParticlesByCRTag(const bool shouldProduceNeutrinos, const std::string &tagProducerLabel, const PFParticleVector &inputPFParticles, PFParticleVector &outputPFParticles) const
Filters PFParticles based on their Pdg from the inputPFParticles.
void GetDownstreamPFParticles(const PFParticleVector &inputPFParticles, PFParticleVector &downstreamPFParticles) const
Get particles downstream of any particle in an input vector.
void GetPrimaryPFParticles(PFParticleVector &primaryPFParticles) const
Filters primary PFParticles from the m_pfParticles.
LArPandoraEvent lar_pandora::LArPandoraEvent::FilterByPdgCode ( const bool  shouldProduceNeutrinos) const

Produce a copy of the event keeping only the collections that are associated with a top-level particle whose Pdg code is a neutrino (non-neutrino) if shouldProduceNeutrinos is set to true (false)

Parameters
shouldProduceNeutrinosif the returned event should contain neutrinos (or non-neutrinos)

Definition at line 73 of file LArPandoraEvent.cxx.

References GetDownstreamPFParticles(), GetFilteredParticlesByPdgCode(), and GetPrimaryPFParticles().

Referenced by lar_pandora::CollectionSplitting::produce().

74 {
75  PFParticleVector primaryPFParticles;
76  this->GetPrimaryPFParticles(primaryPFParticles);
77 
78  PFParticleVector filteredPFParticles;
79  this->GetFilteredParticlesByPdgCode(shouldProduceNeutrinos, primaryPFParticles, filteredPFParticles);
80 
81  PFParticleVector selectedPFParticles;
82  this->GetDownstreamPFParticles(filteredPFParticles, selectedPFParticles);
83 
84  LArPandoraEvent filteredEvent(*this, selectedPFParticles);
85 
86  return filteredEvent;
87 }
LArPandoraEvent(art::EDProducer *pProducer, art::Event *pEvent, const Labels &inputLabels, const bool shouldProduceT0s=false, const size_t shift=100000)
Constructor from an art::Event.
std::vector< art::Ptr< recob::PFParticle > > PFParticleVector
void GetFilteredParticlesByPdgCode(const bool shouldProduceNeutrinos, const PFParticleVector &inputPFParticles, PFParticleVector &outputPFParticles) const
Filters PFParticles based on their Pdg from the inputPFParticles.
void GetDownstreamPFParticles(const PFParticleVector &inputPFParticles, PFParticleVector &downstreamPFParticles) const
Get particles downstream of any particle in an input vector.
void GetPrimaryPFParticles(PFParticleVector &primaryPFParticles) const
Filters primary PFParticles from the m_pfParticles.
template<typename T , typename U >
void lar_pandora::LArPandoraEvent::GetAssociationMap ( const Labels::LabelType inputLabel,
art::Handle< std::vector< T > > &  inputHandleT,
std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  outputAssociationMap 
) const
inlineprivate

Get the mapping between two collections using the specified label.

Parameters
inputLabela label for the producer of the association required
inputHandleTthe input art Handle to the first collection
outputAssociationMapoutput mapping between the two data types supplied (T -> U)

Definition at line 416 of file LArPandoraEvent.h.

References art::Ptr< T >::key(), lar_pandora::LArPandoraEvent::Labels::m_labels, m_pEvent, and lar::dump::vector().

Referenced by GetCollections().

418 {
419  art::FindManyP< U > assoc(inputHandleT, (*m_pEvent), m_labels.GetLabel(inputLabel));
420 
421  for (unsigned int iT = 0; iT < inputHandleT->size(); iT++)
422  {
423  art::Ptr<T> objectT(inputHandleT, iT);
424 
425  if (outputAssociationMap.find(objectT) == outputAssociationMap.end())
426  {
427  std::vector< art::Ptr< U > > emptyVect;
428  outputAssociationMap.insert(typename std::map< art::Ptr< T >, std::vector< art::Ptr< U > > >::value_type(objectT, emptyVect));
429  }
430 
431  for (art::Ptr<U> objectU : assoc.at(objectT.key()))
432  outputAssociationMap[objectT].push_back(objectU);
433  }
434 }
const std::string & GetLabel(const LabelType &type) const
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:265
art::Event * m_pEvent
The event to consider.
Labels m_labels
A set of labels describing the producers for each input collection.
Definition: fwd.h:25
template<typename T >
void lar_pandora::LArPandoraEvent::GetCollection ( const Labels::LabelType inputLabel,
art::Handle< std::vector< T > > &  outputHandle,
std::vector< art::Ptr< T > > &  outputCollection 
) const
inlineprivate

Gets a given collection from m_pEvent with the label supplied.

Parameters
inputLabela label for the producer of the collection required
outputHandlethe output art Handle to required collection
outputCollectionthe required collection

Definition at line 402 of file LArPandoraEvent.h.

References art::DataViewImpl::getByLabel(), lar_pandora::LArPandoraEvent::Labels::m_labels, and m_pEvent.

Referenced by GetCollections().

403 {
404  m_pEvent->getByLabel(m_labels.GetLabel(inputLabel), outputHandle);
405 
406  for (unsigned int i = 0; i != outputHandle->size(); i++)
407  {
408  art::Ptr< T > object(outputHandle, i);
409  outputCollection.push_back(object);
410  }
411 }
const std::string & GetLabel(const LabelType &type) const
art::Event * m_pEvent
The event to consider.
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
Labels m_labels
A set of labels describing the producers for each input collection.
Definition: fwd.h:25
void lar_pandora::LArPandoraEvent::GetCollections ( )
private

Get the collections and associations from m_pEvent with the required labels.

Definition at line 186 of file LArPandoraEvent.cxx.

References lar_pandora::LArPandoraEvent::Labels::ClusterLabel, lar_pandora::LArPandoraEvent::Labels::ClusterToHitLabel, GetAssociationMap(), GetCollection(), GetPFParticleHierarchy(), lar_pandora::LArPandoraEvent::Labels::HitLabel, m_clusterHitMap, m_clusters, m_hits, m_metadata, m_pcAxes, m_pfParticleClusterMap, m_pfParticleMetadataMap, m_pfParticlePCAxisMap, m_pfParticles, m_pfParticleShowerMap, m_pfParticleSpacePointMap, m_pfParticleT0Map, m_pfParticleTrackMap, m_pfParticleVertexMap, m_shouldProduceT0s, m_showerHitMap, m_showerPCAxisMap, m_showers, m_spacePointHitMap, m_spacePoints, m_t0s, m_trackHitMap, m_tracks, m_vertices, lar_pandora::LArPandoraEvent::Labels::PCAxisLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleMetadataLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToClusterLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToMetadataLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToPCAxisLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToShowerLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToSpacePointLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToT0Label, lar_pandora::LArPandoraEvent::Labels::PFParticleToTrackLabel, lar_pandora::LArPandoraEvent::Labels::PFParticleToVertexLabel, lar_pandora::LArPandoraEvent::Labels::ShowerLabel, lar_pandora::LArPandoraEvent::Labels::ShowerToHitLabel, lar_pandora::LArPandoraEvent::Labels::ShowerToPCAxisLabel, lar_pandora::LArPandoraEvent::Labels::SpacePointLabel, lar_pandora::LArPandoraEvent::Labels::SpacePointToHitLabel, lar_pandora::LArPandoraEvent::Labels::T0Label, lar_pandora::LArPandoraEvent::Labels::TrackLabel, lar_pandora::LArPandoraEvent::Labels::TrackToHitLabel, and lar_pandora::LArPandoraEvent::Labels::VertexLabel.

Referenced by LArPandoraEvent().

187 {
197 
198  this->GetCollection(Labels::PFParticleLabel, pfParticleHandle, m_pfParticles);
199  this->GetCollection(Labels::SpacePointLabel, spacePointHandle, m_spacePoints);
200  this->GetCollection(Labels::ClusterLabel, clusterHandle, m_clusters);
201  this->GetCollection(Labels::VertexLabel, vertexHandle, m_vertices);
202  this->GetCollection(Labels::TrackLabel, trackHandle, m_tracks);
203  this->GetCollection(Labels::ShowerLabel, showerHandle, m_showers);
204  this->GetCollection(Labels::PCAxisLabel, pcAxisHandle, m_pcAxes);
206  this->GetCollection(Labels::HitLabel, hitHandle, m_hits);
207 
220 
221  if (m_shouldProduceT0s)
222  {
224  this->GetCollection(Labels::T0Label, t0Handle, m_t0s);
226  }
227 
228  this->GetPFParticleHierarchy();
229 }
void GetPFParticleHierarchy()
Get the mapping from PFParticles to their daughters.
ShowersToHits m_showerHitMap
The input associations: Shower -> Hit.
SpacePointVector m_spacePoints
The input collection of SpacePoints.
MetadataVector m_metadata
The input collection of PFParticle metadata.
ShowerVector m_showers
The input collection of Showers.
ClustersToHits m_clusterHitMap
The input associations: Cluster -> Hit.
PFParticlesToVertices m_pfParticleVertexMap
The input associations: PFParticle -> Vertex.
PFParticlesToMetadata m_pfParticleMetadataMap
The input associations: PFParticle -> Metadata.
ShowersToPCAxes m_showerPCAxisMap
The input associations: PCAxis -> Shower.
void GetAssociationMap(const Labels::LabelType &inputLabel, art::Handle< std::vector< T > > &inputHandleT, std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &outputAssociationMap) const
Get the mapping between two collections using the specified label.
void GetCollection(const Labels::LabelType &inputLabel, art::Handle< std::vector< T > > &outputHandle, std::vector< art::Ptr< T > > &outputCollection) const
Gets a given collection from m_pEvent with the label supplied.
VertexVector m_vertices
The input collection of Vertices.
HitVector m_hits
The input collection of Hits.
PFParticlesToT0s m_pfParticleT0Map
The input associations: PFParticle -> T0.
PFParticlesToSpacePoints m_pfParticleSpacePointMap
The input associations: PFParticle -> SpacePoint.
TrackVector m_tracks
The input collection of Tracks.
PFParticlesToTracks m_pfParticleTrackMap
The input associations: PFParticle -> Track.
T0Vector m_t0s
The input collection of T0s.
PCAxisVector m_pcAxes
The input collection of PCAxes.
SpacePointsToHitVector m_spacePointHitMap
The input associations: SpacePoint -> Hit.
ClusterVector m_clusters
The input collection of Clusters.
PFParticleVector m_pfParticles
The input collection of PFParticles.
TracksToHits m_trackHitMap
The input associations: Track -> Hit.
PFParticlesToPCAxes m_pfParticlePCAxisMap
The input associations: PFParticle -> PCAxis.
PFParticlesToClusters m_pfParticleClusterMap
The input associations: PFParticle -> Cluster.
bool m_shouldProduceT0s
If T0s should be produced (usually only true for use cases with multiple drift volumes) ...
PFParticlesToShowers m_pfParticleShowerMap
The input associations: PFParticle -> Shower.
void lar_pandora::LArPandoraEvent::GetDownstreamPFParticles ( const PFParticleVector inputPFParticles,
PFParticleVector downstreamPFParticles 
) const
private

Get particles downstream of any particle in an input vector.

Parameters
inputPFParticlesinput vector of PFParticles
downstreamPFParticlesoutput vector of PFParticles downstream of those in the input vector

Definition at line 336 of file LArPandoraEvent.cxx.

References part.

Referenced by FilterByCRTag(), FilterByPdgCode(), and GetDownstreamPFParticles().

337 {
338  for (art::Ptr<recob::PFParticle> part : inputPFParticles)
339  this->GetDownstreamPFParticles(part, downstreamPFParticles);
340 }
TString part[npart]
Definition: Style.C:32
void GetDownstreamPFParticles(const PFParticleVector &inputPFParticles, PFParticleVector &downstreamPFParticles) const
Get particles downstream of any particle in an input vector.
void lar_pandora::LArPandoraEvent::GetDownstreamPFParticles ( const art::Ptr< recob::PFParticle > &  part,
PFParticleVector downstreamPFParticles 
) const
private

Get particles downstream of a supplied particle.

Parameters
partinput PFParticles
downstreamPFParticlesoutput vector of PFParticles downstream of part

Definition at line 344 of file LArPandoraEvent.cxx.

References GetDownstreamPFParticles(), m_pfParticleDaughterMap, and part.

345 {
346  if (m_pfParticleDaughterMap.find(part) == m_pfParticleDaughterMap.end())
347  throw cet::exception("LArPandora") << " LArPandoraEvent::GetDownstreamPFParticles -- Could not find PFParticle in the hierarchy map" << std::endl;
348 
349  if (std::find(downstreamPFParticles.begin(), downstreamPFParticles.end(), part) == downstreamPFParticles.end())
350  downstreamPFParticles.push_back(part);
351 
352  for (const art::Ptr< recob::PFParticle > & daughter : m_pfParticleDaughterMap.at(part))
353  this->GetDownstreamPFParticles(daughter, downstreamPFParticles);
354 }
PFParticlesToPFParticles m_pfParticleDaughterMap
The mapping from parent to daughter PFParticles.
TString part[npart]
Definition: Style.C:32
void GetDownstreamPFParticles(const PFParticleVector &inputPFParticles, PFParticleVector &downstreamPFParticles) const
Get particles downstream of any particle in an input vector.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename T , typename U >
void lar_pandora::LArPandoraEvent::GetFilteredAssociationMap ( const std::vector< art::Ptr< T > > &  collectionT,
const std::vector< art::Ptr< U > > &  collectionU,
const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  inputAssociationTtoU,
std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  outputAssociationTtoU 
) const
inlineprivate

Gets the mapping between two filtered collections.

Parameters
collectionTa first filtered collection
collectionUa second filtered collection
inputAssociationTtoUmapping between the two unfiltered collections
outputAssociationTtoUmapping between the two filtered collections
Returns
mapping between the filtered collections

Definition at line 452 of file LArPandoraEvent.h.

References lar::dump::vector().

Referenced by LArPandoraEvent().

454 {
455  for (art::Ptr< T > objectT : collectionT)
456  {
457  std::vector<art::Ptr<U> > emptyVector;
458  if (!outputAssociationTtoU.insert(typename std::map<art::Ptr<T>, std::vector<art::Ptr<U> > >::value_type(objectT, emptyVector)).second)
459  throw cet::exception("LArPandora") << " LArPandoraEvent::GetFilteredAssociationMap -- Can not have multiple association map entries for a single object." << std::endl;
460 
461  for (art::Ptr< U > objectU : inputAssociationTtoU.at(objectT))
462  {
463  typename std::vector<art::Ptr<U> >::const_iterator associatedObjectIter = std::find(collectionU.begin(), collectionU.end(), objectU);
464  if (associatedObjectIter == collectionU.end())
465  continue;
466 
467  outputAssociationTtoU[objectT].push_back(objectU);
468  }
469  }
470 }
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:265
Definition: fwd.h:25
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::GetFilteredHierarchyMap ( const PFParticleVector filteredParticles,
const PFParticlesToPFParticles unfilteredPFParticleDaughterMap,
PFParticlesToPFParticles outputPFParticleDaughterMap 
) const
private

Filters the hierarchy map using a given vector of filteredParticles.

Parameters
filteredParticlesinput PFParticles that have already been filtered
unfilteredPFParticleDaughterMapinput hierarchy map to filter
outputPFParticleDaughterMapoutput filtered hierarchy map

Definition at line 311 of file LArPandoraEvent.cxx.

Referenced by LArPandoraEvent().

313 {
314  for (PFParticlesToPFParticles::const_iterator it = unfilteredPFParticleDaughterMap.begin(); it != unfilteredPFParticleDaughterMap.end(); ++it)
315  {
316  if (std::find(filteredParticles.begin(), filteredParticles.end(), it->first) == filteredParticles.end()) continue;
317 
318  if (! outputPFParticleDaughterMap.insert(PFParticlesToPFParticles::value_type(it->first, it->second)).second)
319  throw cet::exception("LArPandora") << " LArPandoraEvent::GetFilteredHierarchyMap -- Can't add multiple map entries for same PFParticle" << std::endl;
320  }
321 }
intermediate_table::const_iterator const_iterator
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::GetFilteredParticlesByCRTag ( const bool  shouldProduceNeutrinos,
const std::string &  tagProducerLabel,
const PFParticleVector inputPFParticles,
PFParticleVector outputPFParticles 
) const
private

Filters PFParticles based on their Pdg from the inputPFParticles.

Parameters
shouldProduceNeutrinosif the filtered particle vector should contain neutrinos (or non-neutrinos)
tagProducerLabelthe label for the producer of the CR tags
inputPFParticlesinput vector of PFParticles
filteredPFParticlesoutput vector of filtered PFParticles

Definition at line 285 of file LArPandoraEvent.cxx.

References anab::CosmicTag::CosmicType(), art::DataViewImpl::getByLabel(), lar_pandora::LArPandoraEvent::Labels::GetLabel(), anab::kNotTagged, m_labels, m_pEvent, part, and lar_pandora::LArPandoraEvent::Labels::PFParticleLabel.

Referenced by FilterByCRTag().

287 {
288 
291 
292  art::FindManyP< anab::CosmicTag > pfParticleTagAssoc(pfParticleHandle, *m_pEvent, tagProducerLabel);
293 
294  for (art::Ptr< recob::PFParticle > part : inputPFParticles)
295  {
296  const CosmicTagVector cosmicTags = pfParticleTagAssoc.at(part.key());
297 
298  if (cosmicTags.size() != 1)
299  throw cet::exception("LArPandora") << " LArPandoraEvent::GetFilteredParticlesByCRTag -- Found " << cosmicTags.size() << " CR tags for a PFParticle (require 1)." << std::endl;
300 
301  art::Ptr< anab::CosmicTag > cosmicTag = cosmicTags.front();
302  bool isNeutrino = (cosmicTag->CosmicType() == anab::kNotTagged);
303 
304  if ((shouldProduceNeutrinos && isNeutrino) || (!shouldProduceNeutrinos && !isNeutrino))
305  outputPFParticles.push_back(part);
306  }
307 }
const std::string & GetLabel(const LabelType &type) const
TString part[npart]
Definition: Style.C:32
art::Event * m_pEvent
The event to consider.
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
std::vector< art::Ptr< anab::CosmicTag > > CosmicTagVector
Labels m_labels
A set of labels describing the producers for each input collection.
CosmicTagID_t & CosmicType()
Definition: CosmicTag.h:66
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::GetFilteredParticlesByPdgCode ( const bool  shouldProduceNeutrinos,
const PFParticleVector inputPFParticles,
PFParticleVector outputPFParticles 
) const
private

Filters PFParticles based on their Pdg from the inputPFParticles.

Parameters
shouldProduceNeutrinosif the filtered particle vector should contain neutrinos (or non-neutrinos)
inputPFParticlesinput vector of PFParticles
filteredPFParticlesoutput vector of filtered PFParticles

Definition at line 271 of file LArPandoraEvent.cxx.

References nue, numu, nutau, and part.

Referenced by FilterByPdgCode().

272 {
273  for (art::Ptr<recob::PFParticle> part : inputPFParticles)
274  {
275  unsigned int pdg = std::abs(part->PdgCode());
276  bool isNeutrino = (pdg == nue || pdg == numu || pdg == nutau);
277 
278  if ((shouldProduceNeutrinos && isNeutrino) || (!shouldProduceNeutrinos && !isNeutrino))
279  outputPFParticles.push_back(part);
280  }
281 }
TString part[npart]
Definition: Style.C:32
void lar_pandora::LArPandoraEvent::GetIdToPFParticleMap ( std::map< size_t, art::Ptr< recob::PFParticle > > &  idToPFParticleMap) const
private

Produce a mapping between PFParticles and their ID.

Parameters
idToPFParticleMapoutput mapping between PFParticles and their IDs

Definition at line 325 of file LArPandoraEvent.cxx.

References m_pfParticles, and part.

Referenced by GetPFParticleHierarchy().

326 {
328  {
329  if (!idToPFParticleMap.insert(std::map<size_t, art::Ptr<recob::PFParticle> >::value_type(part->Self(), part)).second)
330  throw cet::exception("LArPandora") << " LArPandoraEvent::GetIdToPFParticleMap -- Can't insert multiple entries with the same Id" << std::endl;
331  }
332 }
TString part[npart]
Definition: Style.C:32
PFParticleVector m_pfParticles
The input collection of PFParticles.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::GetPFParticleHierarchy ( )
private

Get the mapping from PFParticles to their daughters.

Definition at line 233 of file LArPandoraEvent.cxx.

References evd::details::begin(), evd::details::end(), GetIdToPFParticleMap(), m_pfParticleDaughterMap, m_pfParticles, and part.

Referenced by GetCollections().

234 {
235  std::map< size_t, art::Ptr< recob::PFParticle > > idToPFParticleMap;
236  this->GetIdToPFParticleMap(idToPFParticleMap);
237 
239  {
240  PFParticleVector daughters;
241  if (!m_pfParticleDaughterMap.insert(PFParticlesToPFParticles::value_type(part, daughters)).second)
242  throw cet::exception("LArPandora") << " LArPandoraEvent::GetPFParticleHierarchy -- Repeated PFParticle in heirarchy map!" << std::endl;
243 
244  for (const size_t & daughterId : part->Daughters())
245  {
246  if (idToPFParticleMap.find(daughterId) == idToPFParticleMap.end())
247  throw cet::exception("LArPandora") << " LArPandoraEvent::GetPFParticleHierarchy -- Can't access map entry for daughter of PFParticle supplied." << std::endl;
248 
249  art::Ptr< recob::PFParticle > daughter = idToPFParticleMap.at(daughterId);
251  throw cet::exception("LArPandora") << " LArPandoraEvent::GetPFParticleHierarchy -- Can't have the same daughter twice!" << std::endl;
252 
253  m_pfParticleDaughterMap[part].push_back(daughter);
254  }
255  }
256 }
std::vector< art::Ptr< recob::PFParticle > > PFParticleVector
PFParticlesToPFParticles m_pfParticleDaughterMap
The mapping from parent to daughter PFParticles.
std::vector< evd::details::RawDigitInfo_t >::const_iterator begin(RawDigitCacheDataClass const &cache)
TString part[npart]
Definition: Style.C:32
PFParticleVector m_pfParticles
The input collection of PFParticles.
void GetIdToPFParticleMap(std::map< size_t, art::Ptr< recob::PFParticle > > &idToPFParticleMap) const
Produce a mapping between PFParticles and their ID.
std::vector< evd::details::RawDigitInfo_t >::const_iterator end(RawDigitCacheDataClass const &cache)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraEvent::GetPrimaryPFParticles ( PFParticleVector primaryPFParticles) const
private

Filters primary PFParticles from the m_pfParticles.

Parameters
primaryPFParticlesoutput vector of all primary PFParticles in the input vector

Definition at line 260 of file LArPandoraEvent.cxx.

References m_pfParticles, and part.

Referenced by FilterByCRTag(), and FilterByPdgCode().

261 {
263  {
264  if (part->IsPrimary())
265  primaryPFParticles.push_back(part);
266  }
267 }
TString part[npart]
Definition: Style.C:32
PFParticleVector m_pfParticles
The input collection of PFParticles.
LArPandoraEvent lar_pandora::LArPandoraEvent::Merge ( const LArPandoraEvent other) const

Merge collections from two events into one.

Definition at line 142 of file LArPandoraEvent.cxx.

References m_clusterHitMap, m_clusters, m_hits, m_metadata, m_pcAxes, m_pfParticleClusterMap, m_pfParticleMetadataMap, m_pfParticlePCAxisMap, m_pfParticles, m_pfParticleShowerMap, m_pfParticleSpacePointMap, m_pfParticleT0Map, m_pfParticleToOriginIdMap, m_pfParticleTrackMap, m_pfParticleVertexMap, m_shift, m_shouldProduceT0s, m_showerHitMap, m_showerPCAxisMap, m_showers, m_spacePointHitMap, m_spacePoints, m_t0s, m_trackHitMap, m_tracks, m_vertices, MergeAssociation(), MergeCollection(), and MergePFParticleToOriginIdMap().

143 {
144  if (m_shift != other.m_shift)
145  throw cet::exception("LArPandora") << " LArPandoraEvent::Merge - Can't merge LArPandoraEvents with differing shift values." << std::endl;
146 
147  LArPandoraEvent outputEvent(other);
148 
149  this->MergePFParticleToOriginIdMap(outputEvent.m_pfParticleToOriginIdMap, m_pfParticleToOriginIdMap);
150 
151  this->MergeCollection(outputEvent.m_pfParticles, m_pfParticles);
152  this->MergeCollection(outputEvent.m_spacePoints, m_spacePoints);
153  this->MergeCollection(outputEvent.m_clusters, m_clusters);
154  this->MergeCollection(outputEvent.m_vertices, m_vertices);
155  this->MergeCollection(outputEvent.m_tracks, m_tracks);
156  this->MergeCollection(outputEvent.m_showers, m_showers);
157  this->MergeCollection(outputEvent.m_pcAxes, m_pcAxes);
158  this->MergeCollection(outputEvent.m_metadata, m_metadata);
159  this->MergeCollection(outputEvent.m_hits, m_hits);
160 
161  if (m_shouldProduceT0s)
162  this->MergeCollection(outputEvent.m_t0s, m_t0s);
163 
164  this->MergeAssociation(outputEvent.m_pfParticleSpacePointMap, m_pfParticleSpacePointMap);
165  this->MergeAssociation(outputEvent.m_pfParticleClusterMap, m_pfParticleClusterMap);
166  this->MergeAssociation(outputEvent.m_pfParticleVertexMap, m_pfParticleVertexMap);
167  this->MergeAssociation(outputEvent.m_pfParticleTrackMap, m_pfParticleTrackMap);
168  this->MergeAssociation(outputEvent.m_pfParticleShowerMap, m_pfParticleShowerMap);
169  this->MergeAssociation(outputEvent.m_pfParticlePCAxisMap, m_pfParticlePCAxisMap);
170  this->MergeAssociation(outputEvent.m_pfParticleMetadataMap, m_pfParticleMetadataMap);
171 
172  if (m_shouldProduceT0s)
173  this->MergeAssociation(outputEvent.m_pfParticleT0Map, m_pfParticleT0Map);
174 
175  this->MergeAssociation(outputEvent.m_spacePointHitMap, m_spacePointHitMap);
176  this->MergeAssociation(outputEvent.m_clusterHitMap, m_clusterHitMap);
177  this->MergeAssociation(outputEvent.m_trackHitMap, m_trackHitMap);
178  this->MergeAssociation(outputEvent.m_showerHitMap, m_showerHitMap);
179  this->MergeAssociation(outputEvent.m_showerPCAxisMap, m_showerPCAxisMap);
180 
181  return outputEvent;
182 }
ShowersToHits m_showerHitMap
The input associations: Shower -> Hit.
SpacePointVector m_spacePoints
The input collection of SpacePoints.
MetadataVector m_metadata
The input collection of PFParticle metadata.
ShowerVector m_showers
The input collection of Showers.
LArPandoraEvent(art::EDProducer *pProducer, art::Event *pEvent, const Labels &inputLabels, const bool shouldProduceT0s=false, const size_t shift=100000)
Constructor from an art::Event.
ClustersToHits m_clusterHitMap
The input associations: Cluster -> Hit.
PFParticlesToVertices m_pfParticleVertexMap
The input associations: PFParticle -> Vertex.
PFParticlesToMetadata m_pfParticleMetadataMap
The input associations: PFParticle -> Metadata.
ShowersToPCAxes m_showerPCAxisMap
The input associations: PCAxis -> Shower.
VertexVector m_vertices
The input collection of Vertices.
std::map< art::Ptr< recob::PFParticle >, unsigned int > m_pfParticleToOriginIdMap
Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep tr...
HitVector m_hits
The input collection of Hits.
PFParticlesToT0s m_pfParticleT0Map
The input associations: PFParticle -> T0.
PFParticlesToSpacePoints m_pfParticleSpacePointMap
The input associations: PFParticle -> SpacePoint.
void MergeAssociation(std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationToMerge, const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &association) const
Append an association to another association.
TrackVector m_tracks
The input collection of Tracks.
PFParticlesToTracks m_pfParticleTrackMap
The input associations: PFParticle -> Track.
T0Vector m_t0s
The input collection of T0s.
void MergeCollection(std::vector< art::Ptr< T > > &collectionToMerge, const std::vector< art::Ptr< T > > &collection) const
Append a collection onto an other collection.
PCAxisVector m_pcAxes
The input collection of PCAxes.
SpacePointsToHitVector m_spacePointHitMap
The input associations: SpacePoint -> Hit.
ClusterVector m_clusters
The input collection of Clusters.
PFParticleVector m_pfParticles
The input collection of PFParticles.
void MergePFParticleToOriginIdMap(std::map< art::Ptr< recob::PFParticle >, unsigned int > &mapToMerge, const std::map< art::Ptr< recob::PFParticle >, unsigned int > &mapToAdd) const
Merge two PFParticle to origin ID maps ensuring no ID collisions.
TracksToHits m_trackHitMap
The input associations: Track -> Hit.
PFParticlesToPCAxes m_pfParticlePCAxisMap
The input associations: PFParticle -> PCAxis.
PFParticlesToClusters m_pfParticleClusterMap
The input associations: PFParticle -> Cluster.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
const size_t m_shift
Amount by which to shift PFParticle IDs when merging two reconstructions of the same event...
bool m_shouldProduceT0s
If T0s should be produced (usually only true for use cases with multiple drift volumes) ...
PFParticlesToShowers m_pfParticleShowerMap
The input associations: PFParticle -> Shower.
template<typename T , typename U >
void lar_pandora::LArPandoraEvent::MergeAssociation ( std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  associationToMerge,
const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  association 
) const
inlineprivate

Append an association to another association.

Parameters
associationToMergethe association to accept
associationthe association to append

Definition at line 569 of file LArPandoraEvent.h.

Referenced by Merge().

571 {
572  associationToMerge.insert(association.begin(), association.end());
573 }
template<typename T >
void lar_pandora::LArPandoraEvent::MergeCollection ( std::vector< art::Ptr< T > > &  collectionToMerge,
const std::vector< art::Ptr< T > > &  collection 
) const
inlineprivate

Append a collection onto an other collection.

Parameters
collectionToMergethe collection to accept
collectionthe collection to append

Definition at line 561 of file LArPandoraEvent.h.

Referenced by Merge().

562 {
563  collectionToMerge.insert(collectionToMerge.end(), collection.begin(), collection.end());
564 }
void lar_pandora::LArPandoraEvent::MergePFParticleToOriginIdMap ( std::map< art::Ptr< recob::PFParticle >, unsigned int > &  mapToMerge,
const std::map< art::Ptr< recob::PFParticle >, unsigned int > &  mapToAdd 
) const
private

Merge two PFParticle to origin ID maps ensuring no ID collisions.

Parameters
mapToMergethe map to accept the merge
mapToAddthe map to append to the map to merge

Definition at line 372 of file LArPandoraEvent.cxx.

Referenced by Merge().

374 {
375  unsigned int maxID = 0;
376  if (mapToMerge.size() != 0)
377  {
378  maxID = std::max_element(mapToMerge.begin(), mapToMerge.end(), [](const std::pair<art::Ptr<recob::PFParticle>, unsigned int> &p1, const std::pair< art::Ptr<recob::PFParticle>, unsigned int> &p2) {return p1.second < p2.second;})->second;
379  }
380 
381  for (std::map< art::Ptr< recob::PFParticle >, unsigned int >::const_iterator it=mapToAdd.begin(); it != mapToAdd.end(); ++it)
382  {
383  if (!mapToMerge.insert(std::map< art::Ptr<recob::PFParticle>, unsigned int>::value_type(it->first, it->second + maxID + 1)).second)
384  throw cet::exception("LArPandora") << " LArPandoraEvent::MergePFParticleToOriginIdMap - Can't merge collections containing repeated PFParticles." << std::endl;
385  }
386 }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename T , typename U >
void lar_pandora::LArPandoraEvent::WriteAssociation ( const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &  associationMap,
const std::vector< art::Ptr< T > > &  collectionT,
const std::vector< art::Ptr< U > > &  collectionU,
const bool  thisProducesU = true 
) const
inlineprivate

Write a given association to the event.

Parameters
associationMapthe association to write from objects of type T -> U
collectionTthe collection of type T that has been written
collectionUthe collection of type U that has been written
thisProducesUwill this producer produce collectionU of was it produced by a different module?

Definition at line 521 of file LArPandoraEvent.h.

References util::CreateAssn(), m_pEvent, m_pProducer, art::Event::put(), and lar::dump::vector().

Referenced by WriteToEvent().

523 {
524  const art::PtrMaker<T> makePtrT(*m_pEvent, *m_pProducer);
525  std::unique_ptr<art::Assns<T, U> > outputAssn(new art::Assns<T, U>);
526 
527  for (typename std::map<art::Ptr<T>, std::vector<art::Ptr<U> > >::const_iterator it = associationMap.begin(); it != associationMap.end(); ++it)
528  {
529  typename std::vector<art::Ptr<T> >::const_iterator itT = std::find(collectionT.begin(), collectionT.end(), it-> first);
530  if (itT == collectionT.end())
531  throw cet::exception("LArPandora") << " LArPandoraEvent::WriteAssociation -- association map contains object not in collectionT." << std::endl;
532 
533  art::Ptr<T> newObjectT(makePtrT(std::distance(collectionT.begin(), itT)));
534 
535  for (const art::Ptr<U> &objectU : it->second)
536  {
537  if (thisProducesU)
538  {
539  const art::PtrMaker<U> makePtrU(*m_pEvent, *m_pProducer);
540 
541  typename std::vector<art::Ptr<U> >::const_iterator itU = std::find(collectionU.begin(), collectionU.end(), objectU);
542  if (itU == collectionU.end())
543  throw cet::exception("LArPandora") << " LArPandoraEvent::WriteAssociation -- association map contains object not in collectionU." << std::endl;
544 
545  art::Ptr<U> newObjectU(makePtrU(std::distance(collectionU.begin(), itU)));
546  util::CreateAssn(*m_pProducer, *m_pEvent, newObjectU, newObjectT, *outputAssn);
547  }
548  else
549  {
550  util::CreateAssn(*m_pProducer, *m_pEvent, objectU, newObjectT, *outputAssn);
551  }
552  }
553  }
554 
555  m_pEvent->put(std::move(outputAssn));
556 }
ProductID put(std::unique_ptr< PROD > &&product)
Definition: Event.h:102
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:265
art::Event * m_pEvent
The event to consider.
bool CreateAssn(PRODUCER const &prod, art::Event &evt, std::vector< T > const &a, art::Ptr< U > const &b, art::Assns< U, T > &assn, std::string a_instance, size_t indx=UINT_MAX)
Creates a single one-to-one association.
art::EDProducer * m_pProducer
The producer which should write the output collections and associations.
Definition: fwd.h:25
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename T >
void lar_pandora::LArPandoraEvent::WriteCollection ( const std::vector< art::Ptr< T > > &  collection) const
inlineprivate

Write a given collection to the event.

Parameters
collectionthe collection to write

Definition at line 475 of file LArPandoraEvent.h.

References m_pEvent, and art::Event::put().

Referenced by WriteToEvent().

476 {
477  std::unique_ptr<std::vector<T> > output(new std::vector<T>);
478 
479  for (art::Ptr<T> object : collection)
480  output->push_back(*object);
481 
482  m_pEvent->put(std::move(output));
483 }
ProductID put(std::unique_ptr< PROD > &&product)
Definition: Event.h:102
art::Event * m_pEvent
The event to consider.
Definition: fwd.h:25
template<>
void lar_pandora::LArPandoraEvent::WriteCollection ( const std::vector< art::Ptr< recob::PFParticle > > &  collection) const
inline

Definition at line 486 of file LArPandoraEvent.h.

References d, recob::PFParticle::kPFParticlePrimary, m_pEvent, m_pfParticleToOriginIdMap, m_shift, part, and art::Event::put().

487 {
488  std::unique_ptr<std::vector<recob::PFParticle> > output(new std::vector<recob::PFParticle>);
489 
490  for (art::Ptr<recob::PFParticle> part : collection)
491  {
492 
493  if (part->Self() >= m_shift)
494  throw cet::exception("LArPandora") << " LArPandoraEvent::WriteCollection -- PFParticle ID exceeds shift value of " << m_shift << ". Can't merge the collections!" << std::endl;
495 
497  throw cet::exception("LArPandora") << " LArPandoraEvent::WriteCollection -- Can't find supplied PFParticle in the PFParticle to origin ID map." << std::endl;
498 
499  const size_t offset(m_shift * m_pfParticleToOriginIdMap.at(part));
500  const size_t adjustedSelf(part->Self() + offset);
501 
502  size_t adjustedParent = part->Parent();
504  adjustedParent += offset;
505 
506  const std::vector<size_t> &daughters(part->Daughters());
507  std::vector<size_t> adjustedDaughters;
508  for (unsigned int d = 0; d < daughters.size(); d++)
509  adjustedDaughters.push_back(daughters[d] + offset);
510 
511  recob::PFParticle adjustedPart(part->PdgCode(), adjustedSelf, adjustedParent, adjustedDaughters);
512  output->push_back(adjustedPart);
513  }
514 
515  m_pEvent->put(std::move(output));
516 }
static constexpr size_t kPFParticlePrimary
Define index to signify primary particle.
Definition: PFParticle.h:61
ProductID put(std::unique_ptr< PROD > &&product)
Definition: Event.h:102
std::map< art::Ptr< recob::PFParticle >, unsigned int > m_pfParticleToOriginIdMap
Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep tr...
TString part[npart]
Definition: Style.C:32
Float_t d
Definition: plot.C:237
art::Event * m_pEvent
The event to consider.
Hierarchical representation of particle flow.
Definition: PFParticle.h:44
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
const size_t m_shift
Amount by which to shift PFParticle IDs when merging two reconstructions of the same event...
void lar_pandora::LArPandoraEvent::WriteToEvent ( ) const

Write (put) the collections in this LArPandoraEvent to the art::Event.

Definition at line 109 of file LArPandoraEvent.cxx.

References m_clusterHitMap, m_clusters, m_hits, m_metadata, m_pcAxes, m_pfParticleClusterMap, m_pfParticleMetadataMap, m_pfParticlePCAxisMap, m_pfParticles, m_pfParticleShowerMap, m_pfParticleSpacePointMap, m_pfParticleT0Map, m_pfParticleTrackMap, m_pfParticleVertexMap, m_shouldProduceT0s, m_showerHitMap, m_showerPCAxisMap, m_showers, m_spacePointHitMap, m_spacePoints, m_t0s, m_trackHitMap, m_tracks, m_vertices, WriteAssociation(), and WriteCollection().

Referenced by lar_pandora::CollectionMerging::produce(), lar_pandora::CollectionSplitting::produce(), and lar_pandora::LArPandoraExternalEventBuilding::produce().

110 {
115  this->WriteCollection(m_tracks);
116  this->WriteCollection(m_showers);
117  this->WriteCollection(m_pcAxes);
119 
132 
133  if (m_shouldProduceT0s)
134  {
135  this->WriteCollection(m_t0s);
137  }
138 }
ShowersToHits m_showerHitMap
The input associations: Shower -> Hit.
SpacePointVector m_spacePoints
The input collection of SpacePoints.
MetadataVector m_metadata
The input collection of PFParticle metadata.
void WriteAssociation(const std::map< art::Ptr< T >, std::vector< art::Ptr< U > > > &associationMap, const std::vector< art::Ptr< T > > &collectionT, const std::vector< art::Ptr< U > > &collectionU, const bool thisProducesU=true) const
Write a given association to the event.
ShowerVector m_showers
The input collection of Showers.
ClustersToHits m_clusterHitMap
The input associations: Cluster -> Hit.
PFParticlesToVertices m_pfParticleVertexMap
The input associations: PFParticle -> Vertex.
PFParticlesToMetadata m_pfParticleMetadataMap
The input associations: PFParticle -> Metadata.
ShowersToPCAxes m_showerPCAxisMap
The input associations: PCAxis -> Shower.
VertexVector m_vertices
The input collection of Vertices.
void WriteCollection(const std::vector< art::Ptr< T > > &collection) const
Write a given collection to the event.
HitVector m_hits
The input collection of Hits.
PFParticlesToT0s m_pfParticleT0Map
The input associations: PFParticle -> T0.
PFParticlesToSpacePoints m_pfParticleSpacePointMap
The input associations: PFParticle -> SpacePoint.
TrackVector m_tracks
The input collection of Tracks.
PFParticlesToTracks m_pfParticleTrackMap
The input associations: PFParticle -> Track.
T0Vector m_t0s
The input collection of T0s.
PCAxisVector m_pcAxes
The input collection of PCAxes.
SpacePointsToHitVector m_spacePointHitMap
The input associations: SpacePoint -> Hit.
ClusterVector m_clusters
The input collection of Clusters.
PFParticleVector m_pfParticles
The input collection of PFParticles.
TracksToHits m_trackHitMap
The input associations: Track -> Hit.
PFParticlesToPCAxes m_pfParticlePCAxisMap
The input associations: PFParticle -> PCAxis.
PFParticlesToClusters m_pfParticleClusterMap
The input associations: PFParticle -> Cluster.
bool m_shouldProduceT0s
If T0s should be produced (usually only true for use cases with multiple drift volumes) ...
PFParticlesToShowers m_pfParticleShowerMap
The input associations: PFParticle -> Shower.

Member Data Documentation

ClustersToHits lar_pandora::LArPandoraEvent::m_clusterHitMap
private

The input associations: Cluster -> Hit.

Definition at line 390 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

ClusterVector lar_pandora::LArPandoraEvent::m_clusters
private

The input collection of Clusters.

Definition at line 370 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

HitVector lar_pandora::LArPandoraEvent::m_hits
private

The input collection of Hits.

Definition at line 377 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

Labels lar_pandora::LArPandoraEvent::m_labels
private

A set of labels describing the producers for each input collection.

Definition at line 360 of file LArPandoraEvent.h.

Referenced by GetFilteredParticlesByCRTag(), lar_pandora::LArPandoraEvent::Labels::GetLabel(), lar_pandora::LArPandoraEvent::Labels::Labels(), lar_pandora::LArPandoraEvent::Labels::SetClusterProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetClusterToHitProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetMetadataProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPCAxisProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToClusterProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToPCAxisProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToShowerProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToSpacePointProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToT0ProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToTrackProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetPFParticleToVertexProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetShowerProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetShowerToHitProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetShowerToPCAxisProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetSpacePointProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetSpacePointToHitProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetT0ProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetTrackProducerLabel(), lar_pandora::LArPandoraEvent::Labels::SetTrackToHitProducerLabel(), and lar_pandora::LArPandoraEvent::Labels::SetVertexProducerLabel().

MetadataVector lar_pandora::LArPandoraEvent::m_metadata
private

The input collection of PFParticle metadata.

Definition at line 375 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PCAxisVector lar_pandora::LArPandoraEvent::m_pcAxes
private

The input collection of PCAxes.

Definition at line 376 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

art::Event* lar_pandora::LArPandoraEvent::m_pEvent
private

The event to consider.

Definition at line 359 of file LArPandoraEvent.h.

Referenced by GetAssociationMap(), GetCollection(), GetFilteredParticlesByCRTag(), WriteAssociation(), and WriteCollection().

PFParticlesToClusters lar_pandora::LArPandoraEvent::m_pfParticleClusterMap
private

The input associations: PFParticle -> Cluster.

Definition at line 381 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticlesToPFParticles lar_pandora::LArPandoraEvent::m_pfParticleDaughterMap
private

The mapping from parent to daughter PFParticles.

Definition at line 396 of file LArPandoraEvent.h.

Referenced by GetDownstreamPFParticles(), GetPFParticleHierarchy(), and LArPandoraEvent().

PFParticlesToMetadata lar_pandora::LArPandoraEvent::m_pfParticleMetadataMap
private

The input associations: PFParticle -> Metadata.

Definition at line 386 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticlesToPCAxes lar_pandora::LArPandoraEvent::m_pfParticlePCAxisMap
private

The input associations: PFParticle -> PCAxis.

Definition at line 387 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticleVector lar_pandora::LArPandoraEvent::m_pfParticles
private
PFParticlesToShowers lar_pandora::LArPandoraEvent::m_pfParticleShowerMap
private

The input associations: PFParticle -> Shower.

Definition at line 384 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticlesToSpacePoints lar_pandora::LArPandoraEvent::m_pfParticleSpacePointMap
private

The input associations: PFParticle -> SpacePoint.

Definition at line 380 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticlesToT0s lar_pandora::LArPandoraEvent::m_pfParticleT0Map
private

The input associations: PFParticle -> T0.

Definition at line 385 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

std::map<art::Ptr<recob::PFParticle>, unsigned int> lar_pandora::LArPandoraEvent::m_pfParticleToOriginIdMap
private

Mapping between PFParticles, and an ID for the LArPandoraEvent from which they originated (to keep track of merges)

Definition at line 362 of file LArPandoraEvent.h.

Referenced by FillPFParticleToOriginIdMap(), LArPandoraEvent(), Merge(), and WriteCollection().

PFParticlesToTracks lar_pandora::LArPandoraEvent::m_pfParticleTrackMap
private

The input associations: PFParticle -> Track.

Definition at line 383 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

PFParticlesToVertices lar_pandora::LArPandoraEvent::m_pfParticleVertexMap
private

The input associations: PFParticle -> Vertex.

Definition at line 382 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

art::EDProducer* lar_pandora::LArPandoraEvent::m_pProducer
private

The producer which should write the output collections and associations.

Definition at line 358 of file LArPandoraEvent.h.

Referenced by WriteAssociation().

const size_t lar_pandora::LArPandoraEvent::m_shift
private

Amount by which to shift PFParticle IDs when merging two reconstructions of the same event.

Definition at line 365 of file LArPandoraEvent.h.

Referenced by Merge(), and WriteCollection().

bool lar_pandora::LArPandoraEvent::m_shouldProduceT0s
private

If T0s should be produced (usually only true for use cases with multiple drift volumes)

Definition at line 364 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

ShowersToHits lar_pandora::LArPandoraEvent::m_showerHitMap
private

The input associations: Shower -> Hit.

Definition at line 392 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

ShowersToPCAxes lar_pandora::LArPandoraEvent::m_showerPCAxisMap
private

The input associations: PCAxis -> Shower.

Definition at line 394 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

ShowerVector lar_pandora::LArPandoraEvent::m_showers
private

The input collection of Showers.

Definition at line 373 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

SpacePointsToHitVector lar_pandora::LArPandoraEvent::m_spacePointHitMap
private

The input associations: SpacePoint -> Hit.

Definition at line 389 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

SpacePointVector lar_pandora::LArPandoraEvent::m_spacePoints
private

The input collection of SpacePoints.

Definition at line 369 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

T0Vector lar_pandora::LArPandoraEvent::m_t0s
private

The input collection of T0s.

Definition at line 374 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

TracksToHits lar_pandora::LArPandoraEvent::m_trackHitMap
private

The input associations: Track -> Hit.

Definition at line 391 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

TrackVector lar_pandora::LArPandoraEvent::m_tracks
private

The input collection of Tracks.

Definition at line 372 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().

VertexVector lar_pandora::LArPandoraEvent::m_vertices
private

The input collection of Vertices.

Definition at line 371 of file LArPandoraEvent.h.

Referenced by GetCollections(), LArPandoraEvent(), Merge(), and WriteToEvent().


The documentation for this class was generated from the following files: