simclasses C++ API Reference

struct convert_I3MMCTrack

Public Types

typedef I3MMCTrack booked_type

Public Functions

convert_I3MMCTrack()
void AddFields(I3TableRowDescriptionPtr desc, const booked_type &track = booked_type())
void FillSingleRow(const booked_type &track, I3TableRowPtr row)

Public Members

I3ConverterPtr base_
I3FramePtr dummyFrame_
struct CorsikaLongStep
#include <CorsikaLongStep.h>

Public Functions

CorsikaLongStep()
virtual ~CorsikaLongStep()
bool operator==(const CorsikaLongStep &rhs) const
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

double depth
uint64_t numGamma
uint64_t numEMinus
uint64_t numEPlus
uint64_t numMuMinus
uint64_t numMuPlus
uint64_t numHadron
uint64_t numCharged
uint64_t numNuclei
uint64_t numCherenkov
class I3CLSimEventStatistics : public I3FrameObject

This class collects statistics/information on simulated events (for example the total number of generated photons).

Public Functions

I3CLSimEventStatistics()
virtual ~I3CLSimEventStatistics()
inline uint64_t GetNumberOfPhotonsGeneratedForParticle(uint64_t majorID, int minorID) const
inline uint64_t GetNumberOfPhotonsGeneratedForParticle(const I3Particle &particle) const
inline uint64_t GetTotalNumberOfPhotonsGenerated() const
inline double GetSumOfWeightsPhotonsGeneratedForParticle(uint64_t majorID, int minorID) const
inline double GetSumOfWeightsPhotonsGeneratedForParticle(const I3Particle &particle) const
inline double GetTotalSumOfWeightsPhotonsGenerated() const
inline uint64_t GetNumberOfPhotonsAtDOMsForParticle(uint64_t majorID, int minorID) const
inline uint64_t GetNumberOfPhotonsAtDOMsForParticle(const I3Particle &particle) const
inline uint64_t GetTotalNumberOfPhotonsAtDOMs() const
inline double GetSumOfWeightsPhotonsAtDOMsForParticle(uint64_t majorID, int minorID) const
inline double GetSumOfWeightsPhotonsAtDOMsForParticle(const I3Particle &particle) const
inline double GetTotalSumOfWeightsPhotonsAtDOMs() const
inline void AddNumPhotonsGeneratedWithWeights(uint64_t numPhotons, double weightsForPhotons, uint64_t majorID, int minorID)
inline void AddNumPhotonsGeneratedWithWeights(uint64_t numParticles, double weightsForParticles, const I3Particle &particle)
inline void AddNumPhotonsAtDOMsWithWeights(uint64_t numPhotons, double weightsForPhotons, uint64_t majorID, int minorID)
inline void AddNumPhotonsAtDOMsWithWeights(uint64_t numParticles, double weightsForParticles, const I3Particle &particle)
inline void Reset()

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::map<std::pair<uint64_t, int>, uint64_t> numberOfPhotonsGeneratedPerParticle_
std::map<std::pair<uint64_t, int>, double> sumOfWeightsPhotonsGeneratedPerParticle_
uint64_t totalNumberOfPhotonsGenerated_
double totalSumOfWeightsPhotonsGenerated_
std::map<std::pair<uint64_t, int>, uint64_t> numberOfPhotonsAtDOMsPerParticle_
std::map<std::pair<uint64_t, int>, double> sumOfWeightsPhotonsAtDOMsPerParticle_
uint64_t totalNumberOfPhotonsAtDOMs_
double totalSumOfWeightsPhotonsAtDOMs_

Friends

friend class icecube::serialization::access
class I3CLSimFunction : public I3FrameObject
#include <I3CLSimFunction.h>

Subclassed by I3CLSimFunctionAbsLenIceCube, I3CLSimFunctionConstant, I3CLSimFunctionDeltaPeak, I3CLSimFunctionFromTable, I3CLSimFunctionPolynomial, I3CLSimFunctionRefIndexIceCube, I3CLSimFunctionRefIndexQuanFry, I3CLSimFunctionScatLenIceCube, I3CLSimFunctionScatLenPartic

Public Functions

I3CLSimFunction()
virtual ~I3CLSimFunction()
virtual bool HasNativeImplementation() const = 0

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual bool HasDerivative() const = 0

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const = 0

Shall return the value at a requested wavelength (n)

inline virtual double GetDerivative(double wlen) const

Shall return the derivative at a requested wavelength (dn/dlambda)

virtual double GetMinWlen() const = 0

Shall return the minimal supported wavelength (possibly -inf)

virtual double GetMaxWlen() const = 0

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const = 0

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

inline virtual std::string GetOpenCLFunctionDerivative(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const = 0

Shall compare to another I3CLSimFunction object

inline I3CLSimFunctionPtr Scale(double coefficient) const

Private Functions

virtual I3CLSimFunction *ScaleImpl(double coefficient) const = 0

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
class I3CLSimFunctionAbsLenIceCube : public I3CLSimFunction

Public Functions

I3CLSimFunctionAbsLenIceCube(double kappa, double A, double B, double D, double E, double aDust400, double deltaTau)
virtual ~I3CLSimFunctionAbsLenIceCube()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionAbsLenIceCubePtr Scale(double coefficient) const
virtual I3CLSimFunctionAbsLenIceCube *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

inline double GetKappa() const
inline double GetA() const
inline double GetB() const
inline double GetD() const
inline double GetE() const
inline double GetADust400() const
inline double GetDeltaTau() const

Private Functions

I3CLSimFunctionAbsLenIceCube()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double kappa_
double A_
double B_
double D_
double E_
double aDust400_
double deltaTau_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionConstant : public I3CLSimFunction

Public Functions

I3CLSimFunctionConstant(double value)
virtual ~I3CLSimFunctionConstant()
virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

virtual double GetDerivative(double wlen) const

Shall return the derivative at a requested wavelength (dn/dlambda)

virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual std::string GetOpenCLFunctionDerivative(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionConstantPtr Scale(double coefficient) const

Private Functions

I3CLSimFunctionConstant()
virtual I3CLSimFunctionConstant *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double value_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionDeltaPeak : public I3CLSimFunction

Public Functions

I3CLSimFunctionDeltaPeak(double peakPosition)
virtual ~I3CLSimFunctionDeltaPeak()
virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionDeltaPeakPtr Scale(double coefficient) const
inline double GetPeakPosition() const

Return internal state: the peak position

Private Functions

I3CLSimFunctionDeltaPeak()
virtual I3CLSimFunctionDeltaPeak *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double peakPosition_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionFromTable : public I3CLSimFunction

Public Functions

I3CLSimFunctionFromTable(const std::vector<double> &wlens, const std::vector<double> &values, bool storeDataAsHalfPrecision = default_storeDataAsHalfPrecision)
I3CLSimFunctionFromTable(double startWlen, double wlenStep, const std::vector<double> &values, bool storeDataAsHalfPrecision = default_storeDataAsHalfPrecision)
virtual ~I3CLSimFunctionFromTable()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

inline double GetFirstWavelength() const

Returns the internal state: first wavelength

inline double GetWavelengthStepping() const

Returns the internal state: wavelength stepping

inline std::size_t GetNumEntries() const

Returns the internal state: number of bins

inline double GetEntryValue(std::size_t i) const

Returns the internal state: value at entry i

inline double GetEntryWavelength(std::size_t i) const

Returns the internal state: wavenelgth at entry i

inline bool GetInEqualSpacingMode() const

Returns the internal state: has equally spaced bins?

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionFromTablePtr Scale(double coefficient) const
inline std::vector<double> GetXValues() const
inline std::vector<double> GetYValues() const

Public Static Attributes

static const bool default_storeDataAsHalfPrecision = false

Private Functions

I3CLSimFunctionFromTable()
virtual I3CLSimFunctionFromTable *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double startWlen_
double wlenStep_
std::vector<double> wlens_
std::vector<double> values_
bool equalSpacingMode_
bool storeDataAsHalfPrecision_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionPolynomial : public I3CLSimFunction

Public Functions

I3CLSimFunctionPolynomial(const std::vector<double> &coeffs)

Constructor for polynomials that are defined for the whole x-range

I3CLSimFunctionPolynomial(const std::vector<double> &coeffs, double rangemin, double rangemax)

Constructor for polynomials that have a limited range If it is called with an x outside the range, it will return the values at rangemin/rangemax.

I3CLSimFunctionPolynomial(const std::vector<double> &coeffs, double rangemin, double rangemax, double underflow, double overflow)

Constructor for polynomials that have a limited range If it is called with an x outside the range, it will return the underflow/overflow value

virtual ~I3CLSimFunctionPolynomial()

Destructor

inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

inline const std::vector<double> &GetCoefficients() const
I3CLSimFunctionPolynomialPtr Scale(double coefficient) const

Private Functions

I3CLSimFunctionPolynomial()
virtual I3CLSimFunctionPolynomial *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<double> coefficients_
double rangemin_
double rangemax_
double underflow_
double overflow_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionRefIndexIceCube : public I3CLSimFunction

Public Functions

I3CLSimFunctionRefIndexIceCube(std::string mode = default_mode, double n0 = default_n0, double n1 = default_n1, double n2 = default_n2, double n3 = default_n3, double n4 = default_n4, double g0 = default_g0, double g1 = default_g1, double g2 = default_g2, double g3 = default_g3, double g4 = default_g4)
virtual ~I3CLSimFunctionRefIndexIceCube()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

virtual double GetDerivative(double wlen) const

Shall return the derivative at a requested wavelength (dn/dlambda)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual std::string GetOpenCLFunctionDerivative(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionRefIndexIceCubePtr Scale(double coefficient) const

Public Static Attributes

static const std::string default_mode = "phase"
static const double default_n0 = 1.55749
static const double default_n1 = -1.57988
static const double default_n2 = 3.99993
static const double default_n3 = -4.68271
static const double default_n4 = 2.09354
static const double default_g0 = 1.227106
static const double default_g1 = -0.954648
static const double default_g2 = 1.42568
static const double default_g3 = -0.711832
static const double default_g4 = 0.00000

Private Functions

virtual I3CLSimFunctionRefIndexIceCube *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::string mode_
double n0_
double n1_
double n2_
double n3_
double n4_
double g0_
double g1_
double g2_
double g3_
double g4_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionRefIndexQuanFry : public I3CLSimFunction

Public Functions

I3CLSimFunctionRefIndexQuanFry(double salinity = default_salinity, double temperature = default_temperature, double pressure = default_pressure, double n0 = default_n0, double n1 = default_n1, double n2 = default_n2, double n3 = default_n3, double n4 = default_n4, double n5 = default_n5, double n6 = default_n6, double n7 = default_n7, double n8 = default_n8, double n9 = default_n9, double n10 = default_n10)
virtual ~I3CLSimFunctionRefIndexQuanFry()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

virtual double GetDerivative(double wlen) const

Shall return the derivative at a requested wavelength (dn/dlambda)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual std::string GetOpenCLFunctionDerivative(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionRefIndexQuanFryPtr Scale(double coefficient) const

Public Static Attributes

static const double default_salinity = 38.44 * I3Units::perThousand
static const double default_temperature = 13.1
static const double default_pressure = 240.0 * 1.01325 * I3Units::bar
static const double default_n0 = 1.31405
static const double default_n1 = 1.45e-5
static const double default_n2 = 1.779e-4
static const double default_n3 = 1.05e-6
static const double default_n4 = 1.6e-8
static const double default_n5 = 2.02e-6
static const double default_n6 = 15.868
static const double default_n7 = 0.01155
static const double default_n8 = 0.00423
static const double default_n9 = 4382.
static const double default_n10 = 1.1455e6

Private Functions

virtual I3CLSimFunctionRefIndexQuanFry *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

void UpdateMutables() const
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double salinity_
double temperature_
double pressure_
double n0_
double n1_
double n2_
double n3_
double n4_
double n5_
double n6_
double n7_
double n8_
double n9_
double n10_
mutable double a01
mutable double a2
mutable double a3
mutable double a4

Friends

friend class icecube::serialization::access
class I3CLSimFunctionScatLenIceCube : public I3CLSimFunction

Public Functions

I3CLSimFunctionScatLenIceCube(double alpha, double b400, double bfrCorrection = 0)
virtual ~I3CLSimFunctionScatLenIceCube()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionScatLenIceCubePtr Scale(double coefficient) const
inline double GetAlpha() const
inline double GetB400() const
inline double GetBfrCorrection() const

Private Functions

I3CLSimFunctionScatLenIceCube()
virtual I3CLSimFunctionScatLenIceCube *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double alpha_
double b400_
double bfrCorrection_

Friends

friend class icecube::serialization::access
class I3CLSimFunctionScatLenPartic : public I3CLSimFunction

Public Functions

I3CLSimFunctionScatLenPartic(double volumeConcentrationSmallParticles = default_volumeConcentrationSmallParticles, double volumeConcentrationLargeParticles = default_volumeConcentrationLargeParticles)
virtual ~I3CLSimFunctionScatLenPartic()
inline virtual bool HasNativeImplementation() const

If this is true, it is assumed that GetValue() and GetDerivative() return meaningful values. If not, GetValue will not be called; only the OpenCL implementation will be used.

inline virtual bool HasDerivative() const

If this is true, derivatives can be used.

virtual double GetValue(double wlen) const

Shall return the value at a requested wavelength (n)

inline virtual double GetMinWlen() const

Shall return the minimal supported wavelength (possibly -inf)

inline virtual double GetMaxWlen() const

Shall return the maximal supported wavelength (possibly +inf)

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimFunction &other) const

Shall compare to another I3CLSimFunction object

I3CLSimFunctionScatLenParticPtr Scale(double coefficient) const

Public Static Attributes

static const double default_volumeConcentrationSmallParticles = 0.0075f * I3Units::perMillion
static const double default_volumeConcentrationLargeParticles = 0.0075f * I3Units::perMillion

Private Functions

virtual I3CLSimFunctionScatLenPartic *ScaleImpl(double coefficient) const

Shall return a function whose evaluates are scaled by coeffiecient

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double volumeConcentrationSmallParticles_
double volumeConcentrationLargeParticles_

Friends

friend class icecube::serialization::access
class I3CLSimMediumProperties : public I3FrameObject

Public Functions

I3CLSimMediumProperties(double mediumDensity = default_mediumDensity, uint32_t layersNum = default_layersNum, double layersZStart = default_layersZStart, double layersHeight = default_layersHeight, double rockZCoordinate = default_rockZCoordinate, double airZCoordinate = default_airZCoordinate, double meanCosineTheta = default_meanCosineTheta)
~I3CLSimMediumProperties()
bool IsReady() const

Returns true if media definitions for all layers are set.

bool HasBirefringence() const

Returns true if the loaded icemodel uses birefringence, in which case we also assume it’s IceCube.

const std::vector<I3CLSimFunctionConstPtr> &GetAbsorptionLengths() const
const std::vector<I3CLSimFunctionConstPtr> &GetScatteringLengths() const
const std::vector<I3CLSimFunctionConstPtr> &GetPhaseRefractiveIndices() const
const std::vector<I3CLSimFunctionConstPtr> &GetGroupRefractiveIndicesOverride() const
I3CLSimFunctionConstPtr GetAbsorptionLength(uint32_t layer) const
I3CLSimFunctionConstPtr GetScatteringLength(uint32_t layer) const
I3CLSimFunctionConstPtr GetPhaseRefractiveIndex(uint32_t layer) const
I3CLSimFunctionConstPtr GetGroupRefractiveIndexOverride(uint32_t layer) const
I3CLSimRandomValueConstPtr GetScatteringCosAngleDistribution() const
I3CLSimScalarFieldConstPtr GetDirectionalAbsorptionLengthCorrection() const
I3CLSimVectorTransformConstPtr GetPreScatterDirectionTransform() const
I3CLSimVectorTransformConstPtr GetPostScatterDirectionTransform() const
std::tuple<double, double, double> GetAnisotropyParameters() const
std::tuple<double, double, double, double> GetAbsorptionAnisotropyParameters() const
std::vector<double> GetBirefringenceParameters() const
std::vector<double> GetBirefringenceLayerScaling() const
I3CLSimScalarFieldConstPtr GetIceTiltZShift() const
void SetAbsorptionLength(uint32_t layer, I3CLSimFunctionConstPtr ptr)
void SetScatteringLength(uint32_t layer, I3CLSimFunctionConstPtr ptr)
void SetPhaseRefractiveIndex(uint32_t layer, I3CLSimFunctionConstPtr ptr)
void SetGroupRefractiveIndexOverride(uint32_t layer, I3CLSimFunctionConstPtr ptr)
void SetScatteringCosAngleDistribution(I3CLSimRandomValueConstPtr ptr)
void SetDirectionalAbsorptionLengthCorrection(I3CLSimScalarFieldConstPtr ptr)
void SetPreScatterDirectionTransform(I3CLSimVectorTransformConstPtr ptr)
void SetPostScatterDirectionTransform(I3CLSimVectorTransformConstPtr ptr)
void SetAnisotropyParameters(double anisotropyDirAzimuth, double magnitudeAlongDir, double magnitudePerpToDir)
void SetAbsorptionAnisotropyParameters(double absorptionAnisk1, double absorptionAnisk2, double absorptionAniskz, double scaleOldAnis)
void SetIceTiltZShift(I3CLSimScalarFieldConstPtr ptr)
void SetBirefringenceParameters(std::vector<double> bfrParas)
void SetBirefringenceLayerScaling(std::vector<double> bfrLayerScaling)
double GetMinWavelength() const
double GetMaxWavelength() const
inline double GetMediumDensity() const
inline uint32_t GetLayersNum() const
inline double GetLayersZStart() const
inline double GetLayersHeight() const
inline double GetRockZCoord() const
inline double GetAirZCoord() const
inline double GetMeanCosineTheta() const
inline double GetForcedMinWlen() const
inline double GetForcedMaxWlen() const
inline void SetForcedMinWlen(double val)
inline void SetForcedMaxWlen(double val)
inline double GetEfficiency() const
inline void SetEfficiency(double val)

Public Static Attributes

static const double default_mediumDensity = 1. * I3Units::g / I3Units::cm3
static const uint32_t default_layersNum = 1
static const double default_layersZStart = -5000. * I3Units::m
static const double default_layersHeight = 10000. * I3Units::m
static const double default_rockZCoordinate = I3CLSimMediumProperties::default_layersZStart
static const double default_airZCoordinate = -I3CLSimMediumProperties::default_layersZStart
static const double default_meanCosineTheta = 0.9

Private Functions

template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Private Members

double mediumDensity_
uint32_t layersNum_
double layersZStart_
double layersHeight_
double rockZCoordinate_
double airZCoordinate_
double meanCosineTheta_
double forcedMinWlen_
double forcedMaxWlen_
double efficiency_
double anisotropyDirAzimuth_
double magnitudeAlongDir_
double magnitudePerpToDir_
double absorptionAnisk1_
double absorptionAnisk2_
double absorptionAniskz_
double scaleOldAnis_
std::vector<double> bfrParas_
std::vector<double> bfrLayerScaling_
std::vector<I3CLSimFunctionConstPtr> absorptionLength_
std::vector<I3CLSimFunctionConstPtr> scatteringLength_
std::vector<I3CLSimFunctionConstPtr> phaseRefractiveIndex_
std::vector<I3CLSimFunctionConstPtr> groupRefractiveIndexOverride_
I3CLSimRandomValueConstPtr scatteringCosAngleDist_
I3CLSimScalarFieldConstPtr directionalAbsorptionLengthCorrection_
I3CLSimVectorTransformConstPtr preScatterDirectionTransform_
I3CLSimVectorTransformConstPtr postScatterDirectionTransform_
I3CLSimScalarFieldConstPtr iceTiltZShift_

Friends

friend class icecube::serialization::access
struct I3CLSimPhoton
#include <I3CLSimPhoton.h>

Public Functions

inline I3CLSimPhoton()
~I3CLSimPhoton()
inline float GetPosX() const
inline float GetPosY() const
inline float GetPosZ() const
inline float GetTime() const
inline float GetDirTheta() const
inline float GetDirPhi() const
inline float GetStartPosX() const
inline float GetStartPosY() const
inline float GetStartPosZ() const
inline float GetStartTime() const
inline float GetStartDirTheta() const
inline float GetStartDirPhi() const
inline float GetWavelength() const
inline float GetCherenkovDist() const
inline uint32_t GetNumScatters() const
inline float GetWeight() const
inline uint32_t GetID() const
inline int16_t GetStringID() const
inline uint16_t GetOMID() const
inline float GetGroupVelocity() const
inline float GetDistInAbsLens() const
inline I3Position GetPos() const
inline I3Position GetStartPos() const
inline I3Direction GetDir() const
inline I3Direction GetStartDir() const
inline void SetPosX(const float &val)
inline void SetPosY(const float &val)
inline void SetPosZ(const float &val)
inline void SetTime(const float &val)
inline void SetDirTheta(const float &val)
inline void SetDirPhi(const float &val)
inline void SetStartPosX(const float &val)
inline void SetStartPosY(const float &val)
inline void SetStartPosZ(const float &val)
inline void SetStartTime(const float &val)
inline void SetStartDirTheta(const float &val)
inline void SetStartDirPhi(const float &val)
inline void SetWavelength(const float &val)
inline void SetCherenkovDist(const float &val)
inline void SetNumScatters(const uint32_t &val)
inline void SetWeight(const float &val)
inline void SetID(const uint32_t &val)
inline void SetStringID(const int16_t &val)
inline void SetOMID(const uint16_t &val)
inline void SetGroupVelocity(const float &val)
inline void SetDistInAbsLens(const float &val)
inline void SetPos(const I3Position &pos)
inline void SetStartPos(const I3Position &pos)
inline void SetDir(const I3Direction &d)
inline void SetDir(double x, double y, double z)
inline void SetStartDir(const I3Direction &dir)
inline void SetStartDir(const double &x, const double &y, const double &z)
template<>
void save(portable_binary_oarchive &ar, unsigned version) const
template<>
void load(portable_binary_iarchive &ar, unsigned version)
template<>
void save(icecube::archive::portable_binary_oarchive &ar, unsigned version) const
template<>
void load(icecube::archive::portable_binary_iarchive &ar, unsigned version)

Public Members

float x
float y
float z
float t
float theta
float phi
float wavelength
float cherenkovDist
uint32_t numScatters
float weight
uint32_t identifier
int16_t stringID
uint16_t omID
float start_x
float start_y
float start_z
float start_t
float start_theta
float start_phi
float groupVelocity
float distInAbsLens

Private Functions

template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const

Friends

friend class icecube::serialization::access
struct I3CLSimPhotonHistory

Public Functions

inline I3CLSimPhotonHistory()
~I3CLSimPhotonHistory()
inline std::size_t size() const
inline float GetX(std::size_t index) const
inline float GetY(std::size_t index) const
inline float GetZ(std::size_t index) const
inline float GetDistanceInAbsorptionLengths(std::size_t index) const
inline I3PositionPtr operator[](std::size_t index) const
inline I3PositionPtr at(std::size_t index) const
inline void push_back(float x, float y, float z, float abslens)
inline void push_back(const I3Position &pos, float abslens)

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<float> posX_
std::vector<float> posY_
std::vector<float> posZ_
std::vector<float> distanceInAbsorptionLengths_

Friends

friend class icecube::serialization::access
template<typename T>
class I3CLSimQueue : private noncopyable
#include <I3CLSimQueue.h>

A thread-safe queue, storing objects of type T. T will be copied around quite a bit, so make it light-weight. (Use a shared pointer for example.)

Will block on Get if queue is empty and on Put if queue is full. A max_size argument of 0 will get you a queue with no limit.

Public Functions

inline I3CLSimQueue(std::size_t max_size)
inline I3CLSimQueue()
inline ~I3CLSimQueue()
inline void Put(const T &msg)
inline void Put(T &&msg)
inline T Get()
inline bool GetNonBlocking(T &value)
inline T Get(double timeout, T returnOnTimeout)
inline bool empty() const
inline std::size_t size() const
inline std::size_t max_size() const

Private Members

mutable boost::mutex mutex_
boost::condition_variable cond_
std::queue<T> queue_
std::size_t max_size_
struct I3CLSimRandomValue

Subclassed by I3CLSimRandomValueApplyFunction, I3CLSimRandomValueConstant, I3CLSimRandomValueFixParameter, I3CLSimRandomValueHenyeyGreenstein, I3CLSimRandomValueInterpolatedDistribution, I3CLSimRandomValueMixed, I3CLSimRandomValueNormalDistribution, I3CLSimRandomValueRayleighScatteringCosAngle, I3CLSimRandomValueSimplifiedLiu, I3CLSimRandomValueUniform, I3CLSimRandomValueWlenCherenkovNoDispersion

Public Functions

I3CLSimRandomValue()
virtual ~I3CLSimRandomValue()
virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const = 0

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

virtual std::size_t NumberOfParameters() const = 0

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const = 0

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const = 0

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const = 0

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueApplyFunction : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueApplyFunction(const I3CLSimRandomValuePtr &randomDistUsed, const std::string &functionName)
virtual ~I3CLSimRandomValueApplyFunction()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueApplyFunction()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

I3CLSimRandomValuePtr randomDistUsed_
std::string applyFunctionName_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueConstant : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueConstant()

Use this constructor to make the constant value a runtime parameter

I3CLSimRandomValueConstant(double value)

Use this constructor to fix the constant value and make the distribution not use runtime parameters.

virtual ~I3CLSimRandomValueConstant()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double value_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueFixParameter : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueFixParameter(const I3CLSimRandomValuePtr &randomDistUsed, std::size_t parameterIndex, double parameterValue)
virtual ~I3CLSimRandomValueFixParameter()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueFixParameter()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

I3CLSimRandomValuePtr randomDistUsed_
std::size_t parameterIndex_
double parameterValue_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueHenyeyGreenstein : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueHenyeyGreenstein(double meanCosine)
virtual ~I3CLSimRandomValueHenyeyGreenstein()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueHenyeyGreenstein()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double meanCosine_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueInterpolatedDistribution : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueInterpolatedDistribution(const std::vector<double> &x, const std::vector<double> &y)
I3CLSimRandomValueInterpolatedDistribution(double xFirst, double xSpacing, const std::vector<double> &y)
virtual ~I3CLSimRandomValueInterpolatedDistribution()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

inline std::vector<double> GetXValues() const
inline std::vector<double> GetYValues() const
inline std::vector<double> GetCumulativeYValues() const

Private Functions

void InitTables()
std::string WriteTableCode(const std::string &prefix) const
I3CLSimRandomValueInterpolatedDistribution()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<double> data_acu_
std::vector<double> data_beta_
std::vector<double> x_
std::vector<double> y_
double constantXSpacing_
double firstX_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueMixed : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueMixed(double fractionOfFirstDistribution, I3CLSimRandomValueConstPtr firstDistribution, I3CLSimRandomValueConstPtr secondDistribution)
virtual ~I3CLSimRandomValueMixed()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueMixed()
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Private Members

double fractionOfFirstDistribution_
I3CLSimRandomValueConstPtr firstDistribution_
I3CLSimRandomValueConstPtr secondDistribution_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueNormalDistribution : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueNormalDistribution()
virtual ~I3CLSimRandomValueNormalDistribution()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueRayleighScatteringCosAngle : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueRayleighScatteringCosAngle()
virtual ~I3CLSimRandomValueRayleighScatteringCosAngle()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueSimplifiedLiu : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueSimplifiedLiu(double meanCosine)
virtual ~I3CLSimRandomValueSimplifiedLiu()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueSimplifiedLiu()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double meanCosine_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueUniform : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueUniform()
I3CLSimRandomValueUniform(double from, double to)

“from” is inclusive, “to” is exclusive

virtual ~I3CLSimRandomValueUniform()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double from_
double to_

Friends

friend class icecube::serialization::access
struct I3CLSimRandomValueWlenCherenkovNoDispersion : public I3CLSimRandomValue

Public Functions

I3CLSimRandomValueWlenCherenkovNoDispersion(double fromWlen, double toWlen)
virtual ~I3CLSimRandomValueWlenCherenkovNoDispersion()
virtual std::size_t NumberOfParameters() const

This should return the number of parameters this distribution requires. For a gaussian this would be something like the mean and sigma.

virtual double SampleFromDistribution(const I3RandomServicePtr &random, const std::vector<double> &parameters) const

Return a random number sampled from the distribution. This runs as host code and is mainly for cross-checking the OpenCL implementation.

The parameters vector size needs to be the same as the number returned by NumberOfParameters().

inline virtual bool OpenCLFunctionWillOnlyUseASingleRandomNumber() const

If the OpenCL function will only use a single random number, the random number can be passed directly as a value instead of passing an random number generator. This may improve performance, so it can be made known to the caller.

virtual std::string GetOpenCLFunction(const std::string &functionName, const std::string &functionArgs, const std::string &functionArgsToCall, const std::string &uniformRandomCall_co, const std::string &uniformRandomCall_oc) const

Shall return an OpenCL-compatible function. The declaration of the form “float {functionName}({functionArgs})” is provided by the caller in functionDecl. The function call to generate uniformly distributed random numbers between 0 and 1 is provided in uniformRandomCall_{co|oc}. (co: closed-open, 0 included, 1 not included oc: open-closed, 0 not included, 1 included)

virtual bool CompareTo(const I3CLSimRandomValue &other) const

Shall compare the internal state another I3CLSimRandomValue object

Private Functions

I3CLSimRandomValueWlenCherenkovNoDispersion()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double fromWlen_
double toWlen_

Friends

friend class icecube::serialization::access
struct I3CLSimScalarField

Subclassed by I3CLSimScalarFieldAnisotropyAbsLenScaling, I3CLSimScalarFieldConstant, I3CLSimScalarFieldIceTiltZShift

Public Functions

I3CLSimScalarField()
virtual ~I3CLSimScalarField()
virtual bool HasNativeImplementation() const = 0

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual double GetValue(double x, double y, double z) const = 0

return the value at a requested 3-vector

inline double GetValue(const std::vector<double> &vec) const

return the value at a requested 3-vector

virtual std::string GetOpenCLFunction(const std::string &functionName) const = 0

return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimScalarField &other) const = 0

compare to another I3CLSimScalarField object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimScalarFieldAnisotropyAbsLenScaling : public I3CLSimScalarField

Public Functions

I3CLSimScalarFieldAnisotropyAbsLenScaling(double anisotropyDirAzimuth = default_anisotropyDirAzimuth, double magnitudeAlongDir = default_magnitudeAlongDir, double magnitudePerpToDir = default_magnitudePerpToDir, double absorptionAnisk1 = default_absorptionAnisk1, double absorptionAnisk2 = default_absorptionAnisk2, double absorptionAniskz = default_absorptionAniskz, double scaleOldAnis = default_scaleOldAnis)
virtual ~I3CLSimScalarFieldAnisotropyAbsLenScaling()
virtual bool HasNativeImplementation() const

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual double GetValue(double x, double y, double z) const

return the value at a requested 3-vector

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimScalarField &other) const

Shall compare to another I3CLSimScalarField object

Public Static Attributes

static const double default_anisotropyDirAzimuth = 216. * I3Units::deg
static const double default_magnitudeAlongDir = 0.04
static const double default_magnitudePerpToDir = -0.08
static const double default_absorptionAnisk1 = 0.
static const double default_absorptionAnisk2 = 0.
static const double default_absorptionAniskz = 0.
static const double default_scaleOldAnis = 1.
static const double default_EPS = 1.e-5

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double anisotropyDirAzimuth_
double magnitudeAlongDir_
double magnitudePerpToDir_
double absorptionAnisk1_
double absorptionAnisk2_
double absorptionAniskz_
double scaleOldAnis_

Friends

friend class icecube::serialization::access
struct I3CLSimScalarFieldConstant : public I3CLSimScalarField

Public Functions

I3CLSimScalarFieldConstant(double value)
virtual ~I3CLSimScalarFieldConstant()
virtual bool HasNativeImplementation() const

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual double GetValue(double x, double y, double z) const

return the value at a requested 3-vector

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimScalarField &other) const

