KHitContainerWireLine.cxx
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////
2 ///
3 /// \file KHitContainerWireLine.cxx
4 ///
5 /// \brief A KHitContainer for KHitWireLine type measurements.
6 ///
7 /// \author H. Greenlee
8 ///
9 ////////////////////////////////////////////////////////////////////////
10 
12 
13 #include "cetlib_except/exception.h"
14 
17 
18 namespace trkf {
19 
20  /// Fill container.
21  ///
22  /// Arguments:
23  ///
24  /// hits - RecoBase/Hit collection.
25  /// only_plane - Choose hits from this plane if >= 0.
26  ///
27  /// This method converts the hits in the input collection into
28  /// KHitWireLine objects and inserts them into the base class.
29  ///
30  void
32  const art::PtrVector<recob::Hit>& hits,
33  int only_plane)
34  {
35  // Get services.
36 
38 
39  // Loop over hits.
40 
41  for (art::PtrVector<recob::Hit>::const_iterator ihit = hits.begin(); ihit != hits.end();
42  ++ihit) {
43  const recob::Hit& hit = **ihit;
44 
45  // Extract the wireid from the Hit.
46  geo::WireID hitWireID = hit.WireID();
47 
48  uint32_t channel = hit.Channel();
49 
50  // Choose plane.
51  if (only_plane >= 0 && hitWireID.Plane != (unsigned int)(only_plane)) continue;
52 
53  // Make a new KHitGroup for each hit.
54 
55  getUnsorted().push_back(KHitGroup());
56  KHitGroup* pgr = &(getUnsorted().back());
57  if (!pgr) {
58  throw cet::exception("KHitContainerWireLine")
59  << __func__ << ": no group map for channel " << channel << "\n";
60  }
61 
62  pgr->addHit(std::make_shared<KHitWireLine>(detProp, *ihit, pgr->getSurface()));
63  }
64  }
65 
66 } // end namespace trkf
void fill(const detinfo::DetectorPropertiesData &detProp, const art::PtrVector< recob::Hit > &hits, int only_plane) override
A KHitContainer for KHitWireLine type measurements.
geo::WireID WireID() const
Definition: Hit.h:233
iterator begin()
Definition: PtrVector.h:217
uint8_t channel
Definition: CRTFragment.hh:201
art framework interface to geometry description
typename data_t::const_iterator const_iterator
Definition: PtrVector.h:55
iterator end()
Definition: PtrVector.h:231
const std::list< KHitGroup > & getUnsorted() const
Definition: KHitContainer.h:75
PlaneID_t Plane
Index of the plane within its TPC.
Definition: geo_types.h:493
Detector simulation of raw signals on wires.
void addHit(const std::shared_ptr< const KHitBase > &hit)
Add a mesaurement into the colleciton.
Definition: KHitGroup.cxx:39
Kalman filter wire-time measurement on a SurfWireLine surface.
const std::shared_ptr< const Surface > & getSurface() const
Surface accessor.
Definition: KHitGroup.h:50
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:48
raw::ChannelID_t Channel() const
ID of the readout channel the hit was extracted from.
Definition: Hit.h:230
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33