IBlob.h
Go to the documentation of this file.
1 /**
2 
3  A blob is a region in the 2D plane transverse to the drift
4  direction. It is made up of a number of logically coplanar
5  "layers". Each layer is bound by a pair of parallel rays. Rays
6  may correspond to wires or to overall bounds of senitivity of the
7  anode plane face. See manual for details.
8 
9 
10  A blob is assumed to exist in some context which provides its
11  location along a drift direction aka time and a logical assocation
12  with a particular anode face. See IBlobSet for example.
13  */
14 
15 #ifndef WIRECELL_IBLOB
16 #define WIRECELL_IBLOB
17 
19 #include "WireCellIface/ISlice.h"
20 
21 #include "WireCellUtil/RayTiling.h"
22 
23 namespace WireCell {
24 
25 
26  class IBlob : public IData<IBlob> {
27  public:
28 
29 
30  virtual ~IBlob();
31 
32  // An identifier for this blob.
33  virtual int ident() const = 0;
34 
35  // An associated value, aka "charge", may be 0.0.
36  virtual float value() const = 0;
37 
38  // And its uncertainty. A "weight" is considered 1.0/uncertainty,
39  virtual float uncertainty() const = 0;
40 
41  // Return the anode plane face the blob was made on.
42  virtual IAnodeFace::pointer face() const = 0;
43 
44  // Return the time slice that the blob was made from.
45  virtual ISlice::pointer slice() const = 0;
46 
47  // Return the blob data describing the shape in terms of
48  // wire-in-plane indices
49  virtual const RayGrid::Blob& shape() const = 0;
50 
51  };
52 
53 }
54 
55 #endif
std::shared_ptr< const ISlice > pointer
Definition: IData.h:19
virtual const RayGrid::Blob & shape() const =0
virtual int ident() const =0
virtual ISlice::pointer slice() const =0
std::shared_ptr< Interface > pointer
Definition: Interface.h:16
Definition: Main.h:22
virtual float value() const =0
virtual float uncertainty() const =0
virtual IAnodeFace::pointer face() const =0