Shall compare to another I3CLSimScalarField object

Private Functions

I3CLSimScalarFieldConstant()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double value_

Friends

friend class icecube::serialization::access
struct I3CLSimScalarFieldIceTiltZShift : public I3CLSimScalarField

Public Functions

I3CLSimScalarFieldIceTiltZShift(const std::vector<double> &distancesFromOriginAlongTilt, const std::vector<double> &zCoordinates, const I3Matrix &zCorrections, double directionOfTiltAzimuth = default_directionOfTiltAzimuth)
I3CLSimScalarFieldIceTiltZShift(const std::vector<double> &axis_azimuths, const std::vector<double> &pos0, const std::vector<double> &step, const std::vector<int> &cut_region, const I3Matrix &tilt_map_layout, const std::vector<double> &zCoordinates, const I3Matrix &zCorrections)
virtual ~I3CLSimScalarFieldIceTiltZShift()
virtual bool HasNativeImplementation() const

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual double GetValue(double x, double y, double z) const

return the value at a requested 3-vector

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Shall return an OpenCL-compatible function named functionName with a single float argument (float wlen)

virtual bool CompareTo(const I3CLSimScalarField &other) const

Shall compare to another I3CLSimScalarField object

Public Static Attributes

static const double default_directionOfTiltAzimuth = 225. * I3Units::deg

Private Functions

I3CLSimScalarFieldIceTiltZShift()
double GetMeanSpacing()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<double> axis_azimuths_
std::vector<double> pos0_
std::vector<double> step_
std::vector<int> cut_region_
I3Matrix tilt_map_layout_
std::vector<double> distancesFromOriginAlongTilt_
std::vector<double> zCoordinates_
I3Matrix zCorrections_
double directionOfTiltAzimuth_
double firstZCoordinate_
double zCoordinateSpacing_
bool use_2Dtilt_

Friends

friend class icecube::serialization::access
struct I3CLSimVectorTransform

Subclassed by I3CLSimVectorTransformConstant, I3CLSimVectorTransformMatrix

Public Functions

I3CLSimVectorTransform()
virtual ~I3CLSimVectorTransform()
virtual bool HasNativeImplementation() const = 0

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual std::vector<double> ApplyTransform(const std::vector<double> &vec) const = 0

apply the transform

virtual std::string GetOpenCLFunction(const std::string &functionName) const = 0

Return an OpenCL-compatible function named functionName with a single float4* argument. The function will transform the vector in place. The value of the fourth element will be kept un-changed.

virtual bool CompareTo(const I3CLSimVectorTransform &other) const = 0

compare to another I3CLSimVectorTransform object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimVectorTransformConstant : public I3CLSimVectorTransform

Public Functions

I3CLSimVectorTransformConstant()
virtual ~I3CLSimVectorTransformConstant()
virtual bool HasNativeImplementation() const

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual std::vector<double> ApplyTransform(const std::vector<double> &vec) const

apply the transform

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Return an OpenCL-compatible function named functionName with a single float4* argument. The function will transform the vector in place. The value of the fourth element will be kept un-changed.

virtual bool CompareTo(const I3CLSimVectorTransform &other) const

Shall compare to another I3CLSimVectorTransform object

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3CLSimVectorTransformMatrix : public I3CLSimVectorTransform

Public Functions

I3CLSimVectorTransformMatrix(const I3Matrix &matrix, bool renormalize = false)
virtual ~I3CLSimVectorTransformMatrix()
virtual bool HasNativeImplementation() const

if this is true, it is assumed that GetValue() returns a meaningful value. If not, GetValue will not be called; only the OpenCL implementation will be used.

virtual std::vector<double> ApplyTransform(const std::vector<double> &vec) const

apply the transform

virtual std::string GetOpenCLFunction(const std::string &functionName) const

Return an OpenCL-compatible function named functionName with a single float4* argument. The function will transform the vector in place. The value of the fourth element will be kept un-changed.

virtual bool CompareTo(const I3CLSimVectorTransform &other) const

Shall compare to another I3CLSimVectorTransform object

Private Functions

I3CLSimVectorTransformMatrix()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

I3Matrix matrix_
bool renormalize_

Friends

friend class icecube::serialization::access
class I3CompressedPhoton

Public Functions

inline I3CompressedPhoton()
inline I3CompressedPhoton(uint64_t mid, int id)
inline I3CompressedPhoton(const I3Photon &p)
inline operator I3Photon() const
~I3CompressedPhoton()
std::ostream &Print(std::ostream&) const
inline double GetTime() const
inline void SetTime(double time)
inline double GetWeight() const
inline void SetWeight(float weight)
inline int32_t GetParticleMinorID() const
inline uint64_t GetParticleMajorID() const
inline I3ParticleID GetParticleID() const
inline void SetParticleMinorID(int32_t minorID)
inline void SetParticleMajorID(uint64_t majorID)
void SetParticleID(const I3Particle&)
inline double GetWavelength() const
inline void SetWavelength(float wlen)
inline void SetGroupVelocity(float v)
inline double GetGroupVelocity() const
inline const I3Position GetPos() const
Returns:

The position of this photon on the OM. This position is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline void SetPos(const I3Position &p)
Parameters:

p – The position of this on the OM. This position is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline const I3Direction GetDir() const
Returns:

The direction vector of the photon on the OM. This direction is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline void SetDir(const I3Direction &d)
Parameters:

d – The direction vector of the photon on the OM. This direction is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline bool operator==(const I3CompressedPhoton &rhs) const

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double time_
float weight_
float wavelength_
float groupVelocity_
float zenith_
float azimuth_
float x_
float y_
float z_
uint64_t particleMajorID_
int32_t particleID_

Friends

friend class icecube::serialization::access
class I3CompressedPhotonSeriesMapConverter : public I3ConverterImplementation<I3CompressedPhotonSeriesMap>

Public Types

typedef booked_type value_type

Public Functions

void AddFields(I3TableRowDescriptionPtr, const value_type& = value_type())
void FillSingleRow(const value_type&, I3TableRowPtr)

Private Functions

I3TableRowDescriptionPtr CreateDescription(const value_type &example)
std::size_t GetNumberOfRows(const value_type &value)
std::size_t FillRows(const value_type &value, I3TableRowPtr rows)
struct I3CorsikaInfo : public I3FrameObject
#include <I3CorsikaInfo.h>

Public Functions

I3CorsikaInfo()
std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

uint32_t run_id
uint32_t n_events
I3Particle::ParticleType primary_type
uint32_t atmosphere
uint32_t oversampling
double cylinder_height
double cylinder_radius
double min_zenith
double max_zenith
double min_energy
double max_energy
double power_law_index
double corsika_version
double hadron_cutoff
double muon_cutoff
double electron_cutoff
double photon_cutoff
double mag_field_x
double mag_field_z
CorsikaModelEnums::LEHadronModel le_hadron_model
CorsikaModelEnums::HEHadronModel he_hadron_model
CorsikaModelEnums::Status thinned
CorsikaModelEnums::Status curved
CorsikaModelEnums::Status muon_additional_information
double arrang

