1#ifndef __JSIRENE__JSIRENETOOLKIT__ 
    2#define __JSIRENE__JSIRENETOOLKIT__ 
   77      ns.resize(npe.size());
 
   78      vs.resize(npe.size());
 
   85        for (
size_t i = 1; i != npe.size(); ++i) {
 
   87          vs[i] = 
vs[i-1] + npe[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]);
 
 
  122      static const size_t NPE = 20;
 
  126        const size_t n = (size_t) (NPE * log10((
double) npe / (
double) NPE));
 
 
 
  158    case DIRECT_LIGHT_FROM_MUON:
 
  159      return HIT_TYPE_MUON_DIRECT;
 
  161    case SCATTERED_LIGHT_FROM_MUON:
 
  162      return HIT_TYPE_MUON_SCATTERED;
 
  164    case DIRECT_LIGHT_FROM_DELTARAYS:
 
  165      return HIT_TYPE_DELTARAYS_DIRECT;
 
  167    case SCATTERED_LIGHT_FROM_DELTARAYS:
 
  168      return HIT_TYPE_DELTARAYS_SCATTERED;
 
  170    case DIRECT_LIGHT_FROM_EMSHOWER:
 
  171      return (shower ? HIT_TYPE_SHOWER_DIRECT : HIT_TYPE_BREMSSTRAHLUNG_DIRECT );
 
  173    case SCATTERED_LIGHT_FROM_EMSHOWER:
 
  174      return (shower ? HIT_TYPE_SHOWER_SCATTERED : HIT_TYPE_BREMSSTRAHLUNG_SCATTERED);
 
  177      return HIT_TYPE_UNKNOWN;      
 
 
  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);
 
  322                           p->getY() + u * pos.
getY());
 
 
 
  383      static const double Ethreshold = MASS_MUON / getSinThetaC();
 
  385      if (
__E > Ethreshold)
 
  386        return (
__E - Ethreshold) / a;
 
 
  428      return step(gWater.getA(), ds);
 
 
  445      __t += ds / getSpeedOfLight();
 
 
  464      __t += ds / getSpeedOfLight();
 
 
 
Numbering scheme for PDF types.
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
 
Data structure for vector in two dimensions.
 
Data structure for position in three dimensions.
 
Data structure for vector in three dimensions.
 
double getY() const
Get y position.
 
double getZ() const
Get z position.
 
double getX() const
Get x position.
 
Data structure for normalised vector in positive z-direction.
 
JVersor3Z & add(const JVersor3Z &value)
Addition operator.
 
double getDZ() const
Get z direction.
 
double getDY() const
Get y direction.
 
double getDX() const
Get x direction.
 
Interface for muon energy loss.
 
Extensions to Evt data format.
 
JHitType_t
Enumeration of hit types based on km3 codes.
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
 
Auxiliary methods for light properties of deep-sea water.
 
static const double MASS_MUON
muon mass [GeV]
 
static const JGeaneWater gWater
Function object for energy loss of muon in sea water.
 
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
 
const double getSpeedOfLight()
Get speed of light.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
JHitType_t getHitType(const JPDFType_t pdf, const bool shower=false)
Get hit type corresponding to given PDF type.
 
const struct JSIRENE::number_of_photo_electrons_type getNumberOfPhotoElectrons
 
Point along muon trajectory.
 
double getE() const
Get muon energy.
 
JPoint(const double z, const double t, const double E)
Constructor.
 
JPoint()
Default constructor.
 
double getEs() const
Get shower energy.
 
JVector2D getPosition(const double z) const
Get muon position at given position along trajectory.
 
JTrack(const JPoint &point)
Constructor.
 
double getE(const double z) const
Get muon energy at given position along trajectory.
 
Vertex of energy loss of muon.
 
double getRange(const JGeane &geane) const
Get range of muon using given energy loss function.
 
JVertex & step(const double ds)
Step using default ionisation energy loss.
 
double getRange() const
Get visible range of muon using default ionisation energy loss.
 
JVertex & step(const double a, const double ds)
Step using given ionisation energy loss.
 
double getRange(double a) const
Get visible range of muon using given ionisation energy loss.
 
void applyEloss(const JVersor3Z &Ts, const double Es)
Apply shower energy loss.
 
JVertex(const double z, const double t, const double E)
Constructor.
 
JVertex & step(const JGeane &geane, const double ds)
Step using given energy loss function.
 
JVertex()
Default constructor.
 
Auxiliary data structure for determination of number of photo-electrons.
 
const std::vector< size_t > & operator()(const double NPE, const int N, const std::vector< double > &npe, const bool option) const
Get numbers of photo-electrons for PMTs given the expectation values of the number of photo-electrons...
 
size_t operator()(const size_t npe) const
Get number of photo-electrons of a hit given number of photo-electrons on PMT.