DepoPlane.h
Go to the documentation of this file.
1 namespace WireCell {
2 
3  /** Spread deposits on a plane.
4  *
5  * Maintain a buffer in time (longitudinal to drift direction) and
6  * space (transverse to drift direction, parallel to wire pitch
7  * direction) of energy depositions.
8  *
9  * The change is spread in both directions according to given
10  * sigma and according to the longitudinal drift distance that the
11  * deposition has or must travel (prior deposition is checked of
12  * originating point).
13  */
14  class DepoPlane {
17 
18 
19  public:
20  DepoPlane(Ray wire_pitch, // point from center of wire zero to wire one along pitch direction
21  double start_time, double tick,
22  double sigmaT, double sigmaL, double drift_velocity);
23 
24  /// Add a deposition to the buffer. Return true if we have enough to pop.
25  bool add(IDepo::pointer depo);
26 
27  /// Return next tick worth of charge. Vector is indexed by
28  /// wire index starting from wire zero as determined by pitch
29  /// ray. An empty vector indicates underflow and more
30  /// depositions should be add()'ed.
31  std::vector<double> pop();
32 
33  };
34 
35 
36 }
std::pair< Point, Point > Ray
A line segment running from a first (tail) to a second (head) point.
Definition: Point.h:21
std::shared_ptr< const IDepo > pointer
Definition: IData.h:19
const double tick
std::vector< double > pop()
double m_drift_velocity
Definition: DepoPlane.h:16
Definition: Main.h:22
bool add(IDepo::pointer depo)
Add a deposition to the buffer. Return true if we have enough to pop.
const double wire_pitch
DepoPlane(Ray wire_pitch, double start_time, double tick, double sigmaT, double sigmaL, double drift_velocity)