Friends

friend class icecube::serialization::access
class I3CorsikaInfoConverter : public I3ConverterImplementation<I3CorsikaInfo>

copyright (C) 2020 The Icecube Collaboration

Rcs

I3CorsikaShowerInfoConverter.h 87997 2012-05-07 00:07:52Z jvansanten

Version

Rcs

87997

Date

Rcs

2012-05-06 19:07:52 -0500 (Sun, 06 May 2012)

Author

Kevin Meagher

Rcs

jvansanten

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3CorsikaInfo &info)

copyright (C) 2020 The Icecube Collaboration

Rcs

Version

Rcs
Date

$LastChangedDate:$

Author

Kevin Meagher

Rcs

size_t FillRows(const I3CorsikaInfo &info, I3TableRowPtr rows)
inline I3Frame::Stream GetStop()
struct I3CorsikaShowerInfo : public I3FrameObject

Public Functions

I3CorsikaShowerInfo()
virtual ~I3CorsikaShowerInfo()
void clear()
std::ostream &Print(std::ostream&) const override
bool operator==(const I3CorsikaShowerInfo &rhs)
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int32_t crsRunID
int32_t crsEventID
int32_t crsSampleID
double firstIntHeight
double firstIntDepth
double obsLevelHeight
double entryHeight
bool curved
bool curvedObs
double ghMaxNum
double ghStartDepth
double ghMaxDepth
double ghLambdaa
double ghLambdab
double ghLambdac
double ghRedChiSqr
CorsikaLongProfile longProfile
double resampleRadius
uint16_t nResample
uint16_t nResampleNominal
double weight
class I3CorsikaShowerInfoConverter : public I3ConverterImplementation<I3CorsikaShowerInfo>

copyright (C) 2010 The Icecube Collaboration

$Id$

Version

$Revision$

Date

$LastChangedDate$

Author

Fabian Kislat fabian.kislat@desy.de $LastChangedBy$

Public Functions

I3CorsikaShowerInfoConverter()

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3CorsikaShowerInfo &info)
size_t FillRows(const I3CorsikaShowerInfo &info, I3TableRowPtr rows)

Private Members

size_t nLongSteps_
struct I3CorsikaWeight : public I3FrameObject
#include <I3CorsikaWeight.h>

Public Functions

std::ostream &Print(std::ostream&) const override

Public Members

I3Particle primary
I3ShowerBias bias
double weight
double max_x

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
class I3CorsikaWeightConverter : public I3ConverterImplementation<I3CorsikaWeight>

copyright (C) 2020 The Icecube Collaboration

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3CorsikaWeight &weight)

copyright (C) 2020 The Icecube Collaboration, All Rights Reserved

size_t FillRows(const I3CorsikaWeight &weight, I3TableRowPtr rows)
struct I3ExtraGeometryItem : public I3FrameObject

Subclassed by I3ExtraGeometryItemCylinder, I3ExtraGeometryItemMove, I3ExtraGeometryItemUnion

Public Functions

inline I3ExtraGeometryItem()
virtual ~I3ExtraGeometryItem()
virtual bool DoesLineIntersect(const I3Position &lineStart, const I3Position &lineEnd) const = 0

Should return true if the line intersects the item.

virtual std::pair<I3Position, I3Position> GetBoundingBox() const = 0

Returns two corners of the object’s bounding box.

virtual std::ostream &operator<<(std::ostream &oss) const

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3ExtraGeometryItemCylinder : public I3ExtraGeometryItem

Public Functions

virtual ~I3ExtraGeometryItemCylinder()
I3ExtraGeometryItemCylinder(const I3Position &from, const I3Position &to, double radius)
I3ExtraGeometryItemCylinder()
virtual bool DoesLineIntersect(const I3Position &lineStart, const I3Position &lineEnd) const

Should return true if the line intersects the item.

virtual std::pair<I3Position, I3Position> GetBoundingBox() const

Returns two corners of the object’s bounding box.

virtual std::ostream &operator<<(std::ostream &oss) const
inline I3Position GetCenter() const
inline double GetRadius() const

Private Functions

unsigned int FindIntersections(const I3Position &lineStart, const I3Position &lineEnd, double &p0, double &p1, double &line_segment_length) const
void CalculateBoundingBox() const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Private Members

I3Position from_
I3Position to_
double radius_
mutable bool boundingBoxCalculated_
mutable I3Position boundingBoxLower_
mutable I3Position boundingBoxUpper_

Friends

friend class icecube::serialization::access
struct I3ExtraGeometryItemMove : public I3ExtraGeometryItem

Public Functions

virtual ~I3ExtraGeometryItemMove()
I3ExtraGeometryItemMove(I3ExtraGeometryItemConstPtr element, const I3Position &offset)
I3ExtraGeometryItemMove()
virtual bool DoesLineIntersect(const I3Position &lineStart, const I3Position &lineEnd) const

Should return true if the line intersects the item.

virtual std::pair<I3Position, I3Position> GetBoundingBox() const

Returns two corners of the object’s bounding box.

virtual std::ostream &operator<<(std::ostream &oss) const

Private Functions

void CalculateBoundingBox() const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Private Members

I3ExtraGeometryItemConstPtr element_
I3Position offset_
mutable bool boundingBoxCalculated_
mutable I3Position boundingBoxLower_
mutable I3Position boundingBoxUpper_

Friends

friend class icecube::serialization::access
struct I3ExtraGeometryItemUnion : public I3ExtraGeometryItem

Public Functions

virtual ~I3ExtraGeometryItemUnion()
I3ExtraGeometryItemUnion(const std::vector<I3ExtraGeometryItemConstPtr> &elements)
I3ExtraGeometryItemUnion()
virtual bool DoesLineIntersect(const I3Position &lineStart, const I3Position &lineEnd) const

Should return true if the line intersects the item.

virtual std::pair<I3Position, I3Position> GetBoundingBox() const

Returns two corners of the object’s bounding box.

virtual std::ostream &operator<<(std::ostream &oss) const

Private Functions

void CalculateBoundingBox() const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Private Members

std::vector<I3ExtraGeometryItemConstPtr> elements_
mutable bool boundingBoxCalculated_
mutable I3Position boundingBoxLower_
mutable I3Position boundingBoxUpper_

Friends

friend class icecube::serialization::access
class I3FlasherPulse
#include <I3FlasherPulse.h>

Describes a single flasher LED (or SC) pulse. I3FlasherInfo is not really suited for this, so we keep our own structure here. One I3FlasherInfo object can describe multiple LEDs at the same time (using a bitmask), which is something we don’t want here. (These LEDs could have different wavelengths, …)

Public Types

enum FlasherPulseType

Values:

enumerator Unknown
enumerator LED340nm
enumerator LED370nm
enumerator LED405nm
enumerator LED450nm
enumerator LED505nm
enumerator SC1
enumerator SC2

Public Functions

~I3FlasherPulse()
I3FlasherPulse()
inline FlasherPulseType GetType() const
inline void SetType(FlasherPulseType newType)
inline const I3Position &GetPos() const
inline const I3Direction &GetDir() const
inline void SetPos(const I3Position &newPos)
inline void SetDir(const I3Direction &newDir)
inline double GetTime() const
inline void SetTime(double newTime)
inline double GetNumberOfPhotonsNoBias() const
inline void SetNumberOfPhotonsNoBias(double newNumber)
inline double GetPulseWidth() const
inline void SetPulseWidth(double newWidth)
inline double GetAngularEmissionSigmaPolar() const
inline void SetAngularEmissionSigmaPolar(double newSigma)
inline double GetAngularEmissionSigmaAzimuthal() const
inline void SetAngularEmissionSigmaAzimuthal(double newSigma)
std::ostream &Print(std::ostream&) const

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

FlasherPulseType flasherPulseType_
I3Direction dir_
I3Position pos_
double time_
double numberOfPhotonsNoBias_
double pulseWidth_
double angularEmissionSigmaPolar_
double angularEmissionSigmaAzimuthal_

Friends

friend class icecube::serialization::access
friend bool operator==(const I3FlasherPulse&, const I3FlasherPulse&)
class I3GaussianPMTPulse : public I3FrameObject, public I3FrameObject

Implementation of PMTPulse for Gaussian pulse shape.

This class records the true (simulated) voltage, as a function of time, produced by a single photoelectron (hit), using a Gaussian model.

Deprecated:

Still required for reading old simulation data

This class records the true (simulated) voltage, as a function of time, produced by a single photoelectron (hit), using a Gaussian model.

Public Functions

inline virtual ~I3GaussianPMTPulse()
std::ostream &Print(std::ostream&) const override
inline I3GaussianPMTPulse()

constructor

inline double GetVoltage(const double time)

Returns the voltage at the given time. Voltage is negative.

inline double GetPeakVoltage()

Returns the peak voltage for this pulse. The pulse is negative, so the peak value is a negative number.

inline double GetPeakTime()

Returns the time at which the pulse reaches its peak voltage.

inline void SetPeakTime(const double time)

Set the zero time for the Gaussian describing the pulse. This is the time at which the pulse reaches its peak voltage.

inline double GetStartTime(const double threshold)

Get the time at which the pulse first crosses the given voltage threshold. Remember that the pulse is negative.

inline double GetPedestal()

Return the pedestal on which the Gaussian peak lies. This is a linear offset to the pulse voltage curve.

inline void SetPedestal(const double ped)

Set the pedestal for this channel.

inline double GetSigma()

Return the Gaussian width of the pulse.

inline void SetSigma(const double sigma)

Set the Gaussian width of the pulse.

inline double GetNormalization()

Get the normalization parameter of the Gaussian describing this pulse. This is not the peak voltage.

inline void SetNormalization(const double norm)

Set the normalization parameter for this pulse. This is not the peak voltage.

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double normalization_
double sigma_
double timeZero_
double pedestal_

Friends

friend class icecube::serialization::access
struct I3GenieInfo : public I3FrameObject
#include <I3GenieInfo.h>

Public Functions

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int32_t run_id

Run ID.

uint32_t n_events

Number of events in the file.

uint32_t n_flux_events

Number of flux events for this file.

I3Particle::ParticleType primary_type

Type of primary particle.

double cylinder_height

Height of the generation cylinder.

double cylinder_radius

Radius of the generation cylinder.

double min_zenith

Minimal value for generated zenith range.

double max_zenith

Maximal value for generated zenith range.

double min_azimuth

Minimal value for generated azimuth range.

double max_azimuth

Maximal value for generated azimuth range.

double min_energy

Minimal value for generated energy range.

double max_energy

Maximal value for generated energy range.

double power_law_index

Exponent of energy distribution.

double oxygen_fraction

Fraction of oxygen in the ice.

double ice_density

Ice density.

double global_probability_scale

GlobalProbabilityScale (normalization factor from GENIE)

Friends

friend class icecube::serialization::access
class I3GenieInfoConverter : public I3ConverterImplementation<I3GenieInfo>

copyright (C) 2021 The Icecube Collaboration

Rcs

Version

Rcs
Date

Rcs
Author

Maria Liubarska

Rcs

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3GenieInfo &info)

copyright (C) 2021 The Icecube Collaboration

Rcs

Version

Rcs
Date

$LastChangedDate:$

Author

Maria Liubarska

Rcs

size_t FillRows(const I3GenieInfo &info, I3TableRowPtr rows)
inline I3Frame::Stream GetStop()
struct I3GenieResult : public I3FrameObject
#include <I3GenieResult.h>

Public Functions

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int32_t iev

Event number.

int32_t neu

Neutrino pdg code.

int32_t tgt

Nuclear target pdg code (10LZZZAAAI)

int32_t Z

Nuclear target Z (extracted from pdg code above)

int32_t A

Nuclear target A (extracted from pdg code above)

int32_t hitnuc

Hit nucleon pdg code (not set for COH,IMD and NuEL events)

int32_t hitqrk

Hit quark pdg code (set for DIS events only)

bool sea

Hit quark is from sea (set for DIS events only)

int32_t resid

Produced baryon resonance (set for resonance events only)

bool qel

Is QEL?

bool res

Is RES?

bool dis

Is DIS?

bool coh

Is Coherent?

bool dfr

Is Diffractive?

bool imd

Is IMD?

bool nuel

Is ve elastic?

bool em

Is Electro-magnetic?

bool cc

Is CC?

bool nc

Is NC?

bool charm

Produces charm?

int32_t neut_code

The equivalent NEUT reaction code (if any)

int32_t nuance_code

The equivalent NUANCE reaction code (if any)

double xs

Bjorken x as was generated during kinematical selection; takes fermi momentum / off-shellness into account.

double ys

Inelasticity y as was generated during kinematical selection; takes fermi momentum / off-shellness into account.

double ts

Energy transfer to nucleus at COH events as was generated during kinematical selection.

double Q2s

Momentum transfer Q^2 as was generated during kinematical selection; takes fermi momentum / off-shellness into account.

double Ws

Hadronic invariant mass W as was generated during kinematical selection; takes fermi momentum / off-shellness into account.

double x

Experimental-like Bjorken x; neglects fermi momentum / off-shellness.

double y

Experimental-like inelasticity y; neglects fermi momentum / off-shellness.

double t

Experimental-like energy transfer to nucleus at COH events.

double Q2

Experimental-like momentum transfer Q^2; neglects fermi momentum / off-shellness.

double W

Experimental-like hadronic invariant mass W; neglects fermi momentum / off-shellness.

double Ev

Neutrino energy @ LAB.

double pxv

Neutrino px @ LAB.

double pyv

Neutrino py @ LAB.

double pzv

Neutrino pz @ LAB.

double En

Initial state hit nucleon energy @ LAB.

double pxn

Initial state hit nucleon px @ LAB.

double pyn

Initial state hit nucleon py @ LAB.

double pzn

Initial state hit nucleon pz @ LAB.

int pdgl

Final state primary lepton Pdg code.

double El

Final state primary lepton energy @ LAB.

double KEl

Final state primary lepton kinetic energy @ LAB.

double pxl

Final state primary lepton px @ LAB.

double pyl

Final state primary lepton py @ LAB.

double pzl

Final state primary lepton pz @ LAB.

int32_t nfp

Nu. of final state p’s + {p}’s (after intranuclear rescattering)

int32_t nfn

Nu. of final state n’s + {n}’s.

int32_t nfpip

Nu. of final state pi+’s.

int32_t nfpim

Nu. of final state pi-‘s.

int32_t nfpi0

Nu. of final state pi0’s.

int32_t nfkp

Nu. of final state K+’s.

int32_t nfkm

Nu. of final state K-‘s.

int32_t nfk0

Nu. of final state K0’s + {K0}’s.

int32_t nfem

Nu. of final state gammas and e-/e+.

int32_t nfother

Nu. of heavier final state hadrons (D+/-,D0,Ds+/-,Lamda,Sigma,Lamda_c,Sigma_c,…)

int32_t nip

Nu. of `primary’ (: before intranuclear rescattering) p’s + {p}’s.

int32_t nin

Nu. of `primary’ n’s + {n}’s.

int32_t nipip

Nu. of `primary’ pi+’s.

int32_t nipim

Nu. of `primary’ pi-‘s.

int32_t nipi0

Nu. of `primary’ pi0’s.

int32_t nikp

Nu. of `primary’ K+’s.

int32_t nikm

Nu. of `primary’ K-‘s.

int32_t nik0

Nu. of `primary’ K0’s + {K0}’s.

int32_t niem

Nu. of `primary’ gammas and e-/e+.

int32_t niother

Nu. of other `primary’ hadron shower particles.

int32_t nf

Nu. of final state particles in hadronic system.

int32_t ni

Nu. of particles in ‘primary’ hadronic system (before intranuclear rescattering)

I3VectorInt pdgf

Pdg code of k^th final state particle in hadronic system.

I3VectorDouble Ef

Energy of k^th final state particle in hadronic system @ LAB.

I3VectorDouble KEf

Kin. Energy of k^th final state particle in hadronic system @ LAB.

I3VectorDouble pxf

Px of k^th final state particle in hadronic system @ LAB.

I3VectorDouble pyf

Py of k^th final state particle in hadronic system @ LAB.

I3VectorDouble pzf

Pz of k^th final state particle in hadronic system @ LAB.

I3VectorInt pdgi

Pdg code of k^th particle in ‘primary’ hadronic system.

I3VectorInt resc

FSI code of k^th particle in ‘primary’ hadronic system.

I3VectorDouble Ei

Energy of k^th particle in ‘primary’ hadronic system @ LAB.

I3VectorDouble pxi

Px of k^th particle in ‘primary’ hadronic system @ LAB.

I3VectorDouble pyi

Py of k^th particle in ‘primary’ hadronic system @ LAB.

I3VectorDouble pzi

Pz of k^th particle in ‘primary’ hadronic system @ LAB.

double vtxx

Vertex x in detector coord system (SI)

double vtxy

Vertex y in detector coord system (SI)

double vtxz

Vertex z in detector coord system (SI)

double vtxt

Vertex t in detector coord system (SI)

double xsec

Total cross section.

double diffxsec

Differential cross section.

double prob

Interaction probability.

double tgtmass

Target mass.

double wght

Event weight.

double calresp0

Approximate calorimetric response to the hadronic system.

Friends

friend class icecube::serialization::access
class I3GenieResultConverter : public I3ConverterImplementation<I3GenieResult>

copyright (C) 2021 The Icecube Collaboration

Rcs

Version

Rcs
Date

Rcs
Author

Maria Liubarska

Rcs

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3GenieResult &result)

copyright (C) 2021 The Icecube Collaboration

Rcs

Version

Rcs
Date

$LastChangedDate:$

Author

Maria Liubarska

Rcs

size_t FillRows(const I3GenieResult &result, I3TableRowPtr rows)
class I3LightSource
#include <I3LightSource.h>

Describes a light source. This is currently either a I3Particle or a flasher described by I3FlasherPulse and some additional variables.

Public Types

enum LightSourceType

Values:

enumerator Unknown
enumerator Particle
enumerator Flasher

Public Functions

~I3LightSource()
I3LightSource(const I3LightSource &lightSource)
I3LightSource(const I3Particle &particle)
I3LightSource(const I3FlasherPulse &flasher)
inline LightSourceType GetType() const
const I3Particle &GetParticle() const
const I3FlasherPulse &GetFlasherPulse() const

Private Functions

I3LightSource()

Private Members

LightSourceType lightSourceType_
I3Particle particle_
I3FlasherPulse flasher_

Friends

friend bool operator==(const I3LightSource&, const I3LightSource&)
class I3MCNKGInterpolation
#include <I3MCNKGInfo.h>

A class to do the interpolation of values

Public Functions

I3MCNKGInterpolation(const I3MCNKGInfoList &nkg_values, const I3Particle &primary)
~I3MCNKGInterpolation()
std::ostream &Print(std::ostream&) const

Write a human readable representation

const double Interpolate(const I3Position &tank_position, const I3Particle &primary) const

Performs an interpolation

void TestInterpolate()

Test the interpolation by sampling in between the grid

Private Types

typedef std::vector<int> f_table_index_t
typedef std::map<f_table_index_t, double> f_table_t

Private Functions

void fillGrid(const I3MCNKGInfoList &nkg_values, const I3Particle &primary)
const f_table_index_t polar2index(const double r, const double phi, const double roundoff = 0.) const
void index2cartesian(const f_table_index_t &index, float &x, float &y) const
SET_LOGGER ("I3MCNKGInterpolation")

Private Members

double R_0
double R_MAX
double PHI_0
double PHI_MAX
double H_LR
double H_PHI
f_table_t f_nkg
f_table_t df_dlr
f_table_t df_dphi
f_table_t d2f_dlr_dlr
f_table_t d2f_dlr_dphi
f_table_t d2f_dphi_dphi

