LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar_pandora::LArPandoraSliceIdHelper Class Reference

Helper class for slice id tools. More...

#include "LArPandoraSliceIdHelper.h"

Classes

class  SliceMetadata
 Class to hold MC metdata about slices. More...
 

Public Types

typedef std::vector< SliceMetadataSliceMetadataVector
 

Static Public Member Functions

static void GetSliceMetadata (const SliceVector &slices, const art::Event &evt, const std::string &truthLabel, const std::string &mcParticleLabel, const std::string &hitLabel, const std::string &backtrackLabel, const std::string &pandoraLabel, SliceMetadataVector &sliceMetadata, simb::MCNeutrino &mcNeutrino)
 Get MC metadata about each slice. More...
 

Private Types

typedef std::unordered_map< art::Ptr< recob::Hit >, bool > HitToBoolMap
 

Static Private Member Functions

static art::Ptr< simb::MCTruthGetBeamNeutrinoMCTruth (const art::Event &evt, const std::string &truthLabel)
 Get the MCTruth block for the simulated beam neutrino. More...
 
static void CollectNeutrinoMCParticles (const art::Event &evt, const std::string &truthLabel, const std::string &mcParticleLabel, const art::Ptr< simb::MCTruth > &beamNuMCTruth, MCParticleVector &mcParticles)
 Collect all MCParticles that come from the beam neutrino interaction. More...
 
static void GetHitOrigins (const art::Event &evt, const std::string &hitLabel, const std::string &backtrackLabel, const MCParticleVector &mcParticles, HitVector &hits, HitToBoolMap &hitToIsNuInducedMap)
 For each hit in the event, determine if any of it's charge was deposited by a neutrino induced particle. More...
 
static unsigned int CountNeutrinoHits (const HitVector &hits, const HitToBoolMap &hitToIsNuInducedMap)
 Count the number of hits in an input vector that are neutrino induced. More...
 
static void GetPFParticleToHitsMap (const art::Event &evt, const std::string &pandoraLabel, PFParticlesToHits &pfParticleToHitsMap)
 Get the mapping from PFParticles to associated hits (via clusters) More...
 
static void GetReconstructedHitsInSlice (const Slice &slice, const PFParticlesToHits &pfParticleToHitsMap, HitVector &hits)
 Collect the hits in the slice that have been added to a PFParticle (under either reconstruction hypothesis) More...
 
static void CollectHits (const PFParticleVector &pfParticles, const PFParticlesToHits &pfParticleToHitsMap, HitVector &hits)
 Collect the hits in a given vector of PFParticles. More...
 
static void GetSliceMetadata (const SliceVector &slices, const PFParticlesToHits &pfParticleToHitsMap, const HitToBoolMap &hitToIsNuInducedMap, const unsigned int nNuHits, SliceMetadataVector &sliceMetadata)
 Calculate the MC slice metadata. More...
 

Detailed Description

Helper class for slice id tools.

Definition at line 37 of file LArPandoraSliceIdHelper.h.

Member Typedef Documentation

typedef std::unordered_map<art::Ptr<recob::Hit>, bool> lar_pandora::LArPandoraSliceIdHelper::HitToBoolMap
private

Definition at line 83 of file LArPandoraSliceIdHelper.h.

Member Function Documentation

void lar_pandora::LArPandoraSliceIdHelper::CollectHits ( const PFParticleVector pfParticles,
const PFParticlesToHits pfParticleToHitsMap,
HitVector hits 
)
staticprivate

Collect the hits in a given vector of PFParticles.

Parameters
pfParticlesthe input vector of PFParticles
pfParticleToHitsMapthe input mapping from PFParticles to hits
hitsthe output vector of hits

Definition at line 248 of file LArPandoraSliceIdHelper.cxx.

References part.

Referenced by GetReconstructedHitsInSlice().

