Jpp 20.0.0-72-g597b30bc9
the software that should make you happy
Loading...
Searching...
No Matches
JDETECTOR::JK40DefaultSimulator Class Reference

Default implementation of the simulation of K40 background. More...

#include <JK40DefaultSimulator.hh>

Inheritance diagram for JDETECTOR::JK40DefaultSimulator:
JDETECTOR::JK40DefaultSimulatorInterface JPHYSICS::JK40Rates JPHYSICS::JMixedK40Rates JDETECTOR::JK40Simulator JTRIGGER::JK40RunByRunSimulator

Public Member Functions

 JK40DefaultSimulator ()
 Default constructor.
 
 JK40DefaultSimulator (const JK40Rates &rates)
 Constructor.
 
 JK40DefaultSimulator (const JK40Rates &rates, const JMixedK40Rates &mixed)
 Constructor.
 
virtual double getSinglesRate (const JPMTIdentifier &pmt) const override
 Get singles rate as a function of PMT.
 
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.
 
virtual double getL01Rate () const override
 Get mixed L0 (lower module) and L1 (upper module) rate [Hz].
 
virtual double getL10Rate () const override
 Get mixed L1 (lower module) and L0 (upper module) rate [Hz].
 
virtual void generateHits (const JModule &module, const JTimeRange &period, JModuleData &output) const override
 Generate hits.
 
virtual void generateHits (const module_pair &input, const JTimeRange &period, const module_data &output) const override
 Generate mixed-L1/L0 hits.
 
double getSinglesRate () const
 Get singles rate.
 
const JRateL1_tgetMultiplesRates () const
 Get multiples rate.
 
double getMultiplesRate (const multiplicity_type M) const
 Get multiples rate at given multiplicity.
 
multiplicity_type getLowerL1Multiplicity () const
 Get lower multiplicty.
 
multiplicity_type getUpperL1Multiplicity () const
 Get upper multiplicty.
 
void correct (const double QE)
 Correct rates for global efficiency,.
 

Static Public Member Functions

static JK40DefaultSimulatorgetInstance ()
 Get reference to unique instance of this class object.
 
static double getSigma ()
 Get intrinsic time smearing of K40 coincidences.
 
static void setSigma (const double sigma)
 Set intrinsic time smearing of K40 coincidences.
 

Static Public Attributes

static const multiplicity_type LOWER_L1_MULTIPLICITY = 2
 Lower L1 multiplicity.
 

Static Protected Member Functions

static double p1 ()
 Parameters for probability of coincidence as a function of the cosine of space angle between PMT axes.
 
static double p2 ()
 
static double p3 ()
 
static double p4 ()
 

Protected Attributes

JRateL0_t rateL0
 singles rate [Hz]
 
JRateL1_t rateL1
 multiples rates [Hz]
 
double rateL01
 mixed L0 (lower module) and L1 (upper module) rate [Hz]
 
double rateL10
 mixed L1 (lower module) and L0 (upper module) rate [Hz]
 

Static Private Member Functions

static double & get_sigma ()
 Get intrinsic time smearing of K40 coincidences.
 

Friends

std::istream & operator>> (std::istream &in, JK40DefaultSimulator &object)
 Read K40 simulator from input.
 
std::ostream & operator<< (std::ostream &out, const JK40DefaultSimulator &object)
 Write K40 simulator to output.
 

Detailed Description

Default implementation of the simulation of K40 background.

This class implements the JK40Simulator interface.

Definition at line 31 of file JK40DefaultSimulator.hh.

Constructor & Destructor Documentation

◆ JK40DefaultSimulator() [1/3]

JDETECTOR::JK40DefaultSimulator::JK40DefaultSimulator ( )
inline

Default constructor.

Definition at line 40 of file JK40DefaultSimulator.hh.

40 :
41 JK40Rates(),
43 {}
JK40Rates()
Default constructor.
Definition JK40Rates.hh:45
JMixedK40Rates()
Default constructor.
Definition JK40Rates.hh:233

◆ JK40DefaultSimulator() [2/3]

JDETECTOR::JK40DefaultSimulator::JK40DefaultSimulator ( const JK40Rates & rates)
inline

Constructor.

Parameters
ratesK40 rates [Hz]

