All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
sbn::TrackAreaHit Class Reference
Inheritance diagram for sbn::TrackAreaHit:

Public Member Functions

 TrackAreaHit (fhicl::ParameterSet const &p)
 
 TrackAreaHit (TrackAreaHit const &)=delete
 
 TrackAreaHit (TrackAreaHit &&)=delete
 
TrackAreaHitoperator= (TrackAreaHit const &)=delete
 
TrackAreaHitoperator= (TrackAreaHit &&)=delete
 
void produce (art::Event &e) override
 
recob::Hit MakeHit (const recob::Wire &wire, const geo::WireID &wireID, const geo::GeometryCore *geo, raw::TDCtick_t startTick, raw::TDCtick_t endTick) const
 
recob::Hit MakeHit (const raw::RawDigit &digit, const geo::WireID &wireID, const geo::GeometryCore *geo, raw::TDCtick_t startTick, raw::TDCtick_t endTick) const
 

Private Attributes

art::InputTag fTrackLabel
 
art::InputTag fWireLabel
 
std::vector< art::InputTag > fDigitLabels
 
art::InputTag fT0Label
 
float fSignalShapingWindow
 
float fTransverseDiffusionScale
 
float fLongitudinalDiffusionScale
 
bool fAppendExtraHit
 
bool fPrependExtraHit
 
bool fUseWires
 
unsigned fCryostat
 

Detailed Description

Definition at line 47 of file TrackAreaHit_module.cc.

Constructor & Destructor Documentation

sbn::TrackAreaHit::TrackAreaHit ( fhicl::ParameterSet const &  p)
explicit

Definition at line 81 of file TrackAreaHit_module.cc.

82  : EDProducer{p},
83  fTrackLabel(p.get<art::InputTag>("TrackLabel", "pandoraTrack")),
84  fWireLabel(p.get<art::InputTag>("WireLabel", "calowire")),
85  fDigitLabels(p.get<std::vector<art::InputTag>>("DigitLabels", {})),
art::InputTag fTrackLabel
pdgs p
Definition: selectors.fcl:22
std::vector< art::InputTag > fDigitLabels
art::InputTag fWireLabel
sbn::TrackAreaHit::TrackAreaHit ( TrackAreaHit const &  )
delete
sbn::TrackAreaHit::TrackAreaHit ( TrackAreaHit &&  )
delete

Member Function Documentation

recob::Hit sbn::TrackAreaHit::MakeHit ( const recob::Wire wire,
const geo::WireID wireID,
const geo::GeometryCore geo,
raw::TDCtick_t  startTick,
raw::TDCtick_t  endTick 
) const

Definition at line 100 of file TrackAreaHit_module.cc.