251  {
252  for (const auto& part : pfParticles) {
253  const auto it(pfParticleToHitsMap.find(part));
254  if (it == pfParticleToHitsMap.end())
255  throw cet::exception("LArPandora") << " LArPandoraSliceIdHelper::CollectHits - can't find "
256  "any hits associated to input PFParticle"
257  << std::endl;
258 
259  for (const auto& hit : it->second) {
260  // ATTN here we ensure that we don't double count hits, even if the input PFParticles are from different Pandora instances
261  if (std::find(hits.begin(), hits.end(), hit) == hits.end()) hits.push_back(hit);
262  }
263  }
264  }
TString part[npart]
Definition: Style.C:32
void hits()
Definition: readHits.C:15
Detector simulation of raw signals on wires.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraSliceIdHelper::CollectNeutrinoMCParticles ( const art::Event evt,
const std::string &  truthLabel,
const std::string &  mcParticleLabel,
const art::Ptr< simb::MCTruth > &  beamNuMCTruth,
MCParticleVector mcParticles 
)
staticprivate

Collect all MCParticles that come from the beam neutrino interaction.

Parameters
evtthe art event
truthLabelthe label of the MCTruth producer
mcParticleLabelthe label of the MCParticle producer
beamNuMCTruththe MCTruth block for the beam neutrino
mcParticlesthe output vector of neutrino induced MCParticles

Definition at line 99 of file LArPandoraSliceIdHelper.cxx.

References art::ProductRetriever::getByLabel(), and art::Handle< T >::isValid().

Referenced by GetSliceMetadata().

105  {
106  // Get the MCTruth handle
108  evt.getByLabel(truthLabel, mcTruthHandle);
109 
110  if (!mcTruthHandle.isValid())
111  throw cet::exception("LArPandora")
112  << " LArPandoraSliceIdHelper::CollectNeutrinoMCParticles - invalid MCTruth handle"
113  << std::endl;
114 
115  // Find MCParticles that are associated to the beam neutrino MCTruth block
116  art::FindManyP<simb::MCParticle> truthToMCParticleAssns(mcTruthHandle, evt, mcParticleLabel);
117  mcParticles = truthToMCParticleAssns.at(
118  beamNuMCTruth
119  .key()); // ATTN will throw if association from beamNuMCTruth doesn't exist. We want this!
120  }
bool isValid() const noexcept
Definition: Handle.h:203
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
unsigned int lar_pandora::LArPandoraSliceIdHelper::CountNeutrinoHits ( const HitVector hits,
const HitToBoolMap hitToIsNuInducedMap 
)
staticprivate

Count the number of hits in an input vector that are neutrino induced.

Parameters
hitsthe input vector of hits
hitToIsNuInducedMapthe mapping from hits to isNuInduced boolean
Returns
the number of hits that are neutrino induced

Definition at line 166 of file LArPandoraSliceIdHelper.cxx.

Referenced by GetSliceMetadata().

168  {
169  unsigned int nNuHits(0);
170  for (const auto& hit : hits) {
171  const auto it(hitToIsNuInducedMap.find(hit));
172 
173  if (it == hitToIsNuInducedMap.end())
174  throw cet::exception("LArPandora")
175  << " LArPandoraSliceIdHelper::CountNeutrinoHits - can't find hit in hitToIsNuInducedMap"
176  << std::endl;
177 
178  nNuHits += it->second ? 1 : 0;
179  }
180 
181  return nNuHits;
182  }
void hits()
Definition: readHits.C:15
Detector simulation of raw signals on wires.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
art::Ptr< simb::MCTruth > lar_pandora::LArPandoraSliceIdHelper::GetBeamNeutrinoMCTruth ( const art::Event evt,
const std::string &  truthLabel 
)
staticprivate

Get the MCTruth block for the simulated beam neutrino.

Parameters
evtthe art event
truthLabelthe label of the MCTruth producer
Returns
the MCTruth block for the simulated beam neutrino

Definition at line 59 of file LArPandoraSliceIdHelper.cxx.

References simb::MCParticle::E(), art::ProductRetriever::getByLabel(), simb::MCTruth::GetNeutrino(), art::Handle< T >::isValid(), simb::kBeamNeutrino, simb::MCNeutrino::Nu(), and simb::MCTruth::Origin().

Referenced by GetSliceMetadata().

