Classes | Namespaces
KHitContainer.h File Reference

A collection of KHitGroups. More...

#include "canvas/Persistency/Common/PtrVector.h"
#include "lardata/RecoObjects/KHitGroup.h"
#include "lardata/RecoObjects/KTrack.h"
#include "lardata/RecoObjects/Propagator.h"
#include "lardataobj/RecoBase/Hit.h"
#include <list>

Go to the source code of this file.

Classes

class  trkf::KHitContainer
 

Namespaces

 detinfo
 General LArSoft Utilities.
 
 trkf
 

Detailed Description

A collection of KHitGroups.

Author
H. Greenlee

This class internally maintains three STL lists of KHitGroup objects.

  1. Sorted KHitGroup objects (have path length).
  2. Unsorted KHitGroup objects (don't currently have path length).
  3. Unused KHitGroup objects.

The following methods are provided.

  1. Sort

A KTrack object and propagation direction are passed as arguments. The track is propagated without error to each object on the sorted and (maybe) the unsorted list. Reachable objects have their path length updated, are moved to the sorted list, and are eventually sorted. Unreachable objects are moved to the unsorted list.

Here are the envisioned use cases of this class.

  1. At the beginning of the event, a set of candidate measurements are loaded into the unsorted list.
  2. Candidate measurements are sorted using a seed track.
  3. During the progress of the Kalman filter, candidate measurements are visited in order from the sorted list.
  4. If necessary, candidate measurements can be resorted during the progress of the Kalman filter using the updated track.
  5. After candidate measurements are disposed of (added to track or rejected), they are moved to the unused list.
  6. The Kalman filter can be repeated using a new seed track by moving all objects to the unsorted list.

Most of these use cases involve transfering objects among the three lists. These kinds of operations can be accomplished using STL list splice method without copying the objects.

Definition in file KHitContainer.h.