All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FlashHypothesisCalculator.cxx
Go to the documentation of this file.
2 
5 
6 #include "TVector3.h"
7 
8 std::vector<double> opdet::FlashHypothesisCalculator::SegmentMidpoint(TVector3 const& pt1, TVector3 const& pt2, float XOffset)
9 {
10  std::vector<double> xyz_segment(3);
11  xyz_segment[0] = 0.5*(pt2.x()+pt1.x()) + XOffset;
12  xyz_segment[1] = 0.5*(pt2.y()+pt1.y());
13  xyz_segment[2] = 0.5*(pt2.z()+pt1.z());
14  return xyz_segment;
15 }
16 
18  const float& dEdx,
19  const TVector3& pt1,
20  const TVector3& pt2,
21  const std::vector<float>& qe_vector,
22  phot::MappedCounts_t const& vis_vector,
23  FlashHypothesis& hyp)
24 {
25 
26  if(qe_vector.size()!=hyp.GetVectorSize() || !vis_vector)
27  throw std::runtime_error("ERROR in FlashHypothesisCalculator: vector sizes not equal!");
28 
29  const float total_yield = yield*dEdx*(pt2-pt1).Mag();
30 
31  for(size_t i_chan=0; i_chan<hyp.GetVectorSize(); i_chan++)
32  hyp.SetHypothesisAndError(i_chan,total_yield*vis_vector[i_chan]*qe_vector[i_chan]);
33 
34 }
Class def header for a class FlashHypothesis.
Provides MappedContainer class.
void FillFlashHypothesis(const float &yield, const float &dEdx, const TVector3 &pt1, const TVector3 &pt2, const std::vector< float > &qe_vector, phot::MappedCounts_t const &vis_vector, FlashHypothesis &hyp)
size_t GetVectorSize() const
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
Definition: PFPUtils.cxx:2687
A container for photon visibility mapping data.
std::vector< double > SegmentMidpoint(const TVector3 &pt1, const TVector3 &pt2, float XOffset=0)
void SetHypothesisAndError(size_t i_opdet, float pe, float err=-999)