62  {
63  // Get the MCTruth handle
65  evt.getByLabel(truthLabel, mcTruthHandle);
66 
67  if (!mcTruthHandle.isValid())
68  throw cet::exception("LArPandora")
69  << " LArPandoraSliceIdHelper::GetBeamNeutrinoMCTruth - invalid MCTruth handle" << std::endl;
70 
71  // Look for the truth block that is from the beam neutrino, and ensure we choose the one with the highest energy if there are multiple
72  bool foundNeutrino(false);
73  float maxNeutrinoEnergy(-std::numeric_limits<float>::max());
74  art::Ptr<simb::MCTruth> beamNuMCTruth;
75  for (unsigned int i = 0; i < mcTruthHandle->size(); ++i) {
76  const art::Ptr<simb::MCTruth> mcTruth(mcTruthHandle, i);
77 
78  if (mcTruth->Origin() != simb::kBeamNeutrino) continue;
79 
80  const float nuEnergy(mcTruth->GetNeutrino().Nu().E());
81  if (nuEnergy < maxNeutrinoEnergy) continue;
82 
83  // Select this as the beam neutrino
84  maxNeutrinoEnergy = nuEnergy;
85  beamNuMCTruth = mcTruth;
86  foundNeutrino = true;
87  }
88 
89  if (!foundNeutrino)
90  throw cet::exception("LArPandora") << " LArPandoraSliceIdHelper::GetBeamNeutrinoMCTruth - "
91  "found no beam neutrino MCTruth blocks"
92  << std::endl;
93 
94  return beamNuMCTruth;
95  }
bool isValid() const noexcept
Definition: Handle.h:203
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
Beam neutrinos.
Definition: MCTruth.h:23
void lar_pandora::LArPandoraSliceIdHelper::GetHitOrigins ( const art::Event evt,
const std::string &  hitLabel,
const std::string &  backtrackLabel,
const MCParticleVector mcParticles,
HitVector hits,
HitToBoolMap hitToIsNuInducedMap 
)
staticprivate

For each hit in the event, determine if any of it's charge was deposited by a neutrino induced particle.

Parameters
evtthe art event
hitLabelthe label of the Hit producer
backtrackLabelthe label of the Hit->MCParticle association producer - backtracker
mcParticlesthe input vector of neutrino induced MCParticles
hitsthe output vector of all hits
hitToIsNuInducedMapthe output mapping from hits to a bool = true if hit is neutrino induced

Definition at line 124 of file LArPandoraSliceIdHelper.cxx.

References art::ProductRetriever::getByLabel(), art::Handle< T >::isValid(), art::Ptr< T >::key(), and part.

Referenced by GetSliceMetadata().

130  {
131  // Collect the hits from the event
133  evt.getByLabel(hitLabel, hitHandle);
134 
135  if (!hitHandle.isValid())
136  throw cet::exception("LArPandora")
137  << " LArPandoraSliceIdHelper::GetHitOrigins - invalid hit handle" << std::endl;
138 
139  art::FindManyP<simb::MCParticle> hitToMCParticleAssns(hitHandle, evt, backtrackLabel);
140 
141  // Find the hits that are associated to a neutrino induced MCParticle using the Hit->MCParticle associations form the backtracker
142  for (unsigned int i = 0; i < hitHandle->size(); ++i) {
143  const art::Ptr<recob::Hit> hit(hitHandle, i);
144  hits.push_back(hit);
145 
146  const auto& particles(hitToMCParticleAssns.at(hit.key()));
147 
148  bool foundNuParticle(false);
149  for (const auto& part : particles) {
150  // If the MCParticles isn't in the list of neutrino particles
151  if (std::find(mcParticles.begin(), mcParticles.end(), part) == mcParticles.end()) continue;
152 
153  foundNuParticle = true;
154  break;
155  }
156 
157  if (!hitToIsNuInducedMap.emplace(hit, foundNuParticle).second)
158  throw cet::exception("LArPandora")
159  << " LArPandoraSliceIdHelper::GetHitOrigins - repeated hits in input collection"
160  << std::endl;
161  }
162  }
bool isValid() const noexcept
Definition: Handle.h:203
TString part[npart]
Definition: Style.C:32
void hits()
Definition: readHits.C:15
Detector simulation of raw signals on wires.
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraSliceIdHelper::GetPFParticleToHitsMap ( const art::Event evt,
const std::string &  pandoraLabel,
PFParticlesToHits pfParticleToHitsMap 
)
staticprivate