Definition at line 51 of file JK40DefaultSimulator.hh.

51 :
52 JK40Rates(rates),
54 {}

◆ JK40DefaultSimulator() [3/3]

JDETECTOR::JK40DefaultSimulator::JK40DefaultSimulator ( const JK40Rates & rates,
const JMixedK40Rates & mixed )
inline

Constructor.

Parameters
ratesK40 rates [Hz]
mixedmixed K40 rates [Hz]

Definition at line 63 of file JK40DefaultSimulator.hh.

63 :
64 JK40Rates(rates),
65 JMixedK40Rates(mixed)
66 {}

Member Function Documentation

◆ getInstance()

static JK40DefaultSimulator & JDETECTOR::JK40DefaultSimulator::getInstance ( )
inlinestatic

Get reference to unique instance of this class object.

This method returns an object with default values. The singles and multiples rates are taken from KM3NeT internal note "Detector simulations for KM3NeT".

Returns
reference to this class object

Definition at line 78 of file JK40DefaultSimulator.hh.

79 {
80 static JK40DefaultSimulator k40Simulator(KM3NET::getK40Rates());
81
82 return k40Simulator;
83 }
JK40DefaultSimulator()
Default constructor.

◆ getSinglesRate() [1/2]

virtual double JDETECTOR::JK40DefaultSimulator::getSinglesRate ( const JPMTIdentifier & pmt) const
inlineoverridevirtual

Get singles rate as a function of PMT.

Parameters
pmtPMT identifier
Returns
rate [Hz]

Implements JDETECTOR::JK40DefaultSimulatorInterface.

Reimplemented in JTRIGGER::JK40RunByRunSimulator.

Definition at line 92 of file JK40DefaultSimulator.hh.

93 {
95 }
double getSinglesRate() const
Get singles rate.
Definition JK40Rates.hh:71

◆ getMultiplesRate() [1/2]

virtual double JDETECTOR::JK40DefaultSimulator::getMultiplesRate ( const JModuleIdentifier & module,
const int M ) const
inlineoverridevirtual

Get multiples rate as a function of optical module.

Parameters
moduleoptical module identifier
Mmultiplicity (M >= 2)
Returns
rate [Hz]

Implements JDETECTOR::JK40DefaultSimulatorInterface.

Definition at line 105 of file JK40DefaultSimulator.hh.

106 {
108 }
double getMultiplesRate(const multiplicity_type M) const
Get multiples rate at given multiplicity.
Definition JK40Rates.hh:94

◆ getProbability()

virtual double JDETECTOR::JK40DefaultSimulator::getProbability ( const double ct) const
inlineoverridevirtual

Get probability of coincidence.

Parameters
ctcosine space angle between PMT axes
Returns
probability

Implements JDETECTOR::JK40DefaultSimulatorInterface.

Definition at line 117 of file JK40DefaultSimulator.hh.

118 {
119 return exp(ct * (p1() + ct * (p2() + ct * (p3() + ct*p4()))));
120 }
static double p1()
Parameters for probability of coincidence as a function of the cosine of space angle between PMT axes...

◆ getL01Rate()

virtual double JDETECTOR::JK40DefaultSimulator::getL01Rate ( ) const
inlineoverridevirtual

Get mixed L0 (lower module) and L1 (upper module) rate [Hz].

Returns
rate [Hz]

Implements JDETECTOR::JK40DefaultSimulatorInterface.

Definition at line 128 of file JK40DefaultSimulator.hh.

129 {
131 }
double getL01Rate() const
Get mixed L0 (lower module) and L1 (upper module) rate [Hz].
Definition JK40Rates.hh:257

◆ getL10Rate()

virtual double JDETECTOR::JK40DefaultSimulator::getL10Rate ( ) const
inlineoverridevirtual

Get mixed L1 (lower module) and L0 (upper module) rate [Hz].

Returns
rate [Hz]

Implements JDETECTOR::JK40DefaultSimulatorInterface.

Definition at line 139 of file JK40DefaultSimulator.hh.

140 {
142 }
double getL10Rate() const
Get mixed L1 (lower module) and L0 (upper module) rate [Hz].
Definition JK40Rates.hh:268

◆ p1()

