24 std::vector<double> PEperOpDet,
34 std::vector<double> WireCenters,
35 std::vector<double> WireWidths)
59 std::vector<double> PEperOpDet,
73 std::move(PEperOpDet),
83 std::move(WireCenters),
84 std::move(WireWidths)}
103 out <<
"Optical flash at " << flash.
Time() <<
" us (absolute: " << flash.
AbsTime() <<
" us) " 104 << flash.
TimeWidth() <<
" us long, centered at (";
109 out <<
", " << flash.
YCenter() <<
", " << flash.
ZCenter() <<
") cm of extension +/- (";
114 out <<
", " << flash.
YWidth() <<
", " << flash.
ZWidth() <<
") cm ";
117 out <<
"\n " << (flash.
InBeamFrame() ?
"" :
"not ")
118 <<
"in beam frame (on beam time: " << flash.
OnBeamTime() <<
")";
120 out <<
"\n total p.e.: " << flash.
TotalPE() <<
" (fast/total fraction: " << flash.
FastToTotal()
122 std::size_t
const nPEs = flash.
PEs().size();
124 out <<
" across " << nPEs <<
" channels; non-empty:";
125 constexpr
unsigned int pageSize = 8;
126 unsigned int line = 0;
127 for (std::size_t i = 0; i < nPEs; ++i) {
128 double const pe = flash.
PE(i);
129 if (pe == 0.0)
continue;
134 out <<
" [" << i <<
"] " << pe;
138 out <<
", no channels recorded;";
141 std::size_t
const nWireCenters = flash.
WireCenters().size();
142 std::size_t
const nWireWidths = flash.
WireWidths().size();
143 std::size_t
const nWires = std::max(nWireCenters, nWireWidths);
146 out << nWires <<
" wires recorded (center +/- width):";
147 constexpr
unsigned int pageSize = 5;
148 unsigned int line = 0;
149 for (std::size_t i = 0; i < nWires; ++i) {
154 out <<
" [" << i <<
"] (";
155 if (i < nWireCenters)
168 out <<
"no wire information recorded";
std::vector< double > const & WireCenters() const
double fYCenter
Geometric center in y [cm].
static constexpr double NoCenter
Special value used for absence of center location information.
Reconstruction base classes.
double FastToTotal() const
bool operator<(Cluster const &a, Cluster const &b)
double fZCenter
Geometric center in z [cm].
std::vector< double > fPEperOpDet
Number of PE on each PMT.
double PE(unsigned int i) const
double fXWidth
Estimated width in x [cm].
double fZWidth
Geometric width in z [cm].
bool hasXCenter() const
Returns whether the estimated center on x direction is available.
double fYWidth
Geometric width in y [cm].
unsigned int fFrame
Frame number.
std::vector< double > fWireCenters
Geometric center in each view.
std::vector< double > fWireWidths
Geometric width in each view.
double fFastToTotal
Fast to total light ratio.
double fAbsTime
Time by PMT readout clock.
double fXCenter
Estimated center in x [cm].
std::vector< double > const & WireWidths() const
std::vector< double > const & PEs() const
Returns a vector with a number of photoelectrons per channel.
bool fInBeamFrame
Is this in the beam frame?
double XCenter() const
Returns the estimated center on x direction (.
int fOnBeamTime
Is this in time with beam?
double fTimeWidth
Width of the flash in time [us].
std::ostream & operator<<(std::ostream &o, Cluster const &c)