Get the mapping from PFParticles to associated hits (via clusters)

Parameters
evtthe art event
pandoraLabelthe label of the PFParticle <-> Cluster and Cluster <-> Hit associations - Pandora pattern recognition
pfParticleToHitsMapthe output mapping from PFParticles to associated hits

Definition at line 186 of file LArPandoraSliceIdHelper.cxx.

References art::ProductRetriever::getByLabel(), hits(), art::Handle< T >::isValid(), art::Ptr< T >::key(), and part.

Referenced by GetSliceMetadata().

189  {
190  // Get the PFParticles
192  evt.getByLabel(pandoraLabel, pfParticleHandle);
193 
194  if (!pfParticleHandle.isValid())
195  throw cet::exception("LArPandora")
196  << " LArPandoraSliceIdHelper::GetPFParticleToHitsMap - invalid PFParticle handle"
197  << std::endl;
198 
199  // Get the Clusters
201  evt.getByLabel(pandoraLabel, clusterHandle);
202 
203  if (!clusterHandle.isValid())
204  throw cet::exception("LArPandora")
205  << " LArPandoraSliceIdHelper::GetPFParticleToHitsMap - invalid cluster handle" << std::endl;
206 
207  // Get the associations between PFParticles -> Clusters -> Hits
208  art::FindManyP<recob::Cluster> pfParticleToClusterAssns(pfParticleHandle, evt, pandoraLabel);
209  art::FindManyP<recob::Hit> clusterToHitAssns(clusterHandle, evt, pandoraLabel);
210 
211  // Get the hits associated to each PFParticles
212  for (unsigned int iPart = 0; iPart < pfParticleHandle->size(); ++iPart) {
213  const art::Ptr<recob::PFParticle> part(pfParticleHandle, iPart);
214  HitVector hits;
215 
216  for (const auto& cluster : pfParticleToClusterAssns.at(part.key())) {
217  for (const auto& hit : clusterToHitAssns.at(cluster.key())) {
218  if (std::find(hits.begin(), hits.end(), hit) != hits.end())
219  throw cet::exception("LArPandora")
220  << " LArPandoraSliceIdHelper::GetPFParticleToHitsMap - double counted hits!"
221  << std::endl;
222 
223  hits.push_back(hit);
224  }
225  }
226 
227  if (!pfParticleToHitsMap.emplace(part, hits).second)
228  throw cet::exception("LArPandora")
229  << " LArPandoraSliceIdHelper::GetPFParticleToHitsMap - repeated input PFParticles"
230  << std::endl;
231  }
232  }
Cluster finding and building.
bool isValid() const noexcept
Definition: Handle.h:203
TString part[npart]
Definition: Style.C:32
void hits()
Definition: readHits.C:15
Detector simulation of raw signals on wires.
std::vector< art::Ptr< recob::Hit > > HitVector
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void lar_pandora::LArPandoraSliceIdHelper::GetReconstructedHitsInSlice ( const Slice slice,
const PFParticlesToHits pfParticleToHitsMap,
HitVector hits 
)
staticprivate

Collect the hits in the slice that have been added to a PFParticle (under either reconstruction hypothesis)

Parameters
slicethe input slice
pfParticleToHitsMapthe input mapping from PFParticles to hits
hitsthe output vector of reconstructed hits in the slice

Definition at line 236 of file LArPandoraSliceIdHelper.cxx.

References CollectHits(), lar_pandora::Slice::GetCosmicRayHypothesis(), lar_pandora::Slice::GetTargetHypothesis(), and hits().

Referenced by GetSliceMetadata().

240  {
241  // ATTN here we use the PFParticles from both hypotheses to collect the hits. Hits will not be double counted
242  LArPandoraSliceIdHelper::CollectHits(slice.GetTargetHypothesis(), pfParticleToHitsMap, hits);
243  LArPandoraSliceIdHelper::CollectHits(slice.GetCosmicRayHypothesis(), pfParticleToHitsMap, hits);
244  }
static void CollectHits(const PFParticleVector &pfParticles, const PFParticlesToHits &pfParticleToHitsMap, HitVector &hits)
Collect the hits in a given vector of PFParticles.
void hits()
Definition: readHits.C:15
void lar_pandora::LArPandoraSliceIdHelper::GetSliceMetadata ( const SliceVector slices,
const art::Event evt,
const std::string &  truthLabel,
const std::string &  mcParticleLabel,
const std::string &  hitLabel,
const std::string &  backtrackLabel,
const std::string &  pandoraLabel,
SliceMetadataVector sliceMetadata,
simb::MCNeutrino mcNeutrino 
)
static

