#include <DepoPlaneX.h>
Public Types | |
typedef std::deque< IDepo::pointer > | frozen_queue_t |
typedef DepoTauSortedSet | working_queue_t |
Public Member Functions | |
DepoPlaneX (double planex=0.0 *units::cm, double speed=1.6 *units::millimeter/units::microsecond) | |
IDepo::pointer | add (const IDepo::pointer &depo) |
double | proper_time (IDepo::pointer depo) const |
The time a deposition would have if it drifts to the plane. More... | |
double | freezeout_time () const |
void | freezeout () |
Force any remaining "thawed" depos in the queue to be frozen out. More... | |
IDepo::vector | pop (double time) |
const frozen_queue_t & | frozen_queue () const |
const working_queue_t & | working_queue () const |
Private Member Functions | |
void | drain (double time) |
Move all froze-out depos to the frozen queue. More... | |
Private Attributes | |
double | m_planex |
double | m_speed |
working_queue_t | m_queue |
frozen_queue_t | m_frozen |
A DepoPlaneX collects depositions and drifts them to the given plane assuming a uniform drift velocity which is in the negative X direction.
It is assumed new depositions are added strictly in time order. They will then be drifted and maintained in the order of their time at the plane.
The time of the most recently added depo sets a high water mark in time at the plane such that all newly added depos must (causally) come later. Any depos older than this time are considered "frozen out" as nothing can change their ordering.
Definition at line 28 of file DepoPlaneX.h.
typedef std::deque<IDepo::pointer> WireCell::Gen::DepoPlaneX::frozen_queue_t |
Definition at line 30 of file DepoPlaneX.h.
Definition at line 31 of file DepoPlaneX.h.
Gen::DepoPlaneX::DepoPlaneX | ( | double | planex = 0.0*units::cm , |
double | speed = 1.6*units::millimeter/units::microsecond |
||
) |
Definition at line 6 of file DepoPlaneX.cxx.
IDepo::pointer Gen::DepoPlaneX::add | ( | const IDepo::pointer & | depo | ) |
Add a deposition and drift it into the queue at the plane. Depos must be strictly added in (local) time order. The drifted depo is returned (and held).
Definition at line 14 of file DepoPlaneX.cxx.
|
private |
void Gen::DepoPlaneX::freezeout | ( | ) |
Force any remaining "thawed" depos in the queue to be frozen out.
Definition at line 44 of file DepoPlaneX.cxx.
double Gen::DepoPlaneX::freezeout_time | ( | ) | const |
Return the time at the plane before which the order of collected depositions are guaranteed (causally) to remain unchanged as any new depos are added.
Definition at line 22 of file DepoPlaneX.cxx.
|
inline |
Definition at line 60 of file DepoPlaneX.h.
IDepo::vector Gen::DepoPlaneX::pop | ( | double | time | ) |
Return ordered vector of all depositions at the plane with times not later than the given time. The given time is typically the freezeout time. If a time later than the freezout time is given it may cause depos to be artificially frozen out.
Definition at line 57 of file DepoPlaneX.cxx.
double WireCell::Gen::DepoPlaneX::proper_time | ( | IDepo::pointer | depo | ) | const |
The time a deposition would have if it drifts to the plane.
|
inline |
Definition at line 61 of file DepoPlaneX.h.
|
private |
Definition at line 66 of file DepoPlaneX.h.
|
private |
Definition at line 64 of file DepoPlaneX.h.
|
private |
Definition at line 65 of file DepoPlaneX.h.
|
private |
Definition at line 64 of file DepoPlaneX.h.