static double JDETECTOR::JK40DefaultSimulator::p1 ( )
inlinestaticprotected

Parameters for probability of coincidence as a function of the cosine of space angle between PMT axes.

Values are provided by V.Kulikovski.

Definition at line 200 of file JK40DefaultSimulator.hh.

200{ return 3.0767; }

◆ p2()

static double JDETECTOR::JK40DefaultSimulator::p2 ( )
inlinestaticprotected

Definition at line 201 of file JK40DefaultSimulator.hh.

201{ return -1.2078; }

◆ p3()

static double JDETECTOR::JK40DefaultSimulator::p3 ( )
inlinestaticprotected

Definition at line 202 of file JK40DefaultSimulator.hh.

202{ return 0.9905; }

◆ p4()

static double JDETECTOR::JK40DefaultSimulator::p4 ( )
inlinestaticprotected

Definition at line 203 of file JK40DefaultSimulator.hh.

203{ return 0.9379; }

◆ generateHits() [1/2]

virtual void JDETECTOR::JK40DefaultSimulatorInterface::generateHits ( const JModule & module,
const JTimeRange & period,
JModuleData & output ) const
inlineoverridevirtualinherited

Generate hits.

Parameters
modulemodule
periodtime window [ns]
outputbackground data

Implements JDETECTOR::JK40Simulator.

Definition at line 169 of file JK40DefaultSimulatorInterface.hh.

172 {
173 using namespace std;
174 using namespace JPP;
175
176 const size_t N = module.size();
177
178
179 // generate singles
180
181 for (size_t pmt = 0; pmt != N; ++pmt) {
182
183 const double rateL0_Hz = getSinglesRate(JPMTIdentifier(module.getID(), pmt));
184
185 if (rateL0_Hz > 0.0) {
186
187 const bool asap = (output[pmt].size() != 0); // sort as soon as possible
188
189 const double t_ns = 1.0e9 / rateL0_Hz; // interval period [ns]
190
191 for (double t1 = period.getLowerLimit() + gRandom->Exp(t_ns); t1 < period.getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
192 output[pmt].push_back(JPMTSignal(t1, -1)); // see JPMTSignalProcessorInterface::operator()
193 }
194
195 if (asap) {
196 output[pmt].sort();
197 }
198 }
199 }
200
201
202 // generate coincidences
203
204 double totalRateL1_Hz = 0.0;
205
206 // multiples rate as a function of the multiplicity - index i corresponds to multiplicity M = i + 2
207
208 vector<double> rateL1_Hz(N, 0.0);
209
210 for (size_t i = 0; i != N; ++i) {
211 totalRateL1_Hz += rateL1_Hz[i] = getMultiplesRate(module.getID(), i + 2);
212 }
213
214 if (totalRateL1_Hz > 0.0) {
215
217
218 cdf_type<pair_type> probablityL1;
219
220 const double t_ns = 1.0e9 / totalRateL1_Hz; // interval period [ns]
221
222 double t1 = period.getLowerLimit() + gRandom->Exp(t_ns);
223
224 if (t1 < period.getUpperLimit()) {
225
226 // configure pair-wise propabilities
227
228 for (size_t pmt1 = 0; pmt1 != N; ++pmt1) {
229 for (size_t pmt2 = 0; pmt2 != pmt1; ++pmt2) {
230
231 const double ct = getDot(module[pmt1].getDirection(), module[pmt2].getDirection());
232 const double p = getProbability(ct);
233
234 probablityL1.put({pmt1, pmt2}, p);
235 }
236 }
237
238 for ( ; t1 < period.getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
239
240 try {
241
242 // generate two-fold coincidence
243
244 const pair_type& pair = probablityL1(gRandom->Rndm());
245
246 output[pair.first ].insert(JPMTSignal(gRandom->Gaus(t1, getSigma()), 1));
247 output[pair.second].insert(JPMTSignal(gRandom->Gaus(t1, getSigma()), 1));
248
249 // generate larger than two-fold coincidences, if any
250
251 size_t M = 0;
252
253 for (double R = totalRateL1_Hz * gRandom->Rndm(); M != N && (R -= rateL1_Hz[M]) > 0.0; ++M) {}
254
255 if (M != 0) {
256
257 set<size_t> buffer = { pair.first , pair.second }; // hit PMTs
258
259 for ( ; M != 0; --M) {
260
261 vector<double> probability1D(N, 1.0);
262
263 double P = 0.0;
264
265 for (size_t i = 0; i != N; ++i) {
266
267 if (buffer.count(i) == 0) {
268
269 for (set<size_t>::const_iterator pmt = buffer.begin(); pmt != buffer.end(); ++pmt) {
270
271 const double ct = getDot(module[i].getDirection(), module[*pmt].getDirection());
272
273 probability1D[i] *= getProbability(ct);
274 }
275
276 P += probability1D[i];
277
278 } else {
279
280 probability1D[i] = 0.0;
281 }
282 }
283
284 if (P > 0.0) {
285
286 size_t pmt = 0;
287
288 for (P *= gRandom->Rndm(); pmt != N && (P -= probability1D[pmt]) > 0.0; ++pmt) {}
289
290 if (pmt != N) {
291
292 output[pmt].insert(JPMTSignal(gRandom->Gaus(t1, getSigma()), 1));
293
294 buffer.insert(pmt);
295 }
296
297 } else {
298
299 break;
300 }
301 }
302 }
303 }
304 catch (const JNumericalPrecision&) {}
305 }
306 }
307 }
308 }
static double getSigma()
Get 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.
virtual double getProbability(const double ct) const =0
Get probability of coincidence.
Exception for numerical precision error.
JDirection3D getDirection(const Vec &dir)
Get direction.
double getDot(const JFirst_t &first, const JSecond_t &second)
Get dot product of objects.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Data structure for PMT analogue signal.
Data structure for a pair of indices.