Get MC metadata about each slice.

Parameters
slicesthe input vector of slices
evtthe art event
truthLabelthe label of the MCTruth producer
mcParticleLabelthe label of the MCParticle producer
hitLabelthe label of the Hit producer
backtrackLabelthe label of the Hit -> MCParticle association producer
pandoraLabelthe label of the Pandora all outcomes producer
sliceMetadatathe output vector of slice metadata (mapping 1:1 to the slices)
interactionTypethe output true interaction type code of the MCNeutrino
nuEnergythe output true energy of the neutrino
nuNeutrinothe mc neutrino from the beam neutrino MCTruth block

Definition at line 21 of file LArPandoraSliceIdHelper.cxx.

References CollectNeutrinoMCParticles(), CountNeutrinoHits(), GetBeamNeutrinoMCTruth(), GetHitOrigins(), GetPFParticleToHitsMap(), and hits().

30  {
31  // Find the beam neutrino in MC
32  const auto beamNuMCTruth(LArPandoraSliceIdHelper::GetBeamNeutrinoMCTruth(evt, truthLabel));
33  mcNeutrino = beamNuMCTruth->GetNeutrino();
34 
35  // Collect all MC particles resulting from the beam neutrino
36  MCParticleVector mcParticles;
38  evt, truthLabel, mcParticleLabel, beamNuMCTruth, mcParticles);
39 
40  // Get the hits and determine which are neutrino induced
42  HitToBoolMap hitToIsNuInducedMap;
44  evt, hitLabel, backtrackLabel, mcParticles, hits, hitToIsNuInducedMap);
45  const unsigned int nNuHits(
46  LArPandoraSliceIdHelper::CountNeutrinoHits(hits, hitToIsNuInducedMap));
47 
48  // Get the mapping from PFParticle to hits through clusters
49  PFParticlesToHits pfParticleToHitsMap;
50  LArPandoraSliceIdHelper::GetPFParticleToHitsMap(evt, pandoraLabel, pfParticleToHitsMap);
51 
52  // Calculate the metadata for each slice
54  slices, pfParticleToHitsMap, hitToIsNuInducedMap, nNuHits, sliceMetadata);
55  }
std::unordered_map< art::Ptr< recob::Hit >, bool > HitToBoolMap
static unsigned int CountNeutrinoHits(const HitVector &hits, const HitToBoolMap &hitToIsNuInducedMap)
Count the number of hits in an input vector that are neutrino induced.
static void CollectNeutrinoMCParticles(const art::Event &evt, const std::string &truthLabel, const std::string &mcParticleLabel, const art::Ptr< simb::MCTruth > &beamNuMCTruth, MCParticleVector &mcParticles)
Collect all MCParticles that come from the beam neutrino interaction.
static void GetPFParticleToHitsMap(const art::Event &evt, const std::string &pandoraLabel, PFParticlesToHits &pfParticleToHitsMap)
Get the mapping from PFParticles to associated hits (via clusters)
static void GetHitOrigins(const art::Event &evt, const std::string &hitLabel, const std::string &backtrackLabel, const MCParticleVector &mcParticles, HitVector &hits, HitToBoolMap &hitToIsNuInducedMap)
For each hit in the event, determine if any of it&#39;s charge was deposited by a neutrino induced partic...
void hits()
Definition: readHits.C:15
static void GetSliceMetadata(const SliceVector &slices, const art::Event &evt, const std::string &truthLabel, const std::string &mcParticleLabel, const std::string &hitLabel, const std::string &backtrackLabel, const std::string &pandoraLabel, SliceMetadataVector &sliceMetadata, simb::MCNeutrino &mcNeutrino)
Get MC metadata about each slice.
std::map< art::Ptr< recob::PFParticle >, HitVector > PFParticlesToHits
std::vector< art::Ptr< simb::MCParticle > > MCParticleVector
std::vector< TCSlice > slices
Definition: DataStructs.cxx:13
std::vector< art::Ptr< recob::Hit > > HitVector
static art::Ptr< simb::MCTruth > GetBeamNeutrinoMCTruth(const art::Event &evt, const std::string &truthLabel)
Get the MCTruth block for the simulated beam neutrino.
void lar_pandora::LArPandoraSliceIdHelper::GetSliceMetadata ( const SliceVector slices,
const PFParticlesToHits pfParticleToHitsMap,
const HitToBoolMap hitToIsNuInducedMap,
const unsigned int  nNuHits,
SliceMetadataVector sliceMetadata 
)
staticprivate