Private Static Attributes

static const int N_R
static const int N_PHI
static const int ORDER
static int N_TEST
struct I3MCNKGPoint
#include <I3MCNKGInfo.h>

Public Functions

I3MCNKGPoint()

lateral distribution density observation level 2, in m^-2

a constructor; sets contents to NAN

virtual ~I3MCNKGPoint()

a virtual destructor weiss nix? Macht nix!

std::ostream &Print(std::ostream&) const

Write a human readable representation

template<class Archive>
void serialize(Archive &ar, unsigned version)

the streamer necessary for boosting it to a file

Public Members

I3Position Position

where is this point?

double LD1

see CORSIKA manual for details on this

double LD2

lateral distribution density observation level 1, in m^-2

struct I3MCPE
#include <I3MCPE.h>

I3MCPE struct that stores the photon arrival time (i.e.PE creation time), number of PE (for binning), and the IDs of the particle that created this.

Public Functions

SET_LOGGER ("I3MCPE")
inline bool operator==(const I3MCPE &rhs) const
inline I3MCPE(const uint32_t npe_ = 0, const double time_ = 0)
inline I3MCPE(const I3ParticleID &p, const uint32_t n_pe = 0, const double pe_time = 0)
inline I3MCPE(const uint64_t major_ID, const int32_t minor_ID, const uint32_t n_pe = 0, const double pe_time = 0)
inline operator I3ParticleID() const
std::ostream &Print(std::ostream&) const

Public Members

I3ParticleID ID

ID of the I3Particle that created this PE

double time

Creation time of PE (photon arrival time)

uint32_t npe

Number of PEs this object represents. Used for binning.

Private Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned version)

Friends

friend class icecube::serialization::access
struct I3MCPEConverterWithIDs

Public Types

typedef I3MCPE booked_type
typedef booked_type value_type

Public Functions

void AddFields(I3TableRowDescriptionPtr desc, const booked_type& = booked_type())
void FillSingleRow(const booked_type &dl, I3TableRowPtr row)
class I3MCPMTResponse : public I3FrameObject

Implementation class for PMT response, simulated by ROMEO.

This class contains the PMT-level (pre-DAQ/readout) response to the hits in the event. It represents the voltage produced at the PMT output.

Deprecated:

Still required for reading old simulation data

Public Functions

inline virtual ~I3MCPMTResponse()
std::ostream &Print(std::ostream&) const override

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<double> waveform_
double binSize_
double startTime_
double endTime_

Friends

friend class icecube::serialization::access
struct I3MCPulse
#include <I3MCPulse.h>

Public Types

enum PulseSource

Values:

enumerator UNKNOWN
enumerator PE
enumerator RANDOM
enumerator AFTER_PULSE
enumerator PRE_PULSE
enumerator ELASTIC_LATE_PULSE
enumerator INELASTIC_LATE_PULSE
enumerator EARLY_AFTER_PULSE
enumerator CROSSTALK_PULSE
enumerator NSB

Public Functions

SET_LOGGER ("I3MCPulse")
inline bool operator==(const I3MCPulse &rhs) const
inline I3MCPulse(float t, float c = 1.0, PulseSource s = PE)
inline I3MCPulse()
std::ostream &Print(std::ostream&) const

Public Members

double time
float charge
PulseSource source

Private Functions

template<class Archive>
inline void serialize(Archive &ar, const unsigned version)

Friends

friend class icecube::serialization::access
struct I3MCPulseList

Public Types

typedef ::I3MCPulse booked_type

Public Functions

void AddFields(I3TableRowDescriptionPtr desc, const booked_type& = booked_type())
void FillSingleRow(const booked_type &dl, I3TableRowPtr row)
struct I3MCTWRParams
#include <I3MCTWRParams.h>

Public Functions

inline virtual ~I3MCTWRParams()
std::ostream &Print(std::ostream&) const
template<class Archive>
void serialize(Archive &ar, unsigned version)
inline I3MCTWRParams()
virtual ~I3MCTWRParams()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int stop_delay
int DMADD_thresh
int TWR_thresh
double rel_sens
int wf_type
double afterpulse_prob
double afterpulse_time
double noise_rate
double amplitude
double cable_delay
bool optical
double peArea
class I3MMCTrack
#include <I3MMCTrack.h>

Public Functions

inline I3MMCTrack()
inline double GetXi() const
inline double GetYi() const
inline double GetZi() const
inline double GetTi() const
inline double GetEi() const
inline double GetXc() const
inline double GetYc() const
inline double GetZc() const
inline double GetTc() const
inline double GetEc() const
inline double GetXf() const
inline double GetYf() const
inline double GetZf() const
inline double GetTf() const
inline double GetEf() const
inline double GetElost() const
inline void SetEnter(double xi_, double yi_, double zi_, double ti_, double Ei_)
inline void SetExit(double xf_, double yf_, double zf_, double tf_, double Ef_)
inline void SetCenter(double xc_, double yc_, double zc_, double tc_, double Ec_)
inline void SetDepositedEnergy(double Elost_)
inline const I3Particle &GetI3Particle() const
inline I3Particle &GetParticle()
inline void SetParticle(const I3Particle &p)

Public Members

I3Particle particle
double Elost
double xi
double yi
double zi
double ti
double Ei
double xf
double yf
double zf
double tf
double Ef
double xc
double yc
double zc
double tc
double Ec

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct I3NuGenInfo : public I3FrameObject
#include <I3NuGenInfo.h>

Public Functions

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

uint32_t run_id
uint32_t n_events
I3Particle::ParticleType primary_type
double flavor_fraction
double cylinder_height
double cylinder_radius
double min_zenith
double max_zenith
double min_azimuth
double max_azimuth
double min_energy
double max_energy
double power_law_index

Friends

friend class icecube::serialization::access
class I3Photon : public I3FrameObject
#include <I3Photon.h>

Public Functions

inline I3Photon()
inline I3Photon(uint64_t mid, int id)
virtual ~I3Photon()
std::ostream &Print(std::ostream&) const override
inline double GetTime() const
inline void SetTime(double time)
inline int32_t GetID() const
inline void SetID(int32_t ID)
inline double GetWeight() const
inline void SetWeight(double weight)
inline int32_t GetParticleMinorID() const
inline uint64_t GetParticleMajorID() const
I3ParticleID GetParticleID() const
inline void SetParticleMinorID(int32_t minorID)
inline void SetParticleMajorID(uint64_t majorID)
void SetParticleID(const I3Particle&)
inline double GetCherenkovDist() const
Returns:

the path distance to the track which emitted this photon. This is the full path with all possible scatters.

inline void SetCherenkovDist(double CherenkovDist)
Parameters:

CherenkovDist – set the path distance to track which emitted this photon. This is the full path with all possible scatters.

inline double GetCherenkovTime() const
Returns:

The full time it took the photon to travel from its emission point to the OM.

inline double GetWavelength() const
inline void SetWavelength(double wlen)
inline double GetGroupVelocity() const
inline void SetGroupVelocity(double gvel)
inline const I3Position &GetPos() const
Returns:

The position of this photon on the OM. This position is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline void SetPos(const I3Position &p)
Parameters:

p – The position of this on the OM. This position is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline const I3Direction &GetDir() const
Returns:

The direction vector of the photon on the OM. This direction is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline void SetDir(const I3Direction &d)
Parameters:

d – The direction vector of the photon on the OM. This direction is relative to the global coordinate system, where the z-axis is facing upwards. It is NOT relative to the OM axis!!

inline double GetStartTime() const
Returns:

The time of emission of this photon.

inline void SetStartTime(double time)
Parameters:

p – The time of emission of this photon.

inline const I3Position &GetStartPos() const
Returns:

The position of emission of this photon.

inline void SetStartPos(const I3Position &p)
Parameters:

p – The position of emission of this photon.

inline const I3Direction &GetStartDir() const
Returns:

The direction of emission of this photon.

inline void SetStartDir(const I3Direction &d)
Parameters:

d – The direction of emission of this photon.

inline uint32_t GetNumScattered() const
Returns:

this returns the number of times this photon was scattered.

inline void SetNumScattered(uint32_t numScattered)

this sets the number of times this photon was scattered.

inline double GetDistanceInAbsorptionLengths() const
Returns:

this returns the total distance the photon traveled in units of absorption lengths

inline void SetDistanceInAbsorptionLengths(double distanceInAbsorptionLengths)

this sets the total distance the photon traveled in units of absorption lengths

inline uint32_t GetNumPositionListEntries() const
Returns:

this returns the number of positions where this photon has been recorded. This will be the number of scatter events returned by GetNumScattered()+2 [i.e. including the inital and final position].

inline boost::optional<I3Position> GetPositionListEntry(uint32_t index) const

The return value may be an invalid boost::shared_ptr if there is no position stored for a certain index.

Returns:

this returns the position of the photon at a certain index, with index < GetNumPositionListEntries().

inline double GetDistanceInAbsorptionLengthsAtPositionListEntry(uint32_t index) const

The return value may be NaN if there is no position stored for a certain index.

Returns:

this returns the distance a photon has traveled in units of absorption lengths at a certain index (corresponding to a position in the photon path as returned by GetPositionListEntry()), with index < GetNumPositionListEntries().

inline void AppendToIntermediatePositionList(const I3Position &pos, double distanceInAbsorptionLengths)

Appends a position to the back of the intermediate position list. The final list will be: [startPos] + intermediatePos + [finalPos].

Use SetNumScattered() first to set the total number of scatters and then add at most that number of positions.

inline bool operator==(const I3Photon &rhs) const

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

double time_
double weight_
int32_t ID_
int32_t particleID_
uint64_t particleMajorID_
double cherenkovDist_
double wavelength_
double groupVelocity_
I3Direction direction_
I3Position position_
double startTime_
I3Direction startDirection_
I3Position startPosition_
uint32_t numScattered_
double distanceInAbsorptionLengths_
std::vector<std::pair<I3Position, double>> intermediatePositions_

Friends

friend class icecube::serialization::access
class I3PhotonConverter : public I3ConverterImplementation<I3Photon>

Public Types

typedef booked_type value_type

Public Functions

void AddFields(I3TableRowDescriptionPtr, const value_type& = value_type())
void FillSingleRow(const value_type&, I3TableRowPtr)

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3Photon &photon)
std::size_t FillRows(const I3Photon &photon, I3TableRowPtr rows)
class I3PowerLaw : public I3FrameObject
#include <I3PowerLaw.h>

Object for evaluating, sampling and storing parameters of a power-law function.

Public Functions

I3PowerLaw()
I3PowerLaw(const double index)
I3PowerLaw(const double index, const double minimum, const double maximum)
double eval(double value) const

Evaluate the power-law function at a specific value.

double integral(const double a, const double b) const

integrate the power-law function from a to b

double total_integral() const

integrate the power law from min to max

double sample(I3RandomService &rng) const

sample values from the power-law distribution

inline virtual ~I3PowerLaw()
template<class Archive>
void serialize(Archive &ar, unsigned version)
std::ostream &Print(std::ostream &os) const
inline double GetIndex() const
inline double GetMinimum() const
inline double GetMaximum() const

Private Members

double index_

the index of the power-law function

double minimum_

the minimum value to sample from

double maximum_

the maximum value to sample from

Friends

friend bool operator==(const I3PowerLaw &p, const I3PowerLaw &q)
class I3PrimaryInjectorInfo : public I3FrameObject

S-Frame object for Dynamic Stack CORSIKA.

This is tranparent struct to store all the relevent information of the Monte Carlo injection surface when producing dynamic stack CORSIKA using the I3PrimaryInjector module. It is intended to be stored in the S-Frame.

Public Functions

inline I3PrimaryInjectorInfo()
template<class Archive>
void serialize(Archive &ar, unsigned version)
virtual std::ostream &Print(std::ostream &os) const

Public Members

uint32_t run_id

The run_id of events in this Monte Carlo job, should match the value in I3EventHeader.

uint32_t n_events

The number of events that were generated on this surface.

I3Particle::ParticleType primary_type

The particle type of the generated primary.

double cylinder_height

The height of the injection cylinder.

double cylinder_radius

The radius of the injection cylinder.

double min_zenith

The minimum zenith angle of the injection surface.

double max_zenith

The maximum zenith angle of the injection surface.

double min_energy

The minimum energy of the injection surface.

double max_energy

The maximum energy of the injection surface.

double power_law_index

The index of the powerlaw function used to inject particle energies.

double mu_bias_target

The target fraction of muons to keep based on leading muon energy sampling.

class I3PrimaryInjectorInfoConverter : public I3ConverterImplementation<I3PrimaryInjectorInfo>

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3PrimaryInjectorInfo &info)
size_t FillRows(const I3PrimaryInjectorInfo &info, I3TableRowPtr rows)
inline I3Frame::Stream GetStop()
struct I3ShowerBias : public I3FrameObject
#include <I3ShowerBias.h>

Public Types

enum BiasParticleType

Values:

enumerator Mu
enumerator NuMu
enumerator NuE

Public Functions

inline I3ShowerBias()
inline I3ShowerBias(BiasParticleType t1, double t2)
std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

BiasParticleType type
double target

Public Static Functions

static std::string bias_particle_type_string(BiasParticleType)

Friends

friend class icecube::serialization::access
class I3SimpleGeometry
#include <I3SimpleGeometry.h>

Describes a detector geometry.

The DOM properties have to be explicitly set by the user.

Public Functions

inline I3SimpleGeometry(double OMRadius, double CableRadius = 0)
inline std::size_t size() const
inline double GetOMRadius() const

This is the radius with oversizing applied!

inline double GetCableRadius() const
inline void SetOMRadius(double v)
inline void SetCableRadius(double v)
inline const std::vector<int32_t> &GetStringIDVector() const
inline const std::vector<uint32_t> &GetDomIDVector() const
inline const std::vector<double> &GetPosXVector() const
inline const std::vector<double> &GetPosYVector() const
inline const std::vector<double> &GetPosZVector() const
inline const std::vector<std::string> &GetSubdetectorVector() const
inline const std::vector<double> &GetCableAngleVector() const
inline int32_t GetStringID(std::size_t pos) const
inline uint32_t GetDomID(std::size_t pos) const
inline double GetPosX(std::size_t pos) const
inline double GetPosY(std::size_t pos) const
inline double GetPosZ(std::size_t pos) const
inline std::string GetSubdetector(std::size_t pos) const
inline double GetCableAngle(std::size_t pos) const
inline void AddModule(int32_t string, uint32_t om, double x, double y, double z, const std::string &subdetector, double cableAngle = std::numeric_limits<double>::quiet_NaN())

Private Members

double OMRadius_
double CableRadius_
std::vector<int32_t> stringIDs_
std::vector<uint32_t> domIDs_
std::vector<double> posX_
std::vector<double> posY_
std::vector<double> posZ_
std::vector<double> cableAngles_
std::vector<std::string> subdetectors_
struct I3SimpleGeometryFromI3Geometry

Public Static Attributes

static const std::set<int> ignoreStrings
static const std::set<unsigned int> ignoreDomIDs
static const std::set<std::string> ignoreSubdetectors
static const int32_t ignoreStringIDsSmallerThan = 1
static const int32_t ignoreStringIDsLargerThan = std::numeric_limits<int32_t>::max()
static const uint32_t ignoreDomIDsSmallerThan = 1
static const uint32_t ignoreDomIDsLargerThan = 60
static const bool splitIntoPartsAccordingToPosition = false
static const bool useHardcodedDeepCoreSubdetector = false
struct I3SimpleGeometryTextFile

Public Static Attributes

static const int32_t ignoreStringIDsSmallerThan = 1
static const int32_t ignoreStringIDsLargerThan = std::numeric_limits<int32_t>::max()
static const uint32_t ignoreDomIDsSmallerThan = 1
static const uint32_t ignoreDomIDsLargerThan = 60
struct I3SimStep
#include <I3SimStep.h>

Public Functions

inline I3SimStep()
~I3SimStep()
inline float GetPosX() const
inline float GetPosY() const
inline float GetPosZ() const
inline float GetTime() const
inline float GetDirTheta() const
inline float GetDirPhi() const
inline float GetLength() const
inline float GetBeta() const
inline uint32_t GetNumPhotons() const
inline float GetWeight() const
inline uint32_t GetID() const
inline uint8_t GetSourceType() const
inline uint8_t GetDummy1() const
inline uint16_t GetDummy2() const
inline I3Position GetPos() const
inline I3Direction GetDir() const
inline void SetPosX(const float &val)
inline void SetPosY(const float &val)
inline void SetPosZ(const float &val)
inline void SetTime(const float &val)
inline void SetDirTheta(const float &val)
inline void SetDirPhi(const float &val)
inline void SetLength(const float &val)
inline void SetBeta(const float &val)
inline void SetNumPhotons(const uint32_t &val)
inline void SetWeight(const float &val)
inline void SetID(const uint32_t &val)
inline void SetSourceType(const uint8_t &val)
inline void SetDummy1(const uint8_t &val)
inline void SetDummy2(const uint16_t &val)
inline void SetPos(const I3Position &pos)
inline void SetDir(const I3Direction &dir)
inline void SetDir(const double &x, const double &y, const double &z)
template<>
void save(portable_binary_oarchive &ar, unsigned version) const
template<>
void load(portable_binary_iarchive &ar, unsigned version)
template<>
void save(icecube::archive::portable_binary_oarchive &ar, unsigned version) const
template<>
void load(icecube::archive::portable_binary_iarchive &ar, unsigned version)

Public Members

float x
float y
float z
float t
float theta
float phi
float length
float beta
uint32_t numPhotons
float weight
uint32_t identifier
unsigned char sourceType
unsigned char dummy1
unsigned short dummy2

Private Functions

template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const

Friends

friend class icecube::serialization::access
class I3SimStepStore : public I3SimTemplateStore<uint32_t, I3SimStep>
#include <I3SimStepStore.h>

Public Functions

inline void insert_copy(U index, const T &value)

inserts a copy of

inline T &insert_new(U index, uint32_t id)

inserts a default-constructed instance of the class at a certain index and returns a reference to it

inline void pop_bunch_to_vector(std::size_t size, std::vector<T> &vect)
inline void pop_bunch_to_vector(std::size_t size, std::vector<T> &vect, const T &temp)
inline uint32_t count(uint32_t identifier) const

Private Types

typedef I3SimStep T
typedef uint32_t U
typedef I3SimTemplateStore<U, T> Base

Private Members

std::map<uint32_t, uint32_t> pendingIds_
template<typename U, class T>
class I3SimTemplateStore
#include <I3SimStepStore.h>

The I3SimStepStore class stores I3SimStep objects indexed by a photon multiplicity. Arbitrarily sized bunches of steps can be retrieved. They will be clustered by multiplicity.

Public Functions

inline I3SimTemplateStore(std::size_t initialSize)
inline I3SimTemplateStore()
inline ~I3SimTemplateStore()
inline void insert_copy(U index, const T &value)

inserts a copy of

inline T &insert_new(U index)

inserts a default-constructed instance of the class at a certain index and returns a reference to it

inline std::size_t size() const
inline bool empty() const
inline TDequeType &operator[](U index)
inline const TDequeType &operator[](U index) const
inline TDequeType &at(U index)
inline const TDequeType &at(U index) const
inline void pop_bunch_to_vector(std::size_t size, std::vector<T> &vect)

takes a number of entries, copies them into a vector (sorted by index) and pops them from this container. If less than the specified number of entries exist in this container, it is fully emptied.

All current entries in the vector are removed.

inline void pop_bunch_to_vector(std::size_t size, std::vector<T> &vect, const T &temp)

