1 #ifndef __JSIRENE__JSIRENETOOLKIT__
2 #define __JSIRENE__JSIRENETOOLKIT__
29 namespace JPP {
using namespace JSIRENE; }
72 for (
int i = N; i != 0; --i) {
73 if (gRandom->Rndm() * NPE < npe) {
82 return gRandom->Poisson(npe);
99 static const int NPE = 20;
103 const int n = (int) (NPE *
log10((
double) npe / (
double) NPE));
124 using namespace JAANET;
125 using namespace JPHYSICS;
227 std::vector<
JPoint>(1, point)
237 double getE(
const double z)
const
239 if (!this->empty()) {
243 if (p != this->end() && p != this->begin()) {
247 return p->getE() - (z - p->getZ()) *
gWater.
getA();
265 const double precision = 1.0e-2;
267 if (!this->empty()) {
271 if (p == this->end()) {
275 if (p == this->begin()) {
284 pos = p->getPosition();
288 pos -= p->getPosition();
290 const double u = (pos.getZ() > precision ? (z - p->getZ()) / pos.getZ() : 0.0);
292 return JVector2D(p->getX() + u * pos.getX(),
293 p->getY() + u * pos.getY());
356 if (__E > Ethreshold)
357 return (__E - Ethreshold) /
a;
413 __x += this->getDX() * ds;
414 __y += this->getDY() * ds;
415 __z += this->getDZ() * ds;
432 __x += this->getDX() * ds;
433 __y += this->getDY() * ds;
434 __z += this->getDZ() * ds;
436 __E = geane(__E, ds);
Data structure for vector in two dimensions.
JHitType_t
Enumeration of hit types based on km3 codes.
Scattered light from primary shower.
Point along muon trajectory.
double getE() const
Get muon energy.
JVertex & step(const double ds)
Step using default ionisation energy loss.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
double getRange(double a) const
Get visible range of muon using given ionisation energy loss.
Direct light from delta-rays.
Scattered light from muon.
scattered light from EM shower
JHitType_t getHitType(const JPDFType_t pdf, const bool shower=false)
Get hit type corresponding to given PDF type.
static const double MASS_MUON
muon mass [GeV]
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Scattered light from Bremsstrahlung.
JTrack(const JPoint &point)
Constructor.
static const JGeaneWater gWater
Function object for energy loss of muon in sea water.
Direct light from Bremsstrahlung.
Direct light from primary shower.
JVersor3Z & add(const JVersor3Z &value)
Addition operator.
JVertex & step(const double a, const double ds)
Step using given ionisation energy loss.
JPoint()
Default constructor.
JVertex()
Default constructor.
JVertex(const double z, const double t, const double E)
Constructor.
Numbering scheme for PDF types.
JVertex & step(const JGeane &geane, const double ds)
Step using given energy loss function.
scattered light from muon
set_variable E_E log10(E_{fit}/E_{#mu})"
double getE(const double z) const
Get muon energy at given position along trajectory.
scattered light from delta-rays
direct light from EM shower
Interface for muon energy loss.
double getRange(const JGeane &geane) const
Get range of muon using given energy loss function.
double getEs() const
Get shower energy.
Vertex of energy loss of muon.
direct light from delta-rays
void applyEloss(const JVersor3Z &Ts, const double Es)
Apply shower energy loss.
int getNumberOfPhotoElectrons(const double NPE, const int N, const double npe)
Get number of photo-electrons of a hit given the expectation values of the number of photo-electrons ...
const double getSpeedOfLight()
Get speed of light.
JVector2D getPosition(const double z) const
Get muon position at given position along trajectory.
Scattered light from delta-rays.
Data structure for position in three dimensions.
JPoint(const double z, const double t, const double E)
Constructor.
double getRange() const
Get visible range of muon using default ionisation energy loss.
Data structure for normalised vector in positive z-direction.
double getZ() const
Get z position.
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
virtual double getA() const override
Get energy loss constant.