1#ifndef __JSIRENE__JVISIBLEENERGYTOOLKIT__
2#define __JSIRENE__JVISIBLEENERGYTOOLKIT__
52 const double R_Earth = R_EARTH_KM * 1e3;
81 if (is_finalstate(track)) {
83 const bool isMuon = is_muon(track);
95 const double Lmuon = gWater.getX(track.
E, MASS_MUON / getSinThetaC());
96 const double Leff = (min(Lmuon, max(intersection.second, 0.0)) -
97 min(Lmuon, max(intersection.first, 0.0)));
102 const double Emidpoint = gWater.getE(track.
E, Lmuon/2.0);
104 const double dEb = gWater.getEb(track.
E, Leff);
105 const double dEc = Leff / geanc();
106 const double dEd = Leff * getDeltaRaysFromMuon(Emidpoint);
108 Evis = dEb + dEc + dEd;
112 Evis =
pythia(track.
type, getKineticEnergy(track));
144 std::vector<Trk>::const_iterator __end,
151 for (vector<Trk>::const_iterator track = __begin; track != __end; ++track) {
169 std::vector<Trk>::const_iterator __end,
174 Vec Evis(0.0, 0.0, 0.0);
176 for (vector<Trk>::const_iterator track = __begin; track != __end; ++track) {
Definition of particle types.
Data structure for circle in two dimensions.
Data structure for vector in two dimensions.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
const JCylinder3D getMaximumContainmentVolume()
Forward function declarations.
double getVisibleEnergy(const Trk &, const JCylinder3D &)
Get the visible energy of a track.
static const JPythia pythia
Function object for relative light yield as a function of GEANT particle code.
Vec getVisibleEnergyVector(const Trk &track, const JCylinder3D &can=getMaximumContainmentVolume())
Get the visible energy vector of a track.
const char *const energy_lost_in_can
This file contains converted Fortran code from km3.
bool haveusr(const std::string &key) const
Check availability of user data of the item with given key.
double getusr(const std::string &key) const
Get user data item with given key.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
std::vector< Trk > mc_trks
MC: list of MC truth tracks.
static const JPDB & getInstance()
Get particle data book.
The cylinder used for photon tracking.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
int type
MC: particle type in PDG encoding.
double E
Energy [GeV] (either MC truth or reconstructed)
The Vec class is a straightforward 3-d vector, which also works in pyroot.