takes a number of entries, copies them into a vector (sorted by index) and pops them from this container. If less than the specified number of entries exist in this container, the remaining entries are filled with copies of a template.

All current entries in the vector are removed.

Private Types

typedef std::deque<T> TDequeType

Private Members

std::vector<TDequeType*> bins_
std::size_t currentSize_
class I3TopInjectorInfo : public I3FrameObject

S-Frame object.

This is tranparent struct to store all the relevent information of the Monte Carlo injection surface for topsimulator. It is intended to be stored in the S-Frame.

Public Functions

inline I3TopInjectorInfo()
template<class Archive>
void serialize(Archive &ar, unsigned version)
virtual std::ostream &Print(std::ostream &os) const

Public Members

uint32_t n_events

The number of events that were generated on this surface.

I3Particle::ParticleType primary_type

The particle type of the generated primary.

double sampling_radius

The radius of the injection area.

double min_zenith

The minimum zenith angle of the injection surface.

double max_zenith

The maximum zenith angle of the injection surface.

double min_energy

The minimum energy of the injection surface.

double max_energy

The maximum energy of the injection surface.

double power_law_index

The index of the powerlaw function used to inject particle energies.

double corsika_version
double hadron_cutoff
double muon_cutoff
double electron_cutoff
double photon_cutoff
CorsikaModelEnums::LEHadronModel le_hadron_model
CorsikaModelEnums::HEHadronModel he_hadron_model
CorsikaModelEnums::Status thinned
CorsikaModelEnums::Status curved
CorsikaModelEnums::Status muon_additional_information
double arrang
class I3TopInjectorInfoConverter : public I3ConverterImplementation<I3TopInjectorInfo>

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3TopInjectorInfo &info)
size_t FillRows(const I3TopInjectorInfo &info, I3TableRowPtr rows)
inline I3Frame::Stream GetStop()
class I3WimpParams : public I3FrameObject
#include <I3WimpParams.h>

The basic WimpParams class for WimpSimReader for IceCube.

Public Functions

I3WimpParams()

stdConstructor; set everything to NAN or equivalent

virtual ~I3WimpParams()

stdDestructor

I3WimpParams(WimpSim::SourceType source, double mass, WimpSim::DecayChannel channel, double nu_weight, double lep_weight, double had_weight, double vgen, double aproj, I3Time time)

Constructor with enum

I3WimpParams(std::string source, double mass, int channel, double nu_weight, double lep_weight, double had_weight, double vgen, double aproj, I3Time time)

Constructor with basic data-types only

std::ostream &Print(std::ostream&) const override
WimpSim::SourceType GetSource() const

Get the source of the Wimp as enum representation

std::string GetSourceString() const

Get the source of the Wimp as string representation

double GetMass() const

Get the mass

WimpSim::DecayChannel GetChannel() const

Get the channel

int GetChannelInt() const

Get the channel int representation

double GetNuWeight() const

Get the primary neutrino weight as natively saved by WIMPsim

double GetLepWeight() const

Get the leptonic weight as natively saved by WIMPsim

double GetHadWeight() const

Get the hadronic weight as natively saved by WIMPsim

double GetLepWeightE47() const

Get the leptonic weight multiplied by E47

double GetHadWeightE47() const

Get the hadronic weight multiplied by E47

double GetVgen() const

Get the generated Volume

double GetAproj() const

Get the generated Volume

I3Time GetTime() const

Get the Time

void SetSource(const WimpSim::SourceType source)

Set the source as SourceType

void SetSource(const std::string source)

Set the source as String

void SetSource(const uint source)

Set the source as a uint

void SetMass(const double mass)

Set the mass

void SetChannel(const WimpSim::DecayChannel channel)

Set the channel

void SetNuWeight(const double nu_weight)

Set the primary neutrino weight as natively saved by WIMPsim

void SetLepWeight(const double lep_weight)

Set the leptonic weight as natively saved by WIMPsim

void SetHadWeight(const double had_weight)

Set the hadronic weight as natively saved by WIMPsim

void SetLepWeightE47(const double lep_weight)

Set the leptonic weight already multiplied by E47

void SetHadWeightE47(const double had_weight)

Set the hadronic weight already multiplied by E47

void SetVgen(const double vgen)

Set the generated Volume

void SetAproj(const double aproj)

Set the generated Volume

void SetTime(const I3Time time)

Set the Time from a I3Time

void SetTime(const double mjd)

Set the time as MJD-double

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

make Archive-type in I3Tray serialization away

Private Members

WimpSim::SourceType source_

The origin of the WIMP.

double mass_

The mass of the WIMP.

WimpSim::DecayChannel channel_

The simulated decay Channel of the WIMP.

double nu_weight_

The weight of the neutrino.

double lep_weight_

The weight of the inice lepton.

double had_weight_

The weight of the inice hadron.

double vgen_

The generated volume for this event.

double aproj_

The neutrino generated/effective area for this event.

I3Time time_

The time for this event.

Friends

friend class icecube::serialization::access
class I3WimpParamsConverter : public I3ConverterImplementation<I3WimpParams>

copyright (C) 2010 The Icecube Collaboration

Rcs

I3WimpParamsConverter.h 66214 2010-08-17 16:39:23Z mzoll

Version

Rcs

66214

Date

Rcs

2010-08-17 18:39:23 +0200 (Tue, 17 Aug 2010)

Author

Marcel Zoll marcel.zoll@fysik.su.se

Rcs

mzoll

converter class for tableio

Public Functions

I3WimpParamsConverter()

copyright (C) 2010 The Icecube Collaboration

Rcs

I3WimpParamsConverter.cxx 66215 2010-08-17 16:53:26Z mzoll

Version

Rcs

66215

Date

Rcs

2010-08-17 18:53:26 +0200 (Tue, 17 Aug 2010)

Author

Marcel Zoll marcel.zoll@fysik.su.se

Rcs

mzoll

Private Functions

I3TableRowDescriptionPtr CreateDescription(const I3WimpParams &wimpparams)
size_t FillRows(const I3WimpParams &wimpparams, I3TableRowPtr rows)
class MMCWeight : public I3FrameObject, public I3FrameObject
#include <MMCWeight.h>

A class to store weights from MMC when cross-section reweighting is turned on.

Deprecated:

Still required for reading old simulation data

copyright (C) 2008 the icecube collaboration $Id: MMCWeight.h 2008-09-04 mdagost

Deprecated:

Still required for reading old simulation data

Public Functions

inline virtual ~MMCWeight()
std::ostream &Print(std::ostream&) const override
inline MMCWeight()
inline virtual ~MMCWeight()

Public Members

double weight
double distToModIntPoint

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)
template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
struct NuRadioMCEventInfo : public I3FrameObject

Public Types

enum InteractionType

Do not use typical PDG code values as we might want to implement them as possible interaction types for secondary energy losses at a future point. The range of 80 - 100 is used for “MC internal” purposes. PROPOSAL (as used within NuRadioMC) uses the range from 80 - 91.

Values:

enumerator unknown
enumerator cc

Charge-current interaction (cc)

enumerator nc

Neutral-current interaction (cc)

enum RadioTriggerType

Values:

enumerator no_trigger
enumerator phased_array_4ch_100Hz

The following 6 triggers were simulated for the ‘21 TDR simulation.

enumerator phased_array_4ch_1mHz
enumerator LPDA_2_out_4_100Hz
enumerator LPDA_2_out_4_10mHz
enumerator phased_array_8ch_100Hz
enumerator phased_array_8ch_1mHz

Public Functions

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int event_group_id = -1

NuRadioMC event id.

double weight = 1

Weight which takes into account earth attenuation.

double inelasticity = 0

Inelasticity of first interaction.

InteractionType interaction_type = InteractionType::unknown

Interaction type of first interaction.

std::vector<RadioTriggerType> triggers

List of all radio triggers.

struct NuRadioMCGeneratorInfo : public I3FrameObject

Public Functions

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

int major_version = -1

< Storing the major and minor version of the NuRadioMC HDF5 file

int minor_version = -1
std::vector<I3Particle::ParticleType> flavors

PDG code of the neutino flavors.

double energy_min = 0

Range of energy and arrivial direction.

double energy_max = 0
double zenith_min = 0
double zenith_max = 0
double azimuth_min = 0
double azimuth_max = 0
double xmin = 0

Defines the volume in which neutrino interactions are generated. Volume can be defined as:

  • cylinder (r-, z-min/max) or

  • rectangle (x-, y-, z-min/max)

double xmax = 0
double ymin = 0
double ymax = 0
double zmin = 0
double zmax = 0
double rmin = 0
double rmax = 0
double volume = 0

Volume of the above definition.

double fiducial_xmin = 0

Definition of volume in which the radio emission is computed from energy deposits.

double fiducial_xmax = 0
double fiducial_ymin = 0
double fiducial_ymax = 0
double fiducial_zmin = 0
double fiducial_zmax = 0
double fiducial_rmin = 0
double fiducial_rmax = 0
int number_of_neutrinos = -1

Number of generated neutrino interactions (not simulated nor triggered events).

std::string filename

Filename of the input NuRadioMC HDF5 file.

namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace convert
namespace CorsikaModelEnums

Enums

enum Status

Values:

enumerator UNKNOWN

Default.

enumerator FALSE
enumerator TRUE
enum LEHadronModel

Values:

enumerator LE_UNKNOWN

Default.

enumerator GHEISHA
enumerator UrQMD
enumerator FLUKA
enum HEHadronModel

Values:

enumerator HE_UNKNOWN

Default.

enumerator VENUS
enumerator SIBYLL_16
enumerator SIBYLL_21
enumerator SIBYLL_23c
enumerator SIBYLL_23d
enumerator QGSJET_OLD
enumerator QGSJET_01d
enumerator QGSJET_II
enumerator DPMJET
enumerator NEXUS
enumerator EPOS

Functions

std::string le_hadron_model2string(LEHadronModel le_hadron_model)
std::string he_hadron_model2string(HEHadronModel he_hadron_model)
std::string enum2string(Status stat)
namespace I3Constants
namespace I3Units
namespace archive
namespace PythiaParticleTypes

declaration of the particle types that are included in the pythia code of WimpSim

Enums

enum ParticleTypes

enum of the Paricle Types used by pythia

Values:

enumerator Down
enumerator DownBar
enumerator Up
enumerator UpBar
enumerator Strange
enumerator StrangeBar
enumerator Charm
enumerator CharmBar
enumerator Bottom
enumerator BottomBar
enumerator Tau
enumerator TauBar
enumerator Gluon
enumerator WPlus
enumerator WMinus
enumerator ZNull
enumerator Znull
enumerator MuMinus
enumerator MuPlus
enumerator TauMinus
enumerator TauPlus
enumerator NuE
enumerator NuEBar
enumerator NuMu
enumerator NuMuBar
enumerator NuTau
enumerator NuTauBar
namespace simclasses
namespace util

Functions

inline std::string ToFloatString(double val)
inline std::string ToDoubleString(double val)
namespace std

STL namespace.

namespace WimpSim

Declaration of WimpSim internal conventions.

Enums

enum DecayChannel

enum of the Decay Channels used by WimpSim

Values:

enumerator unknown
enumerator down
enumerator up
enumerator strange
enumerator charm
enumerator bottom
enumerator top
enumerator gluon
enumerator w
enumerator z
enumerator muon
enumerator tau
enumerator nue
enumerator numu
enumerator nutau
enumerator KKDM
enum ParticleType

enum of the Particle Types used by WimpSim

Values:

enumerator error
enumerator e_plus
enumerator e_minus
enumerator nu_e
enumerator nu_e_bar
enumerator mu_plus
enumerator mu_minus
enumerator nu_mu
enumerator nu_mu_bar
enumerator tau_plus
enumerator tau_minus
enumerator nu_tau
enumerator nu_tau_bar
enumerator hshow
enum SourceType

enumerator of the Source the Wimp is comming from

Values:

enumerator UNKNOWN
enumerator SUN
enumerator EARTH

Functions

ParticleType StringToParticleType(std::string particletype)

converts WimpSim-Particle string to Particle

Parameters:

particletype – : particle from wimpsim as string

Returns:

ParticleType as enum

I3Particle::ParticleType WimpSimToI3ParticleType(std::string particletype)

converts WimpSim-Particle string to I3Particle conventions

Parameters:

particletype – : particle from wimpsim as string

Returns:

the correct I3ParticleType

I3Particle::ParticleType ParticleTypeToI3ParticleType(ParticleType particletype)

converts WimpSim-Particle to I3Particle conventions

Parameters:

particletype – : ParticleType from WimpSim

Returns:

the correct I3ParticleType

ParticleType I3ParticleTypeToParticleType(I3Particle::ParticleType particletype)

converts I3Particle string to WimpSim-Particle conventions

Parameters:

particletype – : ParticleType from I3Particle

Returns:

the correct WimpSimParticleType

bool IsLepton(ParticleType particle)

is this particle a lepton(any neutrino, or charged lepton)

Parameters:

particle – : particle from wimpsim

Returns:

it is a lepton

bool IsNeutrino(ParticleType particle)

is this particle a neutrino

Parameters:

particle – : particle from wimpsim

Returns:

it is a neutrino

bool IsChargedLepton(ParticleType particle)

is this particle a charged lepton

Parameters:

particle – : particle from wimpsim

Returns:

it is a charged lepton

DecayChannel ConvertToDecayChannel(int channelnbr)

convert Decay Channel int type to enum

Parameters:

channelnbr – : a plain int

Returns:

DecayChannel as enum type

unsigned int DecayChannelToInt(DecayChannel channel)

Convert enum type Decay Channel to plain int.

Parameters:

channel – : from WimpSim

Returns:

DecayChannel as an int

unsigned int SourceStringToInt(std::string sourcestr)

Convert Source as a string to a int.

Parameters:

sourcestr – : from WimpSim

Returns:

1 for Sun 2 for Earth 0 for default

file CorsikaLongStep.cxx
#include <icetray/serialization.h>
#include <iomanip>
#include <icetray/I3Units.h>

Copyright (C) 2010 The IceCube collaboration ID:

Rcs

Version

Rcs
Date

Rcs
Author

Tilo Waldenmaier

Functions

std::ostream &operator<<(std::ostream &os, const CorsikaLongStep &s)
std::ostream &operator<<(std::ostream &os, const CorsikaLongProfile &p)
I3_SERIALIZABLE(CorsikaLongStep)
file CorsikaLongStep.h
#include <vector>
#include <dataclasses/Utility.h>

Copyright (C) 2010 The IceCube collaboration ID:

Rcs

Version

Rcs
Date

Rcs
Author

Tilo Waldenmaier

Typedefs

typedef std::vector<CorsikaLongStep> CorsikaLongProfile

Functions

std::ostream &operator<<(std::ostream&, const CorsikaLongStep&)
std::ostream &operator<<(std::ostream&, const CorsikaLongProfile&)
I3_CLASS_VERSION(CorsikaLongStep, corsikalongstep_version_)
I3_POINTER_TYPEDEFS(CorsikaLongStep)
I3_POINTER_TYPEDEFS(CorsikaLongProfile)

Variables

static const unsigned corsikalongstep_version_ = 0
file CorsikaModelEnums.cxx
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/lexical_cast.hpp>

Defines

MAKE_ENUM_TO_STRING_CASE_LINE_LE(r, data, t)
MAKE_ENUM_TO_STRING_CASE_LINE_HE(r, data, t)
file CorsikaModelEnums.h
#include <string>

Defines

CORSIKAMODELENUMS_H_CorsikaModelEnums_LEHadronModel
CORSIKAMODELENUMS_H_CorsikaModelEnums_HEHadronModel
file I3CLSimEventStatistics.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimEventStatistics)
file I3CLSimEventStatistics.h
#include “icetray/I3FrameObject.h”
#include <map>
#include <vector>
#include “dataclasses/physics/I3Particle.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_CLASS_VERSION(I3CLSimEventStatistics, i3clsimeventstatistics_version_)
I3_POINTER_TYPEDEFS(I3CLSimEventStatistics)

Variables

static const unsigned i3clsimeventstatistics_version_ = 0
file I3CLSimFunction.cxx
#include <icetray/serialization.h>
#include <dataclasses/I3Map.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Map<OMKey, I3CLSimFunctionConstPtr> I3CLSimFunctionPtrMap

Functions

I3_SERIALIZABLE(I3CLSimFunction)
I3_SERIALIZABLE(I3CLSimFunctionPtrMap)
file I3CLSimFunction.h
#include “icetray/serialization.h”
#include “icetray/I3TrayHeaders.h”
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_FORWARD_DECLARATION(I3CLSimFunction)
inline bool operator==(const I3CLSimFunction &a, const I3CLSimFunction &b)
inline bool operator!=(const I3CLSimFunction &a, const I3CLSimFunction &b)
inline I3CLSimFunctionPtr operator*(const I3CLSimFunction &a, double b)
inline I3CLSimFunctionPtr operator*(double b, const I3CLSimFunction &a)
I3_CLASS_VERSION(I3CLSimFunction, i3clsimfunction_version_)

Variables

static const unsigned i3clsimfunction_version_ = 1

A function value dependent on photon wavelength (or anything else)

file I3CLSimFunctionAbsLenIceCube.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionAbsLenIceCube)
file I3CLSimFunctionAbsLenIceCube.h
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionabslenicecube_version_ = 0

Six-parameter ice model as fitted in the SPICE ice model. (Absorption length)

file I3CLSimFunctionConstant.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <sstream>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionConstant)
file I3CLSimFunctionConstant.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_FORWARD_DECLARATION(I3CLSimFunctionConstant)
I3_CLASS_VERSION(I3CLSimFunctionConstant, i3clsimfunctionconstant_version_)

Variables

static const unsigned i3clsimfunctionconstant_version_ = 0

A constant value.

file I3CLSimFunctionDeltaPeak.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <sstream>
#include <stdexcept>
#include <limits>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionDeltaPeak)
file I3CLSimFunctionDeltaPeak.h
#include <vector>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_FORWARD_DECLARATION(I3CLSimFunctionDeltaPeak)
I3_CLASS_VERSION(I3CLSimFunctionDeltaPeak, i3clsimfunctiondeltapeak_version_)

Variables

static const unsigned i3clsimfunctiondeltapeak_version_ = 0

A delta peak. +infinity at a certain value, zero everywhere else. This does not make a lot of sense in numerical calculations. It is mainly used to represent a delta peak as an argument to functions that know about it.

At the moment the only use in clsim is as a “spectrum” of wavelengths. Using this you can chose to generate only a single wavelength.

file I3CLSimFunctionFromTable.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <stdexcept>
#include <algorithm>
#include <functional>
#include <boost/lexical_cast.hpp>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionFromTable)
file I3CLSimFunctionFromTable.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_FORWARD_DECLARATION(I3CLSimFunctionFromTable)
I3_CLASS_VERSION(I3CLSimFunctionFromTable, i3clsimfunctionfromtable_version_)

Variables

static const unsigned i3clsimfunctionfromtable_version_ = 0

An arbitrary value interpolated from a uniformly distributed number of values.

file I3CLSimFunctionPolynomial.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionPolynomial)
file I3CLSimFunctionPolynomial.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionpolynomial_version_ = 0

A simple polynomial.

file I3CLSimFunctionRefIndexIceCube.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionRefIndexIceCube)
file I3CLSimFunctionRefIndexIceCube.h
#include <limits>
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionrefindexicecube_version_ = 0

The phase refractive index for IceCube glacial ice, taken from “Role of Group and Phase Velocity in High-Energy Neutrino Observatories”, P.B. Price and K. Woschnagg, Astropart. Phys. 15 (2001) 97.