100  {
101  // garbage values for some fields which are not applicable
102  raw::ChannelID_t hitChannel = geo->PlaneWireToChannel(wireID);
103  raw::TDCtick_t hitStartTick = -1000;
104  bool setstartTick = false;
105  raw::TDCtick_t hitEndTick = -1000;
106  bool setendTick = false;
107  float hitPeakTime = (startTick + endTick) / 2.; // recob::Hit time unit is also [ticks]
108  float hitSigmaPeakTime = (endTick - startTick) / 2.;
109  float hitRMS = (endTick - startTick) / 2.;
110  float hitPeakAmplitude = 0.;
111  float hitSigmaPeakAmplitude = 0.;
112  float hitSumADC = 0.; // we're going to set this one
113  float hitIntegral = 0.; // this one too
114  float hitSigmaIntegral = 0.; // TODO: this one?
115  short int hitMultiplicity = 1; // no pulse trains here
116  short int hitLocalIndex = 0;
117  float hitGoodnessOfFit = -999999;
118  short int hitNDF = 0;
119  geo::View_t hitView = geo->View(wireID);
120  geo::SigType_t hitSignalType = geo->SignalType(wireID);
121  geo::WireID hitWire = wireID;
122 
123  //std::cout << "Hit view: " << hitView << " " << " sigType: " << hitSignalType << " wireID: " << wireID << std::endl;
124 
125  const recob::Wire::RegionsOfInterest_t &ROI = wire.SignalROI();
127  raw::TDCtick_t roiStart = range.begin_index();
128  raw::TDCtick_t roiEnd = range.end_index();
129 
130  //std::cout << "Window from: " << startTick << " to " << endTick << std::endl;
131  //std::cout << "ROI from: " << roiStart << " to " << roiEnd << std::endl;
132  // check for overlap
133  if (roiStart <= endTick && startTick <= roiEnd) {
134  // shrink the ROI to the integration window
135  if (roiStart < startTick && startTick <= roiEnd) range.move_head(startTick);
136  if (roiEnd > endTick && endTick >= roiStart) range.move_tail(endTick);
137 
138  // integrate
139  for (float v: range) {
140  hitSumADC += v;
141  hitIntegral += v;
142  }
143 
144  // update start and end time
145  raw::TDCtick_t thisStart = std::max(roiStart, startTick);
146  raw::TDCtick_t thisEnd = std::min(roiEnd, endTick);
147 
148  //std::cout << "Integrating from " << thisStart << " to " << thisEnd << std::endl;
149  //std::cout << "Total integral: " << hitIntegral << std::endl;
150 
151  if (!setstartTick || thisStart < hitStartTick) {
152  hitStartTick = thisStart;
153  setstartTick = true;
154  }
155  if (!setendTick || thisEnd > hitEndTick) {
156  hitEndTick = thisEnd;
157  setendTick = true;
158  }
159  }
160  }
161 
162  // if we didn't integrate anything don't save this hit
163  if (!setstartTick || !setendTick) return recob::Hit();
164 
165  // construct the hit
166  recob::Hit thisHit(
167  hitChannel,
168  hitStartTick,
169  hitEndTick,
170  hitPeakTime,
171  hitSigmaPeakTime,
172  hitRMS,
173  hitPeakAmplitude,
174  hitSigmaPeakAmplitude,
175  hitSumADC,
176  hitIntegral,
177  hitSigmaIntegral,
178  hitMultiplicity,
179  hitLocalIndex,
180  hitGoodnessOfFit,
181  hitNDF,
182  hitView,
183  hitSignalType,
184  hitWire
185  );
186 
187  return thisHit;
188 }
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
const range_list_t & get_ranges() const
Returns the internal list of non-void ranges.
SigType_t SignalType(geo::PlaneID const &pid) const
Returns the type of signal on the channels of specified TPC plane.
int TDCtick_t
Type representing a TDC tick.
Definition: RawTypes.h:25
enum geo::_plane_sigtype SigType_t
const RegionsOfInterest_t & SignalROI() const
Returns the list of regions of interest.
Definition: Wire.h:228
View_t View(geo::PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
raw::ChannelID_t PlaneWireToChannel(WireID const &wireid) const
Returns the ID of the TPC channel connected to the specified wire.
Range class, with range and data.
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:48
unsigned int ChannelID_t
Type representing the ID of a readout channel.
Definition: RawTypes.h:28
recob::Hit sbn::TrackAreaHit::MakeHit ( const raw::RawDigit digit,
const geo::WireID wireID,
const geo::GeometryCore geo,
raw::TDCtick_t  startTick,
raw::TDCtick_t  endTick 
) const

Definition at line 190 of file TrackAreaHit_module.cc.

190  {
191 
192  // clamp the tick range inside the digits
193  startTick = std::max(0, startTick);
194  endTick = std::min((int)digit.NADC()-1, endTick);
195 
196  // garbage values for some fields which are not applicable
197  raw::ChannelID_t hitChannel = geo->PlaneWireToChannel(wireID);
198  raw::TDCtick_t hitStartTick = startTick;
199  raw::TDCtick_t hitEndTick = endTick;
200  float hitPeakTime = (startTick + endTick) / 2.; // recob::Hit time unit is also [ticks]
201  float hitSigmaPeakTime = (endTick - startTick) / 2.;
202  float hitRMS = (endTick - startTick) / 2.;
203  float hitPeakAmplitude = 0.;
204  float hitSigmaPeakAmplitude = 0.;
205  float hitSumADC = 0.; // we're going to set this one
206  float hitIntegral = 0.; // this one too
207  float hitSigmaIntegral = 0.; // TODO: this one?
208  short int hitMultiplicity = 1; // no pulse trains here
209  short int hitLocalIndex = 0;
210  float hitGoodnessOfFit = -999999;
211  short int hitNDF = 0;
212  geo::View_t hitView = geo->View(wireID);
213  geo::SigType_t hitSignalType = geo->SignalType(wireID);
214  geo::WireID hitWire = wireID;
215 
216  for (int i_adc = startTick; i_adc <= endTick; i_adc++) {
217  hitSumADC += digit.ADC(i_adc);
218  hitIntegral += digit.ADC(i_adc);
219  }
220 
221  // construct the hit
222  recob::Hit thisHit(
223  hitChannel,
224  hitStartTick,
225  hitEndTick,
226  hitPeakTime,
227  hitSigmaPeakTime,
228  hitRMS,
229  hitPeakAmplitude,
230  hitSigmaPeakAmplitude,
231  hitSumADC,
232  hitIntegral,
233  hitSigmaIntegral,
234  hitMultiplicity,
235  hitLocalIndex,
236  hitGoodnessOfFit,
237  hitNDF,
238  hitView,
239  hitSignalType,
240  hitWire
241  );
242 
243  return thisHit;
244 }
short ADC(int i) const
ADC vector element number i; no decompression is applied.
Definition: RawDigit.h:208
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
SigType_t SignalType(geo::PlaneID const &pid) const
Returns the type of signal on the channels of specified TPC plane.
int TDCtick_t
Type representing a TDC tick.
Definition: RawTypes.h:25
enum geo::_plane_sigtype SigType_t
size_t NADC() const
Number of elements in the compressed ADC sample vector.
Definition: RawDigit.h:207
View_t View(geo::PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
raw::ChannelID_t PlaneWireToChannel(WireID const &wireid) const
Returns the ID of the TPC channel connected to the specified wire.
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:48
unsigned int ChannelID_t
Type representing the ID of a readout channel.
Definition: RawTypes.h:28
TrackAreaHit& sbn::TrackAreaHit::operator= ( TrackAreaHit const &  )
delete
TrackAreaHit& sbn::TrackAreaHit::operator= ( TrackAreaHit &&  )
delete
void sbn::TrackAreaHit::produce ( art::Event &  e)
override

Definition at line 246 of file TrackAreaHit_module.cc.

247 {
248  // output data products
249  std::unique_ptr<art::Assns<recob::Track, recob::Hit, recob::TrackHitMeta>> assn(new art::Assns<recob::Track, recob::Hit, recob::TrackHitMeta>);
250  std::unique_ptr<std::vector<recob::Hit>> outHits(new std::vector<recob::Hit>);
251 
252  // If using wires
253  std::unique_ptr<art::Assns<recob::Hit, recob::Wire>> wireAssn(new art::Assns<recob::Hit, recob::Wire>);
254  // If using digits
255  std::unique_ptr<art::Assns<recob::Hit, raw::RawDigit>> digitAssn(new art::Assns<recob::Hit, raw::RawDigit>);
256 
257 
258  art::PtrMaker<recob::Hit> hitPtrMaker{e};
259 
260  // input data
261  art::Handle<std::vector<recob::Track>> track_handle;
262  e.getByLabel(fTrackLabel, track_handle);
263 
264  std::vector<art::Ptr<recob::Track>> tracks;
265  art::fill_ptr_vector(tracks, track_handle);
266 
267  std::vector<art::Ptr<recob::Wire>> wires;
268  std::vector<art::Ptr<raw::RawDigit>> digits;
269 
270  if (fUseWires) {
271  auto const& wire_handle = e.getValidHandle<std::vector<recob::Wire>>(fWireLabel);
272  art::fill_ptr_vector(wires, wire_handle);
273  }
274  else {
275  for (const art::InputTag &l: fDigitLabels) {
276  auto const& digit_handle = e.getValidHandle<std::vector<raw::RawDigit>>(l);
277  art::fill_ptr_vector(digits, digit_handle);
278  }
279  }
280 
281  art::FindManyP<anab::T0> fmT0(tracks, e, fT0Label);
282 
283  const geo::GeometryCore *geo = lar::providerFrom<geo::Geometry>();
284  auto const dclock = art::ServiceHandle<detinfo::DetectorClocksService const>()->DataFor(e);
285  auto const dprop =
286  art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataFor(e, dclock);
287 
288  // auto const g4param = art::ServiceHandle<sim::LArG4Parameters const>();
289  art::ServiceHandle<sim::LArG4Parameters const> g4param;
290 
291  std::set<unsigned> channels;
292 
293  for (unsigned i = 0; i < tracks.size(); i++) {
294  const recob::Track &track = *tracks[i];
295 
296  // Look up if the track was shifted by some T0
297  double track_t0 = 0.;
298  if (!fT0Label.empty()) {
299  const std::vector<art::Ptr<anab::T0>> &t0 = fmT0.at(i);
300  if (t0.size()) {
301  track_t0 = t0.at(0)->Time() / 1e3 /* ns -> us */;
302  }
303  // std::cout << "T0: " << t0.at(0)->Time() << " corr: " << track_t0 << std::endl;
304  }
305 
306  // get the cryostat
308  for (auto const &planeID: geo->IteratePlaneIDs(cid)) {
309  int lastWire = -100000;
310  for (size_t j = 0; j < track.NumberTrajectoryPoints()-1; j++) {
311  // go to the next valid point
312  j = track.NextValidPoint(j);
313  // break if bad/at end of trajectory
314  if (!(j < track.NumberTrajectoryPoints()-1) || j == recob::TrackTrajectory::InvalidIndex) {
315  break;
316  }
317 
318  // get the next valid point as well -- if the next valid point is at the end, break
319  size_t next_point_ind = track.NextValidPoint(j+1);
320  // break if bad/at end of trajectory
321  if (!(next_point_ind < track.NumberTrajectoryPoints()) || next_point_ind == recob::TrackTrajectory::InvalidIndex) {
322  break;
323  }
324 
325  recob::Track::Point_t thispoint_p = track.LocationAtPoint(j);
326  recob::Track::Point_t nextpoint_p = track.LocationAtPoint(next_point_ind);
327  TVector3 thispoint (thispoint_p.X(), thispoint_p.Y(), thispoint_p.Z());
328  TVector3 nextpoint (nextpoint_p.X(), nextpoint_p.Y(), nextpoint_p.Z());
329 
330  // if we're not in the TPC cooresponding to this plane, continue
331  if (!geo->TPC(planeID).ContainsPosition(thispoint)) continue;
332 
333  // calculate overlap with wires
334  double thiswirecoord = geo->WireCoordinate(thispoint_p, planeID);
335  double nextwirecoord = geo->WireCoordinate(nextpoint_p, planeID);
336 
337  int wireStart = std::nearbyint((thiswirecoord >= nextwirecoord) ? std::floor(thiswirecoord) : std::ceil(thiswirecoord));
338  int wireEnd = std::nearbyint((thiswirecoord >= nextwirecoord) ? std::floor(nextwirecoord) : std::ceil(nextwirecoord));
339 
340  // if we're not crossing a wire continue
341  if (wireStart == wireEnd) continue;
342 
343  // check the validity of the range of wires
344  if (!(wireStart >= 0 && wireStart < (int)geo->Plane(planeID).Nwires())) {
345  std::cout << "At end of trajectory: " <<
346  "Can't find wire for track trajectory position at: " <<
347  thispoint.X() << " " << thispoint.Y() << " " << thispoint.Z() <<
348  ". Returned start wire is " << wireStart << " (max: " << geo->Plane(planeID).Nwires() << ")" << std::endl;
349  break;
350  }
351  if (!(wireEnd >= 0 && wireEnd <= (int)geo->Plane(planeID).Nwires())) {
352  std::cout << "At end of trajectory: " <<
353  "Can't find wire for track trajectory position at: " <<
354  nextpoint.X() << " " << nextpoint.Y() << " " << nextpoint.Z() <<
355  ". Returned end wire is " << wireEnd << " (max: " << geo->Plane(planeID).Nwires() << ")" << std::endl;
356  break;
357  }
358 
359  // if this wire is the same as the last skip it
360  if (wireStart == lastWire) {
361  if (wireStart < wireEnd) wireStart ++;
362  else wireStart --;
363  }
364 
365  // again continue if this wouldn't cross a new wire
366  if (wireStart == wireEnd) continue;
367 
368  // get the integration window
369  float x = thispoint.X();
370  recob::Track::Vector_t dir_v = track.DirectionAtPoint(j);
371  TVector3 dir(dir_v.X(), dir_v.Y(), dir_v.Z());
372 
373  // Get time from X [ticks]
374  //
375  // Undo any T0 correction to the track to get back to the hits
376  float time = dprop.ConvertXToTicks(x, planeID) + track_t0 * geo->TPC(planeID).DriftDir()[0] / dclock.TPCClock().TickPeriod();
377 
378  // get the geometric time window [ticks]
379  //
380  // First get the projected length in the direction towards the wireplane
381  //
382  // Effective pitch as in the Calorimetry module
383  double angleToVert = geo->WireAngleToVertical(geo->View(planeID), planeID) - 0.5*::util::pi<>();
384  double cosgamma = std::abs(std::sin(angleToVert)*dir.Y() + std::cos(angleToVert)*dir.Z());
385  double effpitch = geo->WirePitch() / cosgamma;
386 
387  // Add in the contribution from diffusion
388  float xdrift = abs(x - geo->TPC(planeID).PlaneLocation(0)[0]); // Copied from G4 / DriftIonizationElectrons
389  float tdrift = xdrift / dprop.DriftVelocity();
390  effpitch += fTransverseDiffusionScale * sqrt(2*tdrift*g4param->TransverseDiffusion());
391 
392  double proj_length = abs(effpitch * dir.X() / sqrt(1 - dir.X() * dir.X()));
393  // if the projected length is too big, clamp it to the track length
394  proj_length = std::min(proj_length, abs(track.Length() * dir.X()));
395 
396  // convert the length to a window in ticks
397  double window = (proj_length / dprop.DriftVelocity()) / dclock.TPCClock().TickPeriod();
398 
399  // add in the window from signal shaping [ticks]
400  window += fSignalShapingWindow;
401  // And longitudinal Diffsion
402  window += (fLongitudinalDiffusionScale*sqrt(2*tdrift*g4param->LongitudinalDiffusion()) / dprop.DriftVelocity()) / dclock.TPCClock().TickPeriod();
403 
404  // convert to a TDCTick range
405  raw::TDCtick_t startTick = std::nearbyint(std::floor(time - window / 2.));
406  raw::TDCtick_t endTick = std::nearbyint(std::ceil(time + window / 2.));
407 
408  int incl = wireStart < wireEnd ? 1 : -1;
409  for (int wire = wireStart; wire != wireEnd; wire += incl) {
410  //std::cout << "Got wire: " << wire << std::endl;
411  geo::WireID wireID {planeID, (geo::WireID::WireID_t) wire};
412  lastWire = wire;
413 
414  // Get the channel of this wire
415  unsigned channel = geo->PlaneWireToChannel(wireID);
416 
417  // If we have already seen this channel, ignore it.
418  //
419  // This can happen in ICARUS because TPC channels are duplicated across
420  // multiple "logical" TPC's in planes 1 and 2. We don't want to
421  // double-count the charge on those channels
422  if (channels.count(channel)) continue;
423 
424  channels.insert(channel);
425 
426  // Make the hit -- using wires or digits
427 
428  recob::Hit thisHit;
429  int assoc_ind;
430  if (fUseWires) {
431  // First find the corresponding recob::Wire
432  int wire_ind = -1;
433  for (unsigned i_rwire = 0; i_rwire < wires.size(); i_rwire++) {
434  if (channel == wires[i_rwire]->Channel()) {
435  wire_ind = (int)i_rwire;
436  break;
437  }
438  }
439  assoc_ind = wire_ind;
440 
441  // make the hit
442  thisHit = MakeHit(*wires.at(wire_ind), wireID, geo, startTick, endTick);
443  }
444  else {
445  // Find the digits
446  int digit_ind = -1;
447  for (unsigned i_digit = 0; i_digit < digits.size(); i_digit++) {
448  if (channel == digits[i_digit]->Channel()) {
449  digit_ind = (int)i_digit;
450  break;
451  }
452  }
453  assoc_ind = digit_ind;
454 
455  // Make the hit
456  thisHit = MakeHit(*digits.at(digit_ind), wireID, geo, startTick, endTick);
457  }
458 
459  // if invalid hit, ignore it
460  if (thisHit.WireID().Wire == geo::WireID::InvalidID) continue;
461 
462  // construct the track meta object
463  recob::TrackHitMeta thisHitMeta(j);
464 
465  // save to output data
466  outHits->push_back(thisHit);
467 
468  // add to the association
469  art::Ptr<recob::Hit> thisHitPtr = hitPtrMaker(outHits->size()-1);
470  assn->addSingle(tracks[i], thisHitPtr, thisHitMeta);
471  if (fUseWires) {
472  wireAssn->addSingle(thisHitPtr, wires[assoc_ind]);
473  }
474  else {
475  digitAssn->addSingle(thisHitPtr, digits[assoc_ind]);
476  }
477  }
478  }
479  }
480  }
481 
482  e.put(std::move(outHits));
483  e.put(std::move(assn));
484  if (fUseWires) {
485  e.put(std::move(wireAssn));
486  }
487  else {
488  e.put(std::move(digitAssn));
489  }
490 
491 }
geo::Length_t WireCoordinate(double YPos, double ZPos, geo::PlaneID const &planeid) const
Returns the index of the nearest wire to the specified position.
Vector DriftDir() const
Returns the direction of the drift (vector pointing toward the planes).
Definition: TPCGeo.h:773
art::InputTag fTrackLabel
PlaneGeo const & Plane(unsigned int const p, unsigned int const tpc=0, unsigned int const cstat=0) const
Returns the specified wire.
ClusterModuleLabel join with tracks
process_name opflash particleana ie x
geo::WireID WireID() const
Definition: Hit.h:233
Point_t const & LocationAtPoint(size_t i) const
recob::Hit MakeHit(const recob::Wire &wire, const geo::WireID &wireID, const geo::GeometryCore *geo, raw::TDCtick_t startTick, raw::TDCtick_t endTick) const
size_t NumberTrajectoryPoints() const
Various functions related to the presence and the number of (valid) points.
static constexpr WireID_t InvalidID
Special code for an invalid ID.
Definition: geo_types.h:577
WireID_t Wire
Index of the wire within its plane.
Definition: geo_types.h:580
process_name use argoneut_mc_hitfinder track
Data related to recob::Hit associated with recob::Track.The purpose is to collect several variables t...
Definition: TrackHitMeta.h:43
geo::Length_t WirePitch(geo::PlaneID const &planeid) const
Returns the distance between two consecutive wires.
int TDCtick_t
Type representing a TDC tick.
Definition: RawTypes.h:25
tracking::Vector_t Vector_t
IteratorBox< plane_id_iterator,&GeometryCore::begin_plane_id,&GeometryCore::end_plane_id > IteratePlaneIDs() const
Enables ranged-for loops on all plane IDs of the detector.
T abs(T value)
double Length(size_t p=0) const
Access to various track properties.
Description of geometry of one entire detector.
View_t View(geo::PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
tuple dir
Definition: dropbox.py:28
std::vector< art::InputTag > fDigitLabels
raw::ChannelID_t PlaneWireToChannel(WireID const &wireid) const
Returns the ID of the TPC channel connected to the specified wire.
size_t NextValidPoint(size_t index) const
static constexpr size_t InvalidIndex
Value returned on failed index queries.
unsigned int Nwires() const
Number of wires in this plane.
Definition: PlaneGeo.h:269
tracking::Point_t Point_t
do i e
unsigned int WireID_t
Type for the ID number.
Definition: geo_types.h:561
Vector_t DirectionAtPoint(size_t i) const
TPCGeo const & TPC(unsigned int const tpc=0, unsigned int const cstat=0) const
Returns the specified TPC.
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:48
const double * PlaneLocation(unsigned int p) const
Definition: TPCGeo.cxx:382
bool ContainsPosition(geo::Point_t const &point, double wiggle=1.0) const
Returns whether this volume contains the specified point.
double WireAngleToVertical(geo::View_t view, geo::TPCID const &tpcid) const
Returns the angle of the wires in the specified view from vertical.
BEGIN_PROLOG could also be cout
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a &quot;fitted&quot; track:
The data type to uniquely identify a cryostat.
Definition: geo_types.h:190
art::InputTag fWireLabel

Member Data Documentation

bool sbn::TrackAreaHit::fAppendExtraHit
private

Definition at line 74 of file TrackAreaHit_module.cc.

unsigned sbn::TrackAreaHit::fCryostat
private

Definition at line 77 of file TrackAreaHit_module.cc.

std::vector<art::InputTag> sbn::TrackAreaHit::fDigitLabels
private

Definition at line 69 of file TrackAreaHit_module.cc.

float sbn::TrackAreaHit::fLongitudinalDiffusionScale
private

Definition at line 73 of file TrackAreaHit_module.cc.

bool sbn::TrackAreaHit::fPrependExtraHit
private

Definition at line 75 of file TrackAreaHit_module.cc.

float sbn::TrackAreaHit::fSignalShapingWindow
private

Definition at line 71 of file TrackAreaHit_module.cc.

art::InputTag sbn::TrackAreaHit::fT0Label
private

Definition at line 70 of file TrackAreaHit_module.cc.

art::InputTag sbn::TrackAreaHit::fTrackLabel
private

Definition at line 67 of file TrackAreaHit_module.cc.

float sbn::TrackAreaHit::fTransverseDiffusionScale
private

Definition at line 72 of file TrackAreaHit_module.cc.

bool sbn::TrackAreaHit::fUseWires
private

Definition at line 76 of file TrackAreaHit_module.cc.

art::InputTag sbn::TrackAreaHit::fWireLabel
private

Definition at line 68 of file TrackAreaHit_module.cc.


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