1 #ifndef __JDETECTOR__JK40DEFAULTSIMULATORINTERFACE__ 
    2 #define __JDETECTOR__JK40DEFAULTSIMULATORINTERFACE__ 
   65       const pair_type& operator()(
const double random)
 const 
   67         double P = this->rbegin()->
P;
 
   76         int imax = this->size() - 1;
 
   78         for (
int i = (imax + imin) / 2; imax - imin != 1; i = (imax + imin) / 2) {
 
  144       const size_t N = module.size();
 
  145       const size_t M = (N * (N - 1)) / 2;
 
  153       for (
size_t pmt = 0; pmt != N; ++pmt) {
 
  157         if (rateL0_Hz > 0.0) {
 
  159           const double t_ns = 1.0e9 / rateL0_Hz;          
 
  170       double totalRateL1_Hz = 0.0;
 
  172       for (
size_t i = 0; i != N; ++i) {
 
  176       if (totalRateL1_Hz > 0.0) {
 
  178         const double t_ns = 1.0e9 / totalRateL1_Hz;       
 
  191           for (
size_t pmt1 = 0; pmt1 != N; ++pmt1) {
 
  192             for (
size_t pmt2 = 0; pmt2 != pmt1; ++pmt2) {
 
  204           for ( ; t1 < period.
getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
 
  219               for (
double R = totalRateL1_Hz * gRandom->Rndm(); M != N && (R -= 
rateL1_Hz[M]) > 0.0; ++M) {}
 
  225                 for ( ; M != 0; --M) {
 
  231                   for (
size_t i = 0; i != N; ++i) {
 
  233                     if (buffer.count(i) == 0) {
 
  242                       P += probability1D[i];
 
  246                       probability1D[i] = 0.0;
 
  254                     for (P *= gRandom->Rndm(); pmt != N && (P -= probability1D[pmt]) > 0.0; ++pmt) {}
 
  306       static double sigma = 0.5;
 
Compiler version dependent expressions, macros, etc.
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Default K40 simulator interface.
 
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const
Generate hits.
 
static double & get_sigma()
Get intrinsic time smearing of K40 coincidences.
 
static double getSigma()
Get intrinsic time smearing of K40 coincidences.
 
std::vector< double > rateL1_Hz
Multiples rate as a function of the multiplicity.
 
static void setSigma(const double sigma)
Set intrinsic time smearing of K40 coincidences.
 
virtual double getSinglesRate(const JPMTIdentifier &pmt) const =0
Get singles rate as a function of PMT.
 
virtual double getMultiplesRate(const JModuleIdentifier &module, const int M) const =0
Get multiples rate as a function of optical module.
 
JK40DefaultSimulatorInterface()
Default constructor.
 
virtual double getProbability(const double ct) const =0
Get probability of coincidence.
 
Interface for simulation of K40 background.
 
Data structure for PMT data corresponding to a detector module.
 
Data structure for a composite optical module.
 
Exception for numerical precision error.
 
Auxiliary class for object identification.
 
int getID() const
Get identifier.
 
JDirection3D getDirection(const Vec &dir)
Get direction.
 
double getDot(const JNeutrinoDirection &first, const JNeutrinoDirection &second)
Dot product.
 
file Auxiliary data structures and methods for detector calibration.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
double P
probability of coincidence
 
Data structure for PMT analogue signal.