◆ generateHits() [2/2]

virtual void JDETECTOR::JK40DefaultSimulatorInterface::generateHits ( const module_pair & input,
const JTimeRange & period,
const module_data & output ) const
inlineoverridevirtualinherited

Generate mixed-L1/L0 hits.

Parameters
inputmodule pair
periodtime window [ns]
outputbackground data

Implements JDETECTOR::JK40Simulator.

Definition at line 318 of file JK40DefaultSimulatorInterface.hh.

321 {
322 using namespace JPP;
323
324 const double rate_Hz = getL01Rate() + getL10Rate();
325
326 if (rate_Hz > 0.0) {
327
328 if (!input.first.empty() && !input.second.empty()) {
329
330 if (neighbours(input.first, input.second)) {
331
332 // locate decay in between modules
333
334 const double ts = 0.8 * fabs(input.first.getZ() - input.second.getZ()) * getInverseSpeedOfLight() * getIndexOfRefraction();
335
336 const JModule& input_lower = (input.first.getFloor() == input.second.getFloor() - 1 ? input.first : input.second);
337 const JModule& input_upper = (input.first.getFloor() == input.second.getFloor() + 1 ? input.first : input.second);
338
339 JModuleData& output_lower = (input.first.getFloor() == input.second.getFloor() - 1 ? output.first : output.second);
340 JModuleData& output_upper = (input.first.getFloor() == input.second.getFloor() + 1 ? output.first : output.second);
341
342 cdf_type<size_t> probability_lower;
343 cdf_type<size_t> probability_upper;
344
345 // use angular dependence of coincidence rate with respect to z-axis
346
347 for (size_t i = 0; i != input_lower.size(); ++i) { probability_lower.put(i, this->getProbability(+1.0 * input_lower[i].getDZ())); }
348 for (size_t i = 0; i != input_upper.size(); ++i) { probability_upper.put(i, this->getProbability(-1.0 * input_upper[i].getDZ())); }
349
350 const double t_ns = 1.0e9 / rate_Hz; // interval period [ns]
351
352 for (double t1 = period.getLowerLimit() + gRandom->Exp(t_ns); t1 < period.getUpperLimit(); t1 += gRandom->Exp(t_ns)) {
353
354 const bool L01 = gRandom->Uniform(0.0, rate_Hz) < getL01Rate();
355
356 JModuleData& output_L1 = (L01 ? output_upper : output_lower);
357 JModuleData& output_L0 = (L01 ? output_lower : output_upper);
358
359 cdf_type<size_t>& probability_L1 = (L01 ? probability_upper : probability_lower);
360 cdf_type<size_t>& probability_L0 = (L01 ? probability_lower : probability_upper);
361
362 output_L1[probability_L1(gRandom->Rndm())].insert(JPMTSignal(gRandom->Gaus(t1, getSigma()), 1));
363 output_L1[probability_L1(gRandom->Rndm())].insert(JPMTSignal(gRandom->Gaus(t1, getSigma()), 1));
364
365 output_L0[probability_L0(gRandom->Rndm())].insert(JPMTSignal(gRandom->Gaus(t1 + ts, getSigma()), 1));
366 }
367 }
368 }
369 }
370 }
virtual double getL01Rate() const =0
Get mixed L0 (lower module) and L1 (upper module) rate [Hz].
virtual double getL10Rate() const =0
Get mixed L1 (lower module) and L0 (upper module) rate [Hz].
Data structure for a composite optical module.
Definition JModule.hh:76
bool neighbours(const JLocation &first, const JLocation &second)
Check if two locations are neighbours.
Definition JLocation.hh:263

