8 float t_p1,
float t_p2,
9 float t_l1,
float t_l2,
10 float min_w,
float max_w,
24 float t_l1,
float t_l2,
25 float min_w,
float max_w,
26 const std::vector<float>& eV)
40 throw std::runtime_error(
"ERROR in SimPhotonCounter: bad wavelength range");
48 if(ph.
Energy < std::numeric_limits<float>::epsilon())
49 throw std::runtime_error(
"ERROR in SimPhotonCounter: photon energy is zero.");
51 return 0.00124 / ph.
Energy;
56 if(t_p2<t_p1 || t_l2<t_l1 || t_p2>t_l1 )
57 throw std::runtime_error(
"ERROR in SimPhotonCounter: bad time ranges");
66 throw std::runtime_error(
"ERROR in SimPhotonCounter: Opdet requested out of range!");
79 for(
size_t i_ph=0; i_ph < photons.size(); i_ph++)
96 totalPhotonVector.begin(),
98 return totalPhotonVector;
103 std::cout <<
"Vector size: " <<
GetVectorSize() << std::endl;
104 std::cout <<
"Time cut ranges: (" 107 std::cout <<
"\t" <<
"i : QE / Prompt / Late / Total" << std::endl;
float MinPromptTime() const
void SetTimeRanges(float t_p1, float t_p2, float t_l1, float t_l2)
float MinLateTime() const
std::vector< float > _photonVector_prompt
const std::vector< float > & PromptPhotonVector() const
std::vector< float > TotalPhotonVector() const
std::vector< evd::details::RawDigitInfo_t >::const_iterator begin(RawDigitCacheDataClass const &cache)
float MaxPromptTime() const
float Wavelength(const sim::OnePhoton &ph)
float MaxLateTime() const
const std::vector< float > & LatePhotonVector() const
std::vector< float > _qeVector
std::vector< float > _photonVector_late
void AddOnePhoton(size_t i_opdet, const sim::OnePhoton &photon)
std::vector< evd::details::RawDigitInfo_t >::const_iterator end(RawDigitCacheDataClass const &cache)
void SetWavelengthRanges(float min_w, float max_w)
void AddSimPhotons(const sim::SimPhotons &photons)
size_t GetVectorSize() const