file I3CLSimFunctionRefIndexQuanFry.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionRefIndexQuanFry)
file I3CLSimFunctionRefIndexQuanFry.h
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionrefindexquanfry_version_ = 0

The phase refractive index of sea water according to a model from Quan&Fry. The original model is taken from: X. Quan, E.S. Fry, Appl. Opt., 34, 18 (1995) 3477-3480.

An additional term describing pressure dependence was included according to: Wolfgang H.W.A. Schuster, “Measurement of the Optical Properties of the Deep

Mediterranean - the ANTARES Detector Medium.”, PhD thesis (2002), St. Catherine’s College, Oxford downloaded Jan 2011 from:

http://www.physics.ox.ac.uk/Users/schuster/thesis0098mmjhuyynh/thesis.ps

file I3CLSimFunctionScatLenIceCube.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionScatLenIceCube)
file I3CLSimFunctionScatLenIceCube.h
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionscatlenicecube_version_ = 0

Six-parameter ice model as fitted in the SPICE ice model. (scattering length)

file I3CLSimFunctionScatLenPartic.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimFunctionScatLenPartic)
file I3CLSimFunctionScatLenPartic.h
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimfunctionscatlenpartic_version_ = 0

The scattering length as defined by the “partic” scattering model.

file I3CLSimMediumProperties.cxx
#include <inttypes.h>
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <limits>
#include <boost/shared_ptr.hpp>
#include <serialization/shared_ptr.hpp>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Defines

__STDC_FORMAT_MACROS

Functions

I3_SPLIT_SERIALIZABLE(I3CLSimMediumProperties)
file I3CLSimMediumProperties.h
#include “icetray/serialization.h”
#include “icetray/I3TrayHeaders.h”
#include “icetray/I3FrameObject.h”
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimmediumproperties_version_ = 4

Describes the simulation medium (i.e. water or ice) with all its properties like refractive index, absorption length, scattering length, ..

file I3CLSimPhoton.cxx
#include <icetray/serialization.h>
#include <boost/static_assert.hpp>
#include <serialization/binary_object.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimPhoton)
I3_SERIALIZABLE(I3CLSimPhotonSeries)
I3_SERIALIZABLE(I3CLSimPhotonSeriesMap)
std::ostream &operator<<(std::ostream &os, const I3CLSimPhoton &p)
file I3CLSimPhoton.h
#include <cstring>
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3Direction.h”
#include “dataclasses/I3Position.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Vector<I3CLSimPhoton> I3CLSimPhotonSeries
typedef I3Map<OMKey, I3CLSimPhotonSeries> I3CLSimPhotonSeriesMap

Functions

struct I3CLSimPhoton __attribute__ ((packed))
I3CLSimPhoton()
~I3CLSimPhoton()
inline float GetPosX() const
inline float GetPosY() const
inline float GetPosZ() const
inline float GetTime() const
inline float GetDirTheta() const
inline float GetDirPhi() const
inline float GetStartPosX() const
inline float GetStartPosY() const
inline float GetStartPosZ() const
inline float GetStartTime() const
inline float GetStartDirTheta() const
inline float GetStartDirPhi() const
inline float GetWavelength() const
inline float GetCherenkovDist() const
inline uint32_t GetNumScatters() const
inline float GetWeight() const
inline uint32_t GetID() const
inline int16_t GetStringID() const
inline uint16_t GetOMID() const
inline float GetGroupVelocity() const
inline float GetDistInAbsLens() const
inline I3Position GetPos() const
inline I3Position GetStartPos() const
inline I3Direction GetDir() const
inline I3Direction GetStartDir() const
inline void SetPosX(const float &val)
inline void SetPosY(const float &val)
inline void SetPosZ(const float &val)
inline void SetTime(const float &val)
inline void SetDirTheta(const float &val)
inline void SetDirPhi(const float &val)
inline void SetStartPosX(const float &val)
inline void SetStartPosY(const float &val)
inline void SetStartPosZ(const float &val)
inline void SetStartTime(const float &val)
inline void SetStartDirTheta(const float &val)
inline void SetStartDirPhi(const float &val)
inline void SetWavelength(const float &val)
inline void SetCherenkovDist(const float &val)
inline void SetNumScatters(const uint32_t &val)
inline void SetWeight(const float &val)
inline void SetID(const uint32_t &val)
inline void SetStringID(const int16_t &val)
inline void SetOMID(const uint16_t &val)
inline void SetGroupVelocity(const float &val)
inline void SetDistInAbsLens(const float &val)
inline void SetPos(const I3Position &pos)
inline void SetStartPos(const I3Position &pos)
inline void SetDir(const I3Direction &d)
inline void SetDir(double x, double y, double z)
inline void SetStartDir(const I3Direction &dir)
inline void SetStartDir(const double &x, const double &y, const double &z)
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
inline bool operator==(const I3CLSimPhoton &a, const I3CLSimPhoton &b)
std::ostream &operator<<(std::ostream&, const I3CLSimPhoton&)
I3_CLASS_VERSION(I3CLSimPhoton, i3clsimphoton_version_)
I3_POINTER_TYPEDEFS(I3CLSimPhoton)
I3_POINTER_TYPEDEFS(I3CLSimPhotonSeries)
I3_POINTER_TYPEDEFS(I3CLSimPhotonSeriesMap)

Variables

static const unsigned i3clsimphoton_version_ = 0

A single Cherenkov photon, either before or after propagation to a target (DOM)

float x
float y
float z
float t
float theta
float phi
float wavelength
float cherenkovDist
uint32_t numScatters
float weight
uint32_t identifier
int16_t stringID
uint16_t omID
float start_x
float start_y
float start_z
float start_t
float start_theta
float start_phi
float groupVelocity
float distInAbsLens
file I3CLSimPhotonHistory.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimPhotonHistory)
I3_SERIALIZABLE(I3CLSimPhotonHistorySeries)
std::ostream &operator<<(std::ostream &os, const I3CLSimPhotonHistory &h)
file I3CLSimPhotonHistory.h
#include <cstring>
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Position.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Vector<I3CLSimPhotonHistory> I3CLSimPhotonHistorySeries

Functions

inline bool operator==(const I3CLSimPhotonHistory &a, const I3CLSimPhotonHistory &b)
I3_CLASS_VERSION(I3CLSimPhotonHistory, i3clsimphotonhistory_version_)
std::ostream &operator<<(std::ostream&, const I3CLSimPhotonHistory&)
I3_POINTER_TYPEDEFS(I3CLSimPhotonHistory)
I3_POINTER_TYPEDEFS(I3CLSimPhotonHistorySeries)

Variables

static const unsigned i3clsimphotonhistory_version_ = 1

Stores the history of a photon as the last points of scatter before reaching a DOM.

struct I3CLSimPhotonHistory __attribute__
file I3CLSimQueue.h
#include <queue>
#include <boost/thread/mutex.hpp>
#include <boost/thread/locks.hpp>
#include <boost/thread/condition.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/noncopyable.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3CLSimRandomValue.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValue)
file I3CLSimRandomValue.h
#include “icetray/serialization.h”
#include “icetray/I3TrayHeaders.h”
#include “phys-services/I3RandomService.h”
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

inline bool operator==(const I3CLSimRandomValue &a, const I3CLSimRandomValue &b)
I3_CLASS_VERSION(I3CLSimRandomValue, i3clsimrandomvalue_version_)
I3_POINTER_TYPEDEFS(I3CLSimRandomValue)

Variables

static const unsigned i3clsimrandomvalue_version_ = 0

A value chosen from a random distribution.

file I3CLSimRandomValueApplyFunction.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <boost/lexical_cast.hpp>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueApplyFunction)
file I3CLSimRandomValueApplyFunction.h
#include <vector>
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvalueapplyfunction_version_ = 0

Chooses a random value according to a specified distribution and applies a configured function to the return value.

file I3CLSimRandomValueConstant.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <cmath>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueConstant)
file I3CLSimRandomValueConstant.h

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvalueconstant_version_ = 0

Returns a single, constant value.

file I3CLSimRandomValueFixParameter.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <boost/lexical_cast.hpp>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>
#include <limits>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueFixParameter)
file I3CLSimRandomValueFixParameter.h
#include <vector>
#include <string>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluefixparameter_version_ = 0

Takes a random distribution that depends on a number of parameters and fixes one of them to a constant value.

You could use this to fix the mean of the two-parameter normal distribution while keeping the width a parameter.

file I3CLSimRandomValueHenyeyGreenstein.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueHenyeyGreenstein)
file I3CLSimRandomValueHenyeyGreenstein.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluehenyeygreenstein_version_ = 0

A value chosen according to a Henyey-Greenstein distribution.

The distribution looks like this:

p(x) = 0.5 * (1-g^2)/((1 + g^2 -2g*x)^(3/2))

where x=cos(theta) and g=<cos(theta)> [the mean cosine].

file I3CLSimRandomValueInterpolatedDistribution.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <boost/lexical_cast.hpp>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3CLSimRandomValueInterpolatedDistribution.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvalueinterpolateddistribution_version_ = 0

A random value chosen according to a given distribution. The distribution is linearly interpolated between the given data points.

file I3CLSimRandomValueMixed.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueMixed)
file I3CLSimRandomValueMixed.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluemixed_version_ = 0

A mix of two random values.

file I3CLSimRandomValueNormalDistribution.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueNormalDistribution)
file I3CLSimRandomValueNormalDistribution.h

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluenormaldistribution_version_ = 0

Samples a value from the normal distribution.

Also serves as an example of a distribution taking parameters (in this case: mean and sigma).

file I3CLSimRandomValueRayleighScatteringCosAngle.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3CLSimRandomValueRayleighScatteringCosAngle.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluerayleighscatteringcosangle_version_ = 0

The cosine of the scattering angle chosen according to Rayleigh scattering.

file I3CLSimRandomValueSimplifiedLiu.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueSimplifiedLiu)
file I3CLSimRandomValueSimplifiedLiu.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluesimplifiedliu_version_ = 0

A value chosen according to the simplified Liu distribution. (see Pingyu Liu, “A new phase function approximating to mie

scattering for radiative transport equations”, Phys. Med. Biol., 39:1025, 1994)

The distribution looks like this:

p(x) propto (1 + x)^alpha

where x=cos(theta), alpha=2g/(1-g) and g=<cos(theta)> [the mean cosine].

file I3CLSimRandomValueUniform.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <cmath>

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimRandomValueUniform)
file I3CLSimRandomValueUniform.h

Copyright (c) 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvalueuniform_version_ = 0

A uniform distribution between two boundaries. Set any of them to NAN to make them runtime parameters.

file I3CLSimRandomValueWlenCherenkovNoDispersion.cxx
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <boost/lexical_cast.hpp>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>
#include <limits>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3CLSimRandomValueWlenCherenkovNoDispersion.h
#include <vector>
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimrandomvaluewlencherenkovnodispersion_version_ = 0

Chooses a random value according to a specified distribution and applies a configured function to the return value.

file I3CLSimScalarField.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimScalarField)
file I3CLSimScalarField.h
#include “icetray/serialization.h”
#include “icetray/I3TrayHeaders.h”
#include <string>
#include <vector>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

inline bool operator==(const I3CLSimScalarField &a, const I3CLSimScalarField &b)
inline bool operator!=(const I3CLSimScalarField &a, const I3CLSimScalarField &b)
I3_CLASS_VERSION(I3CLSimScalarField, i3clsimscalarfield_version_)
I3_POINTER_TYPEDEFS(I3CLSimScalarField)

Variables

static const unsigned i3clsimscalarfield_version_ = 0

A scalar field (i.e. a function returning a scalar for each point given by a 3-vector).

file I3CLSimScalarFieldAnisotropyAbsLenScaling.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>
#include <sstream>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimScalarFieldAnisotropyAbsLenScaling)
file I3CLSimScalarFieldAnisotropyAbsLenScaling.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimscalarfieldanisotropyabslenscaling_version_ = 1

Returns a direction-dependent scaling factor for the absorption length. The propagation kernel will apply this factor before a photon is propagated. The factor is divided out before each scattering event, re-evaluated for the new direction and is the re-applied.

This parameterization is taken from PPC.

The input vector is assumed to be a direction in form of a normalized 3-vector.

file I3CLSimScalarFieldConstant.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <sstream>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimScalarFieldConstant)
file I3CLSimScalarFieldConstant.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimscalarfieldconstant_version_ = 0

A constant value.

file I3CLSimScalarFieldIceTiltZShift.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <typeinfo>
#include <cmath>
#include <sstream>
#include <stdexcept>
#include <boost/algorithm/clamp.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimScalarFieldIceTiltZShift)
file I3CLSimScalarFieldIceTiltZShift.h
#include <vector>
#include “dataclasses/I3Matrix.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimscalarfieldicetiltzshift_version_ = 1

Returns a local z-correction for the ice layer positions as a function of (x,y,z) for ice tilt handling. Implements the the PPC algorithm.

file I3CLSimVectorTransform.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimVectorTransform)
file I3CLSimVectorTransform.h
#include “icetray/serialization.h”
#include “icetray/I3TrayHeaders.h”
#include <string>
#include <vector>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

inline bool operator==(const I3CLSimVectorTransform &a, const I3CLSimVectorTransform &b)
inline bool operator!=(const I3CLSimVectorTransform &a, const I3CLSimVectorTransform &b)
I3_CLASS_VERSION(I3CLSimVectorTransform, i3clsimvectortransform_version_)
I3_POINTER_TYPEDEFS(I3CLSimVectorTransform)

Variables

static const unsigned i3clsimvectortransform_version_ = 0

Transforms a vector into another vector. (works on 3-vectors)

file I3CLSimVectorTransformConstant.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <sstream>
#include <stdexcept>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimVectorTransformConstant)
file I3CLSimVectorTransformConstant.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimvectortransformconstant_version_ = 0

Will keep the input vector un-changed.

file I3CLSimVectorTransformMatrix.cxx
#include <icetray/serialization.h>
#include <typeinfo>
#include <cmath>
#include <math.h>
#include <sstream>
#include <stdexcept>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CLSimVectorTransformMatrix)
file I3CLSimVectorTransformMatrix.h
#include “dataclasses/I3Matrix.h”
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Variables

static const unsigned i3clsimvectortransformmatrix_version_ = 0

Applies a 3x3 transformation matrix to the vector.

file I3CompressedPhoton.cxx
#include <icetray/serialization.h>
#include <boost/foreach.hpp>

Copyright (c) 2013 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3CompressedPhoton)
I3_SERIALIZABLE(I3CompressedPhotonSeriesMap)
std::ostream &operator<<(std::ostream &os, const I3CompressedPhoton &p)
file I3CompressedPhoton.h
#include <stdexcept>
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/ModuleKey.h”
#include “dataclasses/I3Direction.h”
#include “dataclasses/I3Position.h”
#include “dataclasses/physics/I3Particle.h”
#include “simclasses/I3Photon.h

Copyright (c) 2013 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3CompressedPhoton.h

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Vector<I3CompressedPhoton> I3CompressedPhotonSeries
typedef I3Map<ModuleKey, I3CompressedPhotonSeries> I3CompressedPhotonSeriesMap

Functions

std::ostream &operator<<(std::ostream&, const I3CompressedPhoton&)
I3_CLASS_VERSION(I3CompressedPhoton, i3compressedphoton_version_)
I3_POINTER_TYPEDEFS(I3CompressedPhoton)
I3_POINTER_TYPEDEFS(I3CompressedPhotonSeries)
I3_POINTER_TYPEDEFS(I3CompressedPhotonSeriesMap)

Variables

static const unsigned i3compressedphoton_version_ = 1

A photon with only the most important information.

file I3CorsikaInfo.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3CorsikaInfo &n)
I3_SERIALIZABLE(I3CorsikaInfo)
file I3CorsikaInfo.h
#include “icetray/I3DefaultName.h”
#include “dataclasses/physics/I3Particle.h”
#include <string>

Functions

std::ostream &operator<<(std::ostream &oss, const I3CorsikaInfo &n)
I3_POINTER_TYPEDEFS(I3CorsikaInfo)
I3_DEFAULT_NAME(I3CorsikaInfo)
I3_CLASS_VERSION(I3CorsikaInfo, i3corsika_info_version_)

Variables

static const unsigned i3corsika_info_version_ = 1
file I3CorsikaInfoConverter.cxx
file I3CorsikaInfoConverter.h
#include <tableio/I3Converter.h>
file I3CorsikaShowerInfo.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>

Copyright (C) 2010 The IceCube collaboration ID:

Rcs

Version

Rcs
Date

Rcs
Author

Tilo Waldenmaier

Functions

std::ostream &operator<<(std::ostream &os, const I3CorsikaShowerInfo &x)
I3_SERIALIZABLE(I3CorsikaShowerInfo)
file I3CorsikaShowerInfo.h
#include <dataclasses/Utility.h>
#include <icetray/I3FrameObject.h>
#include <icetray/I3DefaultName.h>
#include <ostream>

Copyright (C) 2010 The IceCube collaboration ID:

Rcs

Version

Rcs
Date

Rcs
Author

Tilo Waldenmaier

Functions

std::ostream &operator<<(std::ostream &os, const I3CorsikaShowerInfo&)
I3_CLASS_VERSION(I3CorsikaShowerInfo, i3corsikashowerinfo_version_)
I3_DEFAULT_NAME(I3CorsikaShowerInfo)
I3_POINTER_TYPEDEFS(I3CorsikaShowerInfo)

Variables

static const unsigned i3corsikashowerinfo_version_ = 4

This is a container class to store additional shower information.

file I3CorsikaShowerInfoConverter.cxx
#include <icetray/I3Units.h>

Variables

static const double gcm2 = I3Units::g / I3Units::cm2

copyright (C) 2010 The Icecube Collaboration

$Id$

Version

$Revision$

Date

$LastChangedDate$

Author

Fabian Kislat fabian.kislat@desy.de $LastChangedBy$

file I3CorsikaShowerInfoConverter.h
#include <tableio/I3Converter.h>
file I3CorsikaWeight.cxx

Functions

std::ostream &operator<<(std::ostream &oss, const I3CorsikaWeight &w)
I3_CLASS_VERSION(I3CorsikaWeight, i3corsika_weight_version_)
I3_SERIALIZABLE(I3CorsikaWeight)

Variables

static const unsigned i3corsika_weight_version_ = 0
file I3CorsikaWeight.h
#include “dataclasses/physics/I3Particle.h”

Functions

std::ostream &operator<<(std::ostream &oss, const I3CorsikaWeight &d)
I3_POINTER_TYPEDEFS(I3CorsikaWeight)
file I3CorsikaWeightConverter.cxx
file I3CorsikaWeightConverter.h
#include “tableio/I3Converter.h”
file I3CylinderMap.cxx
#include <icetray/serialization.h>
#include <string>

Functions

I3_SERIALIZABLE(I3CylinderMap)
file I3CylinderMap.h
#include <icetray/serialization.h>
#include <dataclasses/Utility.h>
#include <icetray/I3Logging.h>
#include <icetray/I3FrameObject.h>
#include <map>
#include <icetray/OMKey.h>
#include <dataclasses/I3Map.h>

Typedefs

typedef I3Map<OMKey, I3ExtraGeometryItemCylinder> I3CylinderMap

Functions

I3_POINTER_TYPEDEFS(I3CylinderMap)
file I3ExtraGeometryItem.cxx
#include <icetray/serialization.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItem.cxx 108199 2013-07-12 21:33:08Z nwhitehorn

Version

Rcs

108199

Date

Rcs

