Public Member Functions | List of all members
trkf::KHitContainerWireX Class Reference

#include <KHitContainerWireX.h>

Inheritance diagram for trkf::KHitContainerWireX:
trkf::KHitContainer

Public Member Functions

void fill (const detinfo::DetectorPropertiesData &clock_data, const art::PtrVector< recob::Hit > &hits, int only_plane) override
 
- Public Member Functions inherited from trkf::KHitContainer
virtual ~KHitContainer ()=default
 
virtual void fill (detinfo::DetectorPropertiesData const &clock_data, const art::PtrVector< recob::Hit > &hits, int only_plane)=0
 
const std::list< KHitGroup > & getSorted () const
 
const std::list< KHitGroup > & getUnsorted () const
 
const std::list< KHitGroup > & getUnused () const
 
std::list< KHitGroup > & getSorted ()
 Sorted list. More...
 
std::list< KHitGroup > & getUnsorted ()
 Unsorted list. More...
 
std::list< KHitGroup > & getUnused ()
 Unused list. More...
 
void clear ()
 Clear all lists. More...
 
void reset ()
 Move all objects to unsorted list (from sorted and unused lists). More...
 
void sort (const KTrack &trk, bool addUnsorted, const Propagator &prop, Propagator::PropDirection dir=Propagator::UNKNOWN)
 (Re)sort objects in unsorted and sorted lists. More...
 
unsigned int getPreferredPlane () const
 Return the plane with the most KHitGroups in the unsorted list. More...
 

Detailed Description

Definition at line 25 of file KHitContainerWireX.h.

Member Function Documentation

void trkf::KHitContainerWireX::fill ( const detinfo::DetectorPropertiesData detProp,
const art::PtrVector< recob::Hit > &  hits,
int  only_plane 
)
override

Fill container.

Arguments:

hits - RecoBase/Hit collection. only_plane - Choose hits from this plane if >= 0.

This method converts the hits in the input collection into KHitWireX objects and inserts them into the base class. Hits corresponding to the same readout wire are grouped together as KHitGroup objects.

Definition at line 34 of file KHitContainerWireX.cxx.

37  {
38  // Get services.
39 
41 
42  // Make a temporary map from channel number to KHitGroup objects.
43  // The KHitGroup pointers are borrowed references to KHitGroup
44  // objects stored by value in the base class.
45 
46  std::map<unsigned int, KHitGroup*> group_map;
47 
48  // Loop over hits.
49 
50  for (art::PtrVector<recob::Hit>::const_iterator ihit = hits.begin(); ihit != hits.end();
51  ++ihit) {
52  const recob::Hit& hit = **ihit;
53 
54  // Extract the wire id from the Hit.
55  geo::WireID hitWireID = hit.WireID();
56 
57  uint32_t channel = hit.Channel();
58 
59  // Choose plane.
60  if (only_plane >= 0 && hitWireID.Plane != (unsigned int)(only_plane)) continue;
61 
62  // See if we need to make a new KHitGroup.
63 
64  KHitGroup* pgr = 0;
65  if (group_map.count(channel) == 0) {
66  getUnsorted().push_back(KHitGroup());
67  pgr = &(getUnsorted().back());
68  group_map[channel] = pgr;
69  }
70  else
71  pgr = group_map[channel];
72  if (!pgr) {
73  throw cet::exception("KHitContainerWireX")
74  << __func__ << ": no group map for channel " << channel << "\n";
75  }
76 
77  pgr->addHit(std::make_shared<KHitWireX>(detProp, *ihit, pgr->getSurface()));
78  }
79  }
geo::WireID WireID() const
Definition: Hit.h:233
iterator begin()
Definition: PtrVector.h:217
uint8_t channel
Definition: CRTFragment.hh:201
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.
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

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