Calculate the MC slice metadata.

Parameters
slicesthe input vector of slices
pfParticleToHitsMapthe input mapping from PFParticles to hits
hitToIsNuInducedMapthe input mapping from hits to isNuInduced boolean
nNuHitsthe total number of neutrino induced hits in the event
sliceMetadatathe output vector of metadata objects correspoinding 1:1 to the input slices

Definition at line 268 of file LArPandoraSliceIdHelper.cxx.

References CountNeutrinoHits(), f, GetReconstructedHitsInSlice(), hits(), lar_pandora::LArPandoraSliceIdHelper::SliceMetadata::m_completeness, lar_pandora::LArPandoraSliceIdHelper::SliceMetadata::m_isMostComplete, lar_pandora::LArPandoraSliceIdHelper::SliceMetadata::m_nHits, and lar_pandora::LArPandoraSliceIdHelper::SliceMetadata::m_purity.

273  {
274  if (!sliceMetadata.empty())
275  throw cet::exception("LArPandora")
276  << " LArPandoraSliceIdHelper::GetSliceMetadata - non empty input metadata vector"
277  << std::endl;
278 
279  if (slices.empty()) return;
280 
281  unsigned int mostCompleteSliceIndex(0);
282  unsigned int maxNuHits(0);
283 
284  for (unsigned int sliceIndex = 0; sliceIndex < slices.size(); ++sliceIndex) {
285  const Slice& slice(slices.at(sliceIndex));
286  HitVector hits;
287  LArPandoraSliceIdHelper::GetReconstructedHitsInSlice(slice, pfParticleToHitsMap, hits);
288 
289  const unsigned int nHitsInSlice(hits.size());
290  const unsigned int nNuHitsInSlice(
291  LArPandoraSliceIdHelper::CountNeutrinoHits(hits, hitToIsNuInducedMap));
292 
293  if (nNuHitsInSlice > maxNuHits) {
294  mostCompleteSliceIndex = sliceIndex;
295  maxNuHits = nNuHitsInSlice;
296  }
297 
298  SliceMetadata metadata;
299  metadata.m_nHits = nHitsInSlice;
300  metadata.m_purity = ((nHitsInSlice == 0) ?
301  -1.f :
302  static_cast<float>(nNuHitsInSlice) / static_cast<float>(nHitsInSlice));
303  metadata.m_completeness =
304  ((nNuHits == 0) ? -1.f : static_cast<float>(nNuHitsInSlice) / static_cast<float>(nNuHits));
305  metadata.m_isMostComplete = false;
306 
307  sliceMetadata.push_back(metadata);
308  }
309 
310  sliceMetadata.at(mostCompleteSliceIndex).m_isMostComplete = true;
311  }
static unsigned int CountNeutrinoHits(const HitVector &hits, const HitToBoolMap &hitToIsNuInducedMap)
Count the number of hits in an input vector that are neutrino induced.
static void GetReconstructedHitsInSlice(const Slice &slice, const PFParticlesToHits &pfParticleToHitsMap, HitVector &hits)
Collect the hits in the slice that have been added to a PFParticle (under either reconstruction hypot...
TFile f
Definition: plotHisto.C:6
void hits()
Definition: readHits.C:15
std::vector< TCSlice > slices
Definition: DataStructs.cxx:13
std::vector< art::Ptr< recob::Hit > > HitVector
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

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