2013-07-12 16:33:08 -0500 (Fri, 12 Jul 2013)

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3ExtraGeometryItem)
file I3ExtraGeometryItem.h
#include <cstring>
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Position.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItem.h 146654 2016-06-01 18:31:33Z cweaver

Version

Rcs

146654

Date

Rcs

2016-06-01 13:31:33 -0500 (Wed, 01 Jun 2016)

Author

Claudio Kopper

Functions

inline std::ostream &operator<<(std::ostream &oss, const I3ExtraGeometryItem &item)
I3_CLASS_VERSION(I3ExtraGeometryItem, i3extrageometryitem_version_)
I3_POINTER_TYPEDEFS(I3ExtraGeometryItem)

Variables

static const unsigned i3extrageometryitem_version_ = 0

Abstract base class for a “extra” geometry item (i.e. anything that is not a DOM). This includes cables and anything else that could cast a shadow on DOMs.

file I3ExtraGeometryItemCylinder.cxx
#include <limits>
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemCylinder.cxx 141406 2016-02-01 21:46:00Z david.schultz

Version

Rcs

141406

Date

Rcs

2016-02-01 15:46:00 -0600 (Mon, 01 Feb 2016)

Author

Claudio Kopper

Functions

I3_SPLIT_SERIALIZABLE(I3ExtraGeometryItemCylinder)
file I3ExtraGeometryItemCylinder.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemCylinder.h 146654 2016-06-01 18:31:33Z cweaver

Version

Rcs

146654

Date

Rcs

2016-06-01 13:31:33 -0500 (Wed, 01 Jun 2016)

Author

Claudio Kopper

Variables

static const unsigned i3extrageometryitemcylinder_version_ = 0

Describes a cylinder.

file I3ExtraGeometryItemMove.cxx
#include <limits>
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemMove.cxx 119025 2014-04-18 17:38:57Z cweaver

Version

Rcs

119025

Date

Rcs

2014-04-18 12:38:57 -0500 (Fri, 18 Apr 2014)

Author

Claudio Kopper

Functions

I3_SPLIT_SERIALIZABLE(I3ExtraGeometryItemMove)
file I3ExtraGeometryItemMove.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemMove.h 146654 2016-06-01 18:31:33Z cweaver

Version

Rcs

146654

Date

Rcs

2016-06-01 13:31:33 -0500 (Wed, 01 Jun 2016)

Author

Claudio Kopper

Variables

static const unsigned i3extrageometryitemmove_version_ = 0

Describes a moved item.

file I3ExtraGeometryItemUnion.cxx
#include <limits>
#include <icetray/serialization.h>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemUnion.cxx 128624 2015-02-04 04:01:55Z claudio.kopper

Version

Rcs

128624

Date

Rcs

2015-02-03 22:01:55 -0600 (Tue, 03 Feb 2015)

Author

Claudio Kopper

Functions

I3_SPLIT_SERIALIZABLE(I3ExtraGeometryItemUnion)
file I3ExtraGeometryItemUnion.h
#include <vector>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Rcs

I3ExtraGeometryItemUnion.h 146654 2016-06-01 18:31:33Z cweaver

Version

Rcs

146654

Date

Rcs

2016-06-01 13:31:33 -0500 (Wed, 01 Jun 2016)

Author

Claudio Kopper

Variables

static const unsigned i3extrageometryitemunion_version_ = 0

Describes a union af a list of items.

file I3FlasherPulse.cxx
#include <stdexcept>
#include <boost/foreach.hpp>
#include <boost/lexical_cast.hpp>
#include <cmath>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3FlasherPulse)
I3_SERIALIZABLE(I3FlasherPulseSeries)
bool operator==(const I3FlasherPulse &a, const I3FlasherPulse &b)
std::ostream &operator<<(std::ostream &os, const I3FlasherPulse &p)
file I3FlasherPulse.h
#include “icetray/I3TrayHeaders.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Direction.h”
#include “dataclasses/I3Position.h”
#include <string>
#include <vector>
#include <boost/shared_ptr.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Defines

I3FLASHERPULSE_H_I3FlasherPulse_FlasherPulseType

Typedefs

typedef I3Vector<I3FlasherPulse> I3FlasherPulseSeries

Functions

bool operator==(const I3FlasherPulse &a, const I3FlasherPulse &b)
std::ostream &operator<<(std::ostream&, const I3FlasherPulse&)
I3_CLASS_VERSION(I3FlasherPulse, i3flasherpulse_version_)
I3_POINTER_TYPEDEFS(I3FlasherPulse)
I3_POINTER_TYPEDEFS(I3FlasherPulseSeries)

Variables

static const unsigned i3flasherpulse_version_ = 0
file I3GaussianPMTPulse.cxx
#include <vector>
#include <icetray/serialization.h>
#include <icetray/I3FrameObject.h>
#include <icetray/OMKey.h>
#include <dataclasses/I3Map.h>

Typedefs

typedef I3Map<OMKey, std::vector<I3GaussianPMTPulse>> I3GaussianPMTPulseListMap

Functions

I3_POINTER_TYPEDEFS(I3GaussianPMTPulseListMap)
I3_SERIALIZABLE(I3GaussianPMTPulseListMap)
std::ostream &operator<<(std::ostream &os, const I3GaussianPMTPulse &p)
file I3GaussianPMTPulse.h
#include “icetray/I3FrameObject.h”
#include “icetray/I3Tray.h”
#include “icetray/OMKey.h”
#include “dataclasses/I3Map.h”
#include “icetray/I3Units.h”
#include “dataclasses/I3Constants.h”
#include <vector>

copyright (C) 2004 the IceCube Collaboration

Rcs

I3GaussianPMTPulse.h 20757 2006-06-13 03:56:16Z olivas

Version

Rcs

1.5

Date

Rcs

2006-06-12 23:56:16 -0400 (Mon, 12 Jun 2006)

Author

deyoung

Typedefs

typedef std::vector<I3GaussianPMTPulse> I3GaussianPMTPulseList
typedef I3Map<OMKey, std::vector<I3GaussianPMTPulse>> I3GaussianPMTPulseListMap

Functions

I3_POINTER_TYPEDEFS(I3GaussianPMTPulse)
I3_POINTER_TYPEDEFS(I3GaussianPMTPulseList)
I3_POINTER_TYPEDEFS(I3GaussianPMTPulseListMap)
file I3GenieInfo.cxx
#include <icetray/serialization.h>

Author

Kevin Meagher

Copyright

(C) 2019 The IceCube Collaboration, all rights reserved.

Functions

std::ostream &operator<<(std::ostream &oss, const I3GenieInfo &n)
I3_SERIALIZABLE(I3GenieInfo)
file I3GenieInfo.h
#include <dataclasses/physics/I3Particle.h>

Author

Kevin Meagher

Copyright

(C) 2019 The IceCube Collaboration, all rights reserved.

Functions

std::ostream &operator<<(std::ostream &oss, const I3GenieInfo &n)
I3_POINTER_TYPEDEFS(I3GenieInfo)
I3_CLASS_VERSION(I3GenieInfo, i3genie_info_version_)

Variables

static const unsigned i3genie_info_version_ = 0
file I3GenieInfoConverter.cxx
file I3GenieInfoConverter.h
#include <tableio/I3Converter.h>
#include “simclasses/I3GenieInfo.h
file I3GenieResult.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3GenieResult &n)
I3_SERIALIZABLE(I3GenieResult)
file I3GenieResult.h
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Vector.h”

Functions

std::ostream &operator<<(std::ostream &oss, const I3GenieResult &n)
I3_POINTER_TYPEDEFS(I3GenieResult)
I3_CLASS_VERSION(I3GenieResult, i3genie_result_version_)

Variables

static const unsigned i3genie_result_version_ = 0
file I3GenieResultConverter.cxx
file I3GenieResultConverter.h
#include <tableio/I3Converter.h>
file I3GENIEResultDict.cxx
#include “icetray/serialization.h”
#include <serialization/variant.hpp>

copyright (C) 2011 Claudio Kopper claudio.kopper@nikhef.nl

Rcs

I3GENIEResultDict.cxx 146654 2016-06-01 18:31:33Z cweaver

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Version

$Revision$

Date

Rcs

2016-06-01 13:31:33 -0500 (Wed, 01 Jun 2016)

Author

Claudio Kopper

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Functions

I3_SERIALIZABLE(I3GENIEResultDict)
file I3GENIEResultDict.h
#include <vector>
#include <map>
#include <string>
#include <dataclasses/I3Map.h>
#include <boost/variant.hpp>

copyright (C) 2011 Claudio Kopper claudio.kopper@nikhef.nl

Rcs

I3GENIEResultDict.h 117798 2014-03-14 19:42:30Z claudio.kopper

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Version

$Revision$

Date

Rcs

2014-03-14 14:42:30 -0500 (Fri, 14 Mar 2014)

Author

Claudio Kopper

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Typedefs

typedef boost::variant<int32_t, double, bool, std::vector<int32_t>, std::vector<double>, std::vector<bool>> I3GENIEResult
typedef I3Map<std::string, I3GENIEResult> I3GENIEResultDict

Functions

I3_POINTER_TYPEDEFS(I3GENIEResultDict)
file I3LightSource.cxx
#include <stdexcept>
#include <boost/foreach.hpp>
#include <boost/lexical_cast.hpp>

Functions

bool operator==(const I3LightSource &a, const I3LightSource &b)
file I3LightSource.h
#include “icetray/I3TrayHeaders.h”
#include <string>
#include <vector>
#include <boost/shared_ptr.hpp>
#include <dataclasses/physics/I3Particle.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Defines

I3LIGHTSOURCE_H_I3LightSource_LightSourceType

Typedefs

typedef std::vector<I3LightSource> I3LightSourceSeries

Functions

bool operator==(const I3LightSource &a, const I3LightSource &b)
I3_POINTER_TYPEDEFS(I3LightSource)
I3_POINTER_TYPEDEFS(I3LightSourceSeries)
file I3MCCherenkovPhotonMap.cxx

Functions

I3_SERIALIZABLE(I3MCCherenkovPhotonMap)
file I3MCCherenkovPhotonMap.h
#include <dataclasses/I3Map.h>
#include <dataclasses/IceActKey.h>

Typedefs

typedef I3Map<IceActKey, I3CompressedPhotonSeries> I3MCCherenkovPhotonMap

Functions

I3_POINTER_TYPEDEFS(I3MCCherenkovPhotonMap)
file I3MCNKGInfo.cxx
#include <cstdio>
#include <iostream>
#include <fstream>
#include <sstream>
#include <icetray/I3TrayHeaders.h>

Functions

std::ostream &operator<<(std::ostream &os, const I3MCNKGPoint &p)
I3_SERIALIZABLE(I3MCNKGPoint)
I3_SERIALIZABLE(I3MCNKGInfoList)
file I3MCNKGInfo.h
#include <vector>
#include <map>
#include <dataclasses/Utility.h>
#include <dataclasses/I3Position.h>
#include <dataclasses/I3Vector.h>
#include <dataclasses/physics/I3Particle.h>

Store the data points for the NKG samples provided by CORSIKA.

copyright (C) 2007 the IceCube collaboration

Author

Peter Niessen Fri Feb 23 10:09:26 EST 2007

Date

$Date$

Version

$Revision:$

$Id$

Typedefs

typedef I3Vector<I3MCNKGPoint> I3MCNKGInfoList

aggregate many points into a map

Functions

std::ostream &operator<<(std::ostream&, const I3MCNKGPoint&)
I3_POINTER_TYPEDEFS(I3MCNKGPoint)
I3_POINTER_TYPEDEFS(I3MCNKGInfoList)
file I3MCPE.cxx
#include <ostream>
#include “I3SequenceOpOStream.h

Functions

I3_SERIALIZABLE(I3MCPESeriesMap)
I3_SERIALIZABLE(I3MCScintPESeriesMap)
I3_SERIALIZABLE(I3MCIceActPixelPESeriesMap)
I3_SERIALIZABLE(I3MCIceActPESeriesMap)
std::ostream &operator<<(std::ostream &os, const I3MCPE &pe)
I3_SEQUENCE_OP_OSTREAM (I3MCPESeries,"\n ")
file I3MCPE.h
#include <vector>
#include <icetray/I3Logging.h>
#include <icetray/serialization.h>
#include <dataclasses/I3Map.h>
#include <dataclasses/physics/I3ParticleID.h>
#include <dataclasses/ScintKey.h>
#include <dataclasses/IceActKey.h>
#include <ostream>

Typedefs

typedef std::vector<I3MCPE> I3MCPESeries
typedef I3Map<OMKey, I3MCPESeries> I3MCPESeriesMap
typedef I3Map<ScintKey, I3MCPESeries> I3MCScintPESeriesMap
typedef I3Map<unsigned, I3MCPESeries> I3MCIceActPixelPESeriesMap
typedef I3Map<IceActKey, I3MCIceActPixelPESeriesMap> I3MCIceActPESeriesMap

Functions

I3_CLASS_VERSION(I3MCPE, i3mcpe_version_)
std::ostream &operator<<(std::ostream&, const I3MCPE&)
std::ostream &operator<<(std::ostream&, const I3MCPESeries&)
I3_POINTER_TYPEDEFS(I3MCPE)
I3_POINTER_TYPEDEFS(I3MCPESeries)
I3_POINTER_TYPEDEFS(I3MCPESeriesMap)
I3_POINTER_TYPEDEFS(I3MCScintPESeriesMap)
I3_POINTER_TYPEDEFS(I3MCIceActPixelPESeriesMap)
I3_POINTER_TYPEDEFS(I3MCIceActPESeriesMap)

Variables

static const unsigned i3mcpe_version_ = 1

copyright (C) 2013 the icecube collaboration

Version

Rcs

file I3MCPEConverterWithIDs.cxx
#include “I3MCPEConverterWithIDs.h

Copyright (c) 2013 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3MCPEConverterWithIDs.h
#include “tableio/I3Converter.h”
#include “tableio/converter/I3MapConverter.h”
#include “simclasses/I3MCPE.h

Copyright (c) 2013 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3MapOMKeyVectorConverter<I3MCPEConverterWithIDs> I3MCPESeriesMapConverterWithIDs
file I3MCPMTResponse.cxx
#include <icetray/serialization.h>
#include “icetray/I3FrameObject.h”
#include “icetray/I3Tray.h”
#include “dataclasses/I3Map.h”
#include “icetray/OMKey.h”

Typedefs

typedef I3Map<OMKey, I3MCPMTResponse> I3MCPMTResponseMap

Functions

I3_SERIALIZABLE(I3MCPMTResponse)
I3_SERIALIZABLE(I3MCPMTResponseMap)
std::ostream &operator<<(std::ostream &os, const I3MCPMTResponse &r)
file I3MCPMTResponse.h
file I3MCPulse.cxx
#include <ostream>
#include “I3SequenceOpOStream.h

Functions

I3_SERIALIZABLE(I3MCPulseSeriesMap)
I3_SERIALIZABLE(I3MCScintPulseSeriesMap)
I3_SERIALIZABLE(I3MCIceActPixelPulseSeriesMap)
I3_SERIALIZABLE(I3MCIceActPulseSeriesMap)
std::ostream &operator<<(std::ostream &os, const I3MCPulse &pulse)
I3_SEQUENCE_OP_OSTREAM (I3MCPulseSeries,"\n ")
file I3MCPulse.h
#include <algorithm>
#include <iterator>
#include <vector>
#include <boost/foreach.hpp>
#include <icetray/I3Logging.h>
#include <icetray/serialization.h>
#include <dataclasses/I3Map.h>
#include <dataclasses/ScintKey.h>
#include <dataclasses/IceActKey.h>

Defines

I3MCPULSE_H_I3MCPulse_PulseSource

I3MCPulse struct that stores the time, charge, and source of a PMT pulse.

Typedefs

typedef std::vector<I3MCPulse> I3MCPulseSeries
typedef I3Map<OMKey, I3MCPulseSeries> I3MCPulseSeriesMap
typedef I3Map<ScintKey, I3MCPulseSeries> I3MCScintPulseSeriesMap
typedef I3Map<unsigned, I3MCPulseSeries> I3MCIceActPixelPulseSeriesMap
typedef I3Map<IceActKey, I3MCIceActPixelPulseSeriesMap> I3MCIceActPulseSeriesMap

Functions

I3_CLASS_VERSION(I3MCPulse, i3mcpulse_version_)
std::ostream &operator<<(std::ostream&, const I3MCPulse&)
std::ostream &operator<<(std::ostream&, const I3MCPulseSeries&)
I3_POINTER_TYPEDEFS(I3MCPulseSeries)
I3_POINTER_TYPEDEFS(I3MCPulseSeriesMap)
I3_POINTER_TYPEDEFS(I3MCScintPulseSeriesMap)
I3_POINTER_TYPEDEFS(I3MCIceActPixelPulseSeriesMap)
I3_POINTER_TYPEDEFS(I3MCIceActPulseSeriesMap)

Variables

static const unsigned i3mcpulse_version_ = 1

copyright (C) 2013 the icecube collaboration

Version

Rcs

file I3MCPulseListConverter.cxx
#include “I3MCPulseListConverter.h
#include <icetray/I3Units.h>
#include <tableio/converter/I3MapConverter.h>
file I3MCPulseListConverter.h
#include “simclasses/I3MCPulse.h
#include <tableio/I3TableRowDescription.h>
#include <tableio/I3TableRow.h>
file I3MCTWRParams.cxx
#include <icetray/serialization.h>
#include “icetray/OMKey.h”

Typedefs

typedef std::map<OMKey, I3MCTWRParams> I3MCTWRParamsMap

Functions

I3_CLASS_VERSION(I3MCTWRParams, i3mctwrparams_version_)
I3_SERIALIZABLE(I3MCTWRParams)
std::ostream &operator<<(std::ostream &os, const I3MCTWRParams &p)

Variables

static const unsigned i3mctwrparams_version_ = 1
file I3MCTWRParams.h
#include “dataclasses/Utility.h”
#include “icetray/OMKey.h”

Typedefs

typedef std::map<OMKey, I3MCTWRParams> I3MCTWRParamsMap

Functions

I3_CLASS_VERSION(I3MCTWRParams, i3mctwrparams_version_)
I3_POINTER_TYPEDEFS(I3MCTWRParams)
I3_POINTER_TYPEDEFS(I3MCTWRParamsMap)

Variables

static const unsigned i3mctwrparams_version_ = 1
file I3MMCTrack.cxx
#include <icetray/serialization.h>
#include “simclasses/I3MMCTrack.h

Functions

std::ostream &operator<<(std::ostream &oss, const I3MMCTrack &t)
I3_SERIALIZABLE(I3MMCTrack)
I3_SERIALIZABLE(I3MMCTrackList)
file I3MMCTrack.h
#include “dataclasses/physics/I3Particle.h”

Typedefs

typedef I3Vector<I3MMCTrack> I3MMCTrackList

Functions

std::ostream &operator<<(std::ostream &oss, const I3MMCTrack &t)
I3_POINTER_TYPEDEFS(I3MMCTrack)
I3_POINTER_TYPEDEFS(I3MMCTrackList)
I3_CLASS_VERSION(I3MMCTrack, i3mmctrack_version_)

Variables

static const unsigned i3mmctrack_version_ = 1
file I3MMCTrackListConverter.cxx
#include <dataclasses/physics/I3Particle.h>
file I3MMCTrackListConverter.h
#include <icetray/I3Frame.h>
#include <tableio/converter/I3VectorConverter.h>
#include <tableio/converter/pybindings.h>

Typedefs

