LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
BackTrackerService.cc
Go to the documentation of this file.
1 //
3 // \file BackTrackerService_service.cc
4 // \brief A service for backtracking reconstruction information to its truth
5 // information
6 //
7 // \author jason.stock@mines.sdsmt.edu
8 // Based on the original BackTracker by Brian Rebel (brebel@fnal.gov)
9 //
11 
17 
20 #include "fhiclcpp/ParameterSet.h"
22 
23 namespace cheat {
24 
25  //---------------------------------------------------------------------
28  : BackTracker(pSet.get<fhicl::ParameterSet>("BackTracker"),
30  lar::providerFrom<geo::Geometry>())
31  {
33  }
34 
35  //---------------------------------------------------------------------
37  : BackTracker(config.BackTrackerTable(),
39  lar::providerFrom<geo::Geometry>())
40  {
41  // This line is only to be included until art/LArSoft discussion about lazy
42  // rebuild can be completed.
44  }
45 
52 
53  //-----Temp rebuild function.
55  {
57  }
58 
59  //---------------------------------------------------------------------
61  {
62  fEvt = &evt;
64  if (!this->priv_CanRun(evt)) { return; }
65  this->priv_PrepSimChannels(evt);
66  fEvt = nullptr; // don't save the pointer because it will be useless after this
67  // anyways. I want to make sure calls at the wrong time crash.
68  }
69 
70  //---------------------------------------------------------------------
72  {
73  return BackTracker::CanRun(evt);
74  }
75 
76  //---------------------------------------------------------------------
78  {
79  throw cet::exception("BackTrackerService")
80  << "The called Prep Function failed. This is most likely due "
81  << "to a BackTracker function being used on a file that is real data.";
82  }
83 
84  //---------------------------------------------------------------------
86  {
87  if (!this->priv_CanRun(evt)) { this->priv_PrepFailed(); }
88  if (this->priv_SimChannelsReady()) { return; }
89  try {
91  }
92  catch (...) {
93  mf::LogWarning("BackTrackerService")
94  << "Rebuild failed to get the SimChannels. This is expected when running on a generation "
95  "or simulation step.";
96  }
97  }
98 
99  //---------------------------------------------------------------------
100  /* void BackTrackerService::priv_PrepAllHitList(){
101  if( !this->priv_CanRun(*fEvt)) { this->priv_PrepFailed(); }
102  if( this->priv_AllHitListReady() ){ return; }
103  BackTracker::PrepAllHitList(*fEvt);
104  }
105  */
107  // End of the Event Rebuild Implimentation //
109 
112  // This section contains the implimentation //
113  // of all BackTrackerService end user //
114  // functionality //
116 
117  //---------------------------------------------------------------------
118  const std::vector<art::Ptr<sim::SimChannel>>& BackTrackerService::SimChannels() const
119  {
120  // Removed until Lazy Rebuild works
121  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
122  return BackTracker::SimChannels();
123  }
124 
125  //---------------------------------------------------------------------
126  std::vector<const sim::IDE*> BackTrackerService::TrackIdToSimIDEs_Ps(int const& id) const
127  {
128  // Removed until Lazy Rebuild works
129  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
131  }
132 
133  //---------------------------------------------------------------------
134  std::vector<const sim::IDE*> BackTrackerService::TrackIdToSimIDEs_Ps(int const& id,
135  const geo::View_t view) const
136  {
137  // Removed until Lazy Rebuild works
138  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
139  return BackTracker::TrackIdToSimIDEs_Ps(id, view);
140  }
141 
142  //---------------------------------------------------------------------
144  {
145  // Removed until Lazy Rebuild works
146  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
147  return BackTracker::FindSimChannel(channel);
148  }
149 
150  //---------------------------------------------------------------------
151  std::vector<sim::TrackIDE> BackTrackerService::ChannelToTrackIDEs(
152  detinfo::DetectorClocksData const& clockData,
153  raw::ChannelID_t channel,
154  const double hit_start_time,
155  const double hit_end_time) const
156  {
157  // Removed until Lazy Rebuild works
158  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
159  return BackTracker::ChannelToTrackIDEs(clockData, channel, hit_start_time, hit_end_time);
160  }
161 
162  //---------------------------------------------------------------------
163  std::vector<sim::TrackIDE> BackTrackerService::HitToTrackIDEs(
164  detinfo::DetectorClocksData const& clockData,
165  recob::Hit const& hit) const
166  {
167  // Removed until Lazy Rebuild works
168  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
169  return BackTracker::HitToTrackIDEs(clockData, hit);
170  }
171 
172  //---------------------------------------------------------------------
173  std::vector<sim::TrackIDE> BackTrackerService::HitToTrackIDEs(
174  detinfo::DetectorClocksData const& clockData,
175  art::Ptr<recob::Hit> const& hit) const
176  {
177  // Removed until Lazy Rebuild works
178  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
179  return BackTracker::HitToTrackIDEs(clockData, hit);
180  }
181 
182  //---------------------------------------------------------------------
184  recob::Hit const& hit) const
185  {
186  // Removed until Lazy Rebuild works
187  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
188  return BackTracker::HitToTrackIds(clockData, hit);
189  }
190 
191  //---------------------------------------------------------------------
192  std::vector<sim::TrackIDE> BackTrackerService::HitToEveTrackIDEs(
193  detinfo::DetectorClocksData const& clockData,
194  recob::Hit const& hit) const
195  {
196  // Removed until Lazy Rebuild works
197  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
198  return BackTracker::HitToEveTrackIDEs(clockData, hit);
199  }
200 
201  //---------------------------------------------------------------------
202  std::vector<sim::TrackIDE> BackTrackerService::HitToEveTrackIDEs(
203  detinfo::DetectorClocksData const& clockData,
204  art::Ptr<recob::Hit> const& hit) const
205  {
206  // Removed until Lazy Rebuild works
207  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
208  return BackTracker::HitToEveTrackIDEs(clockData, hit);
209  }
210 
211  //---------------------------------------------------------------------
212  std::vector<art::Ptr<recob::Hit>> BackTrackerService::TrackIdToHits_Ps(
213  detinfo::DetectorClocksData const& clockData,
214  const int tkId,
215  std::vector<art::Ptr<recob::Hit>> const& hitsIn) const
216  {
217  // Removed until Lazy Rebuild works
218  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
219  return BackTracker::TrackIdToHits_Ps(clockData, tkId, hitsIn);
220  }
221 
222  //---------------------------------------------------------------------
223  /* const std::vector < art::Ptr < recob::Hit > >
224  BackTrackerService::TrackIdToHits_Ps( const int& tkId ) {
225  //Removed until Lazy Rebuild works
226  //if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
227  // if(!this->priv_AllHitListReady()){this->priv_PrepAllHitList();}
228  return BackTracker::TrackIdToHits_Ps( tkId);
229  }*/ //I can't support this functino and caching all the hits without lazy implimentation
230 
231  //---------------------------------------------------------------------
232  std::vector<std::vector<art::Ptr<recob::Hit>>> BackTrackerService::TrackIdsToHits_Ps(
233  detinfo::DetectorClocksData const& clockData,
234  std::vector<int> const& tkIds,
235  std::vector<art::Ptr<recob::Hit>> const& hitsIn) const
236  {
237  // Removed until Lazy Rebuild works
238  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
239  return BackTracker::TrackIdsToHits_Ps(clockData, tkIds, hitsIn);
240  }
241 
242  //---------------------------------------------------------------------
243  std::vector<sim::IDE> BackTrackerService::HitToAvgSimIDEs(
244  detinfo::DetectorClocksData const& clockData,
245  recob::Hit const& hit) const
246  {
247  // Removed until Lazy Rebuild works
248  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
249  return BackTracker::HitToAvgSimIDEs(clockData, hit);
250  }
251 
252  //---------------------------------------------------------------------
253  std::vector<sim::IDE> BackTrackerService::HitToAvgSimIDEs(
254  detinfo::DetectorClocksData const& clockData,
256  {
257  // Removed until Lazy Rebuild works
258  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
259  return BackTracker::HitToAvgSimIDEs(clockData, hit);
260  }
261 
262  //---------------------------------------------------------------------
263  std::vector<const sim::IDE*> BackTrackerService::HitToSimIDEs_Ps(
264  detinfo::DetectorClocksData const& clockData,
265  recob::Hit const& hit) const
266  {
267  //Removed until Lazy Rebuild works
268  //if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
269  return BackTracker::HitToSimIDEs_Ps(clockData, hit);
270  }
271 
272  //---------------------------------------------------------------------
273  std::vector<const sim::IDE*> BackTrackerService::HitToSimIDEs_Ps(
274  detinfo::DetectorClocksData const& clockData,
275  art::Ptr<recob::Hit> const& hit) const
276  {
277  //Removed until Lazy Rebuild works
278  //if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
279  return BackTracker::HitToSimIDEs_Ps(clockData, hit);
280  }
281 
282  //---------------------------------------------------------------------
283  std::vector<double> BackTrackerService::SimIDEsToXYZ(std::vector<sim::IDE> const& ides) const
284  {
285  // Removed until Lazy Rebuild works
286  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
287  return BackTracker::SimIDEsToXYZ(ides);
288  }
289 
290  //---------------------------------------------------------------------
291  std::vector<double> BackTrackerService::SimIDEsToXYZ(
292  std::vector<const sim::IDE*> const& ide_Ps) const
293  {
294  // Removed until Lazy Rebuild works
295  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
296  return BackTracker::SimIDEsToXYZ(ide_Ps);
297  }
298 
299  //---------------------------------------------------------------------
300  std::vector<double> BackTrackerService::HitToXYZ(detinfo::DetectorClocksData const& clockData,
301  const recob::Hit& hit) const
302  {
303  // Removed until Lazy Rebuild works
304  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
305  return BackTracker::HitToXYZ(clockData, hit);
306  }
307 
308  //---------------------------------------------------------------------
309  std::vector<double> BackTrackerService::HitToXYZ(detinfo::DetectorClocksData const& clockData,
310  art::Ptr<recob::Hit> const& hit) const
311  {
312  // Removed until Lazy Rebuild works
313  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
314  return HitToXYZ(clockData, *hit);
315  }
316 
317  //---------------------------------------------------------------------
319  detinfo::DetectorClocksData const& clockData,
320  std::set<int> const& trackIds,
321  std::vector<art::Ptr<recob::Hit>> const& hits) const
322  {
323  // Removed until Lazy Rebuild works
324  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
325  return BackTracker::HitCollectionPurity(clockData, trackIds, hits);
326  }
327 
328  //---------------------------------------------------------------------
330  detinfo::DetectorClocksData const& clockData,
331  std::set<int> const& trackIds,
332  std::vector<art::Ptr<recob::Hit>> const& hits) const
333  {
334  // Removed until Lazy Rebuild works
335  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
336  return BackTracker::HitChargeCollectionPurity(clockData, trackIds, hits);
337  }
338 
339  //---------------------------------------------------------------------
341  detinfo::DetectorClocksData const& clockData,
342  std::set<int> const& trackIds,
344  std::vector<art::Ptr<recob::Hit>> const& allhits,
345  geo::View_t const& view) const
346  {
347  // Removed until Lazy Rebuild works
348  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
349  return BackTracker::HitCollectionEfficiency(clockData, trackIds, hits, allhits, view);
350  }
351 
352  //---------------------------------------------------------------------
354  detinfo::DetectorClocksData const& clockData,
355  std::set<int> const& trackIds,
357  std::vector<art::Ptr<recob::Hit>> const& allhits,
358  geo::View_t const& view) const
359  {
360  //Removed until Lazy Rebuild works
361  //if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
362  return BackTracker::HitChargeCollectionEfficiency(clockData, trackIds, hits, allhits, view);
363  }
364 
365  //---------------------------------------------------------------------
367  {
368  // Removed until Lazy Rebuild works
369  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
371  }
372 
373  //---------------------------------------------------------------------
375  {
376  // Removed until Lazy Rebuild works
377  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
379  }
380 
381  //---------------------------------------------------------------------
383  detinfo::DetectorClocksData const& clockData,
384  std::vector<art::Ptr<recob::Hit>> const& hits) const
385  {
386  // Removed until Lazy Rebuild works
387  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
388  return BackTracker::GetSetOfTrackIds(clockData, hits);
389  }
390 
391  //---------------------------------------------------------------------
393  detinfo::DetectorClocksData const& clockData,
394  std::vector<art::Ptr<recob::Hit>> const& hits) const
395  {
396  // Removed until Lazy Rebuild works
397  // if(!this->priv_SimChannelsReady()){this->priv_PrepSimChannels();}
398  return BackTracker::GetSetOfEveIds(clockData, hits);
399  }
400 
401  //---------------------------------------------------------------------
403  detinfo::DetectorClocksData const& clockData,
404  std::vector<art::Ptr<recob::Hit>> const& hits) const
405  {
406  // if( !this->priv_CanRun(*fEvt)) { this->priv_PrepFailed(); }
408  }
409 
410  //---------------------------------------------------------------------
411  std::vector<art::Ptr<recob::Hit>> BackTrackerService::SpacePointToHits_Ps(
412  art::Ptr<recob::SpacePoint> const& spt) const
413  {
414  // Note, this function is goofy in that it doesn't use the hits prepared by
415  // the module. That should likely be changed to make things more uniform.
416  // if( !this->priv_CanRun(*fEvt)) { this->priv_PrepFailed(); }
417  if (!fEvt) {
418  throw cet::exception("BackTrackerService")
419  << "This function is not yet implimented pending the implimentation of "
420  "backtracker lazy loading.";
421  }
423  }
424 
425  //---------------------------------------------------------------------
427  detinfo::DetectorClocksData const& clockData,
428  art::Ptr<recob::SpacePoint> const& spt) const
429  {
430  // if( !this->priv_CanRun(*fEvt)) { this->priv_PrepFailed(); }
431  if (!fEvt) {
432  throw cet::exception("BackTrackerService")
433  << "This function is not yet implimented pending the implimentation of "
434  "backtracker lazy loading.";
435  }
436  return BackTracker::SpacePointToXYZ(clockData, spt, *fEvt);
437  }
438 
439 } // end namespace cheat
Utilities related to art service access.
void PrepSimChannels(const Evt &evt)
std::vector< art::Ptr< recob::Hit > > TrackIdToHits_Ps(detinfo::DetectorClocksData const &clockData, int tkId, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
std::vector< sim::TrackIDE > HitToTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
std::vector< std::vector< art::Ptr< recob::Hit > > > TrackIdsToHits_Ps(detinfo::DetectorClocksData const &clockData, std::vector< int > const &tkIds, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
Definition: BackTracker.cc:259
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
T::provider_type const * providerFrom()
Returns a constant pointer to the provider of specified service.
Definition: ServiceUtil.h:75
std::vector< art::Ptr< recob::Hit > > SpacePointToHits_Ps(art::Ptr< recob::SpacePoint > const &spt) const
double HitChargeCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
std::vector< sim::TrackIDE > HitToEveTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
Definition: BackTracker.cc:196
std::vector< double > SpacePointToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::SpacePoint > const &spt, const Evt &evt) const
double HitCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits, std::vector< art::Ptr< recob::Hit >> const &allhits, geo::View_t const &view) const
std::vector< const sim::IDE * > TrackIdToSimIDEs_Ps(int const &id) const
std::vector< double > HitToXYZ(detinfo::DetectorClocksData const &clockData, const recob::Hit &hit) const
std::vector< sim::TrackIDE > HitToTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
Definition: BackTracker.cc:174
std::vector< int > HitToTrackIds(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
std::vector< art::Ptr< recob::Hit > > SpacePointToHits_Ps(art::Ptr< recob::SpacePoint > const &spt, const Evt &evt) const
bool CanRun(const Evt &evt)
Definition: BackTracker.h:92
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:289
void hits()
Definition: readHits.C:15
art::Ptr< sim::SimChannel > FindSimChannel(raw::ChannelID_t channel) const
void Rebuild(const art::Event &evt)
std::set< int > GetSetOfTrackIds() const
std::vector< double > HitToXYZ(detinfo::DetectorClocksData const &clockData, const recob::Hit &hit) const
Definition: BackTracker.cc:405
BackTrackerService(const fhicl::ParameterSet &pSet, art::ActivityRegistry &reg)
art::Ptr< sim::SimChannel > FindSimChannel(raw::ChannelID_t channel) const
Returns the cached sim::SimChannel on the specified channel.
Definition: BackTracker.cc:119
double HitCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
parameter set interface
std::vector< art::Ptr< recob::Hit > > TrackIdToHits_Ps(detinfo::DetectorClocksData const &clockData, int tkId, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
Definition: BackTracker.cc:230
void priv_PrepSimChannels(const art::Event &evt)
std::set< int > GetSetOfTrackIds() const
Definition: BackTracker.h:227
double HitCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
Definition: BackTracker.cc:413
std::vector< std::vector< art::Ptr< recob::Hit > > > TrackIdsToHits_Ps(detinfo::DetectorClocksData const &clockData, std::vector< int > const &tkIds, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
void priv_PrepEvent(const art::Event &evt, art::ScheduleContext)
GlobalSignal< detail::SignalResponseType::FIFO, void(Event const &, ScheduleContext)> sPreProcessEvent
Detector simulation of raw signals on wires.
const std::vector< art::Ptr< sim::SimChannel > > & SimChannels() const
Definition: BackTracker.h:113
std::set< int > GetSetOfEveIds() const
bool priv_CanRun(const art::Event &evt)
double HitChargeCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits, std::vector< art::Ptr< recob::Hit >> const &allhits, geo::View_t const &view) const
std::vector< sim::TrackIDE > ChannelToTrackIDEs(detinfo::DetectorClocksData const &clockData, raw::ChannelID_t channel, const double hit_start_time, const double hit_end_time) const
Definition: BackTracker.cc:127
std::set< int > GetSetOfEveIds() const
Definition: BackTracker.h:228
double HitChargeCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
Definition: BackTracker.cc:432
decltype(auto) get(T &&obj)
ADL-aware version of std::to_string.
Definition: StdUtils.h:120
code to link reconstructed objects back to the MC truth information
Definition: BackTracker.cc:22
LArSoft-specific namespace.
Contains all timing reference information for the detector.
std::vector< int > HitToTrackIds(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
Definition: BackTracker.cc:184
std::vector< sim::IDE > HitToAvgSimIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
static ScheduleContext invalid()
std::vector< double > SpacePointHitsToWeightedXYZ(detinfo::DetectorClocksData const &clockData, std::vector< art::Ptr< recob::Hit >> const &hits) const
std::vector< sim::TrackIDE > HitToEveTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
double HitCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits, std::vector< art::Ptr< recob::Hit >> const &allhits, geo::View_t const &view) const
Definition: BackTracker.cc:452
std::vector< const sim::IDE * > TrackIdToSimIDEs_Ps(int const &id) const
Definition: BackTracker.cc:61
std::vector< double > SimIDEsToXYZ(std::vector< sim::IDE > const &ides) const
const std::vector< art::Ptr< sim::SimChannel > > & SimChannels() const
std::vector< const sim::IDE * > HitToSimIDEs_Ps(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:46
TCEvent evt
Definition: DataStructs.cxx:8
unsigned int ChannelID_t
Type representing the ID of a readout channel.
Definition: RawTypes.h:28
std::vector< sim::IDE > HitToAvgSimIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
Definition: BackTracker.cc:304
Namespace collecting geometry-related classes utilities.
std::vector< double > SpacePointToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::SpacePoint > const &spt) const
std::vector< double > SimIDEsToXYZ(std::vector< sim::IDE > const &ides) const
Definition: BackTracker.cc:374
double HitChargeCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits, std::vector< art::Ptr< recob::Hit >> const &allhits, geo::View_t const &view) const
Definition: BackTracker.cc:490
art framework interface to geometry description
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::vector< sim::TrackIDE > ChannelToTrackIDEs(detinfo::DetectorClocksData const &clockData, raw::ChannelID_t channel, const double hit_start_time, const double hit_end_time) const
std::vector< const sim::IDE * > HitToSimIDEs_Ps(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
Definition: BackTracker.cc:318
std::vector< double > SpacePointHitsToWeightedXYZ(detinfo::DetectorClocksData const &clockData, std::vector< art::Ptr< recob::Hit >> const &hits) const
Definition: BackTracker.cc:558