All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
 
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 
)
overridevirtual

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.

Implements trkf::KHitContainer.

Definition at line 35 of file KHitContainerWireX.cxx.

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

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