typedef I3VectorConverter<convert_I3MMCTrack> I3MMCTrackListConverter
file I3NuGenInfo.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3NuGenInfo &n)
I3_SERIALIZABLE(I3NuGenInfo)
file I3NuGenInfo.h
#include “icetray/I3DefaultName.h”
#include “dataclasses/physics/I3Particle.h”

Functions

std::ostream &operator<<(std::ostream &oss, const I3NuGenInfo &n)
I3_POINTER_TYPEDEFS(I3NuGenInfo)
I3_DEFAULT_NAME(I3NuGenInfo)
I3_CLASS_VERSION(I3NuGenInfo, i3nugen_info_version_)

Variables

static const unsigned i3nugen_info_version_ = 0
file I3ParticleIDMap.cxx
#include <ostream>
#include “I3SequenceOpOStream.h

Functions

I3_SERIALIZABLE(I3ParticleIDMap)
I3_SERIALIZABLE(I3ScintParticleIDMap)
I3_SERIALIZABLE(I3IceActParticleIDMap)
std::ostream &operator<<(std::ostream &os, const ParticlePulseIndexMap &ppim)
file I3ParticleIDMap.hpp
#include <dataclasses/physics/I3ParticleID.h>
#include <dataclasses/ScintKey.h>
#include <dataclasses/IceActKey.h>

Typedefs

typedef std::map<I3ParticleID, std::vector<uint32_t>> ParticlePulseIndexMap

copyright (C) 2013 the icecube collaboration

I3ParticleIDMap is used to describe the originating particles of I3MCPulses in an I3MCPulseSeriesMap. For each OMKey a map of I3ParticleID to a list of indices of MCPulses is stored, where the indices refer to the corresponding I3MCPulseSeries within the associated I3MCPulseSeriesMap. By convention, each list of indices is kept in sorted order.

Version

Rcs

typedef I3Map<OMKey, ParticlePulseIndexMap> I3ParticleIDMap
typedef I3Map<ScintKey, ParticlePulseIndexMap> I3ScintParticleIDMap
typedef I3Map<IceActKey, ParticlePulseIndexMap> I3IceActParticleIDMap

Functions

I3_POINTER_TYPEDEFS(I3ParticleIDMap)
I3_POINTER_TYPEDEFS(I3ScintParticleIDMap)
I3_POINTER_TYPEDEFS(I3IceActParticleIDMap)
std::ostream &operator<<(std::ostream&, const ParticlePulseIndexMap&)
file I3Photon.cxx
#include <icetray/serialization.h>
#include <boost/foreach.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3Photon)
I3_SERIALIZABLE(I3PhotonSeriesMap)
std::ostream &operator<<(std::ostream &os, const I3Photon &p)
file I3Photon.h
#include <stdexcept>
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/ModuleKey.h”
#include “dataclasses/I3Direction.h”
#include “dataclasses/I3Position.h”
#include “dataclasses/physics/I3Particle.h”
#include “dataclasses/physics/I3ParticleID.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Vector<I3Photon> I3PhotonSeries
typedef I3Map<ModuleKey, I3PhotonSeries> I3PhotonSeriesMap

Functions

std::ostream &operator<<(std::ostream&, const I3Photon&)
I3_CLASS_VERSION(I3Photon, i3photon_version_)
I3_POINTER_TYPEDEFS(I3Photon)
I3_POINTER_TYPEDEFS(I3PhotonSeries)
I3_POINTER_TYPEDEFS(I3PhotonSeriesMap)

Variables

static const unsigned i3photon_version_ = 2

This class contains a photon with simulated arrival time, the direction the photon arrived from, the position on the OM the photon hit (stored as an direction from the OM center to the hit position) and the photon’s wavelength.

file I3PhotonConverter.cxx
#include “I3PhotonConverter.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

file I3PhotonConverter.h
#include “tableio/I3Converter.h”
#include “tableio/converter/I3MapConverter.h”
#include “simclasses/I3Photon.h

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3MapModuleKeyVectorConverter<I3PhotonConverter, I3PhotonSeriesMap> I3PhotonSeriesMapConverter
file I3PowerLaw.cxx
#include “simclasses/I3PowerLaw.h

Object for evaluating, sampling and storing parameters of a power-law function.

Copyright

(C) 2020 The IceCube Collaboration, All Rights Reserved

Author

Kevin Meagher

Date

September 2020

Functions

bool operator==(const I3PowerLaw &p, const I3PowerLaw &q)
std::ostream &operator<<(std::ostream &oss, const I3PowerLaw &p)
I3_SERIALIZABLE(I3PowerLaw)
file I3PowerLaw.h
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Vector.h”
#include “phys-services/I3RandomService.h”

Object for evaluating, sampling and storing parameters of a power-law function.

Copyright

(C) 2020 The IceCube Collaboration, All Rights Reserved

Author

Kevin Meagher

Date

July 2020

Typedefs

typedef I3Vector<I3PowerLaw> I3VectorPowerLaw

Functions

std::ostream &operator<<(std::ostream &oss, const I3PowerLaw &p)
I3_POINTER_TYPEDEFS(I3VectorPowerLaw)
I3_POINTER_TYPEDEFS(I3PowerLaw)
file I3PrimaryInjectorInfo.cxx

S-Frame object for Dynamic Stack CORSIKA’s generator.

Copyright

(C) 2020 The IceCube Collaboration, All Rights Reserved

Author

Kevin Meagher

Date

September 2020

Functions

std::ostream &operator<<(std::ostream &oss, const I3PrimaryInjectorInfo &p)
I3_SERIALIZABLE(I3PrimaryInjectorInfo)
file I3PrimaryInjectorInfo.h
#include “icetray/I3DefaultName.h”
#include “dataclasses/physics/I3Particle.h”

S-Frame object for Dynamic Stack CORSIKA’s generator.

Copyright

(C) 2020 The IceCube Collaboration, All Rights Reserved

Author

Kevin Meagher

Date

July 2020

Functions

std::ostream &operator<<(std::ostream &oss, const I3PrimaryInjectorInfo &p)
I3_POINTER_TYPEDEFS(I3PrimaryInjectorInfo)
I3_DEFAULT_NAME(I3PrimaryInjectorInfo)
file I3PrimaryInjectorInfoConverter.cxx

TableIO converter for I3PrimaryInjectorInfo struct.

Copyright

(C) 2020 The Icecube Collaboration

Author

Kevin Meagher

Date

September 2020

file I3PrimaryInjectorInfoConverter.h
#include “tableio/I3Converter.h”

TableIO converter for I3PrimaryInjectorInfo struct.

Copyright

(C) 2020 The Icecube Collaboration

Author

Kevin Meagher

Date

September 2020

file I3ScintParticleIDMap.cxx
#include <simclasses/I3ScintParticleIDMap.hpp>
#include <ostream>
#include “I3SequenceOpOStream.h

Functions

I3_SERIALIZABLE(I3ScintParticleIDMap)
file I3SequenceOpOStream.h
#include <ostream>

Defines

I3_SEQUENCE_OP_OSTREAM(Sequence, delim)
file I3ShowerBias.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3ShowerBias &n)
I3_SERIALIZABLE(I3ShowerBias)
I3_SERIALIZABLE(I3ShowerBiasMap)
file I3ShowerBias.h
#include “icetray/I3DefaultName.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/physics/I3Particle.h”

Typedefs

typedef I3Map<I3ParticleID, I3ShowerBias> I3ShowerBiasMap

Functions

std::ostream &operator<<(std::ostream &oss, const I3ShowerBias &d)
I3_DEFAULT_NAME(I3ShowerBiasMap)
I3_POINTER_TYPEDEFS(I3ShowerBiasMap)
file I3SimpleGeometry.h
#include <vector>
#include <string>
#include <cstdint>
#include <limits>
#include <icetray/I3PointerTypedefs.h>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_POINTER_TYPEDEFS(I3SimpleGeometry)
file I3SimpleGeometryFromI3Geometry.cxx
#include <inttypes.h>
#include <icetray/I3Units.h>
#include <icetray/I3Logging.h>
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/geometry/I3OMGeo.h”
#include “dataclasses/geometry/I3ModuleGeo.h”
#include <stdexcept>
#include <limits>
#include <boost/foreach.hpp>
#include <boost/lexical_cast.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Defines

__STDC_FORMAT_MACROS

Functions

I3SimpleGeometry I3SimpleGeometryFromI3Geometry(double OMRadius, double oversizeFactor, const I3FramePtr &frame, const std::set<int> &ignoreStrings, const std::set<unsigned int> &ignoreDomIDs, const std::set<std::string> &ignoreSubdetectors, int32_t ignoreStringIDsSmallerThan, int32_t ignoreStringIDsLargerThan, uint32_t ignoreDomIDsSmallerThan, uint32_t ignoreDomIDsLargerThan, __attribute__((__unused__)) bool splitIntoPartsAccordingToPosition, bool useHardcodedDeepCoreSubdetector)
file I3SimpleGeometryFromI3Geometry.h
#include “icetray/I3Frame.h”
#include <string>
#include <set>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3SimpleGeometry I3SimpleGeometryFromI3Geometry(double OMRadius, double oversizeFactor, const I3FramePtr &frame, const std::set<int> &ignoreStrings = I3SimpleGeometryFromI3Geometry::ignoreStrings, const std::set<unsigned int> &ignoreDomIDs = I3SimpleGeometryFromI3Geometry::ignoreDomIDs, const std::set<std::string> &ignoreSubdetectors = I3SimpleGeometryFromI3Geometry::ignoreSubdetectors, int32_t ignoreStringIDsSmallerThan = I3SimpleGeometryFromI3Geometry::ignoreStringIDsSmallerThan, int32_t ignoreStringIDsLargerThan = I3SimpleGeometryFromI3Geometry::ignoreStringIDsLargerThan, uint32_t ignoreDomIDsSmallerThan = I3SimpleGeometryFromI3Geometry::ignoreDomIDsSmallerThan, uint32_t ignoreDomIDsLargerThan = I3SimpleGeometryFromI3Geometry::ignoreDomIDsLargerThan, bool splitIntoPartsAccordingToPosition = I3SimpleGeometryFromI3Geometry::splitIntoPartsAccordingToPosition, bool useHardcodedDeepCoreSubdetector = I3SimpleGeometryFromI3Geometry::useHardcodedDeepCoreSubdetector)

Describes a detector geometry.

Reads from an I3Geometry frame

file I3SimpleGeometryTextFile.cxx
#include <icetray/I3Logging.h>
#include <stdexcept>
#include <fstream>
#include <limits>
#include <boost/lexical_cast.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3SimpleGeometry I3SimpleGeometryTextFile(double OMRadius, const std::string &filename, int32_t ignoreStringIDsSmallerThan, int32_t ignoreStringIDsLargerThan, uint32_t ignoreDomIDsSmallerThan, uint32_t ignoreDomIDsLargerThan)

Describes a detector geometry.

Reads from a simple text file.

file I3SimpleGeometryTextFile.h
#include <string>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3SimpleGeometry I3SimpleGeometryTextFile(double OMRadius, const std::string &filename, int32_t ignoreStringIDsSmallerThan = I3SimpleGeometryTextFile::ignoreStringIDsSmallerThan, int32_t ignoreStringIDsLargerThan = I3SimpleGeometryTextFile::ignoreStringIDsLargerThan, uint32_t ignoreDomIDsSmallerThan = I3SimpleGeometryTextFile::ignoreDomIDsSmallerThan, uint32_t ignoreDomIDsLargerThan = I3SimpleGeometryTextFile::ignoreDomIDsLargerThan)

Describes a detector geometry.

Reads from a simple text file.

file I3SimStep.cxx
#include <icetray/serialization.h>
#include <boost/static_assert.hpp>
#include <serialization/binary_object.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_SERIALIZABLE(I3SimStep)
I3_SERIALIZABLE(I3SimStepSeries)
std::ostream &operator<<(std::ostream &os, const I3SimStep &s)
file I3SimStep.h
#include <cstring>
#include “dataclasses/I3Vector.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3Direction.h”
#include “dataclasses/I3Position.h”

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Typedefs

typedef I3Vector<I3SimStep> I3SimStepSeries

Functions

struct I3SimStep __attribute__ ((packed))
I3SimStep()
~I3SimStep()
inline float GetPosX() const
inline float GetPosY() const
inline float GetPosZ() const
inline float GetTime() const
inline float GetDirTheta() const
inline float GetDirPhi() const
inline float GetLength() const
inline float GetBeta() const
inline uint32_t GetNumPhotons() const
inline float GetWeight() const
inline uint32_t GetID() const
inline uint8_t GetSourceType() const
inline uint8_t GetDummy1() const
inline uint16_t GetDummy2() const
inline I3Position GetPos() const
inline I3Direction GetDir() const
inline void SetPosX(const float &val)
inline void SetPosY(const float &val)
inline void SetPosZ(const float &val)
inline void SetTime(const float &val)
inline void SetDirTheta(const float &val)
inline void SetDirPhi(const float &val)
inline void SetLength(const float &val)
inline void SetBeta(const float &val)
inline void SetNumPhotons(const uint32_t &val)
inline void SetWeight(const float &val)
inline void SetID(const uint32_t &val)
inline void SetSourceType(const uint8_t &val)
inline void SetDummy1(const uint8_t &val)
inline void SetDummy2(const uint16_t &val)
inline void SetPos(const I3Position &pos)
inline void SetDir(const I3Direction &dir)
inline void SetDir(const double &x, const double &y, const double &z)
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
inline bool operator==(const I3SimStep &a, const I3SimStep &b)
std::ostream &operator<<(std::ostream&, const I3SimStep&)
I3_CLASS_VERSION(I3SimStep, i3simstep_version_)
I3_POINTER_TYPEDEFS(I3SimStep)
I3_POINTER_TYPEDEFS(I3SimStepSeries)

Variables

static const unsigned i3simstep_version_ = 0

A single step of a particle producing a certain amount of Cherenkov photons. This is typically produced by a full particle tracker like Geant4.

float x
float y
float z
float t
float theta
float phi
float length
float beta
uint32_t numPhotons
float weight
uint32_t identifier
unsigned char sourceType
unsigned char dummy1
unsigned short dummy2
file I3SimStepStore.h
#include “icetray/I3TrayHeaders.h”
#include “simclasses/I3SimStep.h
#include <stdint.h>
#include <vector>
#include <deque>
#include <limits>
#include <boost/static_assert.hpp>
#include <boost/foreach.hpp>
#include <boost/pool/pool_alloc.hpp>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

Functions

I3_POINTER_TYPEDEFS(I3SimStepStore)

Variables

class I3SimTemplateStore __attribute__
file I3TopInjectorInfo.cxx

Functions

std::ostream &operator<<(std::ostream &oss, const I3TopInjectorInfo &p)
I3_SERIALIZABLE(I3TopInjectorInfo)
file I3TopInjectorInfo.h
#include “icetray/I3DefaultName.h”
#include “dataclasses/physics/I3Particle.h”

Functions

std::ostream &operator<<(std::ostream &oss, const I3TopInjectorInfo &p)
I3_POINTER_TYPEDEFS(I3TopInjectorInfo)
I3_DEFAULT_NAME(I3TopInjectorInfo)
I3_CLASS_VERSION(I3TopInjectorInfo, i3topinjector_info_version_)

Variables

static const unsigned i3topinjector_info_version_ = 1
file I3TopInjectorInfoConverter.cxx
file I3TopInjectorInfoConverter.h
#include “tableio/I3Converter.h”
file I3WimpParams.cxx
#include <cmath>
#include <iostream>
#include <boost/algorithm/string.hpp>
#include “icetray/serialization.h”
#include “icetray/I3Units.h”
#include “dataclasses/I3Constants.h”

copyright (C) 2012 the icecube collaboration

Version

Rcs

Date

Rcs

2012-11-18

Author

mzoll marcel.zoll@fysik.su.se This is a archive class that saves important information about WIMP Events that are read by the WimpSim-Reader

Functions

std::ostream &operator<<(std::ostream &oss, const I3WimpParams &d)

Dump the object into a string-stream (this is bound to python as string-cast)

I3_SERIALIZABLE(I3WimpParams)
file I3WimpParams.h
#include <string>
#include “icetray/I3FrameObject.h”
#include “icetray/I3DefaultName.h”
#include “icetray/serialization.h”
#include “dataclasses/Utility.h”
#include “dataclasses/physics/I3Particle.h”
#include “dataclasses/I3Time.h”

copyright (C) 2012 the icecube collaboration

Version

Rcs

I3WimpParams.h xxxxx 2012-06-01 17:01:33Z mzoll

Date

Rcs

2012-12-20

Author

mzoll marcel.zoll@fysik.su.se This is a archive class that saves important information about WIMP events that are read by the WimpSim-Reader

Defines

WIMPSIMPARAMS_H_WimpSim_DecayChannel
WIMPSIMPARAMS_H_WimpSim_PythiaParticleTypes
I3WIMPPARAMS_H_I3WimpParams_Source

Functions

std::ostream &operator<<(std::ostream &oss, const I3WimpParams &d)

Dump the object into a string-stream (this is bound to python as string-cast)

I3_POINTER_TYPEDEFS(I3WimpParams)
I3_CLASS_VERSION(I3WimpParams, i3wimpparams_version_)
I3_DEFAULT_NAME(I3WimpParams)

Variables

static const unsigned i3wimpparams_version_ = 0
file I3WimpParamsConverter.cxx
#include “I3WimpParamsConverter.h
file I3WimpParamsConverter.h
#include “tableio/I3Converter.h”
file MMCWeight.cxx
#include <icetray/serialization.h>
#include “icetray/I3FrameObject.h”

Functions

I3_CLASS_VERSION (MMCWeight, 1)
I3_SERIALIZABLE(MMCWeight)
std::ostream &operator<<(std::ostream &os, const MMCWeight &w)
file MMCWeight.h
#include “icetray/I3FrameObject.h”
#include “dataclasses/Utility.h”

Functions

I3_POINTER_TYPEDEFS(MMCWeight)
file NuRadioMCInterface.cxx
#include <icetray/serialization.h>
#include <dataclasses/I3Constants.h>

Functions

std::ostream &operator<<(std::ostream &os, const NuRadioMCEventInfo &info)
std::ostream &operator<<(std::ostream &os, const NuRadioMCGeneratorInfo &info)
I3_SERIALIZABLE(NuRadioMCEventInfo)
I3_SERIALIZABLE(NuRadioMCGeneratorInfo)
file NuRadioMCInterface.h
#include <string>
#include <vector>
#include “icetray/I3FrameObject.h”
#include “icetray/I3PointerTypedefs.h”
#include “dataclasses/physics/I3Particle.h”

Functions

std::ostream &operator<<(std::ostream&, const NuRadioMCEventInfo&)
std::ostream &operator<<(std::ostream&, const NuRadioMCGeneratorInfo&)
I3_POINTER_TYPEDEFS(NuRadioMCEventInfo)
I3_POINTER_TYPEDEFS(NuRadioMCGeneratorInfo)
file split_serializable_backport.h

Defines

I3_SPLIT_SERIALIZABLE(T)
file ToFloatString.h
#include <string>
#include <boost/lexical_cast.hpp>
#include <assert.h>
#include <sstream>

Copyright (c) 2011, 2012 Claudio Kopper claudio.kopper@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$Id$

Version

$Revision$

Date

$Date$

Author

Claudio Kopper

page deprecated

Class I3GaussianPMTPulse

Still required for reading old simulation data

Class I3MCPMTResponse

Still required for reading old simulation data

Class MMCWeight

Still required for reading old simulation data

Still required for reading old simulation data

dir converter
dir deprecated
dir function
dir function
dir icetray
dir private
dir public
dir random_value
dir random_value
dir simclasses
dir simclasses
dir simclasses
dir util