◆ getSigma()

static double JDETECTOR::JK40DefaultSimulatorInterface::getSigma ( )
inlinestaticinherited

Get intrinsic time smearing of K40 coincidences.

Returns
sigma [ns]

Definition at line 378 of file JK40DefaultSimulatorInterface.hh.

379 {
380 return get_sigma();
381 }
static double & get_sigma()
Get intrinsic time smearing of K40 coincidences.

◆ setSigma()

static void JDETECTOR::JK40DefaultSimulatorInterface::setSigma ( const double sigma)
inlinestaticinherited

Set intrinsic time smearing of K40 coincidences.

Parameters
sigmasigma [ns]

Definition at line 389 of file JK40DefaultSimulatorInterface.hh.

390 {
391 get_sigma() = sigma;
392 }

◆ get_sigma()

static double & JDETECTOR::JK40DefaultSimulatorInterface::get_sigma ( )
inlinestaticprivateinherited

Get intrinsic time smearing of K40 coincidences.

Returns
sigma [ns]

Definition at line 400 of file JK40DefaultSimulatorInterface.hh.

401 {
402 static double sigma = 0.5;
403
404 return sigma;
405 }

◆ getSinglesRate() [2/2]

double JPHYSICS::JK40Rates::getSinglesRate ( ) const
inlineinherited

Get singles rate.

Returns
rate [Hz]

Definition at line 71 of file JK40Rates.hh.

72 {
73 return rateL0;
74 }
JRateL0_t rateL0
singles rate [Hz]
Definition JK40Rates.hh:221

◆ getMultiplesRates()

const JRateL1_t & JPHYSICS::JK40Rates::getMultiplesRates ( ) const
inlineinherited

Get multiples rate.

Returns
rate [Hz]

Definition at line 82 of file JK40Rates.hh.

83 {
84 return rateL1;
85 }
JRateL1_t rateL1
multiples rates [Hz]
Definition JK40Rates.hh:222

◆ getMultiplesRate() [2/2]

double JPHYSICS::JK40Rates::getMultiplesRate ( const multiplicity_type M) const
inlineinherited

Get multiples rate at given multiplicity.

Parameters
Mmultiplicity (M >= JK40Rates::LOWER_L1_MULTIPLICITY)
Returns
rate [Hz]

Definition at line 94 of file JK40Rates.hh.

95 {
97 return rateL1[M - LOWER_L1_MULTIPLICITY];
98 else
99 return 0.0;
100 }
size_t multiplicity_type
Type definition of multiplicity.
Definition JK40Rates.hh:33
static const multiplicity_type LOWER_L1_MULTIPLICITY
Lower L1 multiplicity.
Definition JK40Rates.hh:217

◆ getLowerL1Multiplicity()

multiplicity_type JPHYSICS::JK40Rates::getLowerL1Multiplicity ( ) const
inlineinherited

Get lower multiplicty.

Returns
lower multiplicity

Definition at line 108 of file JK40Rates.hh.

109 {
111 }

◆ getUpperL1Multiplicity()

multiplicity_type JPHYSICS::JK40Rates::getUpperL1Multiplicity ( ) const
inlineinherited

Get upper multiplicty.

Returns
upper multiplicity

