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;
104 std::cout <<
"Time cut ranges: (" 107 std::cout <<
"\t" <<
"i : QE / Prompt / Late / Total" <<
std::endl;
end
while True: pbar.update(maxval-len(onlies[E][S])) #print iS, "/", len(onlies[E][S]) found = False for...
float MinPromptTime() const
int OpChannel() const
Returns the optical channel number this object is associated to.
void SetTimeRanges(float t_p1, float t_p2, float t_l1, float t_l2)
float MinLateTime() const
All information of a photon entering the sensitive optical detector volume.
std::vector< float > _photonVector_prompt
const std::vector< float > & PromptPhotonVector() const
std::vector< float > TotalPhotonVector() const
static constexpr double eV
float MaxPromptTime() const
float Wavelength(const sim::OnePhoton &ph)
float MaxLateTime() const
Collection of photons which recorded on one channel.
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)
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
void SetWavelengthRanges(float min_w, float max_w)
float Energy
Scintillation photon energy [GeV].
void AddSimPhotons(const sim::SimPhotons &photons)
size_t GetVectorSize() const
QTextStream & endl(QTextStream &s)