1#ifndef __JDETECTOR__JK40DEFAULTSIMULATOR__
2#define __JDETECTOR__JK40DEFAULTSIMULATOR__
119 return exp(ct * (
p1() + ct * (
p2() + ct * (
p3() + ct*
p4()))));
154 const double rateL0 =
object.rateL0;
156 if (in >>
object.
rateL0) {
158 object.rateL1.clear();
160 for (
double x; in >> x; ) {
161 object.rateL1.push_back(x);
182 out <<
object.rateL0;
184 for (JRateL1_t::const_iterator i =
object.
rateL1.begin(); i !=
object.rateL1.end(); ++i) {
188 out <<
" X " <<
object.rateL01 <<
' ' <<
object.rateL10;
200 static double p1() {
return 3.0767; }
201 static double p2() {
return -1.2078; }
202 static double p3() {
return 0.9905; }
203 static double p4() {
return 0.9379; }
Compiler version dependent expressions, macros, etc.
Properties of KM3NeT PMT and deep-sea water.
Default K40 simulator interface.
Default implementation of the simulation of K40 background.
friend std::ostream & operator<<(std::ostream &out, const JK40DefaultSimulator &object)
Write K40 simulator to output.
virtual double getMultiplesRate(const JModuleIdentifier &module, const int M) const override
Get multiples rate as a function of optical module.
virtual double getProbability(const double ct) const override
Get probability of coincidence.
JK40DefaultSimulator()
Default constructor.
virtual double getL01Rate() const override
Get mixed L0 (lower module) and L1 (upper module) rate [Hz].
JK40DefaultSimulator(const JK40Rates &rates)
Constructor.
static JK40DefaultSimulator & getInstance()
Get reference to unique instance of this class object.
static double p1()
Parameters for probability of coincidence as a function of the cosine of space angle between PMT axes...
virtual double getL10Rate() const override
Get mixed L1 (lower module) and L0 (upper module) rate [Hz].
virtual double getSinglesRate(const JPMTIdentifier &pmt) const override
Get singles rate as a function of PMT.
JK40DefaultSimulator(const JK40Rates &rates, const JMixedK40Rates &mixed)
Constructor.
friend std::istream & operator>>(std::istream &in, JK40DefaultSimulator &object)
Read K40 simulator from input.
Auxiliary class for object identification.
file Auxiliary data structures and methods for detector calibration.
double JRateL0_t
Type definition of singles rate [Hz].
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary class for K40 rates.
JRateL1_t rateL1
multiples rates [Hz]
double getSinglesRate() const
Get singles rate.
double getMultiplesRate(const multiplicity_type M) const
Get multiples rate at given multiplicity.
JRateL0_t rateL0
singles rate [Hz]
Auxiliary class for mixed-L1/L0 K40 rates.
double getL10Rate() const
Get mixed L1 (lower module) and L0 (upper module) rate [Hz].
double getL01Rate() const
Get mixed L0 (lower module) and L1 (upper module) rate [Hz].