1 #ifndef __JDETECTOR__JK40DEFAULTSIMULATORINTERFACE__ 
    2 #define __JDETECTOR__JK40DEFAULTSIMULATORINTERFACE__ 
   20 namespace JDETECTOR {}
 
   21 namespace JPP { 
using namespace JDETECTOR; }
 
   62         for (iterator i = begin(); i != end(); ++i) {
 
  119       const int N = module.size();
 
  130       for (
int pmt = 0; pmt != 
N; ++pmt) {
 
  134         if (rateL0_Hz > 0.0) {
 
  136           const double t_ns = 1.0e9 / rateL0_Hz;          
 
  138           for (
double t1 = period.getLowerLimit() + gRandom->Exp(t_ns); t1 < period.getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
 
  147       double totalRateL1_Hz = 0.0;
 
  149       for (
int i = 0; i != 
N; ++i) {
 
  153       if (totalRateL1_Hz > 0.0) {
 
  155         const double t_ns = 1.0e9 / totalRateL1_Hz;       
 
  157         double t1 = period.getLowerLimit() + gRandom->Exp(t_ns);
 
  159         if (t1 < period.getUpperLimit()) {
 
  164           for (
int i = 0; i != 
N; ++i) {
 
  168             for (
int j = i + 1; 
j != 
N; ++
j) {
 
  181           for (
int i = 0; i != 
N; ++i) {
 
  185             for (
int j = 0; 
j != 
N; ++
j) {
 
  191           for ( ; t1 < period.getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
 
  213                 for (
unsigned int pmtN = pmt2; M != 0; --M) {
 
  215                   for (
int i = 0; i != 
N; ++i) {
 
  248       for (JBuffer1D_t::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  256         unsigned int index = 0;
 
  258         for (JBuffer1D_t::const_iterator i = buffer.begin(); i != buffer.end() && (x -= *i) > 0.0; ++i, ++index) {}
 
  260         if (index == buffer.size()) {
 
  302       static double sigma = 0.5;
 
static double getSigma()
Get intrinsic time smearing of K40 coincidences. 
 
JK40DefaultSimulatorInterface()
Default constructor. 
 
Data structure for PMT analogue signal. 
 
Interface for simulation of K40 background. 
 
Default K40 simulator interface. 
 
Data structure for a composite optical module. 
 
Data structure for PMT data corresponding to a detector module. 
 
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]). 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
 
JBuffer1D_t probabilityND
This probability vector is a one-dimensional array in which element [i] corresponds to the probabilit...
 
static unsigned int getRandomIndex(const JBuffer1D_t &buffer, const double random)
Get index based on random value. 
 
void resize(size_t size)
Resize. 
 
Compiler version dependent expressions, macros, etc. 
 
static double & get_sigma()
Get intrinsic time smearing of K40 coincidences. 
 
virtual double getSinglesRate(const JPMTIdentifier &pmt) const =0
Get singles rate as a function of PMT. 
 
int getID() const 
Get identifier. 
 
JBuffer2D_t probability2D
This correlation matrix is a two-dimensional array in which element [i][j] corresponds to the probabi...
 
JBuffer1D_t rateL1_Hz
Multiples rate as a function of the multiplicity. 
 
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const 
Generate hits. 
 
double getDot(const JFirst_t &first, const JSecond_t &second)
Get dot product of objects. 
 
virtual double getMultiplesRate(const JModuleIdentifier &module, const int M) const =0
Get multiples rate as a function of optical module. 
 
Exception for numerical precision error. 
 
JBuffer1D_t probability1D
This probability vector is a one-dimensional array in which element [i] corresponds to the probabilit...
 
Auxiliary class for object identification. 
 
static void setSigma(const double sigma)
Set intrinsic time smearing of K40 coincidences. 
 
virtual double getProbability(const double ct) const =0
Get probability of coincidence.