Definition at line 119 of file JK40Rates.hh.

120 {
121 return rateL1.size() + 1;
122 }

◆ correct()

void JPHYSICS::JK40Rates::correct ( const double QE)
inlineinherited

Correct rates for global efficiency,.

Parameters
QEglobal efficiency

Definition at line 130 of file JK40Rates.hh.

131 {
132 if (QE > 0.0) {
133
134 rateL0 /= QE;
135
136 JRateL1_t buffer = rateL1;
137
139
140 // determine contribution from higher multiplicities
141
142 double R = 0.0;
143
144 for (multiplicity_type i = M + 1; i <= getUpperL1Multiplicity(); ++i) {
145 R += buffer[i - LOWER_L1_MULTIPLICITY] * JMATH::binomial(i, M) * pow(QE, M) * pow(1.0 - QE, i - M);
146 }
147
148 if (getMultiplesRate(M) > R)
149 buffer[M - LOWER_L1_MULTIPLICITY] = (getMultiplesRate(M) - R) / pow(QE, M);
150 else
151 buffer[M - LOWER_L1_MULTIPLICITY] = 0.0;
152 }
153
154 rateL1 = buffer;
155
156 } else {
157
158 rateL0 = 0.0;
159
160 for (JRateL1_t::iterator i = rateL1.begin(); i != rateL1.end(); ++i) {
161 *i = 0.0;
162 }
163 }
164 }
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97
double binomial(const size_t n, const size_t k)
Binomial function.
std::vector< double > JRateL1_t
Type definition of count rate as a function of multiplicty [Hz] The multiples rate start counting at ...
Definition JK40Rates.hh:27
multiplicity_type getLowerL1Multiplicity() const
Get lower multiplicty.
Definition JK40Rates.hh:108
multiplicity_type getUpperL1Multiplicity() const
Get upper multiplicty.
Definition JK40Rates.hh:119

Friends And Related Symbol Documentation

◆ operator>>

std::istream & operator>> ( std::istream & in,
JK40DefaultSimulator & object )
friend

Read K40 simulator from input.

Parameters
ininput stream
objectK40 simulator
Returns
input stream

Definition at line 152 of file JK40DefaultSimulator.hh.

153 {
154 const double rateL0 = object.rateL0;
155
156 if (in >> object.rateL0) {
157
158 object.rateL1.clear();
159
160 for (double x; in >> x; ) {
161 object.rateL1.push_back(x);
162 }
163
164 } else {
165
166 object.rateL0 = rateL0;
167 }
168
169 return in;
170 }

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const JK40DefaultSimulator & object )
friend

Write K40 simulator to output.

Parameters
outoutput stream
objectK40 simulator
Returns
output stream

Definition at line 180 of file JK40DefaultSimulator.hh.

181 {
182 out << object.rateL0;
183
184 for (JRateL1_t::const_iterator i = object.rateL1.begin(); i != object.rateL1.end(); ++i) {
185 out << ' ' << *i;
186 }
187
188 out << " X " << object.rateL01 << ' ' << object.rateL10;
189
190 return out;
191 }

Member Data Documentation

◆ LOWER_L1_MULTIPLICITY

const multiplicity_type JPHYSICS::JK40Rates::LOWER_L1_MULTIPLICITY = 2
staticinherited

Lower L1 multiplicity.

Definition at line 217 of file JK40Rates.hh.

◆ rateL0

JRateL0_t JPHYSICS::JK40Rates::rateL0
protectedinherited

singles rate [Hz]

Definition at line 221 of file JK40Rates.hh.

◆ rateL1

JRateL1_t JPHYSICS::JK40Rates::rateL1
protectedinherited

multiples rates [Hz]

Definition at line 222 of file JK40Rates.hh.

◆ rateL01

double JPHYSICS::JMixedK40Rates::rateL01
protectedinherited

mixed L0 (lower module) and L1 (upper module) rate [Hz]

Definition at line 300 of file JK40Rates.hh.

◆ rateL10

double JPHYSICS::JMixedK40Rates::rateL10
protectedinherited

mixed L1 (lower module) and L0 (upper module) rate [Hz]

Definition at line 301 of file JK40Rates.hh.


The documentation for this class was generated from the following file: