1 #ifndef __JSIRENE__JSIRENETOOLKIT__
2 #define __JSIRENE__JSIRENETOOLKIT__
31 namespace JPP {
using namespace JSIRENE; }
77 ns.resize(npe.size());
78 vs.resize(npe.size());
85 for (
size_t i = 1;
i != npe.size(); ++
i) {
90 for (
int i = N;
i != 0; --
i) {
92 const double x = gRandom->Rndm() * NPE;
94 if (x < *
vs.rbegin()) {
101 for (
size_t i = 0;
i != npe.size(); ++
i) {
102 ns[
i] = gRandom->Poisson(npe[
i]);
120 inline size_t operator()(
const size_t npe)
const
122 static const size_t NPE = 20;
126 const size_t n = (size_t) (NPE *
log10((
double) npe / (
double) NPE));
153 using namespace JAANET;
154 using namespace JPHYSICS;
266 double getE(
const double z)
const
268 if (!this->empty()) {
272 if (p != this->end() && p != this->begin()) {
276 return p->getE() - (z - p->getZ()) *
gWater.
getA();
294 const double precision = 1.0e-2;
296 if (!this->empty()) {
300 if (p == this->end()) {
304 if (p == this->begin()) {
313 pos = p->getPosition();
317 pos -= p->getPosition();
319 const double u = (pos.getZ() > precision ? (z - p->getZ()) / pos.getZ() : 0.0);
321 return JVector2D(p->getX() + u * pos.getX(),
322 p->getY() + u * pos.getY());
385 if (__E > Ethreshold)
386 return (__E - Ethreshold) /
a;
442 __x += this->getDX() * ds;
443 __y += this->getDY() * ds;
444 __z += this->getDZ() * ds;
461 __x += this->getDX() * ds;
462 __y += this->getDY() * ds;
463 __z += this->getDZ() * ds;
465 __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.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
double getRange(double a) const
Get visible range of muon using given ionisation energy loss.
Direct light from delta-rays.
Scattered light from muon.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
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]
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.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
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.
struct JSIRENE::@61 getNumberOfPhotoElectrons
Auxiliary data structure for determination of number of photo-electrons.
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.