7 #ifndef LAR_PANDORA_HELPER_H 8 #define LAR_PANDORA_HELPER_H 18 namespace anab {
class CosmicTag;
class T0;}
20 namespace pandora {
class ParticleFlowObject;
class Vertex;
typedef std::vector<int>
IntVector;}
21 namespace recob {
class Cluster;
class Hit;
class PFParticle;
class Seed;
class Shower;
class SpacePoint;
class Track;
class Vertex;
class Wire;}
22 namespace sim {
class SimChannel;
struct TrackIDE;}
23 namespace simb {
class MCParticle;
class MCTruth;}
30 typedef std::set< art::Ptr<recob::Hit> >
HitList;
33 typedef std::vector< art::Ptr<recob::Hit> >
HitVector;
47 typedef std::vector< art::Ptr<anab::T0> >
T0Vector;
48 typedef std::vector< art::Ptr<larpandoraobj::PFParticleMetadata> >
MetadataVector;
58 typedef std::map< art::Ptr<recob::Track>, HitVector >
TracksToHits;
78 typedef std::map< int, art::Ptr<recob::Cluster> >
ClusterMap;
80 typedef std::map< int, art::Ptr<recob::Hit> >
HitMap;
111 static void CollectWires(
const art::Event &evt,
const std::string &
label, WireVector &wireVector);
120 static void CollectHits(
const art::Event &evt,
const std::string &
label, HitVector &hitVector);
129 static void CollectPFParticles(
const art::Event &evt,
const std::string &
label, PFParticleVector &particleVector);
139 static void CollectSpacePoints(
const art::Event &evt,
const std::string &
label, SpacePointVector &spacePointVector,
140 SpacePointsToHits &spacePointsToHits);
151 static void CollectSpacePoints(
const art::Event &evt,
const std::string &
label, SpacePointVector &spacePointVector,
152 SpacePointsToHits &spacePointsToHits, HitsToSpacePoints &hitsToSpacePoints);
162 static void CollectClusters(
const art::Event &evt,
const std::string &
label, ClusterVector &clusterVector,
163 ClustersToHits &clustersToHits);
173 static void CollectPFParticles(
const art::Event &evt,
const std::string &
label, PFParticleVector &particleVector,
174 PFParticlesToSpacePoints &particlesToSpacePoints);
184 static void CollectPFParticles(
const art::Event &evt,
const std::string &
label, PFParticleVector &particleVector,
185 PFParticlesToClusters &particlesToClusters);
195 static void CollectPFParticleMetadata(
const art::Event &evt,
const std::string &
label, PFParticleVector &particleVector,
196 PFParticlesToMetadata &particlesToMetadata);
206 static void CollectShowers(
const art::Event &evt,
const std::string &
label, ShowerVector &showerVector,
207 PFParticlesToShowers &particlesToShowers);
217 static void CollectShowers(
const art::Event &evt,
const std::string &
label, ShowerVector &showerVector,
218 ShowersToHits &showersToHits);
228 static void CollectTracks(
const art::Event &evt,
const std::string &
label, TrackVector &trackVector,
229 PFParticlesToTracks &particlesToTracks);
239 static void CollectTracks(
const art::Event &evt,
const std::string &
label, TrackVector &trackVector,
240 TracksToHits &tracksToHits);
250 static void CollectSeeds(
const art::Event &evt,
const std::string &
label, SeedVector &seedVector,
251 PFParticlesToSeeds &particlesToSeeds);
261 static void CollectSeeds(
const art::Event &evt,
const std::string &
label, SeedVector &seedVector,
262 SeedsToHits &seedsToHits);
272 static void CollectVertices(
const art::Event &evt,
const std::string &
label, VertexVector &vertexVector,
273 PFParticlesToVertices &particlesToVertices);
285 static void BuildPFParticleHitMaps(
const PFParticleVector &particleVector,
const PFParticlesToSpacePoints &particlesToSpacePoints,
286 const SpacePointsToHits &spacePointsToHits, PFParticlesToHits &particlesToHits, HitsToPFParticles &hitsToParticles,
299 static void BuildPFParticleHitMaps(
const PFParticleVector &particleVector,
const PFParticlesToClusters &particlesToClusters,
300 const ClustersToHits &clustersToHits, PFParticlesToHits &particlesToHits, HitsToPFParticles &hitsToParticles,
314 static void BuildPFParticleHitMaps(
const art::Event &evt,
const std::string &label_pfpart,
const std::string &label_mid,
315 PFParticlesToHits &particlesToHits, HitsToPFParticles &hitsToParticles,
const DaughterMode daughterMode = kUseDaughters,
316 const bool useClusters =
true);
328 static void BuildPFParticleHitMaps(
const art::Event &evt,
const std::string &
label,
329 PFParticlesToHits &particlesToHits, HitsToPFParticles &hitsToParticles,
const DaughterMode daughterMode = kUseDaughters,
330 const bool useClusters =
true);
340 static void CollectCosmicTags(
const art::Event &evt,
const std::string &
label, CosmicTagVector &cosmicTagVector,
341 TracksToCosmicTags &tracksToCosmicTags);
351 static void CollectT0s(
const art::Event &evt,
const std::string &
label, T0Vector &t0Vector,
352 PFParticlesToT0s &particlesToT0s);
361 static void CollectSimChannels(
const art::Event &evt,
const std::string &
label, SimChannelVector &simChannelVector);
370 static void CollectMCParticles(
const art::Event &evt,
const std::string &
label, MCParticleVector &particleVector);
380 static void CollectGeneratorMCParticles(
const art::Event &evt,
const std::string &
label, RawMCParticleVector &particleVector);
390 static void CollectMCParticles(
const art::Event &evt,
const std::string &
label, MCTruthToMCParticles &truthToParticles,
391 MCParticlesToMCTruth &particlesToTruth);
400 static void BuildMCParticleHitMaps(
const HitVector &hitVector,
const SimChannelVector &simChannelVector, HitsToTrackIDEs &hitsToTrackIDEs);
411 static void BuildMCParticleHitMaps(
const HitsToTrackIDEs &hitsToTrackIDEs,
const MCTruthToMCParticles &truthToParticles,
412 MCParticlesToHits &particlesToHits, HitsToMCParticles &hitsToParticles,
const DaughterMode daughterMode = kUseDaughters);
424 static void BuildMCParticleHitMaps(
const art::Event &evt,
const std::string &
label,
const HitVector &hitVector,
425 MCParticlesToHits &particlesToHits, HitsToMCParticles &hitsToParticles,
const DaughterMode daughterMode = kUseDaughters);
435 static void BuildMCParticleHitMaps(
const art::Event &evt,
const std::string &hitLabel,
const std::string &backtrackLabel,
436 HitsToTrackIDEs &hitsToTrackIDEs);
449 static void BuildMCParticleHitMaps(
const art::Event &evt,
const std::string &truthLabel,
const std::string &hitLabel,
450 const std::string &backtrackLabel, MCParticlesToHits &particlesToHits, HitsToMCParticles &hitsToParticles,
462 template <
typename T>
472 static void SelectNeutrinoPFParticles(
const PFParticleVector &inputParticles, PFParticleVector &outputParticles);
480 static void SelectFinalStatePFParticles(
const PFParticleVector &inputParticles, PFParticleVector &outputParticles);
488 static void BuildMCParticleMap(
const MCParticleVector &particleVector, MCParticleMap &particleMap);
496 static void BuildPFParticleMap(
const PFParticleVector &particleVector, PFParticleMap &particleMap);
615 #endif // LAR_PANDORA_HELPER_H std::vector< sim::TrackIDE > TrackIDEVector
std::map< art::Ptr< recob::Hit >, TrackIDEVector > HitsToTrackIDEs
std::vector< art::Ptr< recob::Seed > > SeedVector
std::map< art::Ptr< simb::MCTruth >, HitVector > MCTruthToHits
std::map< int, art::Ptr< sim::SimChannel > > SimChannelMap
std::map< art::Ptr< recob::SpacePoint >, art::Ptr< recob::Hit > > SpacePointsToHits
std::map< art::Ptr< recob::Hit >, art::Ptr< recob::PFParticle > > HitsToPFParticles
std::map< art::Ptr< simb::MCTruth >, art::Ptr< recob::PFParticle > > MCTruthToPFParticles
Reconstruction base classes.
std::map< art::Ptr< recob::PFParticle >, ClusterVector > PFParticlesToClusters
std::map< int, art::Ptr< recob::Cluster > > ClusterMap
std::map< art::Ptr< recob::Shower >, HitVector > ShowersToHits
std::vector< art::Ptr< recob::PFParticle > > PFParticleVector
std::map< art::Ptr< simb::MCTruth >, MCParticleVector > MCTruthToMCParticles
std::map< int, art::Ptr< simb::MCParticle > > MCParticleMap
std::map< art::Ptr< simb::MCParticle >, art::Ptr< recob::PFParticle > > MCParticlesToPFParticles
std::map< art::Ptr< recob::Track >, HitVector > TracksToHits
std::vector< int > IntVector
std::vector< art::Ptr< simb::MCParticle > > MCParticleVector
std::map< art::Ptr< recob::PFParticle >, std::vector< art::Ptr< larpandoraobj::PFParticleMetadata > > > PFParticlesToMetadata
std::map< art::Ptr< recob::PFParticle >, SeedVector > PFParticlesToSeeds
std::map< art::Ptr< simb::MCParticle >, art::Ptr< simb::MCTruth > > MCParticlesToMCTruth
std::map< const pandora::ParticleFlowObject *, size_t > ThreeDParticleMap
std::vector< art::Ptr< recob::Track > > TrackVector
std::vector< art::Ptr< sim::SimChannel > > SimChannelVector
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
std::map< int, art::Ptr< recob::PFParticle > > PFParticleMap
std::map< const pandora::Vertex *, unsigned int > ThreeDVertexMap
std::vector< art::Ptr< simb::MCTruth > > MCTruthVector
Pandora PFParticleMetadata.
std::map< int, HitVector > HitArray
std::map< art::Ptr< recob::PFParticle >, T0Vector > PFParticlesToT0s
std::map< art::Ptr< recob::Hit >, art::Ptr< recob::SpacePoint > > HitsToSpacePoints
std::map< int, art::Ptr< recob::SpacePoint > > SpacePointMap
std::map< art::Ptr< recob::Cluster >, HitVector > ClustersToHits
std::vector< art::Ptr< recob::Wire > > WireVector
std::vector< art::Ptr< larpandoraobj::PFParticleMetadata > > MetadataVector
std::map< art::Ptr< recob::PFParticle >, VertexVector > PFParticlesToVertices
std::vector< art::Ptr< anab::T0 > > T0Vector
std::map< art::Ptr< recob::PFParticle >, ShowerVector > PFParticlesToShowers
std::vector< art::Ptr< recob::Shower > > ShowerVector
std::vector< art::Ptr< recob::SpacePoint > > SpacePointVector
std::vector< art::Ptr< recob::Hit > > HitVector
std::map< art::Ptr< recob::PFParticle >, TrackVector > PFParticlesToTracks
std::map< art::Ptr< recob::PFParticle >, HitVector > PFParticlesToHits
DaughterMode
DaughterMode enumeration.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
std::map< art::Ptr< recob::Seed >, art::Ptr< recob::Hit > > SeedsToHits
std::vector< simb::MCParticle > RawMCParticleVector
std::map< art::Ptr< recob::Track >, CosmicTagVector > TracksToCosmicTags
std::map< art::Ptr< simb::MCParticle >, HitVector > MCParticlesToHits
std::vector< art::Ptr< anab::CosmicTag > > CosmicTagVector
object containing MC truth information necessary for making RawDigits and doing back tracking ...
std::map< art::Ptr< recob::PFParticle >, SpacePointVector > PFParticlesToSpacePoints
std::set< art::Ptr< recob::Hit > > HitList
std::map< int, art::Ptr< recob::Hit > > HitMap
std::map< art::Ptr< recob::Hit >, art::Ptr< simb::MCParticle > > HitsToMCParticles
std::map< art::Ptr< recob::Hit >, art::Ptr< simb::MCTruth > > HitsToMCTruth
std::vector< art::Ptr< recob::Vertex > > VertexVector