WireCellToolkit
Wire Cell Simulation, Signal Process and Reconstruction Toolki for Liquid Argon Detectors
WireCell::Gen::DepoPlaneX Class Reference

#include <DepoPlaneX.h>

Public Types

typedef std::deque< IDepo::pointerfrozen_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_tfrozen_queue () const
 
const working_queue_tworking_queue () const
 

Detailed Description

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.

Member Typedef Documentation

◆ frozen_queue_t

Definition at line 30 of file DepoPlaneX.h.

◆ working_queue_t

Constructor & Destructor Documentation

◆ DepoPlaneX()

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.

Member Function Documentation

◆ add()

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.

◆ freezeout()

void Gen::DepoPlaneX::freezeout ( )

Force any remaining "thawed" depos in the queue to be frozen out.

Definition at line 44 of file DepoPlaneX.cxx.

◆ freezeout_time()

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.

◆ frozen_queue()

const frozen_queue_t& WireCell::Gen::DepoPlaneX::frozen_queue ( ) const
inline

Definition at line 60 of file DepoPlaneX.h.

◆ pop()

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.

◆ proper_time()

double WireCell::Gen::DepoPlaneX::proper_time ( IDepo::pointer  depo) const

The time a deposition would have if it drifts to the plane.

◆ working_queue()

const working_queue_t& WireCell::Gen::DepoPlaneX::working_queue ( ) const
inline

Definition at line 61 of file DepoPlaneX.h.


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