dataclasses C++ API Reference

class AntennaKey
#include <AntennaKey.h>

Public Functions

inline AntennaKey()
inline AntennaKey(int stn, int ant)
inline ~AntennaKey()
inline void SetStationID(int stn)
inline void SetAntennaID(int ant)
inline int GetStationID() const
inline int GetAntennaID() const
inline bool operator==(const AntennaKey &rhs) const
inline bool operator!=(const AntennaKey &rhs) const
inline void operator=(const AntennaKey &rhs)

Private Functions

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

Private Members

int32_t stationID_
int32_t antennaID_

Friends

friend class icecube::serialization::access
struct bitmask

Public Functions

inline bitmask()
bitmask(unsigned length, bool set = true)
bitmask(const bitmask &other)
bitmask &operator=(const bitmask &other)
~bitmask()
void set_all()
void unset_all()
inline bool any() const
inline bool all() const
inline void set(const unsigned, bool)
inline bool get(const unsigned) const
unsigned sum() const
size_t size() const
bool operator==(const bitmask&) const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()
template<>
void save(icecube::archive::xml_oarchive &ar, unsigned version) const
template<>
void load(icecube::archive::xml_iarchive &ar, unsigned version)

Public Members

uint16_t size_
uint8_t padding_
mask_t *mask_

Friends

friend class icecube::serialization::access
union ChargeStamp

Public Members

uint16_t stop
uint16_t hlc_bit
uint16_t charge
uint16_t rel_time
struct I3SuperDSTSerialization::ChargeStamp::[anonymous] stamp
uint16_t code
struct I3SuperDSTSerialization::ChargeStamp::[anonymous] overflow
uint16_t raw
template<typename T>
class CompactVector : public std::vector<T>
#include <I3SuperDSTUtils.h>

Private Functions

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

Friends

friend class icecube::serialization::access
template<class StrictWeakOrdering>
class compare_nodes

Comparator class for two nodes of a tree (used for sorting and searching).

Public Functions

inline compare_nodes(StrictWeakOrdering comp)
inline bool operator()(const tree_node *a, const tree_node *b)

Private Members

StrictWeakOrdering comp_
class DeltaCompressor
#include <DeltaCompressor.h>

Compressor to perform Delta-Compression on series of int values.

Delta-Compression is used in IceCube to compress the digitized waveforms from the ATWDs and FADCs. These waveforms are contain 11 bit unsigned integers and the original algorithm compresses the deltas of single bins of the waveform with a maximal difference of 11 bits. In this implementtion the algorithm has been extended to allow to compress deltas of uo to 31-bits. For performance reasons, no sanity check is performed on the input values. If the compressor enconters uncompressable values or the compressed data can’t be decompressed an exception is thrown!

The DeltaCompressor can be used as follows:

#include <iostream>
#include <algorithm>
#include <iterator>
#include "dataclasses/physics/DeltaCompressor.h"
...
{
    I3DeltaCompression::DeltaCompressor compressor;
    compressor.compress( values );
    vector<unsigned int> compressed = compressor.getCompressed();

    std::cout << "The compressed waveform is:" << std::endl;
    std::copy( compressed.begin(),
               compressed.end(),
               std::ostrem_iterator<unsigned int>( std::cot, " " ) );

    compressor.reset();    // only necessary if you want to decompress
                           // a different waveform
    vector<int> decompressed;
    compressor.setCompressed( compressed );
    compressor.decompress( decompressed );

    std::cout << "The decompressed waveform is:" << std::endl;
    std::copy( decompressed.begin(),
               decompressed.end(),
               std::ostrem_iterator<int>( std::cot, " " ) );
}

The asymmetry between the compress and decompress method is by design to reduce the amount of copying od STL vectors. The implementation of the compressor expects the compressed values to be represented in the machines byteorder and will delivere a compressed stream of unsigned integers in the machines byteorder. If the compressed values must be portable between machines, the external program using this class, must take care of the correct byteorder.

Public Types

enum BTW

Enumeration of the variable bitwidth used.

Values:

enumerator Lv0
enumerator Lv1
enumerator Lv2
enumerator Lv3
enumerator Lv4
enumerator Lv5
enumerator Lv6

Public Functions

DeltaCompressor()

Default constructor. Initializes the bitwidth with Lv2.

void compress(const std::vector<int> &values)

Compresses the waveform passed in the vector of values. The compressed waveform is stored internally and can be retrieved using the the getCompressed() method. The internal state of the compressor is not reset by this call. This allows to compress several waveforms to the same internal compressed bitstream, by calling compress several times. The rationale behind this design is to allow for an emulation of the DOMs which combine all waveforms to on compressed stream.

Parameters:

values – The vector with the waveform to be compressed.

Throws:

A – std::domain_error is thrown in case of internal compression error.

void decompress(std::vector<int> &values)

Decompresses the internal compressed waveform and append the restored values to the vector passed by reference. If this vector already contains elements, the decompressed waveform will be appended. The decompressed wafeform will most likely have more values then the original waveform with the additional bins all having the same value as the last bin of the original waveform (deltas of 0). It is the responsibility of the caller to truncate this vector to the correct size.

Parameters:

values – A reference to a vector to which the decompressed waveform will be appended.

Throws:

A – std::domain_error is thrown in case of internal conpression error.

inline void reset()

Reset the internal state of the compressor by deleting the stored compressed waveform and resetting the variable bitwidth to the default value. q

inline const std::vector<unsigned int> &getCompressed()

Get a reference to the vector containing the compressed waveform.

Returns:

a const vector of unsigned integers representing the compressed bitstream.

inline void setCompressed(const std::vector<unsigned int> &vals)

Set the internal compressed waveform to the values of the passed vector. The waveform is copied to the internal representation.

Parameters:

vals – const vector representing a compressed waveform.

Private Functions

int getNextBtw(int btw) const

Utility function to get the next higher bitwidth.

Parameters:

btw – current bitwidth

Throws:

a – std::domain_error is thrown when the function is called with the highest btw or an invalid btw.

Returns:

next higher bitwidth

int getPrevBtw(int btw) const

Utility function to get the next lower bitwidth.

Parameters:

btw – current bitwidth

Throws:

a – std::domain_error is thrown when the function is called with the lowest btw or an invalid btw.

Returns:

next lower bitwidth

void compressDelta(int delta)

Write the compressed bits corresponding to a passed delta value.

Parameters:

delta – difference to previous bin to be written in compressed form.

void outputBits(int word, int len)

Output len bits of the word to the compressed bitstream.

Parameters:
  • word – Bits to write.

  • len – length of significant bits which should be written.

Private Members

int btw_
unsigned int offset_
unsigned int currCompressedValue_
std::vector<unsigned int> compressed_
std::vector<unsigned int>::iterator it_
struct DOMHeader

Public Members

uint16_t slop
uint16_t dom_id
class DroopedSPETemplate
#include <I3DOMCalibration.h>

Public Functions

inline DroopedSPETemplate(const SPETemplate &templ)
inline DroopedSPETemplate(const SPETemplate &templ, const SPETemplate &droopTempl, double tauFrac, double time1, double time2)
inline double operator()(double t)
bool operator==(const DroopedSPETemplate &templ) const
bool operator!=(const DroopedSPETemplate &templ) const
bool operator<(const DroopedSPETemplate &templ) const

Public Members

SPETemplate pulse
struct I3DOMCalibration::DroopedSPETemplate::droopParams droop
bool droopy

Private Functions

inline double SPEPulseShape(double t) const
inline double DroopReactionShape(double t, double tau) const
struct droopParams
#include <I3DOMCalibration.h>

Public Functions

inline droopParams()
inline droopParams(const SPETemplate &templ, double tauFrac, double time1, double time2)

Public Members

SPETemplate pulse
double tauFrac
double time1
double time2
template<typename Value>
class fast_iter : public TreeBase::Tree<T, Key, Hash>::iterator_base<fast_iter<Value>, Value, iterator_const_traits<Value>::TreeHashMapIter>
#include <I3MCTree.h>

Fast iterator: O(n) Note that there is no ordering, but this gives the fastest results

Public Functions

inline explicit fast_iter()
inline fast_iter(TreeValue &ext)
inline explicit fast_iter(const fast_iter<T> &iter)
inline fast_iter(const iterator_base<fast_iter<Value>, Value, TreeHashMapIter> &iter)
template<typename D, typename S>
inline fast_iter(const iterator_base<D, Value, S> &iter)
inline explicit fast_iter(TreeValue &ext, Value *v)
inline explicit fast_iter(TreeValue &ext, const Key &k)
template<typename D, typename S>
inline fast_iter<Value> &operator=(const iterator_base<D, Value, S> &iter)
inline operator fast_iter<const Value>() const

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<TreeHashMapIter, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline TreeHashMapIter first_()
inline void next_()

Private Functions

inline explicit fast_iter(TreeValue &ext, const TreeHashKey &k)

Friends

friend class Tree< T, Key, Hash >
friend class iterator_base< fast_iter< Value >, Value, TreeHashMapIter >
template<typename T, typename F>
class FFTDataContainer : public I3FrameObject
#include <FFTDataContainer.h>

Public Types

using SizeType = typename std::vector<T>::size_type

Public Functions

inline FFTDataContainer()
inline FFTDataContainer(const FFTDataContainer<T, F> &data)
inline FFTDataContainer(const I3AntennaWaveform<T> &timeSeries)
inline FFTDataContainer(const I3AntennaWaveform<F> &spectrum)
inline virtual ~FFTDataContainer()
inline unsigned int GetNyquistZone() const
inline void SetNyquistZone(unsigned int zone)
inline double GetFrequencyOfBin(typename I3AntennaWaveform<F>::SizeType bin) const
inline int GetBinOfFrequency(double frequency) const
inline const I3AntennaWaveform<T> &GetConstTimeSeries() const

read out the time series (read access)

inline I3AntennaWaveform<T> &GetTimeSeries()

read out the time series (write access)

inline I3AntennaWaveform<T> GetTimeSeriesPython()
inline const I3AntennaWaveform<F> &GetConstFrequencySpectrum() const

read out the frequency spectrum (read access)

inline I3AntennaWaveform<F> &GetFrequencySpectrum()

read out the frequency spectrum (write access)

inline const I3AntennaWaveform<F> GetFrequencySpectrumPython() const
inline void LoadTimeSeries(const I3AntennaWaveform<T> &trace)
inline void LoadFrequencySpectrum(const I3AntennaWaveform<F> &spec)
inline void PurgeData()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Types

enum eDomain

Values:

enumerator Time
enumerator Frequency
enumerator Both

Private Functions

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

Private Members

eDomain upToDateDomain_
unsigned int nyquistZone_
I3AntennaWaveform<T> timeSeries_
I3AntennaWaveform<F> frequencySpectrum_

Friends

friend class icecube::serialization::access
inline friend std::ostream &operator<<(std::ostream &os, const FFTDataContainer<T, F> &rhs)
class FFTWPlan
#include <FFTWPlan.h>

Public Functions

inline FFTWPlan()
FFTWPlan(unsigned int inN, fft::FFTType type, int sign = FFTW_FORWARD, unsigned int flag = FFTW_MEASURE)
inline ~FFTWPlan()
inline fft::FFTType GetType()
void CopyIntoPlan(double *arr, unsigned int n)
void CopyIntoPlanC(double arr[][2], unsigned int n)
void CopyIntoPlanC(std::complex<double> *arr, unsigned int n)
void CopyOutOfPlan(double *arr, bool norm = false)
void CopyOutOfPlanC(double arr[][2], bool norm = false)
void CopyOutOfPlanC(std::complex<double> *arr, bool norm = false)
void ExecutePlan()
void PrintPlan() const

Private Functions

void SetToNull()
void Free()

Private Members

fftw_plan thePlan_
bool planSet_
bool isExecuted_
fft::FFTType theType_
unsigned int inN_
unsigned int outN_
fftw_complex *inc_
fftw_complex *outc_
double *inr_
double *outr_
class fixed_depth_iterator : public tree<T, tree_node_allocator>::iterator_base
#include <tree.hh>

Iterator which traverses only the nodes at a given depth from the root.

Public Functions

fixed_depth_iterator()
fixed_depth_iterator(tree_node*)
fixed_depth_iterator(const iterator_base&)
fixed_depth_iterator(const sibling_iterator&)
fixed_depth_iterator(const fixed_depth_iterator&)
bool operator==(const fixed_depth_iterator&) const
bool operator!=(const fixed_depth_iterator&) const
fixed_depth_iterator &operator++()
fixed_depth_iterator &operator--()
fixed_depth_iterator operator++(int)
fixed_depth_iterator operator--(int)
fixed_depth_iterator &operator+=(unsigned int)
fixed_depth_iterator &operator-=(unsigned int)

Public Members

tree_node *first_parent_

Private Functions

void set_first_parent_()
void find_leftmost_parent_()
struct hash
#include <ModuleKey.h>

Public Functions

inline size_t operator()(const ModuleKey &key) const
class I3AMANDAAnalogReadout

Public Functions

inline I3AMANDAAnalogReadout()
~I3AMANDAAnalogReadout()
std::ostream &Print(std::ostream&) const
double GetFirstLE() const

Returns the earliest leading edge recorded by the DAQ

inline const std::vector<double> &GetLEs() const

Returns the series of leading edges

inline std::vector<double> &GetLEs()
inline const std::vector<double> &GetTEs() const

Returns the series of trailing edges

inline std::vector<double> &GetTEs()
const std::vector<double> &GetTOTs() const

Returns the time differences between leading and trailing edges. If some edges are missing, the series may be shorter than expected.

inline const std::vector<int> &GetHitNumbers() const
inline std::vector<int> &GetHitNumbers()
inline const std::vector<int> &GetParentIDs() const
inline std::vector<int> &GetParentIDs()
inline double GetADC() const

Alternate name for the amplitude

inline void SetADC(double adc)
inline double GetAmplitude() const

Returns the single amplitude recorded for the event

inline void SetAmplitude(double amp)
inline bool GetOverflow() const

Indicates whether edge pairs were lost due to buffer overflow. If true, the earliest edges are missing (FIFO buffer). The buffer is 16 edges (8 pairs) deep.

inline void SetOverflow(bool overflow)
inline bool IsCalibrated() const

Indicates whether this object stores calibrated or uncalibrated data.

inline void SetCalibrated(bool is_calib)

Private Functions

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

Private Members

std::vector<double> LEs_
std::vector<double> TEs_
mutable double firstLE_
mutable std::vector<double> TOTs_
std::vector<int> HitNumbers_
std::vector<int> ParentIDs_
double adc_
mutable bool processFirstLE_
mutable bool processTOTs_
bool overflow_
bool is_calib_

Friends

friend class icecube::serialization::access
struct I3AMANDAOM_XTalk
#include <Deprecated.hpp>

Public Functions

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

Public Members

OMKey receiver
double timehigh
double timelow
double width
double threshold
struct I3AMANDAOMCalibration
#include <Deprecated.hpp>

Public Functions

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

Public Members

double adc_a0
double adc_beta
double tdc_alpha
double tdc_beta
double tdc_t0
int tdc_pol
double tot_beta
double tot_tot0
int tot_pol
double omo_a
double omo_b
double omo_c
double omo_d
double omo_e
double omo_lowlim
double omo_highlim
double pe_area
std::vector<I3AMANDAOM_XTalk> xtalk_receivers
class I3AntennaChannel : public I3FrameObject
#include <I3AntennaChannel.h>

Public Functions

I3AntennaChannel()
I3AntennaChannel(const I3AntennaChannel &antData)
I3AntennaChannel(const FFTData &fftData)
inline ~I3AntennaChannel()
double GetMaxAmplitude() const
double GetTimeAtMaximum() const
FFTData &GetFFTData()
const FFTData &GetConstFFTData() const
std::ostream &Print(std::ostream&) const

Private Functions

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

Private Members

double maxAmplitude_
double timeAtMax_
bool isUpToDate_
FFTData fftData_

Friends

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

Public Types

enum AntennaType

Values:

enumerator Unknown
enumerator SKALA2
enumerator SKALA4
enumerator AntennaTypeCount

Public Functions

inline I3AntennaGeo()
~I3AntennaGeo()
inline void SetPosition(I3Position &pos)
inline I3Position GetPosition() const
inline void SetOrientation(I3Orientation &orient)
inline I3Orientation GetOrientation() const
inline void SetAntennaType(AntennaType type)
inline AntennaType GetAntennaType() const
inline void SetAntennaName(std::string name)
inline std::string GetAntennaName() const
inline void SetHeightAboveSnow(double height)
inline double GetHeightAboveSnow() const
inline void SetCableLength(double length)
inline double GetCableLength() const
inline bool operator==(const I3AntennaGeo &rhs) const
inline bool operator!=(const I3AntennaGeo &rhs) const
std::ostream &Print(std::ostream&) const

Private Functions

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

Private Members

I3Position position_
I3Orientation orientation_
AntennaType antennaType_
std::string antennaName_
double heightAboveSnow_
double cableLength_

Friends

friend class icecube::serialization::access
template<typename T>
class I3AntennaWaveform : public I3FrameObject

Public Types

typedef std::vector<T>::size_type SizeType
typedef std::vector<T>::iterator Iterator
typedef std::vector<T>::const_iterator ConstIterator

Public Functions

inline I3AntennaWaveform()
inline ~I3AntennaWaveform()
inline I3AntennaWaveform(const SizeType size, const double binning, const T &init = T())
inline Iterator Begin()
inline Iterator End()
inline ConstIterator Begin() const
inline ConstIterator End() const
inline double GetBinning() const
inline void SetBinning(const double binning)
inline SizeType GetSize() const
inline double GetOffset() const
inline void SetOffset(double offset)
inline void CopyIntoTrace(const T *toCopy, const SizeType size)
inline void PushBack(const T &value)
inline void PopBack()
inline void Swap(I3AntennaWaveform<T> &t)
inline I3AntennaWaveform<T> GetSubset(unsigned int minBin, unsigned int maxBin) const
inline void Clear()
inline bool IsSameTypeAs(const I3AntennaWaveform<T> &t) const
inline bool operator==(const I3AntennaWaveform<T> &t) const
inline bool operator!=(const I3AntennaWaveform<T> &trace) const
I3AntennaWaveform<T> operator+(const I3AntennaWaveform<T> &trace) const
I3AntennaWaveform<T> operator-(const I3AntennaWaveform<T> &trace) const
I3AntennaWaveform<T> &operator+=(const I3AntennaWaveform<T> &trace)
I3AntennaWaveform<T> &operator-=(const I3AntennaWaveform<T> &trace)
I3AntennaWaveform<T> &operator+=(const T value)
I3AntennaWaveform<T> &operator-=(const T value)
I3AntennaWaveform<T> &operator*=(const double value)
I3AntennaWaveform<T> &operator/=(const double value)
I3AntennaWaveform<T> operator*(const double value) const
I3AntennaWaveform<T> operator/(const double value) const
inline T &operator[](const int i)
inline const T &operator[](const int i) const
inline T GetBin(const int i) const
inline void SetBin(const int i, T val)
inline std::ostream &Print(std::ostream &oss) const override
inline I3AntennaWaveform(const I3AntennaWaveform<T> &wvf)
inline void Roll(int i)
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Functions

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

Private Members

std::vector<T> dataArray_
double binning_
double offset_

Friends

friend class icecube::serialization::access
inline friend std::ostream &operator<<(std::ostream &os, const I3AntennaWaveform<T> &rhs)
class I3Calibration : public I3FrameObject
#include <I3Calibration.h>

Public Functions

I3Calibration()
~I3Calibration()
inline bool operator==(const I3Calibration &rhs)
inline bool operator!=(const I3Calibration &rhs)

Public Members

I3Time startTime
I3Time endTime
I3DOMCalibrationMap domCal
I3VEMCalibrationMap vemCal

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()

Friends

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

Public Functions

inline I3ComplexVector()

Default constructor

inline I3ComplexVector(std::complex<double> x, std::complex<double> y, std::complex<double> z)

Constructor from cartesian coordinates

inline I3ComplexVector(const I3ComplexVector &p)

Copy constructor

explicit I3ComplexVector(const I3Direction &dir)
explicit I3ComplexVector(const I3Position &pos)
inline std::complex<double> GetX() const

Provide X of position in cartesian ref frame

inline std::complex<double> GetY() const

Provide Y of position in cartesian ref frame

inline std::complex<double> GetZ() const

Provide Z of position in cartesian ref frame

inline void SetX(std::complex<double> x)

Set X position while keeping Y,Z constant.

inline void SetY(std::complex<double> y)

Set Y position while keeping X,Z constant.

inline void SetZ(std::complex<double> z)

Set Z position while keeping X,Y constant.

I3ComplexVector RotateX(double angle)

Rotate position around X axis by angle

I3ComplexVector RotateY(double angle)

Rotate position around Y axis by angle

I3ComplexVector RotateZ(double angle)

Rotate position around Z axis by angle

inline double Magnitude() const

Computes the distance from this position to the origin of the coordinate system (it’s magnitude as a vector)

I3ComplexVector GetUnitVector() const
void Normalize()
inline I3ComplexVector operator-() const

Vector inversion (makes the vector point in the opposite direction)

inline I3ComplexVector &operator+=(const I3ComplexVector &rhs)

Vector addition

inline I3ComplexVector &operator-=(const I3ComplexVector &rhs)

Vector subtraction

inline I3ComplexVector operator+(const I3ComplexVector &rhs) const

Vector addition

inline I3ComplexVector operator-(const I3ComplexVector &rhs) const

Vector subtraction

inline std::complex<double> operator*(const I3ComplexVector &rhs) const

Scalar (dot) product

inline std::complex<double> Dot(const I3ComplexVector &rhs) const
inline I3ComplexVector &operator*=(std::complex<double> a)

Multiplication by a single value

inline I3ComplexVector &operator/=(std::complex<double> a)

Division by a single value

inline I3ComplexVector operator*(std::complex<double> a) const

Multiplication by a single value

inline I3ComplexVector operator/(std::complex<double> a) const

Division by a single value

inline I3ComplexVector &operator*=(double a)

Multiplication by a single value

inline I3ComplexVector &operator/=(double a)

Division by a single value

inline I3ComplexVector operator*(double a) const

Multiplication by a single value

inline I3ComplexVector operator/(double a) const

Division by a single value

inline bool operator==(const I3ComplexVector &rhs) const
inline bool operator!=(const I3ComplexVector &rhs) const
std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)

Protected Attributes

std::complex<double> x_

cartesian (car)

std::complex<double> y_
std::complex<double> z_

Private Functions

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

Friends

friend class icecube::serialization::access
inline friend std::ostream &operator<<(std::ostream &os, const I3ComplexVector &rhs)
class I3DetectorStatus : public I3FrameObject
#include <I3DetectorStatus.h>

Public Functions

inline I3DetectorStatus()
~I3DetectorStatus()
inline bool operator==(const I3DetectorStatus &rhs)
inline bool operator!=(const I3DetectorStatus &rhs)

Public Members

I3Time startTime
I3Time endTime
I3DOMStatusMap domStatus
I3TriggerStatusMap triggerStatus
std::string daqConfigurationName

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()

Friends

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

The basic direction class for IceCube.

All directions in IceCube should be written with this class. Directions can be given in zenith/azimuth or direction cosines. Optionally, they can also be set with theta/phi.

Theta/Phi angles refer to the direction of travel of the particle &#8212; the direction that the particle is going. If you consider the direction vector which starts at the origin, theta is the angle from the +z axis to that vector; phi is the angle from the +x axis to the x-y projection of that vector.

The direction cosines (x,y,z) refer to this same direction vector &#8212; the vector of the direction of travel of the particle; they simply describe the end point of that vector. When you set a direction with the direction cosines, they don’t have to be normalized, but when you get them out (with GetX(), GetY(), GetZ()) they will be normalized to 1.

Zenith/Azimuth angles refer to the direction which is opposite to the particle’s direction; i.e. they refer to the direction the particle (track) came from. If you consider this “opposite” direction vector, zenith is the angle from the +z axis to that vector; azimuth is the angle from the +x axis to the x-y projection of that vector.

See the graphic of the definitions of Zenith/Azimuth and theta/Phi direction angles: https://wiki.icecube.wisc.edu/index.php/I3Direction

Todo:

implement “print out” of all information in a uniform way…

ensure that the temporary data isn’t written to disk.

Public Functions

inline I3Direction()
inline I3Direction(double zen, double azi)

Additional constructor: 2 arguments mean construct dir. with zen,azi

inline I3Direction(double x, double y, double z)

Additional constructor: 3 arguments mean construct dir. with x,y,z

explicit I3Direction(const I3Position&)
std::ostream &Print(std::ostream&) const override
void SetThetaPhi(double theta, double phi)

Store direction with theta, phi

inline double GetZenith() const

Provide Zenith of direction

inline double GetAzimuth() const

Provide Azimuth of direction

inline double GetX() const

Provide X of direction in cartesian ref frame

inline double GetY() const

Provide Y of direction in cartesian ref frame

inline double GetZ() const

Provide Z of direction in cartesian ref frame

inline double CalcTheta() const

Calculate Theta of direction

inline double CalcPhi() const

Calculate Phi of direction

void RotateX(double angle)

Rotate direction around X axis by angle

void RotateY(double angle)

Rotate direction around Y axis by angle

void RotateZ(double angle)

Rotate direction around Z axis by angle

inline I3Direction operator-() const

Vector inversion (makes the vector point in the opposite direction)

inline I3Direction Cross(const I3Direction &d) const

Cross product of this x d

I3Position Cross(const I3Position&) const

Vector (cross) product

inline double operator*(const I3Direction &other) const

Scalar (dot) product

double operator*(const I3Position &other) const

Scalar (dot) product

I3Position operator*(double) const

Multiplication by a scalar

I3Position operator/(double) const

Division by a scalar

inline bool operator==(const I3Direction &rhs) const
inline bool operator!=(const I3Direction &rhs) const
inline double Angle(const I3Direction &rhs) const

returns the angle between in two I3Directions

Returns:

the angle in rad (I3native units)

Protected Attributes

double zenith_

direction coordinates &#8212; spherical

double azimuth_
mutable double xDir_

direction coordinates &#8212; cartesian (direction cosines)

mutable double yDir_
mutable double zDir_
mutable bool isCalculated_

Did we calculate the directions before?

Private Functions

void CalcCarFromSph() const

Change zenith,azimuth coordinates into x,y,z directional coordinates. The three numbers x,y,z are calculated to add up (in quadrature) to 1. theta=pi-zenith and phi=azimuth-pi in these IceCube coordinates.

void CalcSphFromCar()

Change x,y,z directional coordinates to zenith,azimuth coordinates. zenith=pi-theta and azimuth=phi+pi in these IceCube coordinates. The three numbers DO NOT have to add up (in quadrature) to 1. Even if they don’t, the direction that they define is stored. SO BE CAREFUL IF YOU SPECIFY THE DIRECTION IN THIS WAY!

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

Friends

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

Class that stores the calibration information for a DOM.

This class stores the information from the Calibration stream.

ATTENTION: Calibration information is set assuming the bin number as it is in the calibration database (reversed in time for bins 0-127). Calibration information is fetched by the time-ordered bin numbers.

Nothing here really has units. Most are fits/offsets that convert values for later storage (at that SHOULD use I3Units)

Author

Tom McCauley tpmccauley@lbl.gov

Author

Erik Blaufuss <blaufuss at icecube umd edu>

Public Types

enum ToroidType

Values:

enumerator OLD_TOROID
enumerator NEW_TOROID

Public Functions

I3DOMCalibration()
~I3DOMCalibration()
inline double GetTemperature() const

Get MB Temperature at time of calibration

void SetTemperature(double temperature)

Set MB Temperature at time of calibration

inline LinearFit GetTransitTime() const

Get DOMCAL measured PMT transit time

inline void SetTransitTime(LinearFit pmtTransitTime)

Set DOMCAL measured PMT transit time

inline LinearFit GetHVGainFit() const

Get DOMCAL measured PMT gain/HV relation: log(10)Gain = slope*log(10)V + intercept

inline void SetHVGainFit(LinearFit hvGainRelation)

Set DOMCAL measured PMT gain/HV relation

inline double GetFADCGain() const

Get FADC Gain- relation between measured counts and mV.

inline double GetFADCBeaconBaseline() const

Get the FADC baseline in data-taking mode, as measured from beacon launches.

Note: The beacon baseline depends implicitly on the front-end bias voltage. If the bias voltage is ever changed, new baselines will have to be collected.

inline LinearFit GetFADCBaselineFit() const

Get FADC Pedestal- baseline point from which waveforms start.

inline double GetFADCDeltaT() const

Get the FADC intrinsic time offset (in units of time)

inline double GetFrontEndImpedance() const

Get the Front End impedance (units are resistance)

inline TauParam GetTauParameters() const

Get parameters for droop correction on the baseline

void SetTauParameters(TauParam tauparameters)

Set parameters for droop correction on the baseline

inline void SetFADCGain(double gain)

Set FADC calibration parameters. Currently the FADC calibration is a work in progress and a moving target so this is only a tentative interface -tpm

inline void SetFADCBeaconBaseline(double bsl)
inline void SetFADCBaselineFit(LinearFit basefit)
inline void SetFADCDeltaT(double deltaT)
inline void SetFrontEndImpedance(double feImped)
double GetATWDGain(unsigned int channel) const

Get gain and error on gain for ATWD by channel

void SetATWDGain(unsigned int channel, double gain)

Set gain and error on gain for ATWD (specified by channel).

double GetATWDDeltaT(unsigned int chip) const

Get atwd DeltaT by chip

void SetATWDDeltaT(unsigned int chip, double deltat)

Set atwd DeltaT by chip

QuadraticFit GetATWDFreqFit(unsigned int chip) const

Get fit parameters from domcal file <atwdfreq> which is the sampling rate calibration for each ATWD chip 0 or 1

void SetATWDFreqFit(unsigned int chip, QuadraticFit fitParams)

Set parameters for sampling rate calibration for each ATWD chip as a function of the trigger_bias DAC setting

double GetATWDBinCalibSlope(unsigned int id, unsigned int channel, unsigned int bin) const

Get the fit parameter for the bin calibration. This is really the conversion factor from counts to volts.

void SetATWDBinCalibSlope(unsigned int id, unsigned int channel, unsigned int bin, double slope)

Sets the parameter for conversion of count to voltage for each ATWD, each ATWD channel, and each ATWD bin.

inline std::string GetDOMCalVersion() const

Get/Set the version of DOMCal.

inline void SetDOMCalVersion(std::string version)
double GetATWDBeaconBaseline(unsigned int id, unsigned int channel) const

Get the average ATWD baseline in data-taking mode, as measured from beacon launches.

Note: The beacon baseline depends implicitly on the front-end bias voltage. If the bias voltage is ever changed, new baselines will have to be collected.

void SetATWDBeaconBaseline(unsigned int id, unsigned int channel, double bsl)
inline void SetSPEDiscCalib(LinearFit speDiscrimCalib)

Get/Set functions for speDiscrimCalib

inline LinearFit GetSPEDiscCalib() const
inline void SetMPEDiscCalib(LinearFit mpeDiscrimCalib)

Get/Set functions for mpeDiscrimCalib

inline LinearFit GetMPEDiscCalib() const
inline void SetPMTDiscCalib(LinearFit pmtDiscrimCalib)

Get/Set functions for pmtDiscrimCalib

inline LinearFit GetPMTDiscCalib() const
inline double GetRelativeDomEff() const

Get/set for relativeDomEff

inline void SetRelativeDomEff(double relaeff)
inline double GetDomNoiseRate() const

Get/set for DOM noise rate

inline void SetDomNoiseRate(double noiserate)
inline double GetDomNoiseThermalRate() const

Noise: Thermal DOM noise rate, in Hz,

inline void SetDomNoiseThermalRate(double thermalrate)
inline double GetDomNoiseDecayRate() const

Noise: Correlated decay rate for DOM in Hz,

inline void SetDomNoiseDecayRate(double decayrate)
inline double GetDomNoiseScintillationMean() const

Noise: mean of the lognormal describing scintillation in Log10(dt/ns) for DOM

inline void SetDomNoiseScintillationMean(double scintillationmean)
inline double GetDomNoiseScintillationSigma() const

Noise: sigma of the lognormal describing scintillation in Log10(dt/ns) for DOM

inline void SetDomNoiseScintillationSigma(double scintillationsigma)
inline double GetDomNoiseScintillationHits() const

Noise: mean number of hits from the scintillation lognormal component for DOM

inline void SetDomNoiseScintillationHits(double scintillationhits)
DroopedSPETemplate DiscriminatorPulseTemplate(bool droopy = false) const
DroopedSPETemplate ATWDPulseTemplate(unsigned int channel = 0, bool droopy = false) const
DroopedSPETemplate FADCPulseTemplate(bool droopy = false) const
template<class Archive>
void serialize(Archive &ar, unsigned version)
inline ToroidType GetToroidType() const
inline double GetMeanATWDCharge() const

ATWD and FADC-specific corrections to the SPE charge distribution

inline double GetMeanFADCCharge() const
inline bool IsMeanATWDChargeValid() const

In dataclasses we use NaN to denote “invalid” however in the JSON file invalid entries are set to 0. To cover both cases we check that it’s finite and greater than 0.

inline bool IsMeanFADCChargeValid() const
inline void SetMeanATWDCharge(double charge)
inline void SetMeanFADCCharge(double charge)
inline const SPEChargeDistribution &GetCombinedSPEChargeDistribution() const
inline void SetCombinedSPEChargeDistribution(const SPEChargeDistribution &fit)
inline bool operator==(const I3DOMCalibration &rhs) const
inline bool operator!=(const I3DOMCalibration &rhs) const

Private Functions

double SPEPulseTemplate(double t, const SPETemplate &templ, const SPETemplate &droop, bool droopy) const

Private Members

double droopTimeConstants_[2]
double temperature_
double fadcGain_

Gain and pedestal values for FADC

LinearFit fadcBaselineFit_
double fadcBeaconBaseline_

Pedestal in data-taking mode, as measured from beacon launches. Note : The beacon baseline depends implicitly on the front-end bias voltage. If the bias voltage is ever changed, new baselines will have to be collected.

double fadcDeltaT_

FADC inherent time offset (ns)

double frontEndImpedance_

Front-end impedance (Ohms)

TauParam tauparameters_

Parameters for droop correction

double ampGains_[3]

Gain for ATWD channels. The key corresponds to the channel (0,1,2)

QuadraticFit atwdFreq_[2]

Linear fit for each ATWD sampling frequency, one for each chip (0,1) As of DOMCAL 5.14, this will be a quadratic fit. So, use a Quadratic fit and assume a linear fit if quadFitC==NULL.

double atwdBins_[2][N_ATWD_CHANNELS][N_ATWD_BINS]

Slope of the linear fit for the bin calibration i.e. the values needed to convert from counts to voltage for each bin in the ATWD.

LinearFit pmtTransitTime_

DOMCAL calculated pmt transit time fit function.

LinearFit hvGainRelation_
std::string domcalVersion_

Version of DOMCal used. For now, this only affects the FE load impedance. It might be useful for FADC calibration as well. Use a std::string since we may have version numbers like 6.1.2, e.g.

double atwdBeaconBaselines_[2][N_ATWD_CHANNELS]

Dumb-ol-array to hold the average baseline corrections measured from beacon launches. [atwd chip id (0-1)] [ gain channel(0-2) ]

Note : The beacon baseline depends implicitly on the front-end bias voltage. If the bias voltage is ever changed, new baselines will have to be collected.

double atwdDeltaT_[2]

Store the ATWD time offset from domcal calibration. the ATWD used in transit time calibratin will be 0.0, while the other could have up to a few ns offset…

LinearFit speDiscrimCalib_

The SPE discriminator calibration. A linear fit between DAC(9) value and charge level in pC.

LinearFit mpeDiscrimCalib_

The MPE discriminator calibration. A linear fit between DAC(8) value and charge level in pC.

LinearFit pmtDiscrimCalib_

A refined SPE discriminator calibration generated using actual PMT pulses. A linear fit between DAC(8) value and charge level in pC.

double relativeDomEff_

Relative DOM efficiency, normalized to 1.0 for the average dom.

double noiseRate_

Measure DOM noise rate, in Hz, Deprecated: used in old noise-generator

double noiseThermalRate_

Thermal DOM noise rate, in Hz,

double noiseDecayRate_

Correlated noise decay rate for DOM in Hz,

double noiseScintillationMean_

Noise: mean of the lognormal describing scintillation in Log10(dt/ns) for DOM

double noiseScintillationSigma_

Noise: sigma of the lognormal describing scintillation in Log10(dt/ns) for DOM

double noiseScintillationHits_

Noise: mean number of hits from the scintillation lognormal component for DOM

SPEChargeDistribution combinedSPEFit_

Combined-fit SPE distribution function (exponential1 + exponential2 + Gaussian)

double meanATWDCharge_

ATWD and FADC-specific corrections to the SPE charge distribution

double meanFADCCharge_

Private Static Attributes

static const unsigned int N_ATWD_BINS = 128
static const unsigned int N_ATWD_CHANNELS = 3

Friends

friend class I3DOMCalibrationDiff
class I3DOMLaunch
#include <I3DOMLaunch.h>

Public Types

enum ATWDselect

Values:

enumerator UNKNOWN_CHIP
enumerator ATWDa
enumerator ATWDb
enum TriggerType

Values:

enumerator TEST_PATTERN
enumerator CPU_REQUESTED
enumerator SPE_DISCRIMINATOR_TRIGGER
enumerator FLASHER_BOARD_TRIGGER
enumerator MPE_DISCRIMINATOR_TRIGGER
enumerator ONBOARD_LED
enum TriggerMode

Values:

enumerator UNDEFINED
enumerator REQUIRE_BOTH

Set if signals from both upper and lower DOMs are required to satisfy local coincidence

enumerator FR_RUN

Set if flasher board run is in the progress

enumerator LC_LOWER

Set if local coincidence requirement is met, and LC has been configured to be received by the lower DOM

enumerator LC_UPPER

Set if local coincidence requirement is met, and LC has been configured to be received by the upper DOM

enumerator UNKNOWN_MODE

in case of an invalid trigger setting, the UNKNOWN_MODE is set and the test pattern trigger is used

enumerator SLC_READOUT

Set if the DOM triggered with SLC condition met

enumerator MIN_BIAS

Set if a launch is triggered by a min bias hit (q.v. IceTop calibration/monitoring)

enumerator LAST_TRIGGER_SITUATION

limit this enum on a 16 bit value range

Public Functions

I3DOMLaunch()

Default constructor.

~I3DOMLaunch()

Destructor.

inline double GetStartTime() const

Return ATWD/FADC launch time.

inline void SetStartTime(double starttime)

Set ATWD/FADC launch time.

inline TriggerType GetTriggerType() const

Return the trigger type/why this launch was recorded (SPE_DISCRIMINATOR_TRIGGER is the standard ‘physics data’).

inline void SetTriggerType(TriggerType trigger)

Specify the trigger type/why this launch was recorded.

inline TriggerMode GetTriggerMode() const

Signals the special trigger circumstances.

Note: In testdomapp, the current FPGA implementation in the DOM, there is no information available to indicate which neighbouring DOM caused the LC requirement to be met. Rather, modes LC_UPPER and LC_LOWER reflect how the DOM was configured at the time this launch was recorded. So if signals from both upper and lower DOMs are required to satisfy local coincidence, LC_UPPER and LC_LOWER will be set.

inline void SetTriggerMode(TriggerMode situation)

Sets the special trigger circumstances.

inline ATWDselect GetWhichATWD() const

Return which ATWD.

inline void SetWhichATWD(ATWDselect WhichATWD)

Set which ATWD.

inline const std::vector<int> &GetRawATWD(unsigned int channel) const

Return raw ATWD by channel number

inline std::vector<int> &GetRawATWD(unsigned int channel)
inline const std::vector<std::vector<int>> &GetRawATWDs() const
inline std::vector<std::vector<int>> &GetRawATWDs()
inline void SetRawATWD(std::vector<std::vector<int>> &v)
inline const std::vector<int> &GetRawFADC() const

Return raw FADC waveform.

inline std::vector<int> &GetRawFADC()
inline void SetRawFADC(std::vector<int> &v)
inline bool GetLCBit() const

Return local coincidence bit.

inline void SetLCBit(bool LCBit)

Set the local coincidence bit.

inline bool GetIsPedestalSub() const

return Pedestal bool.

inline void SetIsPedestalSub(bool Pedestal)

Set the pedestal bool

inline const std::vector<int> &GetRawChargeStamp() const

Return the raw charge stamp.

inline std::vector<int> &GetRawChargeStamp()
inline unsigned int GetChargeStampHighestSample() const

Return charge stamp highest sample

inline void SetChargeStampHighestSample(unsigned int highsample)

Set the charge stamp highest sample

inline unsigned int GetRawATWDChargeStamp() const

Return/Set ATWDCharge stamp, used for IceTop style SLC readout

inline void SetRawATWDChargeStamp(unsigned int chargesum)
inline unsigned int GetWhichATWDChargeStamp() const

Return/Set ATWDCharge channel (which ATWD was used), used for IceTop style SLC readout

inline void SetWhichATWDChargeStamp(unsigned int channelid)
std::ostream &Print(std::ostream&) const

Private Functions

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

Private Members

double startTime_

This is the time (in nsec) in 25 nsec units, of the DOM clock which launches the ATWD (launch is synchronized to the first clock transition AFTER the discriminator fires

std::vector<std::vector<int>> rawATWD_

Raw ATWD channel 0 to 3

std::vector<int> rawFADC_

This holds the 40 MHz FADC data

std::vector<int> rawChargeStamp_

Raw course charge stamp These values are already unpacked to full 10-bit numbers

TriggerType trigger_

This represents the trigger type

TriggerMode mode_

This signals special trigger circumstances

ATWDselect whichATWD_

This tells which ATWD in the DOM was used

unsigned int chargeStampHighestSample_

chargeStampHighestSample runs from 1-16, and points to the highest fADC sample in the first 16 samples; this is from the charge stamp

unsigned int rawATWDChargeStamp_

Places to store the IceTop-style SLC radouts rawATWDChargeStamp_ : Sum of all 128 channels in selected ATWD, after pedestal sub.

unsigned int whichATWDChargeStamp_

Places to store the IceTop-style SLC radouts whichATWDChargeStamp_ : which of the 3 ATWD channels was used in sum

bool localCoincidence_

This holds the local coincidence bit

bool pedestal_

pedestal_ is a bool that tells you if the pedestal_ has or has not been subtracted from the waveforms. This is only for delta-compressed waveforms. True means pedestal has been subtracted. False means it has not been subtracted.

Friends

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

Public Types

enum TrigMode

The different kinds of triggers that can be used for the dom The standard data-taking operation is SPE

Values:

enumerator UnknownTrigMode
enumerator TestPattern
enumerator CPU
enumerator SPE
enumerator Flasher
enumerator MPE
enum LCMode

This controls how far the local coincidence signal is sent and received Turns out you can not encode SLC active or not here. IF SoftLC is set here, then ONLY SLC hits are to be expected. There is a SLCActive bool now in the this struct.

Each dom has two LC settings: lcMode - how the dom is configured to listen for LC signals txMode - how the dom is configured to generate LC signals

Values:

enumerator UnknownLCMode
enumerator LCOff
enumerator UpOrDown
enumerator Up
enumerator Down
enumerator UpAndDown
enumerator SoftLC
enum OnOff

There is also provision to turn on or off various settings in the DOM

Values:

enumerator Unknown
enumerator Off
enumerator On
enum DOMGain

IceTop DOMs can be a “high gain” or a “low gain” variety all InIce DOMs are “high gain”

Values:

enumerator UnknownGainType
enumerator High
enumerator Low
enum CableType

Whether the DOM has a terminated (“A” or “T”) or unterminated (“B” or “U”) cable. Perhaps this should go in I3OMGeo? Maybe not, since that class could deal with AMANDA OMs and this only with IceCube DOMs. Perhaps a bool would work here, but I’m not sure what the story is with IceTop DOMs. For now keep the “don’t know” option.

Values:

enumerator UnknownCableType
enumerator Terminated
enumerator Unterminated

Public Functions

inline I3DOMStatus()
~I3DOMStatus()
inline bool operator==(const I3DOMStatus &rhs) const
inline bool operator!=(const I3DOMStatus &rhs) const

Public Members

TrigMode trigMode

DOM internal trigger mode

LCMode lcMode

LC RX mode: hard, soft, none, etc: how this dom listens for LC info

LCMode txMode

LC TX mode: hard, soft, none, etc: how this dom broadcasts LC info

unsigned int lcSpan

Number of nearest neighbors to consider in LC search.(1,2,3 or 4)

double lcWindowPre

Local coincidence window size, before ATWD launch window

double lcWindowPost

Local coincidence window size, after ATWD launch window

double pmtHV

Real operating PMT HV (Volts)

double speThreshold

Single PE (SPE) discriminator level.

double fePedestal

the Pedestal voltage of the analog front end.

double dacTriggerBias0

Sets ATWD0 sampling speed. Higher DAC setting is faster sample rate.

double dacTriggerBias1

Sets ATWD1 sampling speed. Higher DAC setting is faster sample rate.

double dacFADCRef

FADC_DAC_REF - reference setting for FADC baseline

double mpeThreshold

Multiple PE (MPE) discriminator level.

unsigned int nBinsATWD0

NBins per Engineering readout. Keep in mind, delta-compressed data automatically adjusts number of readouts per Launch based on waveform size, but if present, should always be 128 samples.

unsigned int nBinsATWD1
unsigned int nBinsATWD2
unsigned int nBinsATWD3
unsigned int nBinsFADC
OnOff statusATWDa
OnOff statusATWDb
OnOff statusFADC
OnOff deltaCompress

IS the dom configured to make delta-compression readouts?

OnOff fbState

Flasher board state and flasher settings

unsigned int fbBrightness
unsigned int fbLength
unsigned int fbDelay
unsigned int fbMask
unsigned int fbRate
DOMGain domGainType

Is this DOM a high gain or low gain

CableType cableType

Cable type: unknown, terminated, unterminated

bool SLCActive

SLCActive - bool to indicate if SLC readouts are active as well as the HLC readouts described above.

Private Functions

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

Friends

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

The header for data on the Event stream.

Supposed to be a header for the event that you can store in a file if you don’t want to store the event. It’s supposed to have enough data to reconstruct the full event from the database

Public Types

enum State

Values:

enumerator UNKNOWN_STATE
enumerator OK
enumerator CONFIG_IN_TRANSITION

Public Functions

I3EventHeader()
~I3EventHeader()
std::ostream &Print(std::ostream&) const override
inline bool operator==(const I3EventHeader &other) const
inline bool operator!=(const I3EventHeader &other) const
inline I3Time GetStartTime() const
inline void SetStartTime(I3Time time)
inline I3Time GetEndTime() const
inline void SetEndTime(I3Time time)
inline unsigned GetRunID() const
Returns:

the run id for the event

inline void SetRunID(unsigned runid)
Parameters:

runid – the new run id for the event

inline unsigned GetSubRunID() const
Returns:

the subrun id for the event

inline void SetSubRunID(unsigned subrunid)
Parameters:

subrunid – the new subrun id for the event

inline unsigned GetEventID() const
Returns:

the event id for this event

inline void SetEventID(unsigned eventid)
Parameters:

eventid – the new event id for the event

inline unsigned GetSubEventID() const
Returns:

the subevent id for this subevent

inline void SetSubEventID(unsigned eventid)
Parameters:

eventid – the new subevent id for the subevent

inline std::string GetSubEventStream() const
Returns:

the subevent stream description

inline void SetSubEventStream(const std::string &desc)
Parameters:

desc – the new subevent stream description

inline unsigned GetState() const
Returns:

the state for the event

inline void SetState(State state)
Parameters:

state – the new state for the event

inline const std::string GetDataStream()
Returns:

the name of the stream this header is for…. “Physics”

Private Functions

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

Private Members

unsigned runID_

Unique identifier assigned sequentially to every run the DAQ has ever recorded.

unsigned subRunID_

Unique identifier assigned sequentially by the DAQ to every configuration change which occurs during a single run. The subRunID is almost always going to be 0.

The DAQ starts each run with subRunID=0 and only increments it when the run configuration changes. Since, flasher runs are the only time when more than one configuration is used, they are the only time you will see a non-zero subRunID.

SubRunID is often confused with PFFilt file number. Pnf breaks up both its PFRaw and PFFilt output stream into multiple files for transmission over the satellite and storage. These file partitions are based solely on the size of the file and have no significance to the data or the DAQ. The file number is not recorded anywhere in the frame and cannot easily be added in the frame. Also note that since PnF uses a different writer module to write PFRaw and PFFilt files that there will be a different number of PFRaw and PFFilt files and no correspondence between which file an event will land between the two output streams.

Experimental data filenames will often contain three values: the runID, the subRunID, and the PFFilt file number. But since the subRun is almost always 0 it often gets confused with the PFFilt file number. For example the filename PFFilt_PhysicsFiltering_Run00136690_Subrun00000000_00000205.tar.bz2 indicates a runID of 136690, a subRunID of 0, and a PFFilt file number of 205 but will often be erroneously referred to as subrun 205.

unsigned eventID_

Unique identifier assigned by the DAQ to every event (Q-frame) in the given run.

unsigned subEventID_

Unique identifier assigned to every P-frame by the splitter.

This quantity is not assigned by the DAQ. When Q-frames are split into multiple P-frames by a splitter module this is the unique number assigned to each P-frame.

std::string subEventStream_

Name of the P-frame stream assigned by the splitter module.

State state_
I3Time startTime_

The.

I3Time endTime_

Friends

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

The filtering result information from JEB + PnF.

Filtering is a five step process:

  1. Prepare data (decoding, calibration, feature extraction etc.),

  2. reconstruct event,

  3. make a filter decision (drop an I3Boolean with a name equal to the corresponding filter stream into the frame that is true for “good” events),

  4. prescale “good” events and compile the filter results,

  5. write all events into raw and good events into filtered data stream.

Public Functions

inline I3FilterResult()

Default constructor.

~I3FilterResult()

Destructor.

std::ostream &Print(std::ostream&) const override
template<class Archive>
void serialize(Archive &ar, unsigned version)
bool operator==(const I3FilterResult &rhs) const
inline bool operator!=(const I3FilterResult &rhs) const

Public Members

bool conditionPassed
bool prescalePassed
class I3FlasherInfo : public I3FrameObject
#include <I3FlasherInfo.h>

This contains the data on which DOM flashed during flasher runs.

It holds the flashing DOMs OMKey, brightness level, mask (which LEDs fired) firing time, and ATWD trace of the LED current pulse

This will be changed into a I3Trigger derived class eventually, once there is sufficient functionality to get Flasher settings somewhere. Included here for use by flasher analysis people. It can be “I3Bagged”.

Public Functions

inline I3FlasherInfo()
inline ~I3FlasherInfo()
std::ostream &Print(std::ostream&) const override
inline OMKey GetFlashingOM() const
inline void SetFlashingOM(OMKey flashOM)
inline double GetFlashTime() const

return and set flash time

inline void SetFlashTime(double flashtime)
inline double GetATWDBinSize() const

return and set ATWD time bin size

inline void SetATWDBinSize(double ATWDbinsize)
inline int GetLEDBrightness() const
inline void SetLEDBrightness(int LEDint)
inline unsigned int GetMask() const
inline void SetMask(int LEDmask)
inline unsigned int GetWidth() const
inline void SetWidth(int width)
inline unsigned int GetRate() const
inline void SetRate(int rate)
inline const std::vector<int> &GetRawATWD3() const

return raw ATWD3 waveform as a read-only object ATWD3 holds the digitized LED current pulse; the others channels are empty

inline void SetRawATWD3(const std::vector<int> &ATWD3data)

Protected Attributes

OMKey flasherOM_

This is the OM that flashed

double flashTime_

Time (in nsec) in 25 nsec units, of the LED flash time.

std::vector<int> rawATWD3_

These is the ATWD waveform of the LED current pulse, and the ATWD time bin size, in nsec

double aTWDBinSize_
bool pedestalSubtractedATWD3_
unsigned int mask_
int LEDBrightness_
int width_
int rate_

Private Functions

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

Friends

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

Flasher configuration settings for a particular DOM during a particular subrun.

Public Functions

inline I3FlasherStatus()
inline ~I3FlasherStatus()

Public Members

unsigned brightness
unsigned window
unsigned rate
unsigned mask
unsigned delay

Private Functions

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

Friends

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

Public Types

enum SnowHeightProvenance

Values:

enumerator Unknown

Unknown provenance.

enumerator Feb2011

The numbers that lived in the database as default for years (until 2023)

enumerator Database

Pulled from most recent in-situ measurement.

enumerator InterpolatedLinear

Interpolated between measurements.

enumerator Mixed

For the case if some Tanks are interpolated, others extrapolated.

enumerator ExtrapolatedLinear

Extrapolated past the last measurement based on overall slope.

enumerator VEMCal

Derived from VEMCal measurements of EM and muon components.

enumerator Custom

Entered some other way.

Public Functions

inline I3Geometry()
~I3Geometry()
std::string GetSnowHeightProvenanceString() const
void SetSnowHeightProvenanceString(const std::string &str)
const I3Geometry &operator=(const I3Geometry &geometry)
inline bool operator==(const I3Geometry &rhs)
inline bool operator!=(const I3Geometry &rhs)
I3TankGeo GetTankGeo(const OMKey &key) const
I3TankGeo GetTankGeo(const TankKey &tankkey) const
template<class Archive>
void serialize(Archive &ar, unsigned version)

Public Members

I3OMGeoMap omgeo
I3StationGeoMap stationgeo
SnowHeightProvenance snowHeightProvenance
I3ScintGeoMap scintgeo
I3AntennaGeoMap antennageo
I3IceActGeoMap iceactgeo
I3Time startTime
I3Time endTime

Friends

friend class icecube::serialization::access
template<>
struct i3hash<I3ParticleID>
#include <I3ParticleID.h>

Public Functions

inline size_t operator()(const I3ParticleID &id) const
class I3IceActGeo
#include <I3IceActGeo.h>

Public Types

enum IceActType

Values:

enumerator Unknown
enumerator drs_2019
enumerator target_C
enumerator drs_2019_64
enumerator simulation

Public Functions

inline I3IceActGeo()
~I3IceActGeo()
inline void SetPosition(I3Position &pos)
inline I3Position GetPosition() const
inline void SetOrientation(I3Orientation &orient)
inline I3Orientation GetOrientation() const
inline void SetIceActType(IceActType type)
inline IceActType GetIceActType() const
inline void SetIceActName(std::string name)
inline std::string GetIceActName() const
inline void SetNumberofPixels(int numpixels)
inline int GetNumberofPixels()
inline void SetPixelSize(float pixSize)
inline float GetPixelSize() const
inline void SetPixelsPositions(I3Map<unsigned, I3Position> &pixelpos)
inline I3Map<unsigned, I3Position> GetPixelsPositions() const
inline void SetPixelstoChannels(I3Map<unsigned, unsigned> pixelchannel)
inline I3Map<unsigned, unsigned> GetPixelstoChannels() const
inline bool operator==(const I3IceActGeo &rhs) const
inline bool operator!=(const I3IceActGeo &rhs) const
std::ostream &Print(std::ostream&) const

Public Members

I3Position position
I3Orientation orientation
IceActType iceactType
std::string iceactName
int numberofPixels
float pixelSize
I3Map<unsigned, unsigned> pixelstoChannels
I3Map<unsigned, I3Position> pixelPositions

Private Functions

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

Friends

friend class icecube::serialization::access
class I3IceTopSLCCalibration

This struct stores the slopes and intercepts needed for charge calibration of SLC hits in IceTop DOMs.

Author

Kath Rawlins

Public Functions

inline I3IceTopSLCCalibration()
~I3IceTopSLCCalibration()
inline double GetIntercept(int chip, unsigned int atwd) const
inline double GetSlope(int chip, unsigned int atwd) const
inline void SetIntercept(int chip, unsigned int atwd, double val)
inline void SetSlope(int chip, unsigned int atwd, double val)
inline bool operator==(const I3IceTopSLCCalibration &rhs) const
inline bool operator!=(const I3IceTopSLCCalibration &rhs) const

Public Members

double intercept_C0A0

Slopes and Intercepts for each Chip/ATWD

double intercept_C0A1
double intercept_C0A2
double intercept_C1A0
double intercept_C1A1
double intercept_C1A2
double slope_C0A0
double slope_C0A1
double slope_C0A2
double slope_C1A0
double slope_C1A1
double slope_C1A2
double intercept_CunkA0

Slopes and Intercepts to be used when the Chip/ATWD is unknown

double intercept_CunkA1
double intercept_CunkA2
double slope_CunkA0
double slope_CunkA1
double slope_CunkA2
double A0_A1_crossover
double A1_A2_crossover

Private Functions

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

Friends

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

Public Functions

I3IceTopSLCCalibrationCollection()
~I3IceTopSLCCalibrationCollection()
inline bool operator==(const I3IceTopSLCCalibrationCollection &rhs)
inline bool operator!=(const I3IceTopSLCCalibrationCollection &rhs)

Public Members

I3Time startTime

Start time of period used to compute constants (may be different from the rest of I3Calibration)

I3Time endTime

End time of period used to compute constants (may be different from the rest of I3Calibration)

I3IceTopSLCCalibrationMap ITslcCal

The most important object in here: the Map of all the calibration constants.

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()

Friends

friend class icecube::serialization::access
class I3LinearizedMCTree : public TreeBase::Tree<T, Key, Hash>

A compact I3MCTree.

I3LinearizedMCTree is an alternate format for I3MCTree, optimized for efficient on-disk storage in the case where the tree is dominated by a large number of terminal nodes containing I3Particles that are co-linear with their parents. In these cases the daughter particles can be completely described by a time, energy, type, and minor/major ids, as well as the parameters of the parent particle.

Entries in the I3MCTree returned by I3LinearizedMCTree::operator I3MCTree are guaranteed to be identical to the entries in the original tree, with the following exceptions:

  • Times and energies will only be identical to within single precision

  • The positions of daughter particles may deviate by up to 50 cm.

Public Functions

inline I3LinearizedMCTree()
inline explicit I3LinearizedMCTree(const I3MCTree &tree)
template<>
void save(icecube::archive::xml_oarchive &ar, unsigned version) const
template<>
void load(icecube::archive::xml_iarchive &ar, unsigned version)

Private Types

typedef I3MCTree::pre_order_iterator pre_iterator
typedef I3MCTree::post_order_iterator post_iterator
typedef I3MCTree::sibling_iterator sibling_iterator

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()

Friends

friend class icecube::serialization::access
template<typename Key, typename Value>
struct I3Map : public I3FrameObject, public std::map<Key, Value>
#include <I3Map.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Public Functions

template<class Archive>
inline void serialize(Archive &ar, unsigned version)
~I3Map()
inline const Value &at(const Key &where) const
inline Value &at(const Key &where)
inline std::ostream &Print(std::ostream &os) const override

Private Functions

inline std::ostream &PrintImpl(std::ostream &os, std::true_type can_print) const
inline std::ostream &PrintImpl(std::ostream &os, std::false_type cant_print) const
class I3Matrix : public I3FrameObject, public ublas_matrix_shim
#include <I3Matrix.h>

Public Types

typedef ublas_matrix_shim::base base
typedef base::size_type size_type
typedef base::difference_type difference_type
typedef base::value_type value_type
typedef base::const_reference const_reference
typedef base::reference reference
typedef base::array_type array_type
typedef base::const_closure_type const_closure_type
typedef base::closure_type closure_type
typedef base::vector_temporary_type vector_temporary_type
typedef base::matrix_temporary_type matrix_temporary_type
typedef base::storage_category storage_category
typedef base::orientation_category orientation_category

Public Functions

inline I3Matrix()
inline I3Matrix(const base &m)
inline I3Matrix(size_t size1, size_t size2)
inline I3Matrix(size_t size1, size_t size2, const value_type &init)
inline I3Matrix(size_t size1, size_t size2, const array_type &data)
std::ostream &Print(std::ostream&) const override
template<typename Archive>
void serialize(Archive &ar, unsigned int version)

Private Functions

template<typename Archive>
void serialize(Archive&, unsigned)

Friends

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

Public Types

enum HitSource

Values:

enumerator UNKNOWN
enumerator SPE
enumerator RANDOM
enumerator AFTER_PULSE
enumerator PRE_PULSE
enumerator ELASTIC_LATE_PULSE
enumerator INELASTIC_LATE_PULSE
enumerator EARLY_AFTER_PULSE

Public Functions

inline I3MCHit()
inline I3MCHit(uint64_t mid, int id)
~I3MCHit()
std::ostream &Print(std::ostream&) const
inline double GetTime() const
inline void SetTime(double time)
inline int32_t GetHitID() const
inline void SetHitID(int hitID)
inline uint64_t GetNPE() const
inline void SetNPE(uint64_t npe)
inline double GetCharge() const
inline void SetCharge(double charge)
inline int32_t GetParticleMinorID() const
inline uint64_t GetParticleMajorID() const
void SetParticleID(const I3Particle&)
inline void SetParticleID(int32_t minorID, uint64_t majorID)
inline double GetCherenkovDistance() const
Returns:

the direct path distance to the track which caused this hit

inline void SetCherenkovDistance(double CherenkovDistance)
Parameters:

CherenkovDistance – set the direct path distance to track which caused this hit

inline void SetHitSource(HitSource s)

Sets/Gets the source of the MCHit

inline HitSource GetHitSource() const
inline bool operator==(const I3MCHit &rhs) const
inline operator I3ParticleID() const

Private Functions

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

Private Members

double time_
uint64_t npe_
double charge_
int32_t hitID_
int32_t particleID_
uint64_t particleMajorID_
double cherenkovDistance_
HitSource source_

Friends

friend class icecube::serialization::access
class I3MCList : public I3Vector<I3Particle>

Public Functions

inline ~I3MCList()

Private Functions

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

Friends

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

Describes an optical module. This is supposed to contain all information about the module itself, not the PMT(s) inside of it.

For IceCube/AMANDA DOMs, the position and orientation will be the same as for the PMTs inside this module (described by I3OMGeo).

Public Types

enum ModuleType

Values:

enumerator UnknownType
enumerator AMANDA
enumerator IceCube
enumerator IceTop
enumerator mDOM
enumerator Scintillator
enumerator IceAct
enumerator PDOM
enumerator DEgg
enumerator WOM
enumerator FOM
enumerator DMIce
enumerator LOM
enumerator LOM16
enumerator LOM18
enumerator RadioReceiver
enumerator POCAM
enumerator PencilBeam
enumerator RadioEmitter
enumerator AcousticEmitter
enumerator AbaloneHub
enumerator FibreComm

Public Functions

I3ModuleGeo()
~I3ModuleGeo()
std::ostream &Print(std::ostream&) const override
bool operator==(const I3ModuleGeo &rhs) const
inline ModuleType GetModuleType() const
inline void SetModuleType(ModuleType newType)
inline const I3Position &GetPos() const
inline void SetPos(const I3Position &p)
inline void SetPos(double x, double y, double z)
inline const I3Orientation &GetOrientation() const
inline void SetOrientation(const I3Orientation &o)
inline I3Direction GetDir() const
inline double GetRadius() const
inline void SetRadius(double radius)

Private Functions

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

Private Members

ModuleType moduleType_
I3Position pos_
I3Orientation orientation_
double radius_

Friends

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

Public Types

enum OMType

Values:

enumerator UnknownType
enumerator AMANDA
enumerator IceCube
enumerator IceTop
enumerator Scintillator
enumerator IceAct
enumerator PDOM
enumerator isoPDOM
enumerator DEgg
enumerator mDOM
enumerator WOM
enumerator FOM
enumerator DMIce
enumerator LOM
enumerator LOM16
enumerator LOM18
enumerator RadioReceiver
enumerator POCAM
enumerator PencilBeam
enumerator RadioEmitter
enumerator AcousticEmitter
enumerator AbaloneHub
enumerator FibreComm

Public Functions

inline I3OMGeo()
~I3OMGeo()
inline I3Direction GetDirection() const

Gets the I3Direction from the I3Orientation

inline bool operator==(const I3OMGeo &rhs) const
inline bool operator!=(const I3OMGeo &rhs) const
std::ostream &Print(std::ostream&) const

Public Members

I3Position position

the OM’s (or PMT’s) x,y,z position

I3Orientation orientation

Orientation of the OM (or PMT)

OMType omtype

InIce? IceTop? AMANDA OM? (see enum above)

double area

Effective collection area (use I3Units)

Private Functions

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

Friends

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

Stores an orientation. This is more than a direction in that you also include the rotation around the direction axis. Picture the three-finger right hand rule. Your thumb points to “front” (the direction), your index finger points to “up” and your middle finger to “right”.

Public Functions

I3Orientation()
I3Orientation(double x_dir, double y_dir, double z_dir, double x_up, double y_up, double z_up)

Additional constructor: 6 arguments mean construct dir. with dir(x,y,z) and up(x,y,z)

I3Orientation(const I3Direction &dir, const I3Direction &up)

Additional constructor: 6 arguments mean construct dir. with dir(x,y,z) and up(x,y,z)

I3Orientation(const I3Orientation &d)

Copy constructor

inline I3Orientation(const I3Direction &d)

Assignment constructor from direction (will generate an arbitrary rotation angle)

~I3Orientation()
std::ostream &Print(std::ostream&) const override
inline I3Orientation operator=(const I3Orientation &d)

Assignment operator from direction (will generate an arbitrary rotation angle)

inline I3Orientation operator=(const I3Direction &d)

Assignment operator from orientation (will generate an arbitrary rotation angle)

inline bool operator==(const I3Orientation &other) const

Test for equality

void SetOrientation(const I3Orientation &d)

Store direction from orientation d

void SetOrientation(const I3Direction &d)

Store direction from a single direction d (this will generate an arbitrary “up” direction)

void SetOrientation(double x_dir, double y_dir, double z_dir, double x_up, double y_up, double z_up)

Store direction with x, y, z (3 arguments)

void SetOrientation(const I3Direction &dir, const I3Direction &up)

Store direction with x, y, z (3 arguments)

void SetOrientationFromQuaternion(const I3Quaternion &q)

Store direction from a unit quaternion rotation the (0,0,1) vector

void ResetOrientation()

Reset all elements of I3Orientation to NAN

inline void RotVectorInPlace(double &x, double &y, double &z, bool inverse = false) const

Rotate a vector inside a coordinate system where z-axis==(0,0,1), x-axis==(1,0,0), y-axis=(0,1,0) to the system where z-axis==dir, x-axis==up, y-axis==right. If inverse This is the in-place version with 3 doubles for x,y,z.

template<typename T>
inline T RotateIn(const T &vec) const

Rotate a vector from a coordinate system where z-axis==(0,0,1), x-axis==(1,0,0), y-axis=(0,1,0) to the system where z-axis==dir, x-axis==up, y-axis==right.

template<typename T>
inline T RotateOut(const T &vec) const

Rotate a vector from a coordinate system where z-axis==dir, x-axis==up, y-axis==right to the system where z-axis==(0,0,1), x-axis==(1,0,0), y-axis=(0,1,0).

inline double GetZenith() const

Provide Zenith of direction

inline double GetDirZenith() const
inline double GetAzimuth() const

Provide Azimuth of direction

inline double GetDirAzimuth() const
inline double GetX() const

Provide X of direction in cartesian ref frame

inline double GetDirX() const
inline double GetY() const

Provide Y of direction in cartesian ref frame

inline double GetDirY() const
inline double GetZ() const

Provide Z of direction in cartesian ref frame

inline double GetDirZ() const
inline I3Direction GetDir() const

Calculate “dir” direction

inline double CalcDirTheta() const

Calculate Theta of “dir” direction

inline double CalcDirPhi() const

Calculate Phi of “dir” direction

inline double GetUpZenith() const

Provide Zenith of “up” direction

inline double GetUpAzimuth() const

Provide Azimuth of “up” direction

inline double GetUpX() const

Provide X of “up” direction in cartesian ref frame

inline double GetUpY() const

Provide Y of “up” direction in cartesian ref frame

inline double GetUpZ() const

Provide Z of “Up” direction in cartesian ref frame

inline I3Direction GetUp() const

Calculate “up” direction

inline double CalcUpTheta() const

Calculate Theta of “up” direction

inline double CalcUpPhi() const

Calculate Phi of “up” direction

inline double GetRightZenith() const

Provide Zenith of “right” direction

inline double GetRightAzimuth() const

Provide Azimuth of “right” direction

inline double GetRightX() const

Provide X of “right” direction in cartesian ref frame

inline double GetRightY() const

Provide Y of “right” direction in cartesian ref frame

inline double GetRightZ() const

Provide Z of “right” direction in cartesian ref frame

inline I3Direction GetRight() const

Calculate “right” direction

inline double CalcRightTheta() const

Calculate Theta of “right” direction

inline double CalcRightPhi() const

Calculate Phi of “right” direction

Protected Attributes

I3Quaternion rot_

Rotate orientation around X axis by angle Rotate orientation around Y axis by angle Rotate orientation around Z axis by angle the actual rotation w.r.t (0,0,1)

mutable double xDir_

direction “dir” coordinates

mutable double yDir_
mutable double zDir_
mutable double zenithDir_
mutable double azimuthDir_
mutable double xUp_

direction “up” coordinates

mutable double yUp_
mutable double zUp_
mutable double zenithUp_
mutable double azimuthUp_
mutable double xRight_

direction “right” coordinates

mutable double yRight_
mutable double zRight_
mutable double zenithRight_
mutable double azimuthRight_
mutable bool isDirCalculated_

Did we calculate the directions before?

mutable bool isUpCalculated_
mutable bool isRightCalculated_

Private Functions

void DoCalcDir() const

Calculate all coordinates from the internal rotation

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

Friends

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

Public Types

enum ParticleType

Values:

enumerator unknown
enumerator Gamma
enumerator EPlus
enumerator EMinus
enumerator MuPlus
enumerator MuMinus
enumerator Pi0
enumerator PiPlus
enumerator PiMinus
enumerator K0_Long
enumerator KPlus
enumerator KMinus
enumerator Neutron
enumerator PPlus
enumerator PMinus
enumerator K0_Short
enumerator Eta
enumerator Lambda
enumerator SigmaPlus
enumerator Sigma0
enumerator SigmaMinus
enumerator Xi0
enumerator XiMinus
enumerator OmegaMinus
enumerator NeutronBar
enumerator LambdaBar
enumerator SigmaMinusBar
enumerator Sigma0Bar
enumerator SigmaPlusBar
enumerator Xi0Bar
enumerator XiPlusBar
enumerator OmegaPlusBar
enumerator DPlus
enumerator DMinus
enumerator D0
enumerator D0Bar
enumerator DsPlus
enumerator DsMinusBar
enumerator LambdacPlus
enumerator WPlus
enumerator WMinus
enumerator Z0
enumerator NuE
enumerator NuEBar
enumerator NuMu
enumerator NuMuBar
enumerator TauPlus
enumerator TauMinus
enumerator NuTau
enumerator NuTauBar
enumerator Sigmac2520PlusPlus
enumerator Sigmac2520BarMinusMinus
enumerator Sigmac2455BarMinusMinus
enumerator BBar0
enumerator Lambdab0
enumerator XicPlus
enumerator BPlus
enumerator Sigmac2520BarMinus
enumerator SigmabBarPlus
enumerator Sigmac2455BarMinus
enumerator XibMinus
enumerator Sigmac24550
enumerator XibBar0
enumerator Sigmac25200
enumerator Bs0
enumerator OmegacBar0
enumerator SigmabBarMinus
enumerator DStar2010Plus
enumerator XicPrimeBarMinus
enumerator BcPlus
enumerator Xic0
enumerator Delta1232Plus
enumerator Delta1232BarPlus
enumerator DStar20070
enumerator XicPrimeBar0
enumerator Rho770Minus
enumerator OmegabBarPlus
enumerator Delta1232PlusPlus
enumerator DsStarPlus
enumerator Etac1S
enumerator KStar8920
enumerator Jpsi1S
enumerator KStar892Minus
enumerator Delta1232Bar0
enumerator Delta12320
enumerator KStar892Plus
enumerator KStar892Bar0
enumerator EtaPrime958
enumerator Phi1020
enumerator DsStarMinus
enumerator Delta1232BarMinusMinus
enumerator OmegabMinus
enumerator Rho770Plus
enumerator LambdabBar0
enumerator XicPrime0
enumerator DStar2007Bar0
enumerator Delta1232Minus
enumerator Delta1232BarMinus
enumerator XicBar0
enumerator SigmabMinus
enumerator Omega782
enumerator XicPrimePlus
enumerator DStar2010Minus
enumerator BcMinus
enumerator LambdacBarMinus
enumerator SigmabPlus
enumerator Omegac0
enumerator BsBar0
enumerator Sigmac2520Bar0
enumerator Sigmac2455Bar0
enumerator Rho7700
enumerator Xib0
enumerator Sigmac2455Plus
enumerator XibBarPlus
enumerator Sigmac2520Plus
enumerator BMinus
enumerator XicBarMinus
enumerator Sigmac2455PlusPlus
enumerator BZero
enumerator H2Nucleus
enumerator H3Nucleus
enumerator He3Nucleus
enumerator He4Nucleus
enumerator He5Nucleus
enumerator He6Nucleus
enumerator Li5Nucleus
enumerator Li6Nucleus
enumerator Li7Nucleus
enumerator Be9Nucleus
enumerator B10Nucleus
enumerator B11Nucleus
enumerator C12Nucleus
enumerator C13Nucleus
enumerator N14Nucleus
enumerator N15Nucleus
enumerator O16Nucleus
enumerator O17Nucleus
enumerator O18Nucleus
enumerator F19Nucleus
enumerator Ne20Nucleus
enumerator Ne21Nucleus
enumerator Ne22Nucleus
enumerator Na23Nucleus
enumerator Mg24Nucleus
enumerator Mg25Nucleus
enumerator Mg26Nucleus
enumerator Al26Nucleus
enumerator Al27Nucleus
enumerator Si28Nucleus
enumerator Si29Nucleus
enumerator Si30Nucleus
enumerator Si31Nucleus
enumerator Si32Nucleus
enumerator P31Nucleus
enumerator P32Nucleus
enumerator P33Nucleus
enumerator S32Nucleus
enumerator S33Nucleus
enumerator S34Nucleus
enumerator S35Nucleus
enumerator S36Nucleus
enumerator Cl35Nucleus
enumerator Cl36Nucleus
enumerator Cl37Nucleus
enumerator Ar36Nucleus
enumerator Ar37Nucleus
enumerator Ar38Nucleus
enumerator Ar39Nucleus
enumerator Ar40Nucleus
enumerator Ar41Nucleus
enumerator Ar42Nucleus
enumerator K39Nucleus
enumerator K40Nucleus
enumerator K41Nucleus
enumerator Ca40Nucleus
enumerator Ca41Nucleus
enumerator Ca42Nucleus
enumerator Ca43Nucleus
enumerator Ca44Nucleus
enumerator Ca45Nucleus
enumerator Ca46Nucleus
enumerator Ca47Nucleus
enumerator Ca48Nucleus
enumerator Sc44Nucleus
enumerator Sc45Nucleus
enumerator Sc46Nucleus
enumerator Sc47Nucleus
enumerator Sc48Nucleus
enumerator Ti44Nucleus
enumerator Ti45Nucleus
enumerator Ti46Nucleus
enumerator Ti47Nucleus
enumerator Ti48Nucleus
enumerator Ti49Nucleus
enumerator Ti50Nucleus
enumerator V48Nucleus
enumerator V49Nucleus
enumerator V50Nucleus
enumerator V51Nucleus
enumerator Cr50Nucleus
enumerator Cr51Nucleus
enumerator Cr52Nucleus
enumerator Cr53Nucleus
enumerator Cr54Nucleus
enumerator Mn52Nucleus
enumerator Mn53Nucleus
enumerator Mn54Nucleus
enumerator Mn55Nucleus
enumerator Fe54Nucleus
enumerator Fe55Nucleus
enumerator Fe56Nucleus
enumerator Fe57Nucleus
enumerator Fe58Nucleus
enumerator Qball
enumerator CherenkovPhoton
enumerator Nu
enumerator Monopole
enumerator Brems
enumerator DeltaE
enumerator PairProd
enumerator NuclInt
enumerator MuPair
enumerator Hadrons
enumerator WeakInt
enumerator ContinuousEnergyLoss
enumerator FiberLaser
enumerator N2Laser
enumerator YAGLaser
enumerator STauPlus
enumerator STauMinus
enumerator SMPPlus
enumerator SMPMinus
enum ParticleShape

Values:

enumerator Null
enumerator Primary
enumerator TopShower
enumerator Cascade
enumerator CascadeSegment
enumerator InfiniteTrack
enumerator StartingTrack
enumerator StoppingTrack
enumerator ContainedTrack
enumerator MCTrack
enumerator Dark
enum FitStatus

Values:

enumerator NotSet
enumerator OK
enumerator GeneralFailure
enumerator InsufficientHits
enumerator FailedToConverge
enumerator MissingSeed
enumerator InsufficientQuality
enum LocationType

Values:

enumerator Anywhere
enumerator IceTop
enumerator InIce
enumerator InActiveVolume

Public Functions

I3Particle(ParticleShape shape = Null, ParticleType type = unknown)

Constructor for a simple particle with generated ID useful in applications where the shape and type of an particle are in focus.

Parameters:
  • shape – Shape of the track

  • type – Particle type

I3Particle(const I3Position pos, const I3Direction dir, const double vertextime, ParticleShape shape = Null, double length = NAN)

Constructor for I3Particle, focusing on directional properties.

Parameters:
  • pos – Position of the vertex

  • dir – Direction of the track

  • vertextime – time that the vertex is happening

  • shape – Shape of the track

  • length

I3Particle(const boost::optional<I3Particle> &p)

Constructor for particle from boost::optional<I3Particle>

Parameters:

p – A particle

~I3Particle()
std::ostream &Print(std::ostream&) const override
bool IsTrack() const
bool IsCascade() const
bool IsTopShower() const
bool IsNeutrino() const
bool IsNucleus() const
bool HasPosition() const
bool HasDirection() const
bool HasEnergy() const
inline operator I3ParticleID() const
inline I3Particle &operator=(const I3Particle &rhs)
inline bool operator==(const I3Particle &rhs) const
inline bool operator!=(const I3Particle &rhs) const
I3Particle Clone() const

Returns a particle with a new I3ParticleID, but will all other properties unchanged.

inline I3ParticleID GetID() const
inline int32_t GetMinorID() const
inline uint64_t GetMajorID() const
inline int32_t GetPdgEncoding() const
inline void SetPdgEncoding(int32_t newid)
inline ParticleType GetType() const
std::string GetTypeString() const
inline void SetType(ParticleType type)
void SetTypeString(const std::string &str)
inline ParticleShape GetShape() const
std::string GetShapeString() const
inline void SetShape(ParticleShape shape)
void SetShapeString(const std::string &str)
inline FitStatus GetFitStatus() const
std::string GetFitStatusString() const
inline void SetFitStatus(FitStatus status)
void SetFitStatusString(const std::string &str)
inline LocationType GetLocationType() const
std::string GetLocationTypeString() const
inline void SetLocationType(LocationType type)
void SetLocationTypeString(const std::string &str)
inline const I3Position &GetPos() const
inline void SetPos(const I3Position &p)
inline void SetPos(double p1, double p2, double p3, I3Position::RefFrame frame)
inline void SetPos(double x, double y, double z)
inline const I3Direction &GetDir() const
inline void SetDir(const I3Direction &d)
inline void SetDir(double zen, double azi)
inline void SetDir(double x, double y, double z)
inline void SetThetaPhi(double theta, double phi)
inline double GetZenith() const
inline double GetAzimuth() const
inline double GetX() const
inline double GetY() const
inline double GetZ() const
inline double GetTime() const
inline void SetTime(double t)
inline double GetLength() const
inline void SetLength(double length)
inline double GetEnergy() const

Returns the kinetic energy of the particle.

inline double GetKineticEnergy() const

Returns the kinetic energy of the particle.

double GetTotalEnergy() const

Returns the total energy of the particle.

double GetMass() const

Returns the mass of the particle.

bool HasMass() const

Check if particle has mass.

inline void SetEnergy(double energy)

Sets the kinetic energy of the particle.

inline void SetKineticEnergy(double energy)

Sets the kinetic energy of the particle.

void SetTotalEnergy(double total_energy)

Sets the total energy of the particle.

inline double GetSpeed() const
inline void SetSpeed(double s)
I3Position ShiftTimeTrack(const double time) const

get the position of the particle at this time

Note

ignores the shape of the track (start/stopping point), so the particle might not be defined at that very position

Parameters:

time – the time in ns

I3Position GetStartPos() const
double GetStartTime() const
I3Position GetStopPos() const
double GetStopTime() const

Public Static Functions

static double GetMassForType(ParticleType type)

Returns the mass of a particle of given type.

Private Functions

I3Particle(const uint64_t major, const int32_t minor)

Constructor for particle as a unique identifier by majorID and minorID useful in iteration processes (in I3MCTree) where unique tagging is required.

Parameters:
  • major – MajorID of that particle

  • minor – MinorID of that particle

void generateID()

generate a new, unique ID combination

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

Private Members

I3ParticleID ID_
int32_t pdgEncoding_
ParticleShape shape_
I3Position pos_
I3Direction dir_
double time_
double energy_
double length_
double speed_
FitStatus status_
LocationType locationType_

Friends

friend class I3Stochastic
friend class test_particle_id_private_ctor
friend class icecube::serialization::access
struct I3ParticleID
#include <I3ParticleID.h>

A single object for holding the ID numbers of an I3Particle.

In icetray, the “ID” of a particle object is a pair of (integer) numbers that serve as its unique identifier. No two particles, even two particles in different data sets, can have the same identifier. This is important because simulation is not done in one single process, but instead in stages, where particle generation and propagation can happen on different machines. So if we simply assigned ‘0’ to the first particle created in a generator process, its ID would clash with the first particle created by the propagator, both of which will be added to the same I3MCTree.

Public Functions

inline I3ParticleID()
inline I3ParticleID(uint64_t major, int32_t minor)
std::ostream &Print(std::ostream&) const
inline bool operator==(const I3ParticleID &other) const

Need to tell gcc to ignore the “maybe unititalized warning” in this case. A default constructor was added that initializes these values and none of these methods are static, so this is a false positive.

clang seems to be smart enough to know these aren’t used uninitialized, so we only turn them off for gcc, since this just causes more clang warnings.

These directives we need were added in gcc 4.6 https://gcc.gnu.org/gcc-4.6/changes.html

inline bool operator!=(const I3ParticleID &other) const
inline bool operator<(const I3ParticleID &other) const

Public Members

uint64_t majorID

This is a hash of the time (of I3Particle object creation), process ID, and hostname. So two particles created at the same time on the same machine, but in different processes will have different major IDs.

int32_t minorID

This is meant to provide the bone-headed (and commonly used) method of particle ID creation. The first particle created is ‘0’ and the next ‘1’, and so on.

Private Functions

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

Friends

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

Public Types

enum RefFrame

Possible reference frames.

Values:

enumerator car
enumerator sph
enumerator cyl

Public Functions

inline I3Position()

Default constructor

I3Position(double x, double y, double z, RefFrame f)

Constructor for different coordinate systems

The meaning of this constructor depends on the value of RefFrame. If it is I3Position::car the three coordinates are treated as cartesian x, y, and z If it is I3Position::sph the three coordinates are treated as spherical r, theta, and phi If it is I3Position::cyl the three coordinates are treated as cylindrical rho, phi, and z

inline I3Position(double x, double y, double z)

Constructor from cartesian coordinates

inline I3Position(const I3Position &p)

Copy constructor

explicit I3Position(const I3Direction &d)
std::ostream &Print(std::ostream&) const override
inline double GetX() const

Provide X of position in cartesian ref frame

inline double GetY() const

Provide Y of position in cartesian ref frame

inline double GetZ() const

Provide Z of position in cartesian ref frame

double GetR() const

Provide R of position in spherical ref frame If non-cartesian have not been calculated, then calculate them first

double GetTheta() const

Provide Theta of position in spherical ref frame If non-cartesian have not been calculated, then calculate them first

double GetPhi() const

Provide Phi of position in spherical or cylindrical ref frame If non-cartesian have not been calculated, then calculate them first

double GetRho() const

Provide Rho of position in cylindrical ref frame If non-cartesian have not been calculated, then calculate them first

inline void SetX(double x)

Set X position while keeping Y,Z constant. Recalculate SPH and CYL.

inline void SetY(double y)

Set Y position while keeping X,Z constant. Recalculate SPH and CYL.

inline void SetZ(double z)

Set Z position while keeping X,Y constant. Recalculate SPH and CYL.

void RotateX(double angle)

Rotate position around X axis by angle

void RotateY(double angle)

Rotate position around Y axis by angle

void RotateZ(double angle)

Rotate position around Z axis by angle

inline double Magnitude() const

Computes the distance from this position to the origin of the coordinate system (it’s magnitude as a vector)

inline double Mag2() const

Computes the square of the vector magnitude of the position

I3Position GetUnitVector() const
void Normalize()
double GetAngularSeparation(const I3Position&) const
inline I3Position operator-() const

Vector inversion (makes the vector point in the opposite direction)

inline I3Position &operator+=(const I3Position &rhs)

Vector addition

inline I3Position &operator-=(const I3Position &rhs)

Vector subtraction

inline I3Position operator+(const I3Position &rhs) const

Vector addition

inline I3Position operator-(const I3Position &rhs) const

Vector subtraction

inline double operator*(const I3Position &rhs) const

Scalar (dot) product

inline double Dot(const I3Position &rhs) const
double operator*(const I3Direction&) const

Scalar (dot) product

inline double Dot(const I3Direction &rhs) const
inline I3Position &operator*=(double a)

Multiplication by a scalar

inline I3Position &operator/=(double a)

Division by a scalar

inline I3Position operator*(double a) const

Multiplication by a scalar

inline I3Position operator/(double a) const

Division by a scalar

inline I3Position Cross(const I3Position &d) const

Vector (cross) product

I3Position Cross(const I3Direction&) const

Vector (cross) product

inline bool operator==(const I3Position &rhs) const
inline bool operator!=(const I3Position &rhs) const

Protected Attributes

double x_

cartesian (car)

double y_
double z_

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)
void CalcCarFromSph(double r_, double theta_, double phi_)
void CalcCarFromCyl(double rho_, double phi_)

Friends

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

Public Functions

inline I3Quaternion()

Default constructor. Sets all elements to zero.

inline I3Quaternion(double x, double y, double z, double w)

Element-wise constructor. Creates a new quaternion based on the elements given as arguments.

inline I3Quaternion(const I3Quaternion &q)

Copy constructor.

inline ~I3Quaternion()
std::ostream &Print(std::ostream&) const override
inline void set(double x, double y, double z, double w)

Element-wise setter.

inline double getX() const
inline double getY() const
inline double getZ() const
inline double getW() const
inline I3Quaternion operator=(const I3Quaternion &q)
inline I3Quaternion operator+(const I3Quaternion &q) const
inline I3Quaternion operator-(const I3Quaternion &q) const
inline I3Quaternion operator*(const I3Quaternion &q) const
inline I3Quaternion operator/(const I3Quaternion &q) const
inline I3Quaternion operator*(double s) const
inline I3Quaternion operator/(double s) const
inline I3Quaternion operator+=(const I3Quaternion &q)
inline I3Quaternion operator-=(const I3Quaternion &q)
inline I3Quaternion operator*=(const I3Quaternion &q)

Note

This infix operator implements a right multiplication. There is NO infix operator for left multiplication.

inline I3Quaternion operator/=(const I3Quaternion &q)

Note

This infix operator implements a right division. There is NO infix operator for left division (q.inverse()*(*this)).

inline I3Quaternion operator*=(double s)
inline I3Quaternion operator/=(double s)
inline bool operator!=(const I3Quaternion &q) const
inline bool operator==(const I3Quaternion &q) const
inline double norm() const

returns the norm of this quaternion

inline double magnitude() const

returns the magnitude of this quaternion

inline I3Quaternion scale(double s) const

returns a new quaternion where each entry is multiplied by a scalar s

inline I3Quaternion conjugate() const

returns the conjugate of this quaternion

inline I3Quaternion inverse() const

returns the inverse of this quaternion

inline I3Quaternion unit() const

returns the unit quaternion of this quaternion

inline void rot3VectorInPlace(double v[3]) const

rotates a 3-vector v by this quaternion. The rotation is performed in-place, the old vector is destroyed.

inline void rot3VectorInPlace(double &v0, double &v1, double &v2) const

rotates a 3-vector v by this quaternion. The rotation is performed in-place, the old vector is destroyed.

inline void rotatedXAxis(double &xRes, double &yRes, double &zRes) const

Rotates the vector (1,0,0) using this quaternion. Will return invalid data if the quaternion is not normalized.

inline void rotatedYAxis(double &xRes, double &yRes, double &zRes) const

Rotates the vector (0,1,0) using this quaternion. Will return invalid data if the quaternion is not normalized.

inline void rotatedZAxis(double &xRes, double &yRes, double &zRes) const

Rotates the vector (0,0,1) using this quaternion. Will return invalid data if the quaternion is not normalized.

inline I3Direction rotate(const I3Direction &dir) const

Rotates a given I3Direction by this quaternion and returns the result as a new object.

inline I3Position rotate(const I3Position &pos) const

Rotates a given I3Position by this quaternion and returns the result as a new object.

Private Functions

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

Private Members

double x_
double y_
double z_
double w_

Friends

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

Public Functions

inline I3RecoHit()
~I3RecoHit()
std::ostream &Print(std::ostream&) const
inline double GetTime() const
inline void SetTime(double time)
inline int GetID() const
inline void SetID(const int hitid)
inline int GetSourceIndex() const

GetSourceIndex - The Source Index can be used to keep track of which rawReadout index (from readout vector, like DOMLaunchSeries, that gave rise to this particular hit. Index value defaults to -1.

inline void SetSourceIndex(const int srcid)

SetSourceIndex - The Source Index can be used to keep track of which rawReadout index (from readout vector, like DOMLaunchSeries, that gave rise to this particular hit. Index value defaults to -1.

bool operator==(const I3RecoHit &rhs) const

Private Functions

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

Private Members

double time_
int hitID_
int sourceIndex_

Friends

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

Public Types

enum PulseFlags

Values:

enumerator LC
enumerator ATWD
enumerator FADC

Public Functions

inline I3RecoPulse()

Construct a pulse with all properties initialized to Not-a-Number.

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

Print a string representation of this pulse

inline flags_t GetFlags() const

Get the flag values pertaining to this pulse, as a bitwise combination.

inline void SetFlags(flags_t flags)

Set the flag values pertaining to this pulse, as a bitwise combination.

inline double GetTime() const

Get the start time of the pulse.

inline void SetTime(double time)

Set the start time of the pulse.

inline float GetCharge() const

Get the amplitude of the pulse in units of ideally amplified photoelectrons.

inline void SetCharge(float charge)

Set the amplitude of the pulse in units of ideally amplified photoelectrons.

inline float GetWidth() const

The time between this pulse and the subsequent basis function used in the pulse unfolding.

This quantity can be used to approximate the time interval within which the pulse charged was observed as [ GetTime() , GetTime() + GetWidth() ]. This approximation becomes dubious, however, when the charge density is high (such that several adjacent basis functions in the unfolding were assigned nonzero amplitudes).

inline void SetWidth(float width)

Store the time between this pulse and the subsequent basis function used in the pulse unfolding.

~I3RecoPulse()
bool operator==(const I3RecoPulse &rhs) const
inline bool operator!=(const I3RecoPulse &rhs) const

Private Types

typedef uint8_t flags_t

Private Functions

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

Private Members

double time_
float charge_
float width_
flags_t flags_

Friends

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

Public Functions

I3RecoPulseSeriesMapApplySPECorrection(const std::string &pulses_key, const std::string &calibration_key)
I3RecoPulseSeriesMapApplySPECorrection()

$Id$

Copyright (C) 2016 Claudio Kopper ckopper@icecube.wisc.edu Copyright (C) 2016 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

std::ostream &Print(std::ostream&) const override
I3RecoPulseSeriesMapConstPtr Apply(const I3Frame&) const
inline std::string GetPulsesSource() const
inline std::string GetCalibrationSource() const
bool operator==(const I3RecoPulseSeriesMapApplySPECorrection&) const
bool operator!=(const I3RecoPulseSeriesMapApplySPECorrection&) const

Private Functions

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

Private Members

std::string pulses_key_
std::string calibration_key_
mutable I3RecoPulseSeriesMapPtr shifted_

Friends

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

Public Functions

I3RecoPulseSeriesMapCombineByModule(const std::string &pulses_key)
I3RecoPulseSeriesMapCombineByModule()

$Id$

Copyright (C) 2018 Jakob van Santen jakob.van.santen@desy.de Copyright (C) 2018 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

std::ostream &Print(std::ostream&) const override
I3RecoPulseSeriesMapConstPtr Apply(const I3Frame&) const
inline std::string GetSource() const
bool operator==(const I3RecoPulseSeriesMapCombineByModule&) const
bool operator!=(const I3RecoPulseSeriesMapCombineByModule&) const

Private Functions

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

Private Members

std::string pulses_key_
mutable I3RecoPulseSeriesMapPtr combined_

Friends

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

Public Functions

I3RecoPulseSeriesMapMask(const I3Frame&, const std::string &key)
I3RecoPulseSeriesMapMask(const I3Frame&, const std::string &key, const I3RecoPulseSeriesMap &subset)
I3RecoPulseSeriesMapMask(const I3Frame&, const std::string &key, boost::function<bool(const OMKey&, size_t, const I3RecoPulse&)> predicate)
I3RecoPulseSeriesMapMask()

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu Copyright (C) 2011 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

std::ostream &Print(std::ostream&) const override
void Set(const OMKey&, bool)
void Set(const OMKey&, const unsigned idx, bool)
void Set(const OMKey&, const I3RecoPulse&, bool)
void SetNone()
boost::shared_ptr<const I3RecoPulseSeriesMap> Apply(const I3Frame &frame) const
bool HasAncestor(const I3Frame &frame, const std::string &key) const

Return true if this mask is derived from key

boost::shared_ptr<I3RecoPulseSeriesMapMask> Repoint(const I3Frame &frame, const std::string &key) const

Convert this mask into a form that can be applied directly to key without resort to intermediate masks.

inline std::string GetSource() const
unsigned GetSum() const
bool GetAnySet() const
bool GetAllSet() const
std::vector<boost::dynamic_bitset<uint8_t>> GetBits() const
I3RecoPulseSeriesMapMask operator&(const I3RecoPulseSeriesMapMask&) const
I3RecoPulseSeriesMapMask operator|(const I3RecoPulseSeriesMapMask&) const
I3RecoPulseSeriesMapMask operator^(const I3RecoPulseSeriesMapMask&) const
I3RecoPulseSeriesMapMask Remove(const I3RecoPulseSeriesMapMask&) const

Equivalent to this & ~other

I3RecoPulseSeriesMapMask &operator&=(const I3RecoPulseSeriesMapMask&)
I3RecoPulseSeriesMapMask &operator|=(const I3RecoPulseSeriesMapMask&)
I3RecoPulseSeriesMapMask &operator^=(const I3RecoPulseSeriesMapMask&)
bool operator==(const I3RecoPulseSeriesMapMask&) const
bool operator!=(const I3RecoPulseSeriesMapMask&) const

Private Types

typedef uint8_t mask_t

Private Functions

inline void ResetCache()
int FindKey(const OMKey &key, std::list<bitmask>::iterator &list_it, const I3RecoPulseSeriesMap::mapped_type **vec)
boost::shared_ptr<I3RecoPulseSeriesMapMask> CollapseLevel(const I3Frame &frame) const

Collapse this mask with its source, making it depend only on its grandparent.

template<typename BinaryOperator>
I3RecoPulseSeriesMapMask ApplyBinaryOperator(const I3RecoPulseSeriesMapMask&) const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()
SET_LOGGER ("I3RecoPulseSeriesMapMask")

Private Members

std::string key_
bitmask omkey_mask_
std::list<bitmask> element_masks_
I3RecoPulseSeriesMapConstPtr source_
mutable I3RecoPulseSeriesMapPtr masked_

Private Static Functions

static bool IsOrderedSubset(const I3RecoPulseSeriesMap&, const I3RecoPulseSeriesMap&)
static void FillSubsetMask(bitmask&, const I3RecoPulseSeriesMap::mapped_type&, const I3RecoPulseSeriesMap::mapped_type&)

Friends

friend class icecube::serialization::access
friend std::ostream &operator<<(std::ostream&, const bitmask&)
class I3RecoPulseSeriesMapUnion : public I3FrameObject
#include <I3MapOMKeyUnion.h>

Public Functions

I3RecoPulseSeriesMapUnion(const I3Frame&, const std::vector<std::string> &keys)
I3RecoPulseSeriesMapUnion()

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu Copyright (C) 2011 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

std::ostream &Print(std::ostream&) const override
I3RecoPulseSeriesMapConstPtr Apply(const I3Frame&) const
inline std::vector<std::string> GetSources() const
bool operator==(const I3RecoPulseSeriesMapUnion&) const
bool operator!=(const I3RecoPulseSeriesMapUnion&) const

Private Functions

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

Private Members

std::vector<std::string> keys_
mutable I3RecoPulseSeriesMapPtr unified_

Friends

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

Public Types

enum ScintType

Values:

enumerator Unknown
enumerator KIT
enumerator MAD
enumerator MADKIT

Public Functions

inline I3ScintGeo()
~I3ScintGeo()
inline void SetPosition(I3Position &pos)
inline I3Position GetPosition() const
inline void SetOrientation(I3Orientation &orient)
inline I3Orientation GetOrientation() const
inline void SetScintType(ScintType type)
inline ScintType GetScintType() const
inline void SetScintName(std::string name)
inline std::string GetScintName() const
inline void SetHeightAboveSnow(double height)
inline double GetHeightAboveSnow() const
inline bool operator==(const I3ScintGeo &rhs) const
inline bool operator!=(const I3ScintGeo &rhs) const
std::ostream &Print(std::ostream&) const

Public Members

I3Position position
I3Orientation orientation
ScintType scintType
std::string scintName
double heightAboveSnow

Private Functions

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

Friends

friend class icecube::serialization::access
class I3Stochastic

Public Functions

inline I3Stochastic()
I3Stochastic(const I3Particle &parent, const I3Particle &stochastic)
inline ~I3Stochastic()
bool operator<(const I3Stochastic &other) const
I3Particle Reconstruct(const I3Particle &parent) const

Public Static Functions

static bool IsCompressible(const I3Particle &parent, const I3Particle &stochastic)

Private Functions

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

Private Members

float time_
float energy_
uint64_t major_id_
int32_t minor_id_
I3Particle::ParticleType type_

Private Static Functions

static void Propagate(I3Particle &p, double time)

I3Particle::ShiftAlongTrack() without stupid assert()s.

Friends

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

Public Functions

inline I3SuperDST()
I3SuperDST(const I3RecoPulseSeriesMap &pulses)

Create a compressed representation of an event from a pulse map.

See also

Unpack()

Parameters:

pulses – Map containing pulses extracted from all InIce and IceTop launches.

I3RecoPulseSeriesMapConstPtr Unpack() const

Expand charge stamps into fake I3RecoPulses, packing everything into a single map.

I3MapKeyVectorInt GetEncodedSizes() const
inline std::list<I3SuperDSTReadout> GetHLCReadouts() const
inline std::list<I3SuperDSTReadout> GetSLCReadouts() const
inline void InitDebug()
bool operator==(const I3SuperDST &rhs) const
inline bool operator!=(const I3SuperDST &rhs) const

Public Members

double *serialization_time_
unsigned *serialization_counter_

Public Static Functions

static inline void SetUseWidthForATWDFlag(bool v)
static inline bool GetUseWidthForATWDFlag()
static uint32_t EncodeOMKey(const OMKey &key, unsigned int maxbits = 16, unsigned int version = i3superdst_version_)
static OMKey DecodeOMKey(uint32_t number, unsigned int version = i3superdst_version_)
static uint32_t EncodeTime(double time, unsigned int maxbits = 16, unsigned int version = i3superdst_version_)
static double DecodeTime(uint32_t dt, unsigned int version = i3superdst_version_)
static uint32_t EncodeWidth(double width, unsigned int maxbits = 16, unsigned int version = i3superdst_version_)
static double DecodeWidth(uint32_t code, unsigned int version = i3superdst_version_)
static uint32_t EncodeCharge(double charge, unsigned int maxbits = 16, unsigned int version = i3superdst_version_, I3SuperDSTUtils::Discretization mode = I3SuperDSTUtils::LINEAR)
static double DecodeCharge(uint32_t logcharge, unsigned int version = i3superdst_version_, I3SuperDSTUtils::Discretization mode = I3SuperDSTUtils::LINEAR)
static double FindStartTime(const I3RecoPulseSeriesMap &pmap)

Private Functions

void AddPulseMap(const I3RecoPulseSeriesMap &pulses, double t0)
void AddPulseMap(const I3RecoPulseSeriesMap &pulses)
std::list<I3SuperDSTReadout> GetReadouts(bool hlc) const
template<class Archive>
void save(Archive &ar, unsigned version) const
template<class Archive>
void save(Archive &ar, unsigned version, std::map<OMKey, std::vector<int>> *sizes) const
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void load_v0(Archive &ar)
template<class Archive>
void load_v1(Archive &ar)
I3_SERIALIZATION_SPLIT_MEMBER()
SET_LOGGER ("I3SuperDST")

Private Members

std::list<I3SuperDSTReadout> readouts_
mutable I3RecoPulseSeriesMapPtr unpacked_
unsigned version_

Private Static Attributes

static const double tmin_ = -512.0
static bool use_width_for_atwd_flag_ = false

Friends

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

Public Types

enum LCType

Values:

enumerator HLC
enumerator SLC

Public Functions

I3SuperDSTChargeStamp(double time, double charge, double width, bool hlc, I3SuperDSTUtils::Discretization format = I3SuperDSTUtils::LINEAR)
inline I3SuperDSTChargeStamp(uint32_t timecode, uint32_t chargecode, uint32_t widthcode, bool hlc, I3SuperDSTUtils::Discretization format = I3SuperDSTUtils::LINEAR, unsigned version = i3superdst_version_)
double GetTime() const
double GetWidth() const
double GetCharge() const
inline uint32_t GetTimeCode() const
inline uint32_t GetChargeCode() const
inline uint32_t GetWidthCode() const
inline uint32_t GetChargeOverflow() const
inline I3SuperDSTUtils::Discretization GetChargeFormat() const
inline LCType GetKind() const
inline bool GetLCBit() const
void SetTimeReference(const I3SuperDSTChargeStamp &other)
bool operator==(const I3SuperDSTChargeStamp &rhs) const
inline bool operator!=(const I3SuperDSTChargeStamp &rhs) const

Private Functions

SET_LOGGER ("I3SuperDST")

Private Members

uint32_t timecode_
uint32_t widthcode_
uint32_t chargecode_
uint32_t charge_overflow_
unsigned version_
LCType kind_
I3SuperDSTUtils::Discretization charge_format_
struct I3SuperDSTReadout
#include <I3SuperDST.h>

Public Functions

I3SuperDSTReadout(const OMKey &om, bool hlc, const std::list<I3RecoPulse>::const_iterator &start, const std::list<I3RecoPulse>::const_iterator &end, double t0 = 0.0)
inline I3SuperDSTReadout()
void SetTimeReference(const I3SuperDSTReadout &other)
void Relativize()
double GetTime() const
inline bool GetLCBit() const
inline bool operator<(const I3SuperDSTReadout &other) const
bool operator==(const I3SuperDSTReadout &rhs) const
inline bool operator!=(const I3SuperDSTReadout &rhs) const
SET_LOGGER ("I3SuperDST")

Public Members

OMKey om_
double start_time_
std::vector<I3SuperDSTChargeStamp> stamps_
I3SuperDSTChargeStamp::LCType kind_
uint32_t time_overflow_
class I3SuperDSTTimer

Public Functions

inline I3SuperDSTTimer(double *acc, unsigned *counter)
inline ~I3SuperDSTTimer()

Private Members

double *acc_
unsigned *counter_
int err_
rusage start_
rusage end_
class I3SuperDSTTrigger

Public Functions

I3SuperDSTTrigger(const I3Trigger&, const I3DetectorStatus&)
I3SuperDSTTrigger(uint32_t key_idx, uint32_t startcode, uint32_t lengthcode)
const TriggerKey &GetTriggerKey(const I3DetectorStatus&) const
double GetTime() const
double GetLength() const
bool operator<(const I3SuperDSTTrigger&) const
bool operator==(const I3SuperDSTTrigger&) const
void SetTimeReference(const I3SuperDSTTrigger&)

Private Functions

SET_LOGGER ("I3SuperDST")

Private Members

uint32_t key_idx_
uint32_t startcode_
uint32_t lengthcode_

Friends

friend class I3SuperDSTTriggerSeries
class I3SuperDSTTriggerSeries : public std::list<I3SuperDSTTrigger>, public I3FrameObject

Public Functions

inline I3SuperDSTTriggerSeries()
I3SuperDSTTriggerSeries(const I3TriggerHierarchy&, const I3DetectorStatus&)
template<typename Iterator>
inline I3SuperDSTTriggerSeries(Iterator first, Iterator last)
boost::shared_ptr<I3TriggerHierarchy> Unpack(const I3DetectorStatus&) const

Private Functions

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

Private Members

mutable boost::shared_ptr<I3TriggerHierarchy> unpacked_

Friends

friend class icecube::serialization::access
struct I3TankCalibrationBackwardsCompat
#include <Deprecated.hpp>

Public Functions

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

Public Members

double avgMuonPE
double avgMuonRisetime
double avgMuonWidth
struct I3TankGeo
#include <I3TankGeo.h>

Public Types

enum TankType

Values:

enumerator NotSet
enumerator Tyvek_Lined
enumerator Zirconium_Lined

Public Functions

inline I3TankGeo()
~I3TankGeo()
inline bool operator==(const I3TankGeo &rhs) const
inline bool operator!=(const I3TankGeo &rhs)
template<class Archive>
void serialize(Archive &ar, unsigned version)
std::ostream &Print(std::ostream&) const

Public Members

I3Position position
double orientation
double tankradius
double tankheight
double fillheight
I3Vector<OMKey> omKeyList_
double snowheight
TankType tanktype

Friends

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

Public Types

enum Month

enum for the Month

Values:

enumerator Jan
enumerator Feb
enumerator Mar
enumerator Apr
enumerator May
enumerator Jun
enumerator Jul
enumerator Aug
enumerator Sep
enumerator Oct
enumerator Nov
enumerator Dec
enumerator BadMonth
enum Weekday

enum for days of the week

Values:

enumerator Sunday
enumerator Monday
enumerator Tuesday
enumerator Wednesday
enumerator Thursday
enumerator Friday
enumerator Saturday
enumerator BadWeekday

Public Functions

I3Time()

default constructor sets the time to year 0, daq UTC time 0. There’s no ‘nan’ for unsigned and long long

I3Time(int32_t year, int64_t daqTime)

creates the object with the given times as the DAQ time

explicit I3Time(double mjd)

creates the object with the given double as ModJulianDay

~I3Time()
std::ostream &Print(std::ostream&) const override
void SetDaqTime(int year, int64_t daqTime)

Sets the time in the ‘daq’ style where.

Parameters:
  • year – The year. Something like 2005.

  • daqTime – The number of tenths of nanoseconds since the year began

void SetModJulianTime(int32_t modJulianDay, int32_t sec, double ns)

Sets the time in the Modified julian convention.

Parameters:
  • modJulianDay – the modified julian day to set

  • sec – the number of secs after this modified julian day began

  • ns – the number of ns after this second began.

void SetModJulianTimeDouble(double mjd)

Sets the time in the Modified julian convention as a direct double.

Parameters:

mjd – the modified julian day as double to set

void SetUTCCalDate(int year, int month, int day, int hour, int minute, int sec, double ns = 0.0)

Sets the time in the UTC calendar date convention.

Parameters:
  • year – The year. Something like 2005.

  • month – The month. A number in the range of [1, 12].

  • day – The day. A number between 1 and the maximum number of days in the month

  • hour – The hour. A number in the range of [0, 23].

  • minute – The minute. A number in the range of [0, 59].

  • sec – The second. A number in the range of [0, 59].

  • ns – the number of ns in the range of [0,1e9) after this second began.

void SetUnixTime(time_t unixTime, double ns = 0)

Sets the time in the Unix convention.

Parameters:
  • unixTime – time since the Epoch (00:00:00 UTC, January 1, 1970), measured in seconds ignoring leap seconds

  • ns – the number of ns after this second began.

int32_t GetModJulianDay() const

Gets the Modified Julian day.

int32_t GetModJulianSec() const

Gets the number of seconds since this Modified Julian day began.

Note

Modified Julian days begin at midnight

int32_t GetModJulianMicroSec() const

Gets the number of microseconds since this second began.

double GetModJulianNanoSec() const

Gets the number of nanoseconds since this second began.

double GetModJulianDayDouble() const

Gets the Modified Julian day as a double including fractional days.

Note

This is a suitable to pass to coordinate services as the time

time_t GetUnixTime() const

Gets the time in Unix convention.

Returns:

The number of seconds since the Epoch (00:00:00 UTC, January 1, 1970)

int GetUTCYear() const

Gets the year in the UTC convention.

int64_t GetUTCDaqTime() const

Gets the appropriate time for the DAQ. tenths of nanoseconds since the start of the UTC year.

Month GetUTCMonth() const

Gets the appropriate UTC Month.

Weekday GetUTCWeekday() const

Gets the appropriate day of the week.

int32_t GetUTCDayOfMonth() const

Gets the day of the month. This is calendar day, so there is no ‘0’.

int32_t GetUTCSec() const

Gets the number of seconds since this UTC year started.

double GetUTCNanoSec() const

Gets the number of nanoseconds since this current second started.

std::string GetUTCString(std::string format = "%Y-%m-%d %H:%M:%S UTC") const

Gets a string representing the time in UTC.

bool IsLeapSecond() const

returns weather this current second is is a leap second

bool operator==(const I3Time &rhs) const

equality operator.

Parameters:

rhs – the I3Time to compare this one to.

Returns:

true if the times are the same

inline bool operator!=(const I3Time &rhs) const

inequality operator

Parameters:

rhs – the I3Time to compare this one to.

Returns:

false if the times are different

bool operator<(const I3Time &rhs) const

comparison operator. Compares first the year and then the DAQ time

Returns:

true if the lhs should be ordered before the rhs

bool operator>(const I3Time &rhs) const

comparison operator. Compares first the year and then the DAQ time

Returns:

true if the lhs should be ordered after the rhs

bool operator<=(const I3Time &rhs) const
bool operator>=(const I3Time &rhs) const
I3Time operator+(const double) const

Adds a double (please use I3Units of time) to I3Time Takes into account rounding and leap years

I3Time operator-(const double) const

Public Static Functions

static std::string MonthToString(Month m)

Dumps a Month to a string for printing

static std::string WeekdayToString(Weekday w)

dumps a Weekday to a string for printing.

static double modjulianday(int year)
static double modjulianday(int year, int64_t daqTime)
static double julianday(int year)
static double julianday(int year, int64_t daqTime)
static int32_t yearOf(double modjulianday)
static int32_t DayOfYear(int64_t daqTime)
static int32_t DayOfYear(double modjulianday)

Public Static Attributes

static const char *DRIVING_TIME = "DrivingTime"

Private Functions

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

Private Members

int32_t year_
int64_t daqTime_

Friends

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

Public Types

enum OverlapType

Values:

enumerator BEFORE
enumerator WITHIN
enumerator AFTER
enumerator NONE
enumerator WITHOUT

Public Functions

inline I3TimeWindow()
inline I3TimeWindow(double start, double stop)
std::ostream &Print(std::ostream&) const override
inline double GetStart() const
inline double GetStop() const
inline double GetLength() const
inline bool Contains(double t) const

Return true if the given time is inside this time window.

Parameters:

t – a time

bool operator<(const I3TimeWindow &other) const
bool operator==(const I3TimeWindow &other) const
OverlapType GetOverlapType(const I3TimeWindow&) const

Private Functions

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

Private Members

double start_
double stop_

Friends

friend class I3TimeWindowSeries
friend class icecube::serialization::access
class I3TimeWindowSeries : public std::list<I3TimeWindow>, public I3FrameObject
#include <I3TimeWindow.h>

Public Functions

I3TimeWindowSeries operator|(const I3TimeWindowSeries &other) const
I3TimeWindowSeries operator&(const I3TimeWindowSeries &other) const
I3TimeWindowSeries operator~() const
inline I3TimeWindowSeries()
template<typename Iterator>
inline I3TimeWindowSeries(Iterator first, Iterator last)
std::ostream &Print(std::ostream&) const override
void push_back(const I3TimeWindow&)

Private Functions

void coalesce()
template<typename Archive>
void serialize(Archive &ar, unsigned)

Friends

friend class icecube::serialization::access
template<typename T>
struct I3Tree : public I3FrameObject, public tree<T>
#include <I3Tree.h>

STL-like container class for n-ary trees.

Public Types

typedef tree<T>::iterator_base iterator_base

Public Functions

inline I3Tree()
inline I3Tree(const T &value)
inline I3Tree(const iterator_base &other)
template<class Archive>
inline void save(Archive &ar, const unsigned int version) const
template<class Archive>
inline void load(Archive &ar, const unsigned int version)
class I3Trigger
#include <I3Trigger.h>

Public Functions

inline I3Trigger()

Default constructor.

~I3Trigger()

Destructor.

std::ostream &Print(std::ostream&) const
inline double GetTriggerTime() const

Retrieves time at which the trigger was issued.

Returns:

Trigger time.

inline void SetTriggerTime(double time)

Sets time at which the trigger was issued.

Parameters:

time – Trigger time.

inline double GetTriggerLength() const

Retrieves duration of triggered readout window.

Returns:

Trigger duration.

inline void SetTriggerLength(double length)

Sets duration of triggered readout window.

Parameters:

length – Trigger duration.

inline bool GetTriggerFired() const

Indicates, if the trigger was fired (used for simulations).

Returns:

true, if the trigger was fired.

inline void SetTriggerFired(bool fired)

Sets, if the trigger was fired (used for simulations).

Parameters:

fired – Indicates, if the trigger was fired.

inline const TriggerKey &GetTriggerKey() const

Gets trigger key.

Returns:

Key.

inline TriggerKey &GetTriggerKey()
inline void SetTriggerKey(const TriggerKey &key)
bool operator==(const I3Trigger &rhs) const
bool operator!=(const I3Trigger &rhs) const

Private Functions

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

Private Members

double time_
double length_
bool fired_
TriggerKey key_

Private Static Attributes

static const double FROM_TENTH_NS_TO_NS_CORRECTION_FACTOR = 0.1

Friends

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

A simple struct to hold the per-subdetector readout configurations.

Public Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)
inline I3TriggerReadoutConfig()
inline bool operator==(const I3TriggerReadoutConfig &rhs) const
inline bool operator!=(const I3TriggerReadoutConfig &rhs) const

Public Members

double readoutTimeMinus
double readoutTimePlus
double readoutTimeOffset
class I3TriggerStatus
#include <I3TriggerStatus.h>

Public Types

enum Subdetector

Subdetector enum, values match the daq labeling for subdirs. 0 = ALL doms (InIce, IceTop) together 1 = IceTop portion 2 = InIce DOMS

Values:

enumerator NOT_SPECIFIED
enumerator ALL
enumerator ICETOP
enumerator INICE

Public Functions

inline I3TriggerStatus()

Default constructor.

inline I3TriggerStatus(const std::string &name, const std::map<std::string, std::string> &settings)

Constructor.

Parameters:
  • name – Name of the trigger.

  • settings – Trigger settings: string, integer values.

inline ~I3TriggerStatus()

Destructor.

inline const std::string &GetTriggerName() const

Get trigger name.

Returns:

Name of trigger.

inline std::string &GetTriggerName()
inline const std::map<std::string, std::string> &GetTriggerSettings() const

Get trigger settings.

Returns:

Trigger settings: string, string values (contents vary by trigger type).

inline std::map<std::string, std::string> &GetTriggerSettings()
template<typename T>
void GetTriggerConfigValue(const std::string &key, boost::optional<T> &value) const

‘Get’s the trigger value for the given key. The underlying value is stored as a string ( just like in the DB ) and is converted on-the-fly to whichever type you want. Currently only bool, int, float, double, and string are supported.

template<typename T>
void GetTriggerConfigValue(const char *key, boost::optional<T> &value) const
template<typename T>
void GetTriggerConfigValue(const std::string &key, T &value) const
template<typename T>
void GetTriggerConfigValue(const char *key, T &value) const
template<typename T>
void SetTriggerConfigValue(const std::string &key, T value)

Sets the trigger config value. Currently the only supported types are bool, int, float, double, string, and const char*, but since the underlying code uses boost::lexical cast ( which uses stringstream, it’s trivial to add support for any streamable type.

template<typename T>
void SetTriggerConfigValue(const char *key, T value)
inline const std::map<Subdetector, I3TriggerReadoutConfig> &GetReadoutSettings() const
inline std::map<Subdetector, I3TriggerReadoutConfig> &GetReadoutSettings()
inline bool operator==(const I3TriggerStatus &rhs) const
inline bool operator!=(const I3TriggerStatus &rhs) const

Public Members

std::string name_
std::map<std::string, std::string> settings_
std::map<Subdetector, I3TriggerReadoutConfig> readoutconfigs_

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()
SET_LOGGER ("I3TriggerStatus")

Friends

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

A fragment of the direct/raw digital readout of an Amanda OM using the TWR DAQ.

The digital readout is fragment into waveform elements that show some pulse activity, to reduce the data acquired by a TWR. Every fragment has a start bin that determines the position of the fragment within the waveform relative to its start.

Public Functions

inline I3TWRFrag()

Default constructor.

~I3TWRFrag()

Destructor.

std::ostream &Print(std::ostream&) const
inline unsigned int GetStartBin() const

Returns the position of the fragment within the waveform.

Returns:

The position.

inline void SetStartBin(unsigned int startBin)

Sets the position of the fragment within the waveform.

Parameters:

startBin – The position.

inline const std::vector<unsigned int> &GetWaveform() const

Provides access to the waveform information of the fragment.

Returns:

The waveform information.

inline std::vector<unsigned int> &GetWaveform()

Provides access to the waveform information of the fragment.

Returns:

The waveform information.

Private Functions

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

Private Members

unsigned int startBin_
std::vector<unsigned int> rawFADC_

Friends

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

The direct/raw digital readout of an Amanda OM using the TWR DAQ.

Public Functions

inline I3TWRLaunch()

Default constructor.

~I3TWRLaunch()

Destructor.

std::ostream &Print(std::ostream&) const
inline unsigned int GetBaseline() const

Returns the baseline/mean value of the waveform (as determined by the TWR DAQ).

Returns:

The baseline/mean value.

inline void SetBaseline(unsigned int baseline)

Sets the baseline/mean value of the waveform (as determined by the TWR DAQ).

Parameters:

baseline – The baseline/mean value.

inline const std::vector<I3TWRFrag> &GetFragments() const

Provides access to the waveform’s fragments.

Returns:

Collection of waveform fragments.

inline std::vector<I3TWRFrag> &GetFragments()

Provides access to the waveform’s fragments.

Returns:

Collection of waveform fragments.

Private Functions

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

Private Members

unsigned int baseline_
std::vector<I3TWRFrag> fragments_

Friends

friend class icecube::serialization::access
template<typename T>
struct I3Vector : public std::vector<T>, public I3FrameObject
#include <I3Vector.h>

Copyright (C) 2006 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Public Types

typedef std::vector<T> base_t

Public Functions

inline I3Vector()
inline I3Vector(typename base_t::size_type s, const T &value)
inline explicit I3Vector(typename base_t::size_type n)
inline I3Vector(const I3Vector &rhs)
inline explicit I3Vector(const base_t &rhs)
template<typename Iterator>
inline I3Vector(Iterator l, Iterator r)
template<class Archive>
inline void serialize(Archive &ar, unsigned version)
inline std::ostream &Print(std::ostream &os) const override

Private Functions

inline std::ostream &PrintImpl(std::ostream &os, std::true_type can_print) const
inline std::ostream &PrintImpl(std::ostream &os, std::false_type cant_print) const
class I3VEMCalibration
#include <I3VEMCalibration.h>

Public Functions

inline I3VEMCalibration()
~I3VEMCalibration()
inline bool operator==(const I3VEMCalibration &rhs) const
inline bool operator!=(const I3VEMCalibration &rhs) const

Public Members

double pePerVEM

Average number of PE per VEM

double muPeakWidth

Width of the the average muon peak for this tank in PE

double hglgCrossOver

PE threshold for the HG pulses over which the corresponding LG pulses in the tank are used. (This value is only valid/important for HG DOMs)

double corrFactor

Optional correction factor to adjust high gain and low gain DOMs (Default value is set to 1)

Private Functions

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

Friends

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

Public Types

enum Source

Values:

enumerator ATWD
enumerator FADC
enumerator TWR_ELECTRICAL
enumerator TWR_OPTICAL
enumerator ETC
enumerator SLC
enumerator SiPM
enum Status

Describes possible artifacts within the data.

The waveform is a hardware independent representation of the data acquired. Nevertheless, it can carry artifacts due to hardware imperfections.

Saturation is an example, which is hard to recognize, since the waveform is a vector of doubles. Of course, it is still possible to recognize saturation using some more or less fancy algorithm, but the module converting the hardware dependent data into hardware independent data can recognize artifacts much easier. It should record this information using this enumeration.

If the DOM calibrator combines the ATWD channels, it should call bins that saturate even in the lowest amplified channel SATURATED, bins that saturate only in some channels COMBINED and bins that do not saturate in the highest amplified channel VIRGINAL. Bins that have drooped below the bias voltage should be marked as UNDERSHOT. These will be combined by GetStatus() in cases where the waveform is clipped on both sides, e.g. a droopy FADC waveform that saturates at the beginning and undershoots in the middle will be marked SATURATED | UNDERSHOT.

CHANGED in I3Waveform version 3: SHADY => COMBINED, ADULTERATED => SATURATED

Values:

enumerator VIRGINAL
enumerator COMBINED
enumerator SATURATED
enumerator UNDERSHOT

Public Functions

union I3Waveform::SourceCompound __attribute ((packed))
unsigned GetStatus() const
int GetChannel() const
inline I3Waveform()
~I3Waveform()
std::ostream &Print(std::ostream&) const
inline double GetStartTime() const
inline void SetStartTime(double startTime)
inline double GetBinWidth() const
inline void SetBinWidth(double binWidth)
inline const std::vector<double> &GetWaveform() const
inline std::vector<double> &GetWaveform()
inline void SetWaveform(const std::vector<double> &waveform)
inline const std::vector<StatusCompound> &GetWaveformInformation() const

Returns a status information for this waveform.

Returns:

A collection of status compounds. A status compound consists of an interval and a status information. It describes the status of all waveform bins with indices [GetInterval().first, GetInterval().second). If there are waveform bins not described by a status compound, these bins are assumed to have a status equal to VIRGINAL, e. g. GetWaveformInformation().empty() equal true means, all waveform bins are good.

inline std::vector<StatusCompound> &GetWaveformInformation()

Returns a status information for this waveform.

Returns:

A collection of status compounds. A status compound consists of an interval and a status information. It describes the status of all waveform bins with indices [GetInterval().first, GetInterval().second). If there are waveform bins not described by a status compound, these bins are assumed to have a status equal to VIRGINAL, e. g. GetWaveformInformation().empty() equal true means, all waveform bins are good.

inline void SetWaveformInformation(const std::vector<StatusCompound> &info)

Set the status information for this waveform.

Note: This method was added since there is a set method for the waveforms, too. One might want to use the non-const get methods instead.

Parameters:

info – The status information.

inline Source GetSource() const

Returns the source flag. This is a legacy function to maintain compatibility with old code. It returns I3Waveform::SLC for SLC waveforms and the digitizer for HLC waveforms.

To get more detailed information use IsHLC and GetDigitizer instead.

inline bool IsHLC() const
inline bool IsSLC() const
inline void SetHLC(bool hlc)
inline Source GetDigitizer() const

Returns the digitizer (ATWD or FADC)

inline void SetDigitizer(Source source)

Set the digitizer (ATWD or FADC). Do not set to SLC.

inline unsigned GetSourceIndex() const

Get the source index for this waveform (e.g. the ATWD chip ID)

inline void SetSourceIndex(unsigned num)

Public Members

enum I3Waveform::Status __attribute

Public Static Functions

static unsigned GetStatus(const std::vector<StatusCompound> &waveformInfo)

Returns a summary of a given waveform/status information.

Returns:

ADULTERATED/SHADY if any included status compound is ADULTERATED/SHADY, or VIRGINAL.

Private Functions

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

Private Members

double startTime_
double binWidth_
std::vector<double> waveform_
std::vector<StatusCompound> waveformInfo_
SourceCompound source_

Friends

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

Public Functions

inline IceActKey()
inline IceActKey(int stn, int tel)
inline ~IceActKey()
inline void SetStationID(int stn)
inline void SetTelescopeID(int tel)
inline int GetStationID() const
inline int GetTelescopeID() const
inline bool operator==(const IceActKey &rhs) const
inline bool operator!=(const IceActKey &rhs) const
inline void operator=(const IceActKey &rhs)

Private Functions

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

Private Members

int32_t stationID_
int32_t telescopeID_

Friends

friend class icecube::serialization::access
class iterator_base
#include <tree.hh>

Base class for iterators, only pointers stored, no traversal logic.

Subclassed by tree< T, tree_node_allocator >::fixed_depth_iterator, tree< T, tree_node_allocator >::post_order_iterator, tree< T, tree_node_allocator >::pre_order_iterator, tree< T, tree_node_allocator >::sibling_iterator

Public Types

typedef T value_type
typedef T *pointer
typedef T &reference
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef std::bidirectional_iterator_tag iterator_category

Public Functions

iterator_base()
iterator_base(tree_node*)
T &operator*() const
T *operator->() const
void skip_children()

When called, the next increment/decrement skips children of this node.

unsigned int number_of_children() const

Number of children of the node pointed to by the iterator.

sibling_iterator begin() const
sibling_iterator end() const

Public Members

tree_node *node

Protected Attributes

bool skip_current_children_
template<class Derived, class Value, class StorageType>
class iterator_base : public boost::iterator_facade<iterator_base<Derived, Value, StorageType>, Value, boost::forward_traversal_tag>
#include <I3MCTree.h>

Iterator base (for tree-based iterators)

Public Functions

inline explicit iterator_base()
inline explicit iterator_base(TreeValue &ext)
inline explicit iterator_base(TreeValue &ext, const T *v)
inline explicit iterator_base(TreeValue &ext, const Key &k)
template<typename D, typename V, typename S>
inline explicit iterator_base(const iterator_base<D, V, S> &iter)
template<typename D, typename S>
inline iterator_base<Derived, Value, StorageType> &operator=(const iterator_base<D, Value, S> &iter)

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<StorageType, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline StorageType first_()
inline void next_()

Protected Attributes

storage_traits node_

Private Functions

inline explicit iterator_base(TreeValue &ext, const TreeHashKey &h)
inline Derived &derived_()
inline Value &dereference() const
inline bool equal(iterator_base<Derived, Value, StorageType> const &other) const
inline void increment()

Friends

friend class Tree< T, Key, Hash >
class iterator_base_less
#include <tree.hh>

Comparator class for iterators (compares the actual node content, not pointer values).

Public Functions

inline bool operator()(const typename tree<T, tree_node_allocator>::iterator_base &one, const typename tree<T, tree_node_allocator>::iterator_base &two) const
template<typename ValueType, int dummy = 0>
struct iterator_const_traits

Iterator Const Traits

Define TreeValue and TreeHashMapIter types.

template<int dummy>
struct iterator_const_traits<const T, dummy>

Public Types

typedef const Tree<T, Key, Hash> TreeValue
typedef tree_hash_map::const_iterator TreeHashMapIter
template<int dummy>
struct iterator_const_traits<T, dummy>

Public Types

typedef Tree<T, Key, Hash> TreeValue
typedef tree_hash_map::iterator TreeHashMapIter
template<typename StorageType, typename ValueType, typename TreeType, typename TreeHashMapIter>
struct iterator_storage_impl

Iterator Storage Class

Keep track of the actual data type storage of the tree, as well as a pointer to the tree itself.

template<typename ValueType, typename TreeType, typename TreeHashMapIter>
struct iterator_storage_impl<TreeHashKey, ValueType, TreeType, TreeHashMapIter>

Public Functions

inline explicit iterator_storage_impl()
inline explicit iterator_storage_impl(TreeType &t)
inline explicit iterator_storage_impl(TreeType &t, ValueType v)
inline explicit iterator_storage_impl(TreeType &t, const Key &k)
inline explicit iterator_storage_impl(TreeType &t, TreeHashKey hk)
inline explicit iterator_storage_impl(TreeType &t, TreeHashMapIter iter)
template<typename V, typename TT, typename THMI>
inline iterator_storage_impl(const iterator_storage_impl<TreeHashKey, V, TT, THMI> &rhs)
template<typename V, typename TT, typename THMI>
inline iterator_storage_impl(const iterator_storage_impl<THMI, V, TT, THMI> &rhs)
inline ValueType &dereference() const
template<typename Storage, typename V, typename TT, typename THMI>
inline iterator_storage_impl<TreeHashKey, ValueType, TreeType, TreeHashMapIter> &operator=(const iterator_storage_impl<Storage, V, TT, THMI> &rhs)
inline TreeHashKey &operator=(const TreeHashKey &rhs)
inline const T &operator=(const T &rhs)
inline bool operator==(const iterator_storage_impl<TreeHashKey, ValueType, TreeType, TreeHashMapIter> &rhs) const
inline bool operator!=(const iterator_storage_impl<TreeHashKey, ValueType, TreeType, TreeHashMapIter> &rhs) const

Public Members

TreeType *treePtr_
TreeHashKey storage_
template<typename ValueType, typename TreeType, typename TreeHashMapIter>
struct iterator_storage_impl<TreeHashMapIter, ValueType, TreeType, TreeHashMapIter>

Public Functions

inline explicit iterator_storage_impl()
inline explicit iterator_storage_impl(TreeType &t)
inline explicit iterator_storage_impl(TreeType &t, ValueType v)
inline explicit iterator_storage_impl(TreeType &t, const Key &k)
inline explicit iterator_storage_impl(TreeType &t, TreeHashKey hk)
inline explicit iterator_storage_impl(TreeType &t, TreeHashMapIter iter)
template<typename V, typename TT, typename THMI>
inline iterator_storage_impl(const iterator_storage_impl<TreeHashKey, V, TT, THMI> &rhs)
template<typename V, typename TT, typename THMI>
inline iterator_storage_impl(const iterator_storage_impl<THMI, V, TT, THMI> &rhs)
inline ValueType &dereference() const
template<typename Storage, typename V, typename TT, typename THMI>
inline iterator_storage_impl<TreeHashMapIter, ValueType, TreeType, TreeHashMapIter> &operator=(const iterator_storage_impl<Storage, V, TT, THMI> &rhs)
inline TreeHashMapIter &operator=(const TreeHashMapIter &rhs)
inline bool operator==(const iterator_storage_impl<TreeHashMapIter, ValueType, TreeType, TreeHashMapIter> &rhs) const
inline bool operator!=(const iterator_storage_impl<TreeHashMapIter, ValueType, TreeType, TreeHashMapIter> &rhs) const

Public Members

TreeType *treePtr_
TreeHashMapIter storage_
template<class Value>
class leaf_iter : public TreeBase::Tree<T, Key, Hash>::iterator_base<leaf_iter<Value>, Value, iterator_const_traits<Value>::TreeHashMapIter>
#include <I3MCTree.h>

Leaf iterator: O(n) Note that there is no ordering of leaves

Public Functions

inline explicit leaf_iter()
inline leaf_iter(TreeValue &ext)
inline explicit leaf_iter(const leaf_iter<T> &iter)
inline leaf_iter(const iterator_base<leaf_iter<Value>, Value, TreeHashMapIter> &iter)
template<typename D, typename S>
inline leaf_iter(const iterator_base<D, Value, S> &iter)
inline explicit leaf_iter(TreeValue &ext, Value *v)
inline explicit leaf_iter(TreeValue &ext, const Key &k)
template<typename D, typename S>
inline leaf_iter<Value> &operator=(const iterator_base<D, Value, S> &iter)
inline operator leaf_iter<const Value>() const

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<TreeHashMapIter, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline TreeHashMapIter first_()
inline void next_()

Private Functions

inline explicit leaf_iter(TreeValue &ext, const TreeHashKey &k)

Friends

friend class Tree< T, Key, Hash >
friend class iterator_base< leaf_iter< Value >, Value, TreeHashMapIter >
struct LinearFit
#include <I3DOMCalibration.h>

A struct to hold a linear fit A simple struct to define a linear fit: intercept + slope*x.

Public Functions

inline bool operator==(const LinearFit &rhs) const
inline bool operator!=(const LinearFit &rhs) const
template<class Archive>
void serialize(Archive &ar, unsigned version)
inline LinearFit()

Public Members

double slope
double intercept
template<typename T, typename Key, typename Hash>
struct load_old_filter
#include <I3MCTree_impl.h>

Public Static Functions

static inline T call(Tree<T, Key, Hash> *tree_ptr, const T &item)
template<typename Key, typename Hash>
struct load_old_filter<I3Particle, Key, Hash>
#include <I3MCTree_impl.h>

Public Static Functions

static inline I3Particle call(Tree<I3Particle, Key, Hash> *tree_ptr, const I3Particle &item)
class ModuleKey
#include <ModuleKey.h>

A small class which is the string number and om number for a “module”. Most of the time this will be an optical module. Use this when you index something that is specific to an optical module, not to a PMT inside it (it might have multiple PMTs). If you need an index for PMTs (you will probably want this most of the time), use the “OMKey” class.

Public Functions

inline ModuleKey()
inline ModuleKey(int str, unsigned int om)
inline int GetString() const

retrieves the string number for this ModuleKey

inline void SetString(int str)

Sets the string number for this OM

inline unsigned int GetOM() const

gets the OM number on the string

inline void SetOM(unsigned int om)

sets the OM number on the string

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

equality operator.

Parameters:

rhs – the ModuleKey to compare this one to.

Returns:

true if the string and om numbers of the two ModuleKey’s match

inline bool operator!=(const ModuleKey &rhs) const

inequality operator

Parameters:

rhs – the ModuleKey to compare this one to.

Returns:

false if the string or om numbers are different

Private Functions

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

$Id$

Copyright (C) 2012 The IceCube Collaboration http://www.icecube.wisc.edu

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SPDX-License-Identifier: BSD-2-Clause

Private Members

int stringNumber_
unsigned int omNumber_

Friends

friend class icecube::serialization::access
struct null_deleter

Public Functions

inline void operator()(void const*) const
struct operator_and

Public Functions

inline mask_t operator()(mask_t lhs, mask_t rhs)
struct operator_andnot

Public Functions

inline mask_t operator()(mask_t lhs, mask_t rhs)
struct operator_or

Public Functions

inline mask_t operator()(mask_t lhs, mask_t rhs)
struct operator_xor

Public Functions

inline mask_t operator()(mask_t lhs, mask_t rhs)
template<class Value>
class post_order : public TreeBase::Tree<T, Key, Hash>::iterator_base<post_order<Value>, Value, TreeHashKey>
#include <I3MCTree.h>

Post order iterator: O(n log n)

Public Functions

inline explicit post_order()
inline post_order(TreeValue &ext)
inline explicit post_order(const post_order<T> &iter)
inline post_order(const iterator_base<post_order<Value>, Value, TreeHashKey> &iter)
template<typename D, typename S>
inline post_order(const iterator_base<D, Value, S> &iter)
inline explicit post_order(TreeValue &ext, const Value *value)
inline explicit post_order(TreeValue &ext, const Key &k)
template<typename D, typename S>
inline post_order<Value> &operator=(const iterator_base<D, Value, S> &iter)
inline operator post_order<const Value>() const

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<TreeHashKey, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline TreeHashKey first_()
inline void next_()

Private Functions

inline explicit post_order(TreeValue &ext, const TreeHashKey &k)

Friends

friend class Tree< T, Key, Hash >
friend class iterator_base< post_order< Value >, Value, TreeHashKey >
class post_order_iterator : public tree<T, tree_node_allocator>::iterator_base
#include <tree.hh>

Depth-first iterator, first accessing the children, then the node itself.

Public Functions

post_order_iterator()
post_order_iterator(tree_node*)
post_order_iterator(const iterator_base&)
post_order_iterator(const sibling_iterator&)
bool operator==(const post_order_iterator&) const
bool operator!=(const post_order_iterator&) const
post_order_iterator &operator++()
post_order_iterator &operator--()
post_order_iterator operator++(int)
post_order_iterator operator--(int)
post_order_iterator &operator+=(unsigned int)
post_order_iterator &operator-=(unsigned int)
void descend_all()

Set iterator to the first child as deep as possible down the tree.

template<class Value>
class pre_order : public TreeBase::Tree<T, Key, Hash>::iterator_base<pre_order<Value>, Value, TreeHashKey>
#include <I3MCTree.h>

Pre order iterator: O(n)

Public Functions

inline explicit pre_order()
inline pre_order(TreeValue &ext)
inline explicit pre_order(const pre_order<T> &iter)
inline pre_order(const iterator_base<pre_order<Value>, Value, TreeHashKey> &iter)
template<typename D, typename S>
inline pre_order(const iterator_base<D, Value, S> &iter)
inline explicit pre_order(TreeValue &ext, const Value *value)
inline explicit pre_order(TreeValue &ext, const Key &k)
template<typename D, typename S>
inline pre_order<Value> &operator=(const iterator_base<D, Value, S> &iter)
inline operator pre_order<const Value>() const

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<TreeHashKey, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline TreeHashKey first_()
inline void next_()

Private Functions

inline explicit pre_order(TreeValue &ext, const TreeHashKey &k)

Friends

friend class Tree< T, Key, Hash >
friend class iterator_base< pre_order< Value >, Value, TreeHashKey >
class pre_order_iterator : public tree<T, tree_node_allocator>::iterator_base
#include <tree.hh>

Depth-first iterator, first accessing the node, then its children.

Public Functions

pre_order_iterator()
pre_order_iterator(tree_node*)
pre_order_iterator(const iterator_base&)
pre_order_iterator(const sibling_iterator&)
bool operator==(const pre_order_iterator&) const
bool operator!=(const pre_order_iterator&) const
pre_order_iterator &operator++()
pre_order_iterator &operator--()
pre_order_iterator operator++(int)
pre_order_iterator operator--(int)
pre_order_iterator &operator+=(unsigned int)
pre_order_iterator &operator-=(unsigned int)
struct QuadraticFit
#include <I3DOMCalibration.h>

A struct to hold the parameters of a Quadratic fit A simple struct to define a Quadratic fit: A + B*x + C*x*x.

Public Functions

inline bool operator==(const QuadraticFit &rhs) const
inline bool operator!=(const QuadraticFit &rhs) const
template<class Archive>
void serialize(Archive &ar, unsigned version)
inline QuadraticFit()

Public Members

double quadFitA
double quadFitB
double quadFitC
struct RunCodec
#include <I3SuperDSTUtils.h>

Public Types

typedef std::vector<uint8_t> vector_t

Public Static Functions

static void EncodeRun(vector_t &codes, uint8_t val, unsigned len)
static void DecodeRun(vector_t &target, const vector_t::const_iterator &head, const vector_t::const_iterator &tail)
static void Encode(const vector_t &runs, vector_t &codes)
static void Decode(const vector_t &codes, vector_t &runs)
class ScintKey
#include <ScintKey.h>

Public Functions

inline ScintKey()
inline ScintKey(int stn, int pan)
inline ~ScintKey()
inline void SetStationID(int stn)
inline void SetPanelID(int pan)
inline int GetStationID() const
inline int GetPanelID() const
inline bool operator==(const ScintKey &rhs) const
inline bool operator!=(const ScintKey &rhs) const
inline void operator=(const ScintKey &rhs)

Private Functions

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

Private Members

int32_t stationID_
int32_t panelID_

Friends

friend class icecube::serialization::access
template<typename Value>
class sibling_iter : public TreeBase::Tree<T, Key, Hash>::iterator_base<sibling_iter<Value>, Value, TreeHashKey>
#include <I3MCTree.h>

Sibling iterator: O(n)

Public Functions

inline explicit sibling_iter()
inline sibling_iter(TreeValue &ext)
inline explicit sibling_iter(const sibling_iter<T> &iter)
inline sibling_iter(const iterator_base<sibling_iter<Value>, Value, TreeHashKey> &iter)
template<typename V>
inline sibling_iter(const sibling_iter<V> &iter)
template<typename D, typename S>
inline sibling_iter(const iterator_base<D, Value, S> &iter)
inline explicit sibling_iter(TreeValue &ext, const Value *value)
inline explicit sibling_iter(TreeValue &ext, const Key &k)
template<typename D, typename S>
inline sibling_iter<Value> &operator=(const iterator_base<D, Value, S> &iter)
inline operator sibling_iter<const Value>() const

Protected Types

typedef iterator_const_traits<Value> const_traits
typedef const_traits::TreeValue TreeValue
typedef const_traits::TreeHashMapIter TreeHashMapIter
typedef iterator_storage_impl<TreeHashKey, Value, TreeValue, TreeHashMapIter> storage_traits

Protected Functions

inline TreeHashKey first_()
inline void next_()

Private Functions

inline explicit sibling_iter(TreeValue &ext, const TreeHashKey &k)

Friends

friend class Tree< T, Key, Hash >
friend class iterator_base< sibling_iter< Value >, Value, TreeHashKey >
class sibling_iterator : public tree<T, tree_node_allocator>::iterator_base
#include <tree.hh>

Iterator which traverses only the nodes which are siblings of each other.

Public Functions

sibling_iterator()
sibling_iterator(tree_node*)
sibling_iterator(const sibling_iterator&)
sibling_iterator(const iterator_base&)
bool operator==(const sibling_iterator&) const
bool operator!=(const sibling_iterator&) const
sibling_iterator &operator++()
sibling_iterator &operator--()
sibling_iterator operator++(int)
sibling_iterator operator--(int)
sibling_iterator &operator+=(unsigned int)
sibling_iterator &operator-=(unsigned int)
tree_node *range_first() const
tree_node *range_last() const

Public Members

tree_node *parent_

Private Functions

void set_parent_()
struct SizeCodec
#include <I3SuperDSTUtils.h>

Public Types

typedef uint64_t size_type

Public Functions

inline SizeCodec()
inline SizeCodec(size_type size)
inline size_type value()
template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()

Public Members

size_type size_

Friends

friend class icecube::serialization::access
union SourceCompound
#include <I3Waveform.h>

Public Functions

inline SourceCompound(Source source = ATWD, unsigned id = 0)

Public Members

uint8_t slop
uint8_t hlc
uint8_t id
uint8_t source
struct I3Waveform::SourceCompound::[anonymous] fields
uint8_t bits
struct SPEChargeDistribution
#include <I3DOMCalibration.h>

: A struct to hold the parameters of an two exponential + gaussian fit to the SPE charge distribution: P(q) = exp1_amp * exp(-q/exp1_width) + exp2_amp * exp(-q / exp2_width) + gaus_amp * np.exp(-0.5*(q - gaus_mean)**2/gaus_width**2))

The Compensation Factor is simply the mean charge of the TA0003 distribution divided by the average SPE Template charge. CF = (dintt_0^inf q f(q)_ta0003 dq) / (dintt_0^inf q f(q)_spe dq) Given the current SPE Templates, this factor is roughly 1.3

Public Functions

template<class Archive>
void load(Archive &ar, unsigned version)
template<class Archive>
void save(Archive &ar, unsigned version) const
I3_SERIALIZATION_SPLIT_MEMBER()
inline SPEChargeDistribution()
inline SPEChargeDistribution(double amp_exp1, double width_exp1, double amp_exp2, double width_exp2, double amp_gaus, double mean_gaus, double width_gaus, double factor_compensation, double gaus_mean_SLC)
inline bool IsValid() const
inline double Mean() const

Evaluate the mean and standard deviation of the SPE template distribution.

inline double StdDev() const
inline double GetMaxResidual() const
inline double ComputeResidual(double q) const
inline bool operator==(const SPEChargeDistribution &rhs) const
inline bool operator!=(const SPEChargeDistribution &rhs) const
inline double operator()(double q) const

Public Members

double exp1_amp
double exp1_width
double exp2_amp
double exp2_width
double gaus_amp
double gaus_mean
double gaus_width
double compensation_factor
double SLC_gaus_mean
mutable double mean_charge

The expected value of this charge distribution. This quantity is derived from others lazily, so it is does not participate in serialization or comparison.

mutable double variance
mutable double max_residual

Private Functions

double ComputeMeanCharge() const
double ComputeChargeVariance() const

Private Static Attributes

static const unsigned int correctionSize = 102
static const double xData[] = {0.0, 0.0025, 0.0125, 0.0225, 0.0325, 0.042499999999999996, 0.052500000000000005, 0.0625, 0.07250000000000001, 0.0825, 0.0925, 0.10250000000000001, 0.1125, 0.1225, 0.1325, 0.14250000000000002, 0.1525, 0.1625, 0.17250000000000001, 0.1825, 0.1925, 0.2025, 0.2125, 0.2225, 0.2325, 0.2425, 0.2525, 0.2625, 0.2725, 0.28250000000000003, 0.2925, 0.3025, 0.3125, 0.3225, 0.3325, 0.3425, 0.35250000000000004, 0.3625, 0.3725, 0.3825, 0.3925, 0.4025, 0.41250000000000003, 0.4225, 0.4325, 0.4425, 0.4525, 0.4625, 0.47250000000000003, 0.4825, 0.4925, 0.5025, 0.5125, 0.5225, 0.5325, 0.5425, 0.5525, 0.5625, 0.5725, 0.5825, 0.5925, 0.6025, 0.6125, 0.6225, 0.6325000000000001, 0.6425000000000001, 0.6525000000000001, 0.6625000000000001, 0.6725000000000001, 0.6825000000000001, 0.6925000000000001, 0.7025, 0.7124999999999999, 0.7224999999999999, 0.7324999999999999, 0.7424999999999999, 0.7525, 0.7625, 0.7725, 0.7825, 0.7925, 0.8025, 0.8125, 0.8225, 0.8325, 0.8425, 0.8525, 0.8625, 0.8725, 0.8825000000000001, 0.8925000000000001, 0.9025000000000001, 0.9125000000000001, 0.9225000000000001, 0.9325000000000001, 0.9425000000000001, 0.9525000000000001, 0.9624999999999999, 0.9724999999999999, 0.9824999999999999, 0.9924999999999999, 5.0}
static const double yData[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0078185220290956, 1.0042299812007673, 0.9935908344034875, 0.9850454543557308, 0.9726915954383835, 0.9697828027792773, 0.9652743986792529, 0.9678607318783602, 0.9710489835385085, 0.9779325024066567, 0.9851805409942587, 0.9917270505917856, 0.9996406452735341, 1.0068567044292451, 1.017735687531788, 1.0267751591351273, 1.0370993434166467, 1.044744857399972, 1.0573247280549134, 1.0625672697852353, 1.0746265958307744, 1.0811289116634608, 1.0895461845600405, 1.0969954086913443, 1.102224227160381, 1.1080791739726892, 1.1124879641850856, 1.1167398762419734, 1.1191118871969707, 1.1225845994808588, 1.1228561156113273, 1.1214733538285444, 1.1201466033159877, 1.119017891198713, 1.117034774252846, 1.114784420031669, 1.1106707843428119, 1.1046761249652928, 1.1004126244552774, 1.0971385151354633, 1.0917037242585172, 1.0851977267453712, 1.0803033012303216, 1.072758138133644, 1.067524998209676, 1.0625850059075657, 1.0555095359234306, 1.0509622181928957, 1.0440128255959997, 1.0395139814809693, 1.0354914927244894, 1.0310352119539496, 1.0267994142473922, 1.0218812500846572, 1.01668830547869, 1.0147294646372143, 1.0109961001746626, 1.0088071581605818, 1.0056045189846852, 1.0042154120061508, 1.0010489798770452, 0.9986921110064382, 0.9988728971422061, 0.9970854046567016, 0.9968106821162841, 0.9963693247219644, 0.9941273798848427, 0.9958665014503302, 0.9949889009733639, 0.9959272341615341, 0.9955380608193667, 0.996792440853806, 0.9961095310945263, 0.9961005008737484, 0.9973811405595548, 0.9988258893905738, 0.9980287475191254, 0.9991263792520673, 1.000596123699185, 1.0017720700471255, 1.0030773292152362, 1.0016553887740836, 1.0026409396829936, 1.0025133670051922, 1.0035085128801953, 1.0}
struct SPETemplate
#include <I3DOMCalibration.h>

Public Functions

inline SPETemplate()
inline SPETemplate(double c, double x0, double b1, double b2)
inline bool operator==(const SPETemplate &rhs) const
inline bool operator!=(const SPETemplate &rhs) const

Public Members

double c
double x0
double b1
double b2
class StatusCompound
#include <I3Waveform.h>

Public Functions

inline StatusCompound()
~StatusCompound()
std::ostream &Print(std::ostream&) const
inline const std::pair<unsigned long long int, unsigned long long int> &GetInterval() const
inline std::pair<unsigned long long int, unsigned long long int> &GetInterval()
inline Status GetStatus() const
inline void SetStatus(Status status)
inline int8_t GetChannel() const
inline void SetChannel(int8_t channel)
inline bool operator==(const StatusCompound &rhs) const

Private Functions

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

Private Members

std::pair<unsigned long long int, unsigned long long int> interval_
Status status_
int8_t channel_

Friends

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

Public Types

enum TankID

Values:

enumerator TankA
enumerator TankB

Public Functions

inline TankKey()
inline TankKey(int str, TankID tank_)
inline explicit TankKey(const OMKey &omKey)
inline ~TankKey()
std::ostream &Print(std::ostream&) const
void SetOMKey(const OMKey &omKey)

Sets the stringNumber and tankID of this tank according to the OMKey

OMKey GetDefaultOMKey() const

Get one of the DOMs inside the tank. By convention, this returns the OMKey with the lower omNumber.

Use this as an adapter to use TankKeys with I3MapOMKey* frame objects. This is an effective work-around for the fact that we don’t have I3MapTankKey* frame objects.

Example use-case: You want to count muons that hit tanks, the tanks are defined by a collection of TankKeys. Make a I3MapOMKeyUInt called “mymap”. If a tank is hit, do mymap[tankKey.GetDefaultOMKey()] += 1, to increase the count for that tank.

Later in the analysis, you can recover the TankKeys from mymap using the special constructor TankKey(const OMkey& omKey) or TankKey::SetOMKey(const OMKey& omKey).

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

equality operator.

Parameters:

rhs – the TankKey to compare this one to.

Returns:

true if the string and tank numbers of the two TankKey’s match

inline bool operator!=(const TankKey &rhs) const

inequality operator

Parameters:

rhs – the TankKey to compare this one to.

Returns:

false if the string or tank numbers are different

Public Members

int string
TankID tank

Private Functions

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

Friends

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

A struct to hold the parameters of the toroid time constants parameters for electronic droop correction The two time constants parametrize this correction as a function of temperature (T): Tau_1(T) = P0 + ( P1/(1+exp(-(T/P2)) )) Tau_2(T) = P3 + ( P4/(1+exp(-(T/P5)) )) the functions exp(-t/tau1) and exp(-t/tau2) are combined in the TauFrac proportion to reproduce the electronics behaviour through (1-Taufrac)exp(-t/tau1) + TauFrac exp(-t/tau2)

Public Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)
inline TauParam()
inline TauParam(double p0, double p1, double p2, double p3, double p4, double p5, double tauFrac)
inline bool operator==(const TauParam &rhs) const
inline bool operator!=(const TauParam &rhs) const

Public Members

double P0
double P1
double P2
double P3
double P4
double P5
double TauFrac
class TestConstCache : public I3Module

Public Functions

inline TestConstCache(const I3Context &ctx)
inline void Geometry(I3FramePtr frame)
inline void DAQ(I3FramePtr frame)
inline void Configure()

Private Members

I3GeometryConstPtr cached_geo_
const OMKey test_dom_
I3OMGeo::OMType test_value_
template<typename T, typename Key = T, typename Hash = hash<Key>>
class Tree : public I3FrameObject
#include <I3MCTree_fwd.h>

A generic tree class for hashable, unique data types.

Note that Key must be unique and equality comparable.

Template Parameters:
  • T – is the data type

  • Key – is the lookup type (T must be able to be implicitly converted to Key)

  • Hash – is the hash function to convert from Key to size_t

Subclassed by I3LinearizedMCTree

Public Types

typedef T value_type
typedef T *pointer
typedef T &reference
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef std::forward_iterator_tag iterator_category
typedef boost::optional<T> optional_value

The optional_value is used when returning by value when there might not be anything to return.

typedef pre_order<T> pre_order_iterator
typedef pre_order<const T> pre_order_const_iterator
typedef post_order<T> post_order_iterator
typedef post_order<const T> post_order_const_iterator
typedef sibling_iter<T> sibling_iterator
typedef sibling_iter<const T> sibling_const_iterator
typedef fast_iter<T> fast_iterator
typedef fast_iter<const T> fast_const_iterator
typedef leaf_iter<T> leaf_iterator
typedef leaf_iter<const T> leaf_const_iterator
typedef pre_order_iterator iterator

Define the default iterator

typedef pre_order_const_iterator const_iterator

Public Functions

Tree()

Constructors and destructor

Tree(const T &value)
template<typename Derived, typename Storage>
Tree(const iterator_base<Derived, const T, Storage> &other)
Tree(const Tree<T, Key, Hash>&)
~Tree()
std::ostream &Print(std::ostream&) const override
const Tree<T, Key, Hash> operator=(const Tree<T, Key, Hash>&)

Assignment operator

bool operator==(const Tree<T, Key, Hash> &other) const

Equality operator to compare two trees

bool operator!=(const Tree<T, Key, Hash> &other) const
inline pre_order_iterator begin()
inline pre_order_const_iterator begin() const
inline pre_order_const_iterator cbegin() const
inline pre_order_iterator end()
inline pre_order_const_iterator end() const
inline pre_order_const_iterator cend() const
inline post_order_iterator begin_post()
inline post_order_const_iterator begin_post() const
inline post_order_const_iterator cbegin_post() const
inline post_order_iterator end_post()
inline post_order_const_iterator end_post() const
inline post_order_const_iterator cend_post() const
template<typename D, typename V, typename S>
inline sibling_iterator begin_sibling(const iterator_base<D, V, S> &i)
template<typename D, typename V, typename S>
inline sibling_const_iterator begin_sibling(const iterator_base<D, V, S> &i) const
template<typename D, typename V, typename S>
inline sibling_const_iterator cbegin_sibling(const iterator_base<D, V, S> &i) const
inline sibling_iterator begin_sibling(const Key &k)
inline sibling_const_iterator begin_sibling(const Key &k) const
inline sibling_const_iterator cbegin_sibling(const Key &k) const
template<typename D, typename V, typename S>
inline sibling_iterator end(const iterator_base<D, V, S> &i)
template<typename D, typename V, typename S>
inline sibling_const_iterator end(const iterator_base<D, V, S> &i) const
template<typename D, typename V, typename S>
inline sibling_const_iterator cend(const iterator_base<D, V, S> &i) const
inline sibling_iterator end_sibling()
inline sibling_const_iterator end_sibling() const
inline sibling_const_iterator cend_sibling() const
inline fast_iterator begin_fast()
inline fast_const_iterator begin_fast() const
inline fast_const_iterator cbegin_fast() const
inline fast_iterator end_fast()
inline fast_const_iterator end_fast() const
inline fast_const_iterator cend_fast() const
inline leaf_iterator begin_leaf()
inline leaf_const_iterator begin_leaf() const
inline leaf_const_iterator cbegin_leaf() const
inline leaf_iterator end_leaf()
inline leaf_const_iterator end_leaf() const
inline leaf_const_iterator cend_leaf() const
const optional_value get_head() const

Get the (first) head/root value.

const std::vector<T> get_heads() const

Get all of the head/root values.

const optional_value at(const Key&) const

Get value at key

Note that non-const versions are not provided because some modifications could change the key as well and cannot be allowed.

const optional_value operator[](const Key&) const
iterator find(const Key&)

Get iterator at key

const_iterator find(const Key&) const
const optional_value parent(const Key&) const

Get parent

template<typename Derived, typename Storage>
iterator_base<Derived, T, Storage> parent(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
iterator_base<Derived, const T, Storage> parent(const iterator_base<Derived, const T, Storage>&) const
const optional_value previous_sibling(const Key&) const

Get previous sibling

template<typename Derived, typename Storage>
iterator_base<Derived, T, Storage> previous_sibling(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
iterator_base<Derived, const T, Storage> previous_sibling(const iterator_base<Derived, const T, Storage>&) const
const optional_value next_sibling(const Key&) const

Get next sibling

template<typename Derived, typename Storage>
iterator_base<Derived, T, Storage> next_sibling(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
iterator_base<Derived, const T, Storage> next_sibling(const iterator_base<Derived, const T, Storage>&) const
const std::vector<T> children(const Key&) const

Get immediate children

template<class Derived, class Storage>
sibling_iter<T> children(const iterator_base<Derived, T, Storage>&)
template<class Derived, class Storage>
sibling_iter<const T> children(const iterator_base<Derived, const T, Storage>&) const
const optional_value first_child(const Key&) const

Get first child

template<typename Derived, typename Storage>
iterator_base<Derived, T, Storage> first_child(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
iterator_base<Derived, const T, Storage> first_child(const iterator_base<Derived, const T, Storage>&) const
void clear()

Clear all nodes from tree

void erase(const Key&)

Erase node and children

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> erase(const iterator_base<Derived, Value, Storage>&)
void erase_children(const Key&)

Erase children of node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> erase_children(const iterator_base<Derived, Value, Storage>&)
void append_child(const Key &node, const T&)

Add a child to a node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage>&, const T&)
void append_child(const Key &node, const Tree<T, Key, Hash>&, const Key&)

Add subtree as a child to a node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage>&, const Tree<T, Key, Hash>&, const Key&)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
void append_children(const Key &node, const std::vector<T>&)

Add several children to a node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> append_children(const iterator_base<Derived, Value, Storage>&, const std::vector<T>&)
template<typename Iterator>
void append_children(const Key &node, Iterator, const Iterator&)

Add multiple children from the iterator range to the node

first arg: parent node second arg: begin range third arg: end range

template<typename Derived, typename Value, typename Storage, typename Iterator>
iterator_base<Derived, Value, Storage> append_children(const iterator_base<Derived, Value, Storage>&, Iterator, const Iterator&)
void insert(const T&)

Insert at root level before other nodes

void insert_after(const T&)

Insert at root level after other nodes

void insert(const Key &node, const T&)

Insert as sibling before node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> insert(const iterator_base<Derived, Value, Storage>&, const T&)
void insert_after(const Key &node, const T&)

Insert as sibling after node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> insert_after(const iterator_base<Derived, Value, Storage>&, const T&)
void insert_subtree(const Key &node, const Tree<T, Key, Hash>&, const Key&)

Insert subtree as sibling before node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> insert_subtree(const iterator_base<Derived, Value, Storage>&, const Tree<T, Key, Hash>&, const Key&)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
iterator_base<Derived, Value, Storage> insert_subtree(const iterator_base<Derived, Value, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
void insert_subtree_after(const Key &node, const Tree<T, Key, Hash>&, const Key&)

Insert subtree as sibling after node

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> insert_subtree_after(const iterator_base<Derived, Value, Storage>&, const Tree<T, Key, Hash>&, const Key&)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
iterator_base<Derived, Value, Storage> insert_subtree_after(const iterator_base<Derived, Value, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
void replace(const Key &node, const T&)

Replace node (keeping children)

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage>&, const T&)
void replace(const Key&, const Tree<T, Key, Hash>&, const Key&)

Replace node (and children) with subtree

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage>&, const Tree<T, Key, Hash>&, const Key&)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
void flatten(const Key&)

Move all children of node to be siblings

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> flatten(const iterator_base<Derived, Value, Storage>&)
void reparent(const Key &node, const Key &from)

Move all child nodes of ‘from’ to be children of ‘node’ Works with two nodes of the same tree.

template<typename Derived, typename Value, typename Storage>
iterator_base<Derived, Value, Storage> reparent(const iterator_base<Derived, Value, Storage>&, const Key&)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
iterator_base<Derived, Value, Storage> reparent(const iterator_base<Derived, Value, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
void merge(const Tree<T, Key, Hash>&)

Merge other tree into this tree

void swap(Tree<T, Key, Hash>&)

Swap with another tree

size_type size() const

Size of the tree

bool empty() const

If the tree is size=0, or empty

size_type depth(const Key&) const

Compute depth to the root

template<typename Derived, typename Storage>
size_type depth(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
size_type depth(const iterator_base<Derived, const T, Storage>&) const
size_type number_of_children(const Key&) const

Get the number of children a node has

template<typename Derived, typename Storage>
size_type number_of_children(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
size_type number_of_children(const iterator_base<Derived, const T, Storage>&) const
size_type number_of_siblings(const Key&) const

Get the number of siblings a node has

template<typename Derived, typename Storage>
size_type number_of_siblings(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
size_type number_of_siblings(const iterator_base<Derived, const T, Storage>&) const
bool is_in_subtree(const Key &haystack, const Key &needle) const

Search for a key in the subtree

template<typename Derived, typename Storage>
bool is_in_subtree(const iterator_base<Derived, T, Storage>&, const Key&)
template<typename Derived, typename Storage>
bool is_in_subtree(const iterator_base<Derived, const T, Storage>&, const Key&) const
template<typename Derived, typename Storage, typename Derived2, typename Value2, typename Storage2>
bool is_in_subtree(const iterator_base<Derived, T, Storage>&, const iterator_base<Derived2, Value2, Storage2>&)
template<typename Derived, typename Storage, typename Derived2, typename Value2, typename Storage2>
bool is_in_subtree(const iterator_base<Derived, const T, Storage>&, const iterator_base<Derived2, Value2, Storage2>&) const
bool subtree_in_tree(const Tree<T, Key, Hash> &other, const Key &node) const

Finds if any key in the subtree is in the tree

template<typename Derived, typename Storage>
bool subtree_in_tree(const iterator_base<Derived, T, Storage>&)
template<typename Derived, typename Storage>
bool subtree_in_tree(const iterator_base<Derived, const T, Storage>&) const
template<>
std::ostream &Print(std::ostream &s) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, T, Storage> parent(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, const T, Storage> parent(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, T, Storage> previous_sibling(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, const T, Storage> previous_sibling(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, T, Storage> next_sibling(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, const T, Storage> next_sibling(const iterator_base<Derived, const T, Storage> &iter) const
template<class Derived, class Storage>
Tree<T, Key, Hash>::template sibling_iter<T> children(const iterator_base<Derived, T, Storage> &iter)
template<class Derived, class Storage>
Tree<T, Key, Hash>::template sibling_iter<const T> children(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, T, Storage> first_child(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, const T, Storage> first_child(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> erase(const iterator_base<Derived, Value, Storage> &iter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> erase_children(const iterator_base<Derived, Value, Storage> &iter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage> &iter, const T &child)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage> &iter, const Tree<T, Key, Hash> &otherTree, const Key &node2)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> append_child(const iterator_base<Derived, Value, Storage> &iter, const iterator_base<Derived2, Value2, Storage2> &otherIter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> append_children(const iterator_base<Derived, Value, Storage> &iter, const std::vector<T> &children)
template<typename Derived, typename Value, typename Storage, typename Iterator>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> append_children(const iterator_base<Derived, Value, Storage> &iter, Iterator iter_begin, const Iterator &iter_end)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert(const iterator_base<Derived, Value, Storage> &iter, const T &node2)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert_after(const iterator_base<Derived, Value, Storage> &iter, const T &node2)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert_subtree(const iterator_base<Derived, Value, Storage> &iter, const Tree<T, Key, Hash> &otherTree, const Key &node2)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert_subtree(const iterator_base<Derived, Value, Storage> &iter, const iterator_base<Derived2, Value2, Storage2> &otherIter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert_subtree_after(const iterator_base<Derived, Value, Storage> &iter, const Tree<T, Key, Hash> &otherTree, const Key &node2)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> insert_subtree_after(const iterator_base<Derived, Value, Storage> &iter, const iterator_base<Derived2, Value2, Storage2> &otherIter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage> &iter, const T &node2)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage> &iter, const Tree<T, Key, Hash> &otherTree, const Key &node2)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> replace(const iterator_base<Derived, Value, Storage> &iter, const iterator_base<Derived2, Value2, Storage2> &otherIter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> flatten(const iterator_base<Derived, Value, Storage> &iter)
template<typename Derived, typename Value, typename Storage>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> reparent(const iterator_base<Derived, Value, Storage> &iter, const Key &from)
template<typename Derived, typename Value, typename Storage, typename Derived2, typename Value2, typename Storage2>
Tree<T, Key, Hash>::template iterator_base<Derived, Value, Storage> reparent(const iterator_base<Derived, Value, Storage> &iter, const iterator_base<Derived2, Value2, Storage2> &otherIter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type depth(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type depth(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type number_of_children(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type number_of_children(const iterator_base<Derived, const T, Storage> &iter) const
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type number_of_siblings(const iterator_base<Derived, T, Storage> &iter)
template<typename Derived, typename Storage>
Tree<T, Key, Hash>::size_type number_of_siblings(const iterator_base<Derived, const T, Storage> &iter) const
template<>
std::ostream &Print(std::ostream &s) const

Protected Types

typedef boost::optional<Key> TreeHashKey

A boost::optional version of Key

typedef TreeNode<value_type> treeNode

A TreeNode capable of holding the value_type (T)

typedef hash_map<Key, treeNode> tree_hash_map

a hash_map of Key : treeNode

Protected Functions

void eraseRightSiblings_(const Key&)

Erase any siblings (and their children) to the right of the node

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

Protected Attributes

tree_hash_map internalMap

the actual hash_map storage

TreeHashKey head_

the first top-level node

TreeHashKey end_

a special end node that doesn’t really exist

Friends

friend class icecube::serialization::access
template<class T, class tree_node_allocator = std::allocator<tree_node_<T>>>
class tree
#include <tree.hh>

Public Types

typedef T value_type

Value of the data stored at a node.

typedef pre_order_iterator iterator

The default iterator type throughout the tree class.

Public Functions

tree()
tree(const T&)
tree(const iterator_base&)
tree(const tree<T, tree_node_allocator>&)
~tree()
void operator=(const tree<T, tree_node_allocator>&)
inline pre_order_iterator begin() const

Return iterator to the beginning of the tree.

inline pre_order_iterator end() const

Return iterator to the end of the tree.

post_order_iterator begin_post() const

Return post-order iterator to the beginning of the tree.

post_order_iterator end_post() const

Return post-order iterator to the end of the tree.

fixed_depth_iterator begin_fixed(const iterator_base&, unsigned int) const

Return fixed-depth iterator to the first node at a given depth.

fixed_depth_iterator end_fixed(const iterator_base&, unsigned int) const

Return fixed-depth iterator to end of the nodes at given depth.

sibling_iterator begin(const iterator_base&) const

Return sibling iterator to the first child of given node.

sibling_iterator end(const iterator_base&) const

Return sibling iterator to the end of the children of a given node.

template<typename iter>
iter parent(iter) const

Return iterator to the parent of a node.

template<typename iter>
iter previous_sibling(iter) const

Return iterator to the previous sibling of a node.

template<typename iter>
iter next_sibling(iter) const

Return iterator to the next sibling of a node.

template<typename iter>
iter next_at_same_depth(iter) const

Return iterator to the next node at a given depth.

void clear()

Erase all nodes of the tree.

template<typename iter>
iter erase(iter)

Erase element at position pointed to by iterator, return incremented iterator.

void erase_children(const iterator_base&)

Erase all children of the node pointed to by iterator.

template<typename iter>
iter append_child(iter position)

Insert empty node as last child of node pointed to by position.

template<typename iter>
iter append_child(iter position, const T &x)

Insert node as last child of node pointed to by position.

template<typename iter>
iter append_child(iter position, iter other_position)

Append the node (plus its children) at other_position as a child of position.

template<typename iter>
iter append_children(iter position, sibling_iterator from, sibling_iterator to)

Append the nodes in the from-to range (plus their children) as children of position.

pre_order_iterator set_head(const T &x)

Short-hand to insert topmost node in otherwise empty tree.

template<typename iter>
iter insert(iter position, const T &x)

Insert node as previous sibling of node pointed to by position.

sibling_iterator insert(sibling_iterator position, const T &x)

Specialisation of previous member.

template<typename iter>
iter insert_subtree(iter position, const iterator_base &subtree)

Insert node (with children) pointed to by subtree as previous sibling of node pointed to by position.

template<typename iter>
iter insert_after(iter position, const T &x)

Insert node as next sibling of node pointed to by position.

template<typename iter>
iter replace(iter position, const T &x)

Replace node at ‘position’ with other node (keeping same children); ‘position’ becomes invalid.

template<typename iter>
iter replace(iter position, const iterator_base &from)

Replace node at ‘position’ with subtree starting at ‘from’ (do not erase subtree at ‘from’); see above.

sibling_iterator replace(sibling_iterator orig_begin, sibling_iterator orig_end, sibling_iterator new_begin, sibling_iterator new_end)

Replace string of siblings (plus their children) with copy of a new string (with children); see above.

template<typename iter>
iter flatten(iter position)

Move all children of node at ‘position’ to be siblings, returns position.

template<typename iter>
iter reparent(iter position, sibling_iterator begin, sibling_iterator end)

Move nodes in range to be children of ‘position’.

template<typename iter>
iter reparent(iter position, iter from)

Move all child nodes of ‘from’ to be children of ‘position’.

template<typename iter>
iter move_after(iter target, iter source)

Move ‘source’ node (plus its children) to become the next sibling of ‘target’.

template<typename iter>
iter move_before(iter target, iter source)

Move ‘source’ node (plus its children) to become the previous sibling of ‘target’.

template<typename iter>
iter move_ontop(iter target, iter source)

Move ‘source’ node (plus its children) to become the node at ‘target’ (erasing the node at ‘target’).

void merge(sibling_iterator, sibling_iterator, sibling_iterator, sibling_iterator, bool duplicate_leaves = false)

Merge with other tree, creating new branches and leaves only if they are not already present.

void sort(sibling_iterator from, sibling_iterator to, bool deep = false)

Sort (std::sort only moves values of nodes, this one moves children as well).

template<class StrictWeakOrdering>
void sort(sibling_iterator from, sibling_iterator to, StrictWeakOrdering comp, bool deep = false)
template<typename iter>
bool equal(const iter &one, const iter &two, const iter &three) const

Compare two ranges of nodes (compares nodes as well as tree structure).

template<typename iter, class BinaryPredicate>
bool equal(const iter &one, const iter &two, const iter &three, BinaryPredicate) const
template<typename iter>
bool equal_subtree(const iter &one, const iter &two) const
template<typename iter, class BinaryPredicate>
bool equal_subtree(const iter &one, const iter &two, BinaryPredicate) const
tree subtree(sibling_iterator from, sibling_iterator to) const

Extract a new tree formed by the range of siblings plus all their children.

void subtree(tree&, sibling_iterator from, sibling_iterator to) const
void swap(sibling_iterator it)

Exchange the node (plus subtree) with its sibling node (do nothing if no sibling present).

int size() const

Count the total number of nodes.

bool empty() const

Check if tree is empty.

int depth(const iterator_base&) const

Compute the depth to the root.

unsigned int number_of_children(const iterator_base&) const

Count the number of children of node at position.

unsigned int number_of_siblings(const iterator_base&) const

Count the number of ‘next’ siblings of node at iterator.

bool is_in_subtree(const iterator_base &position, const iterator_base &begin, const iterator_base &end) const

Determine whether node at position is in the subtrees with root in the range.

bool is_valid(const iterator_base&) const

Determine whether the iterator is an ‘end’ iterator and thus not actually pointing to a node.

unsigned int index(sibling_iterator it) const

Determine the index of a node in the range of siblings to which it belongs.

sibling_iterator child(const iterator_base &position, unsigned int) const

Inverse of ‘index’: return the n-th child of the node at position.

Public Members

tree_node *head
tree_node *feet

Protected Types

typedef tree_node_<T> tree_node

Private Functions

void head_initialise_()
void copy_(const tree<T, tree_node_allocator> &other)

Private Members

tree_node_allocator alloc_
template<class T>
class tree_node_
#include <tree.hh>

A node in the tree, combining links to other nodes as well as the actual data.

Public Members

tree_node_<T> *parent
tree_node_<T> *first_child
tree_node_<T> *last_child
tree_node_<T> *prev_sibling
tree_node_<T> *next_sibling
T data
template<typename T>
class TreeNode
#include <I3MCTree_fwd.h>

A generic tree node

Public Functions

inline TreeNode()
inline TreeNode(const T &d)
inline T operator*()
inline T operator=(const TreeNode<T> &other)
inline T operator=(const T &otherData)
inline bool operator==(const TreeNode<T> &other) const
inline bool operator==(const T &otherData) const
inline bool operator!=(const TreeNode<T> &other) const
inline bool operator!=(const T &otherData) const

Public Members

TreeNode<T> *parent
TreeNode<T> *firstChild
TreeNode<T> *nextSibling
T data
class TriggerKey
#include <TriggerKey.h>

Public Types

enum SourceID

Enumeration describing what “subdetector” issued a trigger.

Values:

enumerator IN_ICE
enumerator ICE_TOP
enumerator AMANDA_TWR_DAQ
enumerator EXTERNAL
enumerator GLOBAL
enumerator AMANDA_MUON_DAQ
enumerator SPASE
enumerator UNKNOWN_SOURCE
enumerator IN_ICE_PULSES
enum TypeID

Enumeration describing what “algorithm” issued a trigger. More details about a specific trigger can be stored in the I3TriggerStatus maps as part of the detector status

Values:

enumerator SIMPLE_MULTIPLICITY
enumerator CALIBRATION
enumerator MIN_BIAS
enumerator THROUGHPUT
enumerator TWO_COINCIDENCE
enumerator THREE_COINCIDENCE
enumerator MERGED
enumerator SLOW_PARTICLE
enumerator FAINT_PARTICLE
enumerator FRAGMENT_MULTIPLICITY
enumerator STRING
enumerator VOLUME
enumerator SPHERE
enumerator UNBIASED
enumerator SPASE_2
enumerator UNKNOWN_TYPE
enum SubtypeID

Enumeration describing how a software trigger was originally “configured” within the TWR DAQ trigger system.

Values:

enumerator NO_SUBTYPE
enumerator M18
enumerator M24
enumerator T0
enumerator LASER
enumerator UNKNOWN_SUBTYPE

Public Functions

inline TriggerKey()

Default constructor.

inline TriggerKey(SourceID source, TypeID type, SubtypeID subtype = NO_SUBTYPE)

Constructor.

Parameters:
  • source – Source ID.

  • type – Type ID.

  • subtype – Subtype ID (optional; default is NO_SUBTYPE).

inline TriggerKey(SourceID source, TypeID type, int configID, SubtypeID subtype = NO_SUBTYPE)

Constructor.

Parameters:
  • source – Source ID.

  • type – Type ID.

  • configID – Configuration ID.

  • subtype – Subtype ID (optional; default is NO_SUBTYPE).

~TriggerKey()

Destructor.

std::ostream &Print(std::ostream&) const
inline SourceID GetSource() const

Retrieves the source ID.

Returns:

Source ID.

inline const char *GetSourceString() const

Returns the name of the source ID.

Returns:

The name.

inline void SetSource(SourceID source)

Sets the source ID.

Parameters:

source – Source ID.

inline TypeID GetType() const

Retrieves the type ID.

Returns:

Type ID.

inline const char *GetTypeString() const

Returns the name of the type ID.

Returns:

The name.

inline void SetType(TypeID type)

Sets the type ID.

Parameters:

type – Type ID.

inline SubtypeID GetSubtype() const

Retrieves the subtype ID.

Returns:

Subtype ID.

inline void SetSubtype(SubtypeID subtype)

Sets the subtype ID.

Parameters:

subtype – Subtype ID.

inline bool CheckConfigID() const

Indicates, if a configuration ID is set.

The triplet of (SourceID source, TypeID type, int configID) corresponds to a trigger status/config used in the IceCube DAQ. AMANDA has no such trigger configurations, so that the configuration ID might not be set.

Returns:

True, if configuration ID is set.

inline int GetConfigID() const

Retrieves the configuration ID.

Returns:

Configuration ID.

inline boost::optional<int> GetConfigIDOptional() const
inline void SetConfigID()

Resets the configuration ID.

inline void SetConfigID(int configID)

Sets the configuration ID.

Parameters:

configID – Configuration ID.

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

Equality operator.

Parameters:

rhs – The trigger key to compare this one to.

Returns:

true if source, type, subtype and configuration ID of the two trigger keys match.

inline bool operator!=(const TriggerKey &rhs) const

Inequality operator.

Parameters:

rhs – The trigger key to compare this one to.

Returns:

false if source, type, subtype and configuration ID of the two trigger keys are different.

Public Static Functions

static const char *GetSourceString(SourceID source)

Returns the name of a source ID.

Parameters:

source – The source ID.

Returns:

The name.

static SourceID GetSourceFromString(const std::string &sourcestr)
static const char *GetTypeString(TypeID type)

Returns the name of a type ID.

Parameters:

type – The type ID.

Returns:

The name.

static TypeID GetTypeFromString(const std::string &typestr)

Private Functions

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

Private Members

SourceID source_
TypeID type_
SubtypeID subtype_
boost::optional<int> configID_

Friends

friend class icecube::serialization::access
struct TWRAOMStatus
#include <Deprecated.hpp>

Public Types

enum CableType

Values:

enumerator ELECTRICAL
enumerator OPTICAL

Public Functions

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

Public Members

double binSize
unsigned int stopDelay
unsigned int baseline
unsigned int threshold
CableType cableType

Friends

friend class icecube::serialization::access
struct TWRCalibration
#include <Deprecated.hpp>

Public Functions

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

Public Members

double peArea
double twrT0
TWRXTCal xtcal
struct TWRXTCal
#include <Deprecated.hpp>

Public Functions

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

Public Members

double speNetChargeCut
LinearFit chargeVsAmplCut
double startBinCut
double endBinCut
double amplitudeCut
double invAmplitudeCut
class ublas_matrix_shim : public boost::numeric::ublas::matrix<double, boost::numeric::ublas::row_major, ublas_storage_shim>
#include <I3Matrix.h>

Subclassed by I3Matrix

Protected Types

typedef boost::numeric::ublas::matrix<double, boost::numeric::ublas::row_major, ublas_storage_shim> base

Protected Functions

inline ublas_matrix_shim()
inline ublas_matrix_shim(const base &m)
inline ublas_matrix_shim(size_t size1, size_t size2)
inline ublas_matrix_shim(size_t size1, size_t size2, const base::value_type &init)
inline ublas_matrix_shim(size_t size1, size_t size2, const base::array_type &data)

Private Functions

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

Friends

friend class icecube::serialization::access
class ublas_storage_shim : public boost::numeric::ublas::unbounded_array<double, std::allocator<double>>
#include <I3Matrix.h>

Public Types

typedef boost::numeric::ublas::unbounded_array<double, std::allocator<double>> base
typedef base::allocator_type allocator_type
typedef base::size_type size_type
typedef base::difference_type difference_type
typedef base::value_type value_type
typedef base::const_reference const_reference
typedef base::reference reference
typedef base::const_pointer const_pointer
typedef base::pointer pointer
typedef base::const_iterator const_iterator
typedef base::iterator iterator

Public Functions

inline explicit ublas_storage_shim(const allocator_type &a = allocator_type())
inline explicit ublas_storage_shim(size_type size, const allocator_type &a = allocator_type())
inline ublas_storage_shim(size_type size, const value_type &init, const allocator_type &a = allocator_type())
inline ublas_storage_shim(const base &b)

Private Functions

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

Friends

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

Public Members

double j_date
int year
int month
int day
int i_hour
int i_minute
double second
double d_hour
double d_minute
int weekday
int day_of_year
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace [anonymous]
namespace CompareFloatingPoint

Functions

std::string ToString(double f, int64_t offset = 0)
std::string ToString(float f, int32_t offset = 0)
inline bool Compare(float A, float B, int32_t maxUlps = 10)
inline bool Compare(double A, double B, int64_t maxUlps = 10)
inline bool Compare_NanEqual(double A, double B)
inline int32_t Sign(float)
inline int64_t Sign(double)
namespace fft

Enums

enum FFTType

Values:

enumerator eR2C
enumerator eC2R
enumerator eC2C
enumerator eFFTTypeCount

Functions

AntennaTimeSeries GetHilbertEnvelope(const FFTData &data)
EFieldTimeSeries GetHilbertEnvelope(const FFTData3D &data)
AntennaTimeSeries GetHilbertEnvelope(const AntennaTimeSeries &timeSeries)
EFieldTimeSeries GetHilbertEnvelope(const EFieldTimeSeries &timeSeries)
AntennaSpectrum GetAnalyticSignal(const FFTData &data)
AntennaSpectrum GetAnalyticSignal(const AntennaTimeSeries &timeSeries)
void ApplyHilbertTransform(std::complex<double> *data, const int n)
double GetHilbertPeakTime(const FFTData &data)
double GetHilbertPeakTime(const AntennaTimeSeries &timeSeries)
double GetHilbertPeakTime(const FFTData &data, double &maxVal)
double GetHilbertPeakTime(const AntennaTimeSeries &timeSeries, double &maxVal)
double GetHilbertPeakTime(const FFTData3D &data, double &maxVal)
double GetHilbertPeakTime(const EFieldTimeSeries &timeSeries, double &maxVal)
boost::rational<long> GetRationalNumberFromDecimal(double decimal, const bool secondCall = false)
template<typename T, typename F>
void UpsampleTimeSeries(FFTDataContainer<T, F> &container, const unsigned int upsamplingFactor, const bool removeOffset = false)
template<typename T, typename F>
void TruncateFrequencySpectrum(FFTDataContainer<T, F> &container, const double targetBinning)
template<typename T, typename F>
void ThinOutTimeSeries(FFTDataContainer<T, F> &container, const long thinOutFactor)
template<typename T, typename F>
void ResampleFFTDataContainer(FFTDataContainer<T, F> &container, const double timeBinning)
const unsigned int GetNCFromNR(unsigned int nReal)
const unsigned int GetNRFromNC(unsigned int nComp)
namespace GSL

Functions

template<typename FunctionType>
double integrate(FunctionType &&f, double a, double b, double rtol = 1e-7, unsigned int max_iter = 10000, size_t memory_alloc = 10000)

Compute a one-dimensional integral using GSL.

Parameters:
  • f – Function to integrate.

  • a – Lower integration limit.

  • b – Upper integration limit.

  • rtol – Target relative tolerance.

  • max_iter – Maximum number of iterations to perform the integral.

  • memory_alloc – Number of intervals of scratch space to allocate.

namespace I3
namespace detail

Functions

template<typename T>
std::ostream &print_vector(std::ostream &os, const std::vector<T> l, std::true_type)
template<typename T>
std::ostream &print_vector(std::ostream &os, const std::vector<T> l, std::false_type)
namespace I3Constants

A list of static variables commonly used by physics analysis.

Just a namespace filled with constants &#8212; add a line using namespace I3Constants to get access to them directly, or just use I3Constants::pi, for example.

Todo:

probably need more constants here. Add them here when you need them.

Variables

static const double c = 2.99792458e8 * I3Units::m / (I3Units::second)

The speed of light in vacuum

static const double z_vacuum = 376.730313668 * I3Units::ohm

Impedance of free space

static const double KBoltzmann = 1.38064852e-23 * I3Units::joule / I3Units::kelvin

Boltzmann temperature constant (i.e. k_B)

static const double n_ice_phase = 1.3195

The “average” phase velocity (for wavelength of 400nm)

static const double n_ice_group = 1.35634

The “average” group velocity (for wavelength of 400nm)

static const double n_ice = n_ice_group

The index of refraction of ice

static const double theta_cherenkov = std::acos(1 / n_ice_phase) * I3Units::rad

The Cherenkov angle in ice

static const double c_ice = c / n_ice_group

The speed of light in ice

static const double pi = M_PI

pi.

static const double e = M_E

Euler’s number

static const double NA = 6.0221415e23

Avaogadro’s Number

static const double SurfaceElev = 9291.31 * I3Units::feet

Elevation of ice surface (floor of string 21 deployment tower)

static const double OriginElev = 2900 * I3Units::feet

Elevation of IceCube origin (z=0) &#8212; BY DEFINITION From email from Kurt Woschnagg on 08/25/2004

static const double zIceTop = SurfaceElev - OriginElev

Z-coordinate of IceTop (Origin Depth) Obtained from DEFINED elevation of origin and MEASURED surface elevation

Todo:

Make sure that the elevation of IceTop is the same as the elevation of AMANDA hole 4. If not, then correct for the difference.

static const double earthRadius = 6.371315e6 * I3Units::m

Earth radius constant

static const double Coordinate_shift_x = -339.8 * I3Units::m

Conversion between IceCube and AMANDA coordinates from docushare file by Kurt Woschnagg (x,y,z)icecube = (x,y,z)amanda - (x,y,z)shift

static const double Coordinate_shift_y = -117.4 * I3Units::m
static const double Coordinate_shift_z = -216.0 * I3Units::m
static const double dt_window_l = -15 * I3Units::ns

Default values for time residual calculations It’s good to have these in one central place.

static const double dt_window_h = +25 * I3Units::ns
namespace I3DeltaCompression
namespace I3MCTreePhysicsLibrary

Functions

I3MCTree::optional_value GetMostEnergeticPrimary(const I3MCTree &t, bool safe_mode = true)

Returns the InIce particle with highest energy. This is useful for example in extracting “the muon” from the atmospheric neutrino data. The names below are fairly descriptive and should accurately describe what the function does.

If safe_mode is true, return boost::none if there are two or more particles with the same highest energy. This incurs a second O(N) search over the tree.

I3MCTree::optional_value GetMostEnergeticPrimary(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticInIce(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticInIce(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergetic(const I3MCTree &t, I3Particle::ParticleType pt, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergetic(I3MCTreeConstPtr t, I3Particle::ParticleType pt, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticTrack(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticTrack(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticCascade(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticCascade(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticInIceCascade(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticInIceCascade(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticNeutrino(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticNeutrino(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticMuon(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticMuon(I3MCTreeConstPtr t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticNucleus(const I3MCTree &t, bool safe_mode = true)
I3MCTree::optional_value GetMostEnergeticNucleus(I3MCTreeConstPtr t, bool safe_mode = true)
namespace I3MCTreeUtils

Functions

void AddPrimary(I3MCTree&, const I3Particle&)

Adds a primary (top-level node) to the tree. The primary has no parent. A tree can have multiple primaries. Sets the shape to Primary

void AppendChild(I3MCTree&, const I3ParticleID&, const I3Particle&)

Appends a child to the parent particle

const std::vector<I3Particle> GetPrimaries(const I3MCTree&)

Gets a list of primaries from the tree

const std::vector<const I3Particle*> GetPrimariesPtr(I3MCTreeConstPtr)
const std::vector<I3Particle*> GetPrimariesPtr(I3MCTreePtr)
const std::vector<I3Particle> GetDaughters(const I3MCTree&, const I3ParticleID&)

Gets a list of daughters of the parent particle.

const std::vector<const I3Particle*> GetDaughtersPtr(const I3MCTreeConstPtr, const I3ParticleID&)
const std::vector<I3Particle*> GetDaughtersPtr(I3MCTreePtr, const I3ParticleID&)
const I3Particle GetParent(const I3MCTree&, const I3ParticleID&)

Gets the parent of a particleID. log_fatal or NULL if parent does not exist

const I3Particle *GetParentPtr(const I3MCTreeConstPtr, const I3ParticleID&)
I3Particle *GetParentPtr(I3MCTreePtr, const I3ParticleID&)
bool Has(const I3MCTree&, const I3ParticleID&)

Returns true if the particle is in the tree

bool HasParent(const I3MCTree&, const I3ParticleID&)

Returns true if the particle has a parent

const I3Particle GetParticle(const I3MCTree&, const I3ParticleID&)

This gets the particle with a particleID. log_fatal or NULL if particle does not exist.

const I3Particle *GetParticlePtr(const I3MCTreeConstPtr, const I3ParticleID&)
I3Particle *GetParticlePtr(I3MCTreePtr, const I3ParticleID&)
const I3Particle GetPrimary(const I3MCTree&, const I3ParticleID&)

This gets the primary that created the particleID. log_fatal or NULL if particle does not exist.

const I3Particle *GetPrimaryPtr(const I3MCTreeConstPtr, const I3ParticleID&)
I3Particle *GetPrimaryPtr(I3MCTreePtr, const I3ParticleID&)
const I3MCTreeConstPtr Get(const I3Frame&, const std::string&)

Gets an I3MCTree from the frame with the specified key.

std::string Dump(const I3MCTree&)

Dumps an I3MCTree to a std::string

template<typename Function>
const I3MCTree::optional_value GetBest(const I3MCTree &t, Function func)

Get the “best match” particle in the tree using a comparison Function.

Parameters:
  • t – I3MCTree

  • func – Callable which takes two I3Particles, compares them, and returns true if the first is better, false if the second is better

template<typename Function>
const I3MCTree::fast_const_iterator GetBestPtr(const I3MCTreeConstPtr t, Function func)
template<typename Function>
const std::vector<I3Particle> GetFilter(const I3MCTree &t, Function func)

Get all matching particles in the tree using a filter Function.

Parameters:
  • t – I3MCTree

  • func – Callable which takes an I3Particle and returns true/false

template<typename Function>
const std::vector<typename I3MCTree::fast_const_iterator> GetFilterPtr(const I3MCTreeConstPtr t, Function func)
template<typename FilterFunction, typename CmpFunction>
const I3MCTree::optional_value GetBestFilter(const I3MCTree &t, FilterFunction f, CmpFunction c)

Get best matching particle in the tree using a filter Function and a comparison Function.

Parameters:
  • t – I3MCTree

  • f – Callable which takes an I3Particle and returns true/false

  • c – Callable which takes two I3Particles, compares them, and returns true if the first is better, false if the second is better

template<typename FilterFunction, typename CmpFunction>
const I3MCTree::fast_const_iterator GetBestFilterPtr(const I3MCTreeConstPtr t, FilterFunction f, CmpFunction c)
namespace I3SuperDSTRecoPulseUtils

Functions

static bool TimeOrdering(const I3RecoPulse &p1, const I3RecoPulse &p2)
static bool IsBorked(const I3RecoPulse &p1)
static bool HasLC(const I3RecoPulse &p1)
static bool ShouldSplit(const OMKey &key, const I3RecoPulse &current, const I3RecoPulse &previous)
namespace I3SuperDSTSerialization

Functions

struct I3SuperDSTSerialization::DOMHeader __attribute ((packed))
namespace I3SuperDSTUtils

Enums

enum Discretization

Values:

enumerator LINEAR
enumerator LOG

Functions

inline int findlastset(uint32_t i)
inline int findlastset(uint64_t i)
namespace I3TimeUtils

Functions

bool leap_year(const int year)

Returns true if the year is a leap year

int32_t mod_julian_day_start_of_year(int year)

returns the Modified Julian Date of Jan 1 of the specified year

bool leap_sec_on_mjd(const double mjd)

return true if a leap second occurs on the last second of the day Modified Julian Date of mjd

int32_t leap_seconds_range(const int32_t mjd1, const int32_t mjd2)

returns the number of leapseconds between the specified Modified Julian Dates.

Including the leap second at the end of mjd1 but not the one at the end of mjd2. returns negative value if mjd2 > mjd1

int32_t year_to_date_leap_seconds(const int32_t mjd)

Returns the number of leapseconds since the start of the year for specified Modified Julian Date.

int32_t seconds_in_day(const double mjd)

return return the number of seconds on Modified Julian Date mjd: 86400 for normal days, 86401 for days with leap second

int64_t max_DAQ_time(const int year)

Returns the number of tenths of nanoseconds it the specified year.

Takes into account both leap years and leap seconds

int64_t ns_to_daqtime(const double time)

Converts a time of type double with I3Units of time (your choice) to the number of tenths of nanoseconds (i.e. “daqtime”). This takes into account rounding.

namespace I3TriggerHierarchyUtils

Functions

inline size_t Count(const I3TriggerHierarchy &triggers, TriggerKey::SourceID src)
inline size_t Count(const I3TriggerHierarchy &triggers, TriggerKey::TypeID type)
inline size_t Count(const I3TriggerHierarchy &triggers, TriggerKey::SourceID src, TriggerKey::TypeID type)
inline size_t Count(const I3TriggerHierarchy &triggers, const TriggerKey &key)
inline size_t Count(const I3TriggerHierarchy &triggers, const std::vector<TriggerKey> keys)
inline I3TriggerHierarchy::iterator Find(const I3TriggerHierarchy &triggers, TriggerKey::SourceID src, I3TriggerHierarchy::iterator iter = I3TriggerHierarchy::iterator())
inline I3TriggerHierarchy::iterator Find(const I3TriggerHierarchy &triggers, TriggerKey::TypeID type, I3TriggerHierarchy::iterator iter = I3TriggerHierarchy::iterator())
inline I3TriggerHierarchy::iterator Find(const I3TriggerHierarchy &triggers, TriggerKey::SourceID src, TriggerKey::TypeID type, I3TriggerHierarchy::iterator iter = I3TriggerHierarchy::iterator())
inline I3TriggerHierarchy::iterator Find(const I3TriggerHierarchy &triggers, const TriggerKey &key, I3TriggerHierarchy::iterator iter = I3TriggerHierarchy::iterator())
inline I3TriggerHierarchy Insert(I3TriggerHierarchy &triggers, const I3Trigger &trig)
namespace internal

Functions

inline bool EqualSrc(const I3Trigger &trigger, TriggerKey::SourceID src)
inline bool EqualType(const I3Trigger &trigger, TriggerKey::TypeID type)
inline bool EqualSrcType(const I3Trigger &trigger, TriggerKey::SourceID src, TriggerKey::TypeID type)
inline bool EqualKey(const I3Trigger &trigger, const TriggerKey &key)
inline bool EqualKeys(const I3Trigger &trigger, const std::vector<TriggerKey> keys)
namespace I3Units
namespace kp

Todo:

  • New-style move members are not completely finished yet.

  • Fixed depth iterators do not iterate over the entire range if there are ‘holes’ in the tree.

  • If a range uses const iter_base& as end iterator, things will inevitably go wrong, because upcast from iter_base to a non-sibling_iter is incorrect. This upcast should be removed (and then all illegal uses as previously in ‘equal’ will be flagged by the compiler). This requires new copy constructors though.

  • There’s a bug in replace(sibling_iterator, …) when the ranges sit next to each other. Turned up in append_child(iter,iter) but has been avoided now.

  • ”std::operator<” does not work correctly on our iterators, and for some reason a globally defined template operator< did not get picked up. Using a comparison class now, but this should be investigated.

Functions

template<class T1, class T2>
void constructor(T1 *p, T2 &val)
template<class T1>
void constructor(T1 *p)
template<class T1>
void destructor(T1 *p)
namespace std

STL namespace.

Functions

template<typename T>
std::ostream &operator<<(std::ostream &os, const std::vector<T> l)
namespace TreeBase

Variables

static const uint32_t CHUNK_SIZE_ = 65535
static const unsigned tree_version_ = 1
file AntennaKey.cxx
#include <icetray/I3Logging.h>

Functions

std::ostream &operator<<(std::ostream &os, const AntennaKey &key)
bool operator<(const AntennaKey &lhs, const AntennaKey &rhs)
I3_SERIALIZABLE(AntennaKey)
I3_SERIALIZABLE(I3VectorAntennaKey)
I3_SERIALIZABLE(I3MapAntennaKeyAntennaKey)
file AntennaKey.h
#include <iostream>
#include <icetray/serialization.h>
#include <icetray/I3PointerTypedefs.h>

Typedefs

typedef I3Vector<AntennaKey> I3VectorAntennaKey
typedef I3Map<AntennaKey, AntennaKey> I3MapAntennaKeyAntennaKey

Functions

bool operator<(const AntennaKey &lhs, const AntennaKey &rhs)
std::ostream &operator<<(std::ostream&, const AntennaKey &key)
I3_POINTER_TYPEDEFS(AntennaKey)
I3_POINTER_TYPEDEFS(I3VectorAntennaKey)
I3_POINTER_TYPEDEFS(I3MapAntennaKeyAntennaKey)

Variables

static const unsigned antennakey_version_ = 0
file caldate.cxx
#include “jday.h

Functions

int CalDate(UTinstant *date)
double JulDate(UTinstant *date)
file CompareFloatingPoint.cxx
#include <iostream>
#include <sstream>
#include <iomanip>

Functions

template<typename F, typename I>
inline std::string ToStringImpl(F f, I offset)
file CompareFloatingPoint.h
#include <float.h>
#include <cmath>
#include <stdint.h>
#include <cstring>
#include <string>
#include <cstdlib>
file copy_if.h

Functions

template<typename InputIterator, typename OutputIterator, typename Predicate>
OutputIterator copy_if(InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate p)

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

file DeltaCompressor.cxx
#include <iostream>
#include <stdexcept>
#include <cstdlib>
#include <cassert>
file DeltaCompressor.h
#include <vector>
file calibration/deprecated/Deprecated.hpp
#include <icetray/serialization.h>
#include <icetray/OMKey.h>

Functions

I3_SERIALIZABLE(TWRXTCal)
I3_SERIALIZABLE(TWRCalibration)
I3_SERIALIZABLE(I3TankCalibrationBackwardsCompat)
I3_SERIALIZABLE(I3AMANDAOM_XTalk)
I3_SERIALIZABLE(I3AMANDAOMCalibration)
file status/deprecated/Deprecated.hpp

Functions

I3_SERIALIZABLE(TWRAOMStatus)
file FFTDataContainer.cxx
#include <serialization/base_object.hpp>
#include <serialization/nvp.hpp>
#include <serialization/complex.hpp>

Functions

I3_SERIALIZABLE(FFTData)
I3_SERIALIZABLE(FFTData3D)
I3_SERIALIZABLE(FFTDataMap)
I3_SERIALIZABLE(FFTData3DMap)
file FFTDataContainer.h
#include <complex>
#include <iostream>
#include <icetray/I3Logging.h>

Defines

DO_ICECUBE_DEFS(type)

Typedefs

using FFTData = FFTDataContainer<double, std::complex<double>>
using FFTData3D = FFTDataContainer<I3Position, I3ComplexVector>

Functions

DO_ICECUBE_DEFS(FFTData)
DO_ICECUBE_DEFS(FFTData3D)

Variables

static const unsigned int i3fftdatacontainer_version_ = 0
file FFTHilbertEnvelope.cxx
file FFTHilbertEnvelope.h
file FFTResamplingTools.cxx
file FFTResamplingTools.h
#include <boost/rational.hpp>
file FFTWPlan.cxx
#include <iostream>
#include <fftw3.h>
#include <math.h>
#include <icetray/I3Logging.h>
file FFTWPlan.h
#include <fftw3.h>
#include <vector>
#include <complex>
file I3AMANDAAnalogReadout.cxx
#include <icetray/serialization.h>
#include <algorithm>
#include <functional>

Copyright (C) 2005 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

deyoung

Functions

I3_SPLIT_SERIALIZABLE(I3AMANDAAnalogReadout)
I3_SERIALIZABLE(I3AMANDAAnalogReadoutMap)
std::ostream &operator<<(std::ostream &os, const I3AMANDAAnalogReadout &r)
file I3AMANDAAnalogReadout.h
#include <iostream>
#include <vector>
#include “dataclasses/Utility.h
#include “dataclasses/I3Vector.h
#include “dataclasses/I3Map.h
#include “icetray/OMKey.h”

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef I3Map<OMKey, I3AMANDAAnalogReadout> I3AMANDAAnalogReadoutMap

Functions

std::ostream &operator<<(std::ostream&, const I3AMANDAAnalogReadout&)
I3_POINTER_TYPEDEFS(I3AMANDAAnalogReadout)
I3_POINTER_TYPEDEFS(I3AMANDAAnalogReadoutMap)
I3_CLASS_VERSION(I3AMANDAAnalogReadoutMap, i3amandaanalogreadout_version_)

Variables

static const unsigned i3amandaanalogreadout_version_ = 0

Old-style AMANDA ADC/TDC readout.

This class represents an old-style AMANDA DAQ readout, with a series of LEs and TEs and a single amplitude measurement that represents the peak from the entire event. TOTs are generated on the fly and may be wrong if edges are missing.

file I3AntennaChannel.cxx
#include <icetray/I3Units.h>

Functions

I3_SERIALIZABLE(I3AntennaChannel)
I3_SERIALIZABLE(I3AntennaChannelMap)
std::ostream &operator<<(std::ostream &os, const I3AntennaChannel &g)
file I3AntennaChannel.h

Typedefs

typedef I3Map<int, I3AntennaChannel> I3AntennaChannelMap

Functions

std::ostream &operator<<(std::ostream&, const I3AntennaChannel&)
I3_POINTER_TYPEDEFS(I3AntennaChannel)
I3_CLASS_VERSION(I3AntennaChannel, i3antennachannel_version_)
I3_POINTER_TYPEDEFS(I3AntennaChannelMap)

Variables

static const unsigned int i3antennachannel_version_ = 0
file I3AntennaDataMap.cxx

Functions

I3_SERIALIZABLE(I3AntennaDataMap)
file I3AntennaDataMap.h

Typedefs

typedef I3Map<AntennaKey, I3AntennaChannelMap> I3AntennaDataMap

Functions

I3_POINTER_TYPEDEFS(I3AntennaDataMap)
file I3AntennaGeo.cxx

Functions

I3_SERIALIZABLE(I3AntennaGeo)
I3_SERIALIZABLE(I3AntennaGeoMap)
std::ostream &operator<<(std::ostream &os, const I3AntennaGeo &g)
file I3AntennaGeo.h
#include <string>

Typedefs

typedef I3Map<AntennaKey, I3AntennaGeo> I3AntennaGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3AntennaGeo&)
I3_POINTER_TYPEDEFS(I3AntennaGeo)
I3_CLASS_VERSION(I3AntennaGeo, i3antennageo_version_)
I3_POINTER_TYPEDEFS(I3AntennaGeoMap)

Variables

static const unsigned i3antennageo_version_ = 0
file I3AntennaWaveform.cxx
#include <serialization/base_object.hpp>
#include <serialization/nvp.hpp>
#include <serialization/complex.hpp>

Defines

LEFT_AUGMENTED_ARITHMETIC_OPERATOR_1D(_type_, _op_)
LEFT_ARITHMETIC_OPERATOR_1D(_type_, _op_)

Functions

I3_SERIALIZABLE(AntennaTimeSeries)
I3_SERIALIZABLE(AntennaSpectrum)
I3_SERIALIZABLE(EFieldTimeSeries)
I3_SERIALIZABLE(EFieldSpectrum)
I3_SERIALIZABLE(AntennaTimeSeriesMap)
I3_SERIALIZABLE(AntennaSpectrumMap)
I3_SERIALIZABLE(EFieldTimeSeriesMap)
I3_SERIALIZABLE(EFieldSpectrumMap)
file I3AntennaWaveform.h
#include <functional>
#include <iostream>
#include <vector>
#include <complex>

Defines

DO_DEFINE_IC(type)
INNER_ARITHMETIC_BINARY_OPERATOR(_op_, _stl_functor_)
INNER_AUGMENTED_ARITHMETIC_OPERATOR(_op_, _stl_functor_)
OUTER_AUGMENTED_ARITHMETIC_OPERATOR(_op_, _stl_functor_)
LEFT_AUGMENTED_ARITHMETIC_OPERATOR_DOUBLE(_op_)
LEFT_ARITHMETIC_OPERATOR(_op_)

Typedefs

typedef I3AntennaWaveform<double> AntennaTimeSeries
typedef I3AntennaWaveform<std::complex<double>> AntennaSpectrum
typedef I3AntennaWaveform<I3Position> EFieldTimeSeries
typedef I3AntennaWaveform<I3ComplexVector> EFieldSpectrum

Functions

DO_DEFINE_IC(AntennaTimeSeries)
DO_DEFINE_IC(AntennaSpectrum)
DO_DEFINE_IC(EFieldTimeSeries)
DO_DEFINE_IC(EFieldSpectrum)
AntennaTimeSeries &operator*=(AntennaTimeSeries &lhs, const AntennaTimeSeries &rhs)
AntennaTimeSeries &operator/=(AntennaTimeSeries &lhs, const AntennaTimeSeries &rhs)
AntennaSpectrum &operator*=(AntennaSpectrum &lhs, const AntennaSpectrum &rhs)
AntennaSpectrum &operator/=(AntennaSpectrum &lhs, const AntennaSpectrum &rhs)
AntennaTimeSeries operator*(AntennaTimeSeries &lhs, const AntennaTimeSeries &rhs)
AntennaTimeSeries operator/(AntennaTimeSeries &lhs, const AntennaTimeSeries &rhs)
AntennaSpectrum operator*(AntennaSpectrum &lhs, const AntennaSpectrum &rhs)
AntennaSpectrum operator/(AntennaSpectrum &lhs, const AntennaSpectrum &rhs)

Variables

static const unsigned int i3antennawaveform_version_ = 0
file I3Calibration.cxx
#include <map>
#include <icetray/serialization.h>
#include “dataclasses/TankKey.h

Functions

I3_SPLIT_SERIALIZABLE(I3Calibration)
file I3Calibration.h
#include <map>
#include “dataclasses/Utility.h
#include “dataclasses/I3Time.h
#include “icetray/OMKey.h”
#include <icetray/I3FrameObject.h>
#include <icetray/I3DefaultName.h>

Definition of I3Calibration class

Copyright (C) 2004 the IceCube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

I3_CLASS_VERSION(I3Calibration, i3calibration_version_)
I3_DEFAULT_NAME(I3Calibration)
I3_POINTER_TYPEDEFS(I3Calibration)

Variables

static const unsigned i3calibration_version_ = 4
file I3ComplexVector.cxx
#include <serialization/complex.hpp>

Functions

double abs(const I3ComplexVector &vec)
I3_SERIALIZABLE(I3ComplexVector)
file I3ComplexVector.h
#include <cmath>
#include <complex>
#include “icetray/I3FrameObject.h”
#include <sstream>

Functions

std::ostream &operator<<(std::ostream &oss, const I3ComplexVector &p)
double abs(const I3ComplexVector &p)
I3_POINTER_TYPEDEFS(I3ComplexVector)
I3_CLASS_VERSION(I3ComplexVector, i3complexvector_version_)

Variables

static const unsigned i3complexvector_version_ = 0

Complex implementation of I3Position.

file I3Constants.h
#include “icetray/I3Units.h”
#include <cmath>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

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

Functions

I3_SPLIT_SERIALIZABLE(I3DetectorStatus)
file I3DetectorStatus.h
#include <map>
#include <icetray/I3DefaultName.h>
#include <icetray/I3FrameObject.h>
#include <icetray/OMKey.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

I3_CLASS_VERSION(I3DetectorStatus, i3detectorstatus_version_)
I3_DEFAULT_NAME(I3DetectorStatus)
I3_POINTER_TYPEDEFS(I3DetectorStatus)

Variables

static const unsigned i3detectorstatus_version_ = 4

This is the state of the aspects of the detector that people have direct control over. Contains the “per run” settings.

Stuff that is a ‘knob’ on the detector. This is a top-level object in the frame related to this ‘Detector Status’ information. Contains:

  • map of per DOM configurations (also the list of active DOMs),

  • map of per AOM configurations (including AOMs read out by the TWR DAQ),

  • map of active icecube triggers (and their configurations),

  • map of active amanda triggers (and their configurations) and

  • map of active domhubs (and their settings) … eventually.

file I3Direction.cxx
#include <iostream>
#include <icetray/serialization.h>
#include <cmath>
#include <icetray/I3Units.h>

Functions

I3_SERIALIZABLE(I3Direction)
I3_SERIALIZABLE(I3DirectionVect)
I3Position operator*(double a, const I3Direction &d)
std::ostream &operator<<(std::ostream &oss, const I3Direction &d)
file I3Direction.h
#include <icetray/I3FrameObject.h>
#include “Utility.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef I3Vector<I3Direction> I3DirectionVect

Functions

I3Position operator*(double, const I3Direction&)
std::ostream &operator<<(std::ostream &oss, const I3Direction &d)
I3_POINTER_TYPEDEFS(I3Direction)
I3_CLASS_VERSION(I3Direction, i3direction_version_)
I3_POINTER_TYPEDEFS(I3DirectionVect)

Variables

static const unsigned i3direction_version_ = 0
file I3DOMCalibration.cxx
#include <map>
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <gsl/gsl_integration.h>

Defines

DSPET_compare_member(member)

Functions

I3_SERIALIZABLE(LinearFit)
I3_SERIALIZABLE(QuadraticFit)
I3_SPLIT_SERIALIZABLE(SPEChargeDistribution)
I3_SERIALIZABLE(TauParam)
std::ostream &operator<<(std::ostream &oss, const LinearFit &f)
std::ostream &operator<<(std::ostream &oss, const QuadraticFit &f)
std::ostream &operator<<(std::ostream &oss, const SPEChargeDistribution &spe)
std::ostream &operator<<(std::ostream &oss, const TauParam &p)
std::ostream &operator<<(std::ostream &oss, const I3DOMCalibration &c)
std::ostream &operator<<(std::ostream &oss, const I3DOMCalibrationMap &m)
I3_SERIALIZABLE(I3DOMCalibration)

Variables

const double causalityShift = -11.5
const SPETemplate ATWDNewToroidTemplate[3] = {SPETemplate(17.899 / 14.970753076313095, -4.24 - 5 - causalityShift, 5.5, 42), SPETemplate(1.6581978, -11.70227755 - causalityShift, 5.4664884, 36.22319705), SPETemplate(0.70944364, -10.58782492 - causalityShift, 3.48330553, 42.10873959)}
const SPETemplate ATWDNewToroidDroopTemplate[3] = {SPETemplate(-0.8644871211757873, -0.39712728498041222, 2.2153931795324807e-08, 0.18265408524009966), SPETemplate(-0.60714457126191879, 1.0708609673531526, 0.85478360796100328, 0.22084066752348605), SPETemplate(-1.4510165738141465, -0.29659623453192685, 7.5567807067886802e-09, 0.18209846421412432),}
const SPETemplate ATWDOldToroidTemplate[3] = {SPETemplate(15.47 / 13.292860653948139, -3.929 - 5 - causalityShift, 4.7, 39.), SPETemplate(2.07399312, -10.95781298 - causalityShift, 4.86019733, 30.74826947), SPETemplate(1.35835821, -9.68624195 - causalityShift, 3.5016398, 30.96897853),}
const SPETemplate ATWDOldToroidDroopTemplate[3] = {SPETemplate(-0.87271352029389926, -0.37445896923019595, 0.05292192451474604, 0.2015123032569355), SPETemplate(-0.48448879003182993, 0.035060687415361419, 0.044493411456291751, 0.25894387769482058), SPETemplate(-0.74959447466950724, 0.16580945347622786, 0.055065176963265461, 0.25173422056591982),}
const SPETemplate FADCTemplate (25.12/71.363940160184669, 61.27-50-causalityShift, 30., 186.)
const SPETemplate FADCDroopTemplate (-2.8837584956162883, 0.57888025049064207, 0.81965713180496758, 0.04299648444652391)
file I3DOMCalibration.h
#include <string>
#include <map>
#include <vector>
#include <stdint.h>
#include <sstream>
#include <cmath>
#include <boost/math/constants/constants.hpp>
#include <icetray/I3Units.h>
#include <icetray/OMKey.h>

Definition of I3DOMCalibration class

Copyright (C) 2004 the IceCube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef std::map<OMKey, I3DOMCalibration> I3DOMCalibrationMap

Functions

I3_CLASS_VERSION(LinearFit, linearfit_version_)
I3_CLASS_VERSION(QuadraticFit, quadraticfit_version_)
I3_CLASS_VERSION(SPEChargeDistribution, SPEChargeDistribution_version_)
I3_CLASS_VERSION(TauParam, tauparam_version_)
I3_POINTER_TYPEDEFS(I3DOMCalibrationMap)
I3_CLASS_VERSION(I3DOMCalibration, i3domcalibration_version_)
I3_POINTER_TYPEDEFS(I3DOMCalibration)
std::ostream &operator<<(std::ostream &oss, const LinearFit &f)
std::ostream &operator<<(std::ostream &oss, const QuadraticFit &f)
std::ostream &operator<<(std::ostream &oss, const SPEChargeDistribution &spe)
std::ostream &operator<<(std::ostream &oss, const TauParam &p)
std::ostream &operator<<(std::ostream &oss, const I3DOMCalibration &c)
std::ostream &operator<<(std::ostream &oss, const I3DOMCalibrationMap &m)

Variables

static const unsigned i3domcalibration_version_ = 12
static const unsigned linearfit_version_ = 0
static const unsigned quadraticfit_version_ = 0
static const unsigned tauparam_version_ = 0
static const unsigned SPEChargeDistribution_version_ = 2
file I3DOMFunctions.cxx
#include “icetray/I3Units.h”
#include <vector>
#include <string>

Copyright (C) 2006 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

double ATWDSamplingRate(unsigned int chip, const I3DOMStatus &status, const I3DOMCalibration &calib)

A class containing a collection of functions that use dom status/calibration information to return “calculated” status items (Gain, SPEMean, etc)

expandible in the future, as needed Return the ATWD sampling rate for chip 0 or 1

double PMTGain(const I3DOMStatus &status, const I3DOMCalibration &calib)

Return the calculated PMT gain

double SPEMean(const I3DOMStatus &status, const I3DOMCalibration &calib)

Return the calculated SPEMean (the ADC “charge”, in GV ns, corresponding to the calibrated value of 1 PE). This converts ADC amplitudes into units of photoelectrons.

double MeanSPECharge(const I3DOMCalibration &calib)

Return the expectation value of the SPE distribution, in PE, for this DOM. Whereas 1 PE (see above) is the most likely value for one PE of charge, the usual mean charge per PE is usually somewhat less. This can be used to estimate the number of photons responsible for a given number of photoelectrons.

double FADCBaseline(const I3DOMStatus &status, const I3DOMCalibration &calib)

Get the FADC baseline (in counts)

double TransitTime(const I3DOMStatus &status, const I3DOMCalibration &calib)

Get the total transit time (PMT transit time + delay)

double SPEDiscriminatorThreshold(const I3DOMStatus &status, const I3DOMCalibration &calib, double const spePeakVoltageChargeRatio)

Get the calibrated SPE Discrimiator threshold (pC)

double MPEDiscriminatorThreshold(const I3DOMStatus &status, const I3DOMCalibration &calib, double const spePeakVoltageChargeRatio)

Get the calibrated MPE Discrimiator threshold (pC)

double OldspeThreshold(const I3DOMStatus &status)

OldspeThreshold - a function to return the old “pseudo calibration” values from the raw DAC values (now stored in DOMStatus record). Previously, these psuedo-calibrations were applied by I3OmDb and stored in DOMStatus. This changed with offline V02-02-00 releases.

Returns the speThresold value in I3Units::Volt

double OldmpeThreshold(const I3DOMStatus &status)

OldmpeThreshold - a function to return the old “pseudo calibration” values from the raw DAC values (now stored in DOMStatus record). Previously, these psuedo-calibrations were applied by I3OmDb and stored in DOMStatus. This changed with offline V02-02-00 releases.

Returns the mpeThresold value in I3Units::Volt

double SPEPMTThreshold(const I3DOMStatus &status, const I3DOMCalibration &calib)

Updated approximation function for SPE DOM threshold from D.Chirkin

std::vector<int> DOMCalVersion(const I3DOMCalibration &calib)

Given a string which contains the DOMCal version (e.g. “6.1.0”), return a vector<int> which contains the numbers as its elements (i.e. what’s between the separating “.”s)

unsigned int WhichATWD(const I3DOMLaunch &domLaunch)

Converts a ATWDselect enumeration into ATWD ID. This corrects the problem that I3DOMLaunch::ATWDSelect is enumd 1 or 2 while all I3DOMCalibration are enumerated as 0 or 1 for the 2 ATWD chips. Changing the enum in I3DOMLaunch would cause nasty serialization issues. This moves the conversion function that has always been in DOMCalibrator to DOMFunctions to be available to all.

file I3DOMFunctions.h
#include <vector>

Copyright (C) 2006 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Defines

__SPE_PEAK_VOLTAGE_CHARGE_RATIO__

manually determined relationship between collected charge in picocoulumb and peak voltage in millivolt

Functions

double ATWDSamplingRate(unsigned int chip, const I3DOMStatus&, const I3DOMCalibration&)

A class containing a collection of functions that use dom status/calibration information to return “calculated” status items (Gain, SPEMean, etc)

expandible in the future, as needed Return the ATWD sampling rate for chip 0 or 1

double PMTGain(const I3DOMStatus&, const I3DOMCalibration&)

Return the calculated PMT gain

double SPEMean(const I3DOMStatus&, const I3DOMCalibration&)

Return the calculated SPEMean (the ADC “charge”, in GV ns, corresponding to the calibrated value of 1 PE). This converts ADC amplitudes into units of photoelectrons.

double MeanSPECharge(const I3DOMCalibration&)

Return the expectation value of the SPE distribution, in PE, for this DOM. Whereas 1 PE (see above) is the most likely value for one PE of charge, the usual mean charge per PE is usually somewhat less. This can be used to estimate the number of photons responsible for a given number of photoelectrons.

double FADCBaseline(const I3DOMStatus&, const I3DOMCalibration&)

Get the FADC baseline (in counts)

double TransitTime(const I3DOMStatus&, const I3DOMCalibration&)

Get the total transit time (PMT transit time + delay)

double SPEDiscriminatorThreshold(const I3DOMStatus&, const I3DOMCalibration&, double const spePeakVoltageChargeRatio = __SPE_PEAK_VOLTAGE_CHARGE_RATIO__)

Get the calibrated SPE Discrimiator threshold (pC)

double SPEPMTThreshold(const I3DOMStatus&, const I3DOMCalibration&)

Updated approximation function for SPE DOM threshold from D.Chirkin

double MPEDiscriminatorThreshold(const I3DOMStatus&, const I3DOMCalibration&, double const spePeakVoltageChargeRatio = __SPE_PEAK_VOLTAGE_CHARGE_RATIO__)

Get the calibrated MPE Discrimiator threshold (pC)

double OldspeThreshold(const I3DOMStatus&)

OldspeThreshold - a function to return the old “pseudo calibration” values from the raw DAC values (now stored in DOMStatus record). Previously, these psuedo-calibrations were applied by I3OmDb and stored in DOMStatus. This changed with offline V02-02-00 releases.

Returns the speThresold value in I3Units::Volt

double OldmpeThreshold(const I3DOMStatus&)

OldmpeThreshold - a function to return the old “pseudo calibration” values from the raw DAC values (now stored in DOMStatus record). Previously, these psuedo-calibrations were applied by I3OmDb and stored in DOMStatus. This changed with offline V02-02-00 releases.

Returns the mpeThresold value in I3Units::Volt

std::vector<int> DOMCalVersion(const I3DOMCalibration&)

Given a string which contains the DOMCal version (e.g. “6.1.0”), return a vector<int> which contains the numbers as its elements (i.e. what’s between the separating “.”s)

unsigned int WhichATWD(const I3DOMLaunch&)

Converts a ATWDselect enumeration into ATWD ID. This corrects the problem that I3DOMLaunch::ATWDSelect is enumd 1 or 2 while all I3DOMCalibration are enumerated as 0 or 1 for the 2 ATWD chips. Changing the enum in I3DOMLaunch would cause nasty serialization issues. This moves the conversion function that has always been in DOMCalibrator to DOMFunctions to be available to all.

file I3DOMLaunch.cxx
#include <vector>
#include <icetray/serialization.h>
#include <stdexcept>
#include <boost/foreach.hpp>

Functions

bool operator==(const I3DOMLaunch &lhs, const I3DOMLaunch &rhs)
std::ostream &operator<<(std::ostream &oss, const I3DOMLaunch &d)
I3_SPLIT_SERIALIZABLE(I3DOMLaunch)
I3_SERIALIZABLE(I3DOMLaunchSeriesMap)
file I3DOMLaunch.h
#include <vector>
#include <icetray/OMKey.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Version

$Revision$

Date

$Date$

Defines

I3DOMLAUNCH_H_I3DOMLaunch_ATWDselect

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

I3DOMLAUNCH_H_I3DOMLaunch_TriggerType
I3DOMLAUNCH_H_I3DOMLaunch_TriggerMode

Typedefs

typedef std::vector<I3DOMLaunch> I3DOMLaunchSeries
typedef I3Map<OMKey, I3DOMLaunchSeries> I3DOMLaunchSeriesMap

Functions

I3_CLASS_VERSION(I3DOMLaunch, i3domlaunch_version_)
I3_POINTER_TYPEDEFS(I3DOMLaunch)
I3_POINTER_TYPEDEFS(I3DOMLaunchSeries)
I3_POINTER_TYPEDEFS(I3DOMLaunchSeriesMap)
bool operator==(const I3DOMLaunch &lhs, const I3DOMLaunch &rhs)
std::ostream &operator<<(std::ostream&, const I3DOMLaunch&)
inline I3DOMLaunch::TriggerMode operator|(I3DOMLaunch::TriggerMode a, I3DOMLaunch::TriggerMode b)

Bit operators to combine different trigger modes.

As an example: One might set I3DOMLaunch::LC_LOWER | I3DOMLaunch::LC_UPPER, if the local coincidence condition for the lower and upper DOM is met at the same time.

inline I3DOMLaunch::TriggerMode operator&(I3DOMLaunch::TriggerMode a, I3DOMLaunch::TriggerMode b)
inline I3DOMLaunch::TriggerMode operator^(I3DOMLaunch::TriggerMode a, I3DOMLaunch::TriggerMode b)
inline I3DOMLaunch::TriggerMode &operator|=(I3DOMLaunch::TriggerMode &a, I3DOMLaunch::TriggerMode b)
inline I3DOMLaunch::TriggerMode &operator&=(I3DOMLaunch::TriggerMode &a, I3DOMLaunch::TriggerMode b)
inline I3DOMLaunch::TriggerMode &operator^=(I3DOMLaunch::TriggerMode &a, I3DOMLaunch::TriggerMode b)
inline I3DOMLaunch::TriggerMode operator~(I3DOMLaunch::TriggerMode a)

Variables

static const unsigned i3domlaunch_version_ = 5

The direct (digital) readout of an IceCube DOM.

The full digital readout of an IceCube DOM consists of 1-4 short but fine-grained ATWD readouts, and a long but coarse fADC readout, all beginning at the same time. The fADC is fixed at 40 MHz, while the sampling rate of the ATWDs is adjustable and is determined by the DOM calibrator. There is also a ‘coarse charge stamp’ containing the 3 largest samples out of the first 16 fADC samples

file I3DOMStatus.cxx
#include <icetray/serialization.h>
#include “icetray/I3Units.h”

Functions

I3_SERIALIZABLE(I3DOMStatus)
file I3DOMStatus.h
#include “dataclasses/Utility.h
#include <icetray/OMKey.h>
#include <serialization/version.hpp>

Typedefs

typedef std::map<OMKey, I3DOMStatus> I3DOMStatusMap

Functions

I3_POINTER_TYPEDEFS(I3DOMStatusMap)
I3_POINTER_TYPEDEFS(I3DOMStatus)
I3_CLASS_VERSION(I3DOMStatus, i3domstatus_version_)

Variables

static const unsigned i3domstatus_version_ = 6
file I3Double.cxx
#include <icetray/serialization.h>

Functions

I3_SERIALIZABLE(I3Double)
file I3Double.h
#include <icetray/I3DefaultName.h>
#include <icetray/I3PODHolder.h>

Typedefs

typedef I3PODHolder<double> I3Double

Functions

I3_POINTER_TYPEDEFS(I3Double)
I3_DEFAULT_NAME(I3Double)
file I3EventHeader.cxx
#include <icetray/serialization.h>
#include <limits>

Functions

std::ostream &operator<<(std::ostream &oss, const I3EventHeader &eh)
I3_SERIALIZABLE(I3EventHeader)
file I3EventHeader.h
#include <string>
#include <icetray/I3DefaultName.h>
#include <icetray/I3FrameObject.h>
#include <icetray/I3PointerTypedefs.h>
#include <icetray/serialization.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &oss, const I3EventHeader &eh)
I3_CLASS_VERSION(I3EventHeader, i3eventheader_version_)
I3_POINTER_TYPEDEFS(I3EventHeader)
I3_DEFAULT_NAME(I3EventHeader)

Variables

static const unsigned i3eventheader_version_ = 3
file I3FilterResult.cxx
#include <icetray/serialization.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &os, const I3FilterResult &fr)
I3_SERIALIZABLE(I3FilterResult)
I3_SERIALIZABLE(I3FilterResultMap)
file I3FilterResult.h
#include <string>
#include <icetray/I3FrameObject.h>
#include <icetray/I3PointerTypedefs.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Typedefs

typedef I3Map<std::string, I3FilterResult> I3FilterResultMap

Functions

std::ostream &operator<<(std::ostream&, const I3FilterResult&)
I3_POINTER_TYPEDEFS(I3FilterResult)
I3_POINTER_TYPEDEFS(I3FilterResultMap)
file I3FlasherInfo.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &os, const I3FlasherInfo &fi)
I3_SERIALIZABLE(I3FlasherInfo)
I3_SERIALIZABLE(I3FlasherInfoVect)
file I3FlasherInfo.h
#include <vector>
#include “icetray/I3FrameObject.h”
#include “icetray/OMKey.h”
#include “dataclasses/I3Vector.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef I3Vector<I3FlasherInfo> I3FlasherInfoVect

Functions

std::ostream &operator<<(std::ostream&, const I3FlasherInfo&)
I3_POINTER_TYPEDEFS(I3FlasherInfo)
I3_CLASS_VERSION(I3FlasherInfo, i3flasherinfo_version_)
I3_POINTER_TYPEDEFS(I3FlasherInfoVect)

Variables

static const unsigned i3flasherinfo_version_ = 1
file I3FlasherStatus.cxx
#include <icetray/serialization.h>

Functions

I3_SERIALIZABLE(I3FlasherStatus)
I3_SERIALIZABLE(I3FlasherStatusMap)
I3_SERIALIZABLE(I3FlasherSubrunMap)
std::ostream &operator<<(std::ostream &oss, const I3FlasherStatus &s)
std::ostream &operator<<(std::ostream &oss, const I3FlasherStatusMap &map)
std::ostream &operator<<(std::ostream &oss, const I3FlasherSubrunMap &map)
file I3FlasherStatus.h
#include <icetray/I3FrameObject.h>
#include <icetray/OMKey.h>

Copyright (C) 2017 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef I3Map<OMKey, I3FlasherStatus> I3FlasherStatusMap
typedef I3Map<unsigned, I3FlasherStatusMap> I3FlasherSubrunMap

Functions

I3_POINTER_TYPEDEFS(I3FlasherStatus)
I3_POINTER_TYPEDEFS(I3FlasherStatusMap)
I3_POINTER_TYPEDEFS(I3FlasherSubrunMap)
I3_CLASS_VERSION(I3FlasherStatus, i3flasherstatus_version_)
std::ostream &operator<<(std::ostream &oss, const I3FlasherStatus &s)
std::ostream &operator<<(std::ostream &oss, const I3FlasherStatusMap &map)
std::ostream &operator<<(std::ostream &oss, const I3FlasherSubrunMap &map)

Variables

static const unsigned i3flasherstatus_version_ = 1
file I3FrameTransformations.cxx
#include <boost/shared_ptr.hpp>
#include <icetray/I3Frame.h>
#include <icetray/I3Units.h>

Functions

static I3RecoPulseSeriesMapPtr HitsAsPulses(I3RecoHitSeriesMapConstPtr hits)
file I3Geometry.cxx
#include <icetray/serialization.h>
#include <boost/foreach.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/lexical_cast.hpp>

Defines

MAKE_ENUM_TO_STRING_CASE_LINE(r, data, t)
MAKE_STRING_TO_ENUM_IF_LINE2(r, data, t)

Functions

I3_SERIALIZABLE(I3Geometry)
file I3Geometry.h
#include <vector>
#include “dataclasses/Utility.h
#include “dataclasses/I3Time.h
#include <icetray/I3DefaultName.h>
#include “icetray/I3FrameObject.h”
#include “dataclasses/I3Map.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

n$Id$

Date

$Date$

Defines

I3GEOMETRY_H_I3Geometry_SnowHeightProvenance

Functions

I3_DEFAULT_NAME(I3Geometry)
I3_POINTER_TYPEDEFS(I3Geometry)
I3_CLASS_VERSION(I3Geometry, i3geometry_version_)

Variables

static const unsigned i3geometry_version_ = 3
file I3IceActGeo.cxx

Functions

I3_SERIALIZABLE(I3IceActGeo)
I3_SERIALIZABLE(I3IceActGeoMap)
I3_SERIALIZABLE(I3IceActPixelPositionMap)
std::ostream &operator<<(std::ostream &os, const I3IceActGeo &g)
file I3IceActGeo.h
#include <string>

Typedefs

typedef I3Map<unsigned, I3Position> I3IceActPixelPositionMap
typedef I3Map<IceActKey, I3IceActGeo> I3IceActGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3IceActGeo&)
I3_POINTER_TYPEDEFS(I3IceActGeo)
I3_CLASS_VERSION(I3IceActGeo, i3iceactgeo_version_)
I3_POINTER_TYPEDEFS(I3IceActPixelPositionMap)
I3_POINTER_TYPEDEFS(I3IceActGeoMap)

Variables

static const unsigned i3iceactgeo_version_ = 0
file I3IceActRecoPulseMap.cxx

Functions

I3_SERIALIZABLE(I3IceActRecoPulseSeries)
I3_SERIALIZABLE(I3IceActRecoPulseSeriesMap)
file I3IceActRecoPulseMap.h

Typedefs

typedef I3Map<unsigned, I3RecoPulseSeries> I3IceActRecoPulseSeries
typedef I3Map<IceActKey, I3IceActRecoPulseSeries> I3IceActRecoPulseSeriesMap

Functions

I3_POINTER_TYPEDEFS(I3IceActRecoPulseSeries)
I3_POINTER_TYPEDEFS(I3IceActRecoPulseSeriesMap)
file I3IceActTriggerMap.cxx

Functions

I3_SERIALIZABLE(I3IceActTriggerMap)
file I3IceActTriggerMap.h

Typedefs

typedef I3Map<IceActKey, I3Trigger> I3IceActTriggerMap

Functions

I3_POINTER_TYPEDEFS(I3IceActTriggerMap)
file I3IceActWaveformMap.cxx

Functions

I3_SERIALIZABLE(I3IceActWaveform)
I3_SERIALIZABLE(I3IceActWaveformMap)
file I3IceActWaveformMap.h

Typedefs

typedef I3Map<unsigned, std::vector<I3Waveform>> I3IceActWaveform
typedef I3Map<IceActKey, I3IceActWaveform> I3IceActWaveformMap

Functions

I3_POINTER_TYPEDEFS(I3IceActWaveform)
I3_POINTER_TYPEDEFS(I3IceActWaveformMap)
file I3IceTopSLCCalibration.cxx
#include <icetray/serialization.h>

Version

$Id$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &oss, const I3IceTopSLCCalibration &sc)
I3_SERIALIZABLE(I3IceTopSLCCalibration)
I3_SERIALIZABLE(I3IceTopSLCCalibrationMap)
I3_SPLIT_SERIALIZABLE(I3IceTopSLCCalibrationCollection)
file I3IceTopSLCCalibration.h
#include <icetray/OMKey.h>
#include <icetray/I3FrameObject.h>

Version

$Id$

Date

$Date$

Typedefs

typedef I3Map<OMKey, I3IceTopSLCCalibration> I3IceTopSLCCalibrationMap

Functions

I3_POINTER_TYPEDEFS(I3IceTopSLCCalibration)
I3_POINTER_TYPEDEFS(I3IceTopSLCCalibrationMap)
I3_CLASS_VERSION(I3IceTopSLCCalibrationCollection, i3itslccalibration_version_)
I3_POINTER_TYPEDEFS(I3IceTopSLCCalibrationCollection)
std::ostream &operator<<(std::ostream &oss, const I3IceTopSLCCalibration &c)

Variables

static const unsigned i3itslccalibration_version_ = 0
file I3LinearizedMCTree.cxx
#include “icetray/I3Units.h”
#include <boost/foreach.hpp>
#include <queue>

Copyright (c) 2012 Jakob van Santen vansanten@wisc.edu Copyright (c) 2012 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Date

$Date$

Author

jvansanten

Functions

I3_SERIALIZABLE(I3Stochastic)
I3_SERIALIZABLE(I3LinearizedMCTree)
file I3LinearizedMCTree.h

Copyright (c) 2012 Jakob van Santen vansanten@wisc.edu Copyright (c) 2012 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Date

$Date$

Author

jvansanten

Functions

I3_POINTER_TYPEDEFS(I3LinearizedMCTree)
I3_CLASS_VERSION(I3LinearizedMCTree, i3linearizedmctree_version_)

Variables

static const unsigned i3linearizedmctree_version_ = 1
file I3Map.cxx
#include <icetray/serialization.h>
#include <string>

Functions

I3_SERIALIZABLE(I3MapStringDouble)
I3_SERIALIZABLE(I3MapStringVectorDouble)
I3_SERIALIZABLE(I3MapUnsignedUnsigned)
I3_SERIALIZABLE(I3MapUShortUShort)
I3_SERIALIZABLE(I3MapIntVectorInt)
I3_SERIALIZABLE(I3MapKeyDouble)
I3_SERIALIZABLE(I3MapKeyUInt)
I3_SERIALIZABLE(I3MapTriggerVectorUInt)
I3_SERIALIZABLE(I3MapTriggerDouble)
I3_SERIALIZABLE(I3MapTriggerUInt)
file I3Map.h
#include <icetray/serialization.h>
#include <map>
#include <string>
#include <vector>
#include <icetray/I3Logging.h>
#include <icetray/I3FrameObject.h>
#include <icetray/has_operator.h>
#include <icetray/OMKey.h>
#include “dataclasses/TriggerKey.h
#include <boost/lexical_cast.hpp>

Typedefs

typedef I3Map<std::string, double> I3MapStringDouble
typedef I3Map<std::string, int> I3MapStringInt
typedef I3Map<std::string, bool> I3MapStringBool
typedef I3Map<std::string, std::string> I3MapStringString
typedef I3Map<std::string, std::vector<double>> I3MapStringVectorDouble
typedef I3Map<std::string, I3MapStringDouble> I3MapStringStringDouble
typedef I3Map<unsigned, unsigned> I3MapUnsignedUnsigned
typedef I3Map<unsigned short, unsigned short> I3MapUShortUShort
typedef I3Map<int, std::vector<int>> I3MapIntVectorInt
typedef I3Map<OMKey, std::vector<double>> I3MapKeyVectorDouble
typedef I3Map<OMKey, std::vector<int>> I3MapKeyVectorInt
typedef I3Map<OMKey, double> I3MapKeyDouble
typedef I3Map<OMKey, unsigned int> I3MapKeyUInt
typedef I3Map<TriggerKey, std::vector<unsigned int>> I3MapTriggerVectorUInt
typedef I3Map<TriggerKey, double> I3MapTriggerDouble
typedef I3Map<TriggerKey, unsigned int> I3MapTriggerUInt

Functions

template<typename Key, typename Value>
std::ostream &operator<<(std::ostream &os, const I3Map<Key, Value> m)
I3_POINTER_TYPEDEFS(I3MapStringDouble)
I3_POINTER_TYPEDEFS(I3MapStringVectorDouble)
I3_POINTER_TYPEDEFS(I3MapUnsignedUnsigned)
I3_POINTER_TYPEDEFS(I3MapUShortUShort)
I3_POINTER_TYPEDEFS(I3MapIntVectorInt)
I3_POINTER_TYPEDEFS(I3MapKeyDouble)
I3_POINTER_TYPEDEFS(I3MapKeyUInt)
I3_POINTER_TYPEDEFS(I3MapTriggerVectorUInt)
I3_POINTER_TYPEDEFS(I3MapTriggerDouble)
I3_POINTER_TYPEDEFS(I3MapTriggerUInt)
file I3MapOMKeyMask.cxx
#include <algorithm>
#include “boost/make_shared.hpp”
#include <serialization/binary_object.hpp>

Functions

std::ostream &operator<<(std::ostream &os, const I3RecoPulseSeriesMapMask::bitmask &mask)
std::ostream &operator<<(std::ostream &os, const I3RecoPulseSeriesMapMask &mask)
I3_SPLIT_SERIALIZABLE(I3RecoPulseSeriesMapMask)
file I3MapOMKeyMask.h
#include <functional>
#include <string>
#include <list>
#include <boost/foreach.hpp>
#include <boost/function.hpp>
#include <boost/dynamic_bitset.hpp>
#include “icetray/I3FrameObject.h”
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/serialization.h”

Functions

std::ostream &operator<<(std::ostream&, const I3RecoPulseSeriesMapMask&)
I3_CLASS_VERSION(I3RecoPulseSeriesMapMask, i3recopulseseriesmapmask_version_)
I3_POINTER_TYPEDEFS(I3RecoPulseSeriesMapMask)

Variables

static const unsigned i3recopulseseriesmapmask_version_ = 2

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu Copyright (C) 2011 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

file I3MapOMKeyUnion.cxx
#include “boost/make_shared.hpp”
#include “boost/foreach.hpp”

Functions

static bool PulseCompare(const I3RecoPulse &p1, const I3RecoPulse &p2)
std::ostream &operator<<(std::ostream &os, const I3RecoPulseSeriesMapUnion &un)
I3_SERIALIZABLE(I3RecoPulseSeriesMapUnion)
file I3MapOMKeyUnion.h
#include <functional>
#include <string>
#include <list>
#include “icetray/I3FrameObject.h”
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/serialization.h”

Functions

std::ostream &operator<<(std::ostream&, const I3RecoPulseSeriesMapUnion&)
I3_CLASS_VERSION(I3RecoPulseSeriesMapUnion, i3recopulseseriesmapunion_version_)
I3_POINTER_TYPEDEFS(I3RecoPulseSeriesMapUnion)

Variables

static const unsigned i3recopulseseriesmapunion_version_ = 0

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu Copyright (C) 2011 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

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

Functions

std::ostream &operator<<(std::ostream &os, const I3Matrix &m)
I3_SERIALIZABLE(ublas_storage_shim)
I3_SERIALIZABLE(ublas_matrix_shim)
I3_SERIALIZABLE(I3Matrix)
file I3Matrix.h
#include <icetray/I3FrameObject.h>
#include <boost/numeric/ublas/matrix.hpp>
#include <serialization/serialization.hpp>
#include <serialization/array.hpp>
#include <serialization/collection_size_type.hpp>
#include <serialization/nvp.hpp>

Functions

std::ostream &operator<<(std::ostream&, const I3Matrix&)
I3_POINTER_TYPEDEFS(I3Matrix)
file I3MCHit.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3MCHit &h)
I3_SPLIT_SERIALIZABLE(I3MCHit)
I3_SERIALIZABLE(I3MCHitSeriesMap)
file I3MCHit.h
#include “dataclasses/I3Vector.h
#include “dataclasses/I3Map.h
#include “icetray/OMKey.h”

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Defines

I3MCHIT_H_I3MCHit_HitSource

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

Typedefs

typedef std::vector<I3MCHit> I3MCHitSeries
typedef I3Map<OMKey, I3MCHitSeries> I3MCHitSeriesMap

Functions

I3_CLASS_VERSION(I3MCHit, i3mchit_version_)
std::ostream &operator<<(std::ostream &oss, const I3MCHit &h)
I3_POINTER_TYPEDEFS(I3MCHit)
I3_POINTER_TYPEDEFS(I3MCHitSeries)
I3_POINTER_TYPEDEFS(I3MCHitSeriesMap)

Variables

static const unsigned i3mchit_version_ = 3

Derived I3Hit class with additional ‘Weight’ and ‘Parent track’ info.

This class records the true (simulated) time at which a photoelectron was produced. In addition to the time, it contains the identity of the track which was responsible for the hit, and a statistical weight to assign to the hit (default 1). Also, CherenkovDistance- direct path distance to the track that generated this hit.

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

Functions

I3_SERIALIZABLE(I3MCList)
file I3MCTree.cxx
#include <cassert>
#include <icetray/serialization.h>

Implementation for I3MCTree.

Copyright (C) 2013 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

$Id$

Version

$Revision$

Date

$Date$

Functions

I3_SERIALIZABLE(I3MCTree)
file I3MCTree.h
#include <iterator>
#include <map>
#include <vector>
#include <string>
#include <utility>
#include <stdint.h>
#include <boost/none.hpp>
#include <boost/optional.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <icetray/I3DefaultName.h>
#include <icetray/I3FrameObject.h>
#include <icetray/serialization.h>
#include <icetray/I3Logging.h>
#include <I3/hash_map.h>

Tree of I3Particles.

Copyright (C) 2013 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

$Id$

Version

$Revision$

Date

$Date$

Functions

template<typename T, typename Key = T, typename Hash = hash<Key>>
std::ostream &operator<<(std::ostream &os, const TreeBase::Tree<T, Key, Hash> &tree)
I3_CLASS_VERSION(I3MCTree, TreeBase::tree_version_)
I3_POINTER_TYPEDEFS(I3MCTree)
I3_DEFAULT_NAME(I3MCTree)
file I3MCTree_fwd.h

Typedefs

typedef TreeBase::Tree<I3Particle, I3ParticleID> I3MCTree

I3MCTree - This goes into the frame and everyone can see it

file I3MCTree_impl.h
#include <cassert>
#include <stack>
#include <boost/dynamic_bitset.hpp>
#include <boost/foreach.hpp>
#include <icetray/serialization.h>

Implementation for TreeBase.

Copyright (C) 2013 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Rcs

I3MCTree.hh 112306 2013-10-28 22:43:59Z david.schultz

Version

Rcs

112306

Date

Rcs

2013-10-28 17:43:59 -0500 (Mon, 28 Oct 2013)

file I3MCTreePhysicsLibrary.cxx
#include <string>
#include <boost/function.hpp>
file I3MCTreePhysicsLibrary.hh

Copyright (C) 2013 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

file I3MCTreeUtils.cxx
#include <sstream>
#include “icetray/I3Frame.h”
file I3MCTreeUtils.h

Copyright (C) 2013 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

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

Functions

I3_SERIALIZABLE(I3ModuleGeo)
I3_SERIALIZABLE(I3ModuleGeoMap)
std::ostream &operator<<(std::ostream &os, const I3ModuleGeo &g)
file I3ModuleGeo.h
#include <vector>
#include <icetray/I3DefaultName.h>
#include “icetray/I3FrameObject.h”
#include “dataclasses/ModuleKey.h
#include “dataclasses/I3Position.h
#include “dataclasses/I3Map.h

Defines

I3MODULEGEO_H_I3ModuleGeo_ModuleType

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

Please note: using “LOM” here to refer to LOM-16. The plan is to eventually be able to merge LOM + LOM18 into a single enum for long term use

Typedefs

typedef I3Map<ModuleKey, I3ModuleGeo> I3ModuleGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3ModuleGeo&)
I3_CLASS_VERSION(I3ModuleGeo, i3modulegeo_version_)
I3_POINTER_TYPEDEFS(I3ModuleGeo)
I3_POINTER_TYPEDEFS(I3ModuleGeoMap)

Variables

static const unsigned i3modulegeo_version_ = 0
file I3OMGeo.cxx
#include <icetray/serialization.h>

Enums

enum OldOrientation__

Values:

Functions

I3_SERIALIZABLE(I3OMGeo)
I3_SERIALIZABLE(I3OMGeoMap)
std::ostream &operator<<(std::ostream &os, const I3OMGeo &g)
file I3OMGeo.h
#include “dataclasses/I3Position.h
#include “dataclasses/I3Map.h
#include <string>
#include <iostream>
#include <sstream>
#include “icetray/OMKey.h”
#include “dataclasses/Utility.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Defines

I3OMGEO_H_I3OMGeo_OMType

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

Typedefs

typedef I3Map<OMKey, I3OMGeo> I3OMGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3OMGeo&)
I3_POINTER_TYPEDEFS(I3OMGeo)
I3_CLASS_VERSION(I3OMGeo, i3omgeo_version_)
I3_POINTER_TYPEDEFS(I3OMGeoMap)

Variables

static const unsigned i3omgeo_version_ = 1
file I3Orientation.cxx
#include <iostream>
#include <icetray/serialization.h>
#include <math.h>
#include <float.h>
#include <algorithm>

Functions

I3_SERIALIZABLE(I3Orientation)
I3_SERIALIZABLE(I3OrientationVect)
std::ostream &operator<<(std::ostream &os, const I3Orientation &ori)
file I3Orientation.h
#include <math.h>
#include <sstream>
#include “icetray/I3FrameObject.h”
#include “Utility.h

Version

$Id$

Date

$Date$

Typedefs

typedef I3Vector<I3Orientation> I3OrientationVect

Functions

std::ostream &operator<<(std::ostream&, const I3Orientation&)
I3_POINTER_TYPEDEFS(I3Orientation)
I3_CLASS_VERSION(I3Orientation, i3orientation_version_)
I3_POINTER_TYPEDEFS(I3OrientationVect)

Variables

static const unsigned i3orientation_version_ = 0
file I3Particle.cxx
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <boost/functional/hash/hash.hpp>
#include <limits>
#include <map>
#include <boost/assign/list_of.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/lexical_cast.hpp>
#include <unistd.h>
#include <cstdlib>

Defines

MAKE_ENUM_TO_STRING_CASE_LINE(r, data, t)
MAKE_STRING_TO_ENUM_IF_LINE(r, data, t)

Typedefs

typedef std::map<I3Particle::ParticleType, double> particle_type_mass_conversion_t
typedef std::map<int, I3Particle::ParticleType> particle_type_conversion_t
typedef I3Vector<I3Particle> I3ParticleVect

Functions

std::string i3particle_type_string(int32_t pdg_code)

Get name of an I3Particle::ParticleType as a string

std::ostream &operator<<(std::ostream &oss, const I3Particle &p)
std::ostream &operator<<(std::ostream &oss, const I3ParticleID &pid)
I3_SPLIT_SERIALIZABLE(I3Particle)
I3_SERIALIZABLE(I3ParticleVect)
I3_SERIALIZABLE(I3ParticleID)

Variables

static int32_t global_last_pid_ = 0
static int32_t global_minor_id_ = 0
static uint64_t global_major_id_ = 0
static const particle_type_mass_conversion_t fromParticleTypeMassTable
static const particle_type_conversion_t fromOldI3ParticleTable
static const particle_type_conversion_t fromRDMCTable
file I3Particle.h
#include “dataclasses/I3Position.h
#include “icetray/I3Units.h”
#include “dataclasses/I3Vector.h
#include <map>
#include <string>
#include <boost/optional.hpp>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Defines

I3PARTICLE_SUPPORTS_PDG_ENCODINGS
I3PARTICLE_H_I3Particle_ParticleType

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

I3PARTICLE_H_I3Particle_ParticleShape
I3PARTICLE_H_I3Particle_FitStatus
I3PARTICLE_H_I3Particle_LocationType

Typedefs

typedef I3Vector<I3Particle> I3VectorI3Particle

Functions

std::string i3particle_type_string(int32_t pdg_code)

Get name of an I3Particle::ParticleType as a string

std::ostream &operator<<(std::ostream &oss, const I3Particle &d)
I3_POINTER_TYPEDEFS(I3Particle)
I3_CLASS_VERSION(I3Particle, i3particle_version_)
I3_POINTER_TYPEDEFS(I3VectorI3Particle)

Variables

static const unsigned i3particle_version_ = 5
file I3ParticleID.h
#include <icetray/I3PointerTypedefs.h>
#include <icetray/serialization.h>
#include <I3/hash_map.h>

Typedefs

typedef I3Map<I3ParticleID, double> I3MapI3ParticleIDDouble

Functions

I3_POINTER_TYPEDEFS(I3ParticleID)
I3_POINTER_TYPEDEFS(I3MapI3ParticleIDDouble)
std::ostream &operator<<(std::ostream&, const I3ParticleID&)
file I3ParticleIDMap.cxx

Functions

I3_SERIALIZABLE(I3MapI3ParticleIDDouble)
file I3Position.cxx
#include <iostream>
#include <icetray/serialization.h>
#include “dataclasses/I3Position.h
#include “icetray/I3Units.h”

Functions

I3_SERIALIZABLE(I3Position)
I3Position operator*(double a, const I3Position &p)
std::ostream &operator<<(std::ostream &oss, const I3Position &p)
double abs(const I3Position &p)
file I3Position.h
#include <cmath>
#include “icetray/I3FrameObject.h”
#include “Utility.h
#include <sstream>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

I3Position operator*(double, const I3Position&)
std::ostream &operator<<(std::ostream &oss, const I3Position &p)
double abs(const I3Position &p)
I3_POINTER_TYPEDEFS(I3Position)
I3_CLASS_VERSION(I3Position, i3position_version_)

Variables

static const unsigned i3position_version_ = 0

The basic position class for IceCube.

All positions in IceCube should be written with this class. Positions can be given in cartesian, spherical, or cylindrical coordinates.

Todo:

implement “print out” of all information in a uniform way…

insure that the temporary data isn’t written to disk.

file I3Quaternion.cxx
#include <icetray/serialization.h>
#include “dataclasses/Utility.h

Functions

std::ostream &operator<<(std::ostream &os, const I3Quaternion &q)
I3Quaternion operator*(double a, const I3Quaternion &q)
I3_SERIALIZABLE(I3Quaternion)
file I3Quaternion.h
#include <iostream>
#include <cmath>
#include “icetray/I3FrameObject.h”

Functions

I3Quaternion operator*(double, const I3Quaternion&)
std::ostream &operator<<(std::ostream&, const I3Quaternion&)
I3_POINTER_TYPEDEFS(I3Quaternion)
I3_CLASS_VERSION(I3Quaternion, i3quaternion_version_)

Variables

static const unsigned i3quaternion_version_ = 0

This class implements quaternions which can be used for vector rotations.

$Id$

Copyright (C) 2008, 2009 Claudio Kopper claudio.kopper@physik.uni-erlangen.de

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

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

Functions

std::ostream &operator<<(std::ostream &os, const I3RecoHit &h)
I3_SERIALIZABLE(I3RecoHit)
I3_SERIALIZABLE(I3RecoHitSeriesMap)
file I3RecoHit.h
#include “dataclasses/Utility.h
#include “dataclasses/I3Vector.h
#include “dataclasses/I3Map.h
#include “icetray/OMKey.h”

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef std::vector<I3RecoHit> I3RecoHitSeries
typedef I3Map<OMKey, I3RecoHitSeries> I3RecoHitSeriesMap

Functions

std::ostream &operator<<(std::ostream&, const I3RecoHit&)
I3_POINTER_TYPEDEFS(I3RecoHit)
I3_CLASS_VERSION(I3RecoHit, i3recohit_version_)
I3_POINTER_TYPEDEFS(I3RecoHitSeries)
I3_POINTER_TYPEDEFS(I3RecoHitSeriesMap)

Variables

static const unsigned i3recohit_version_ = 1

A base class for reconstruted hits.

Carries no information beyond ‘hit’ but can be sub-classed as part of a hit series reconstruction.

file I3RecoPulse.cxx
#include <icetray/serialization.h>
#include <string>

Functions

std::ostream &operator<<(std::ostream &oss, const I3RecoPulse &p)
I3_SERIALIZABLE(I3RecoPulse)
I3_SERIALIZABLE(I3RecoPulseSeriesMap)
I3_SERIALIZABLE(I3RecoPulseMap)
file I3RecoPulse.h
#include “dataclasses/Utility.h
#include “dataclasses/I3Vector.h
#include “icetray/OMKey.h”
#include “dataclasses/I3Map.h
#include “icetray/I3Frame.h”

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef std::vector<I3RecoPulse> I3RecoPulseSeries
typedef I3Map<OMKey, I3RecoPulseSeries> I3RecoPulseSeriesMap
typedef I3Map<OMKey, I3RecoPulse> I3RecoPulseMap

Functions

I3_POINTER_TYPEDEFS(I3RecoPulse)
I3_CLASS_VERSION(I3RecoPulse, i3recopulse_version_)
std::ostream &operator<<(std::ostream &oss, const I3RecoPulse &p)
I3_POINTER_TYPEDEFS(I3RecoPulseSeries)
I3_POINTER_TYPEDEFS(I3RecoPulseSeriesMap)
I3_POINTER_TYPEDEFS(I3RecoPulseMap)

Variables

static const unsigned i3recopulse_version_ = 3

A storage class for extracted pulses from a feature extractor A readout independent representation of a waveform feature or Analog readout.

file I3RecoPulseSeriesMapApplySPECorrection.cxx
#include “boost/make_shared.hpp”
#include “boost/foreach.hpp”

Functions

std::ostream &operator<<(std::ostream &os, const I3RecoPulseSeriesMapApplySPECorrection &corr)
I3_SERIALIZABLE(I3RecoPulseSeriesMapApplySPECorrection)
file I3RecoPulseSeriesMapApplySPECorrection.h
#include <functional>
#include <string>
#include “icetray/I3FrameObject.h”
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/serialization.h”

Variables

static const unsigned i3recopulseseriesmapapplyspecorrection_version_ = 0

$Id$

Copyright (C) 2016 Claudio Kopper ckopper@icecube.wisc.edu Copyright (C) 2016 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

file I3RecoPulseSeriesMapCombineByModule.cxx
#include “boost/make_shared.hpp”
#include “boost/foreach.hpp”

Functions

std::ostream &operator<<(std::ostream &os, const I3RecoPulseSeriesMapCombineByModule &corr)
I3_SERIALIZABLE(I3RecoPulseSeriesMapCombineByModule)
file I3RecoPulseSeriesMapCombineByModule.h
#include <functional>
#include <string>
#include “icetray/I3FrameObject.h”
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/serialization.h”

Variables

static const unsigned I3RecoPulseSeriesMapCombineByModule_version_ = 0

$Id$

Copyright (C) 2018 Jakob van Santen jakob.van.santen@desy.de Copyright (C) 2018 the IceCube Collaboration http://www.icecube.wisc.edu SPDX-License-Identifier: BSD-2-Clause

file I3ScintGeo.cxx

Functions

I3_SERIALIZABLE(I3ScintGeo)
I3_SERIALIZABLE(I3ScintGeoMap)
std::ostream &operator<<(std::ostream &os, const I3ScintGeo &g)
file I3ScintGeo.h
#include <string>

Typedefs

typedef I3Map<ScintKey, I3ScintGeo> I3ScintGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3ScintGeo&)
I3_POINTER_TYPEDEFS(I3ScintGeo)
I3_CLASS_VERSION(I3ScintGeo, i3scintgeo_version_)
I3_POINTER_TYPEDEFS(I3ScintGeoMap)

Variables

static const unsigned i3scintgeo_version_ = 0
file I3ScintRecoPulseSeriesMap.cxx

Functions

I3_SERIALIZABLE(I3ScintRecoPulseSeriesMap)
file I3ScintRecoPulseSeriesMap.h

Typedefs

typedef I3Map<ScintKey, I3RecoPulseSeries> I3ScintRecoPulseSeriesMap

Functions

I3_POINTER_TYPEDEFS(I3ScintRecoPulseSeriesMap)
file I3String.cxx
#include <icetray/serialization.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3String &s)
bool operator==(const I3String &lhs, std::string rhs)
bool operator!=(const I3String &lhs, std::string rhs)
I3_SERIALIZABLE(I3String)
file I3String.h
#include <string>
#include <icetray/I3DefaultName.h>
#include <icetray/I3PODHolder.h>

Typedefs

typedef I3PODHolder<std::string> I3String

Functions

I3_POINTER_TYPEDEFS(I3String)
I3_DEFAULT_NAME(I3String)
std::ostream &operator<<(std::ostream &oss, const I3String &s)
bool operator==(const I3String &lhs, std::string rhs)
bool operator!=(const I3String &lhs, std::string rhs)
file I3SuperDST.cxx
#include <cassert>
#include <serialization/binary_object.hpp>
#include <boost/static_assert.hpp>
#include <boost/utility.hpp>
#include <boost/foreach.hpp>
#include <boost/next_prior.hpp>
#include “icetray/OMKey.h”
#include “icetray/I3Units.h”
#include <sys/resource.h>

Copyright (c) 2010 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause.

$Id$

Version

$Revision$

Date

$Date$

Author

Jakob van Santen vansanten@wisc.edu

Defines

I3SUPERDSTCHARGESTAMP_TIME_BITS_V0
I3SUPERDSTCHARGESTAMP_CHARGE_BITS_V0
I3SUPERDSTCHARGESTAMP_BYTESIZE_V0
I3SUPERDST_DOMID_BITS_V0
I3SUPERDST_SLOP_BITS_V0
I3SUPERDST_HEADER_BYTESIZE_V0

Functions

inline uint32_t truncate(double val, unsigned int maxbits)
inline unsigned GetExponent(uint64_t i, unsigned mbits, unsigned ebits)
template<class T>
static void swap_vector(std::vector<T> &vec)
I3_SPLIT_SERIALIZABLE(I3SuperDST)

Variables

uint16_t slop
uint16_t dom_id
uint16_t stop
uint16_t hlc_bit
uint16_t charge
uint16_t rel_time
struct [anonymous] stamp
uint16_t code
struct [anonymous] overflow
uint16_t raw
file I3SuperDST.h
#include <map>
#include <vector>
#include “icetray/I3FrameObject.h”
#include “icetray/IcetrayFwd.h”

Copyright (c) 2010 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause.

$Id:$

Version

$Revision$

Date

$Date$

Author

Jakob van Santen vansanten@wisc.edu

Functions

I3_CLASS_VERSION(I3SuperDST, i3superdst_version_)
I3_POINTER_TYPEDEFS(I3SuperDST)

Variables

static const unsigned i3superdst_version_ = 1
file I3SuperDSTTrigger.cxx
#include <boost/foreach.hpp>
#include <boost/next_prior.hpp>
#include <boost/utility.hpp>

Copyright (c) 2011 Jakob van Santen vansanten@wisc.edu Copyright (c) 2011 the IceCube Collaboration <icecube.wisc.edu> SPDX-License-Identifier: BSD-2-Clause.

$Id$

Version

$Revision$

Date

$Date$

Author

Jakob van Santen vansanten@wisc.edu

Functions

inline uint32_t FindIndex(const I3TriggerStatusMap &triggers, const TriggerKey &key)
inline const TriggerKey &FindKey(const I3TriggerStatusMap &triggers, uint32_t idx)
inline bool ExpectNoConfig(const TriggerKey &key)
I3_SPLIT_SERIALIZABLE(I3SuperDSTTriggerSeries)
file I3SuperDSTTrigger.h
#include “icetray/I3FrameObject.h”
#include “icetray/I3Logging.h”

Copyright (c) 2011 Jakob van Santen vansanten@wisc.edu Copyright (c) 2011 the IceCube Collaboration <icecube.wisc.edu> SPDX-License-Identifier: BSD-2-Clause.

$Id$

Version

$Revision$

Date

$Date$

Author

Jakob van Santen vansanten@wisc.edu

Functions

I3_POINTER_TYPEDEFS(I3SuperDSTTriggerSeries)
file I3SuperDSTUtils.h
#include <serialization/binary_object.hpp>

Copyright (c) 2011 Jakob van Santen Copyright (c) 2011 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause.

$Id$

Version

$Revision$

Date

$Date$

Author

Jakob van Santen vansanten@wisc.edu

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

Functions

I3_SERIALIZABLE(I3TankGeo)
I3_SERIALIZABLE(I3StationGeo)
I3_SERIALIZABLE(I3StationGeoMap)
std::ostream &operator<<(std::ostream &os, const I3TankGeo &tg)
file I3TankGeo.h
#include <iostream>
#include “dataclasses/I3Position.h
#include “dataclasses/Utility.h
#include “icetray/OMKey.h”
#include “dataclasses/I3Vector.h
#include “dataclasses/I3Map.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef I3Vector<I3TankGeo> I3StationGeo
typedef I3Map<int, I3StationGeo> I3StationGeoMap

Functions

std::ostream &operator<<(std::ostream&, const I3TankGeo&)
I3_CLASS_VERSION(I3TankGeo, i3tankgeo_version_)
I3_POINTER_TYPEDEFS(I3TankGeo)
I3_POINTER_TYPEDEFS(I3StationGeo)
I3_POINTER_TYPEDEFS(I3StationGeoMap)

Variables

static const unsigned i3tankgeo_version_ = 2
file I3Time.cxx
#include <string>
#include <dataclasses/jday.h>
#include <icetray/serialization.h>
#include <icetray/I3Units.h>
#include <boost/algorithm/string.hpp>
#include <boost/multiprecision/cpp_int.hpp>

Functions

double operator-(const I3Time t1, const I3Time t2)

Returns the difference between two I3Times in nanoseconds

std::ostream &operator<<(std::ostream &oss, const I3Time &t)
I3_SERIALIZABLE(I3Time)
file I3Time.h
#include <string>
#include <time.h>
#include <icetray/I3FrameObject.h>

Functions

double operator-(const I3Time t1, const I3Time t2)

Returns the difference between two I3Times in nanoseconds

std::ostream &operator<<(std::ostream &oss, const I3Time &d)
I3_POINTER_TYPEDEFS(I3Time)
I3_CLASS_VERSION(I3Time, i3time_version_)

Variables

static const unsigned i3time_version_ = 0

A class for dealing with global times.

Has methods for setting the time in either the Daq UTC convention or in the Modified Julian convention

file I3TimeWindow.cxx
#include <boost/foreach.hpp>
#include <serialization/list.hpp>
#include <boost/next_prior.hpp>

Functions

I3_SERIALIZABLE(I3TimeWindow)
I3_SERIALIZABLE(I3TimeWindowSeries)
I3_SERIALIZABLE(I3TimeWindowSeriesMap)
I3TimeWindowSeriesMap operator|(const I3TimeWindowSeriesMap &left, const I3TimeWindowSeriesMap &right)
std::ostream &operator<<(std::ostream &oss, const I3TimeWindow &w)
std::ostream &operator<<(std::ostream &os, const I3TimeWindowSeries &tws)
file I3TimeWindow.h

Typedefs

typedef I3Map<OMKey, I3TimeWindowSeries> I3TimeWindowSeriesMap

Functions

I3TimeWindowSeriesMap operator|(const I3TimeWindowSeriesMap&, const I3TimeWindowSeriesMap&)
std::ostream &operator<<(std::ostream &oss, const I3TimeWindow &w)
std::ostream &operator<<(std::ostream&, const I3TimeWindowSeries&)
I3_POINTER_TYPEDEFS(I3TimeWindow)
I3_POINTER_TYPEDEFS(I3TimeWindowSeries)
I3_POINTER_TYPEDEFS(I3TimeWindowSeriesMap)
I3_CLASS_VERSION(I3TimeWindow, i3timewindow_version_)
I3_CLASS_VERSION(I3TimeWindowSeries, i3timewindowseries_version_)
I3_CLASS_VERSION(I3TimeWindowSeriesMap, i3timewindowseriesmap_version_)

Variables

static const unsigned i3timewindow_version_ = 1
static const unsigned i3timewindowseries_version_ = 1
static const unsigned i3timewindowseriesmap_version_ = 0
file I3Tree.h
#include <icetray/serialization.h>
#include <stack>
#include <icetray/I3FrameObject.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

tschmidt

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

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &oss, const I3Trigger &t)
I3_SERIALIZABLE(I3Trigger)
I3_SERIALIZABLE(I3VectorI3Trigger)
file I3Trigger.h
#include <icetray/I3Logging.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

blaufuss

Author

deyoung

Author

ehrlich

Typedefs

typedef I3Vector<I3Trigger> I3VectorI3Trigger

Functions

std::ostream &operator<<(std::ostream &oss, const I3Trigger &t)
I3_CLASS_VERSION(I3Trigger, i3trigger_version_)
I3_POINTER_TYPEDEFS(I3Trigger)

pointer type to insulate users from memory management

I3_POINTER_TYPEDEFS(I3VectorI3Trigger)

Variables

static const unsigned i3trigger_version_ = 1

The basic trigger class.

This is the base class for trigger records that will live in the I3TriggerHierarchy.

file I3TriggerHierarchy.cxx
#include <icetray/serialization.h>
#include <iostream>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Functions

std::string DumpChildren(const I3TriggerHierarchy &t, I3TriggerHierarchy::iterator i)
std::ostream &operator<<(std::ostream &oss, const I3TriggerHierarchy &t)

pointer type to insulate users from memory management

I3_SERIALIZABLE(I3TriggerHierarchy)
file I3TriggerHierarchy.h
#include <algorithm>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include “dataclasses/I3Tree.h
#include “icetray/I3DefaultName.h”
#include “icetray/I3Frame.h”

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

tschmidt

Typedefs

typedef I3Tree<I3Trigger> I3TriggerHierarchy

Type definition for a n-ary tree of I3Trigger.

In contrast to AMANDA, there is no “flat” structure of coincident triggers in IceCube anymore. DAQ provides a more complicated n-ary tree-like hierarchy of triggers instead. So called “global triggers” hold “subdetector triggers” (child nodes of the corresponding node within the tree). “Global triggers” might be assigned as children to an additional “global trigger” of type “MERGED”, if two or more of these overlap in time.

../doxygen/dataclasses/xml/aTriggerHierarchy.jpg

Triggering at “string processor” level will add one additional level of siblings in future.

A n-ary tree of I3Trigger describes both scenarios very well. One might only use top level siblings for triggers in AMANDA and a full tree-like hierarchy for triggers in IceCube.

Functions

std::ostream &operator<<(std::ostream &oss, const I3TriggerHierarchy &t)

pointer type to insulate users from memory management

I3_POINTER_TYPEDEFS(I3TriggerHierarchy)
I3_DEFAULT_NAME(I3TriggerHierarchy)

define a default name to address hierarchy in a frame

file I3TriggerStatus.cxx
#include <icetray/serialization.h>
#include <sstream>
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/preprocessor.hpp>
#include <boost/function.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/optional.hpp>
#include <boost/algorithm/string.hpp>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Defines

TRIGGER_CONFIG_TYPES(TYPE)

Functions

template<typename F, typename T>
void Convert(const F &from, boost::optional<T> &to)

Uses boost::lexical_cast to ensure the conversion can be made. http://www.boost.org/doc/libs/1_38_0/libs/conversion/lexical_cast.htm This catches things that will silently trip up atoi and atof.

template<typename T>
void Convert(const char *from, boost::optional<T> &to)
template<>
void Convert(const std::string &from, boost::optional<bool> &to)
template<>
void Convert(const char *from, boost::optional<bool> &to)
I3_SPLIT_SERIALIZABLE(I3TriggerStatus)
I3_SERIALIZABLE(I3TriggerReadoutConfig)
TRIGGER_CONFIG_TYPES(bool)
TRIGGER_CONFIG_TYPES(int)
TRIGGER_CONFIG_TYPES(float)
TRIGGER_CONFIG_TYPES(double)
TRIGGER_CONFIG_TYPES(unsigned)
TRIGGER_CONFIG_TYPES(long)
TRIGGER_CONFIG_TYPES(std::string)
file I3TriggerStatus.h
#include <string>
#include <map>
#include <boost/optional.hpp>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

blaufuss

Typedefs

typedef std::map<TriggerKey, I3TriggerStatus> I3TriggerStatusMap

pointer type to insulate users from memory management

Functions

template<typename F, typename T>
void Convert(const F &from, boost::optional<T> &to)

Uses boost::lexical_cast to ensure the conversion can be made. http://www.boost.org/doc/libs/1_38_0/libs/conversion/lexical_cast.htm This catches things that will silently trip up atoi and atof.

template<typename T>
void Convert(const char *from, boost::optional<T> &to)
I3_CLASS_VERSION(I3TriggerReadoutConfig, i3triggerreadoutconfig_version_)
I3_POINTER_TYPEDEFS(I3TriggerStatusMap)
I3_POINTER_TYPEDEFS(I3TriggerStatus)
I3_CLASS_VERSION(I3TriggerStatus, i3triggerstatus_version_)

Variables

static const unsigned i3triggerstatus_version_ = 3

A trigger status/configuration object.

A class describing all additional trigger information beside source, type and subtype that are encapsulated in a TriggerKey already. It only consists of

  • a name and

  • a map of trigger settings: string, integer values, since most trigger information varies by trigger type.

For IceCube triggers, these settings are most probably …

… simple multiplicity trigger:

”threshold” - number of hits required in a time window

”timeWindow” - length of sliding time window (in ns)

… calibration trigger

”hitType” - type of hit to trigger on (0 (test), 1 (CPU), 2 (SPE), 3 (flasher))

… min bias trigger

”prescale” - one over the fraction of hits to trigger on

… two coincidence trigger

”triggerType1” - trigger type of first trigger

”triggerConfigId1” - trigger config ID of first trigger

”sourceId1” - source ID of first trigger

”triggerType2” - trigger type of second trigger

”triggerConfigId2” - trigger config ID of second trigger

”sourceId2” - source ID of second trigger

… three coincidence trigger

”triggerType1” - trigger type of first trigger

”triggerConfigId1” - trigger config ID of first trigger

”sourceId1” - source ID of first trigger

”triggerType2” - trigger type of second trigger

”triggerConfigId2” - trigger config ID of second trigger

”sourceId2” - source ID of second trigger

”triggerType3” - trigger type of third trigger

”triggerConfigId3” - trigger config ID of third trigger

“sourceId3” - source ID of third trigger

Additionally, the per-trigger readout instructions, specified for each subdetector: readoutTimeMinus : time before the trigger time to set the readout window readoutTimePlus : time after the trigger time to set the readout window readoutTimeOffset : time shift relatve to the trigger time to set the readout window

static const unsigned i3triggerreadoutconfig_version_ = 0
file I3TWRFrag.cxx
#include <vector>
#include <icetray/serialization.h>
#include <math.h>

implementation of the I3TWRFrag class

Copyright (c) 2005 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

tschmidt

Functions

std::ostream &operator<<(std::ostream &os, const I3TWRFrag &f)
bool operator==(const I3TWRFrag &lhs, const I3TWRFrag &rhs)
I3_SERIALIZABLE(I3TWRFrag)
file I3TWRFrag.h
#include <vector>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Version

$Revision$

Date

$Date$

Functions

bool operator==(const I3TWRFrag &lhs, const I3TWRFrag &rhs)
std::ostream &operator<<(std::ostream&, const I3TWRFrag&)
I3_CLASS_VERSION(I3TWRFrag, i3twrfrag_version_)
I3_POINTER_TYPEDEFS(I3TWRFrag)

Variables

static const unsigned i3twrfrag_version_ = 1
file I3TWRLaunch.cxx
#include <icetray/serialization.h>
#include <math.h>

implementation of the I3TWRLaunch class

Copyright (c) 2005 the IceCube Collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

tschmidt

Functions

bool operator==(const I3TWRLaunch &lhs, const I3TWRLaunch &rhs)
std::ostream &operator<<(std::ostream &os, const I3TWRLaunch &l)
I3_SERIALIZABLE(I3TWRLaunch)
I3_SERIALIZABLE(I3TWRLaunchSeriesMap)
file I3TWRLaunch.h
#include <vector>
#include <icetray/OMKey.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef std::vector<I3TWRLaunch> I3TWRLaunchSeries
typedef I3Map<OMKey, I3TWRLaunchSeries> I3TWRLaunchSeriesMap

Functions

std::ostream &operator<<(std::ostream&, const I3TWRLaunch&)
bool operator==(const I3TWRLaunch &lhs, const I3TWRLaunch &rhs)
I3_CLASS_VERSION(I3TWRLaunch, i3twrlaunch_version_)
I3_POINTER_TYPEDEFS(I3TWRLaunch)
I3_POINTER_TYPEDEFS(I3TWRLaunchSeries)
I3_POINTER_TYPEDEFS(I3TWRLaunchSeriesMap)

Variables

static const unsigned i3twrlaunch_version_ = 1
file I3UInt64.cxx
#include <icetray/I3PODHolder.h>
#include <icetray/serialization.h>

Typedefs

typedef I3PODHolder<uint64_t> I3UInt64

Functions

I3_SERIALIZABLE(I3UInt64)
file I3Vector.cxx
#include <icetray/serialization.h>
#include <string>

Functions

I3_SERIALIZABLE(I3VectorBool)
I3_SERIALIZABLE(I3VectorChar)
I3_SERIALIZABLE(I3VectorShort)
I3_SERIALIZABLE(I3VectorUShort)
I3_SERIALIZABLE(I3VectorInt)
I3_SERIALIZABLE(I3VectorUnsignedInt)
I3_SERIALIZABLE(I3VectorInt64)
I3_SERIALIZABLE(I3VectorUInt64)
I3_SERIALIZABLE(I3VectorFloat)
I3_SERIALIZABLE(I3VectorDouble)
I3_SERIALIZABLE(I3VectorString)
I3_SERIALIZABLE(I3VectorOMKey)
I3_SERIALIZABLE(I3VectorTankKey)
I3_SERIALIZABLE(I3VectorModuleKey)
I3_SERIALIZABLE(I3VectorDoubleDouble)
I3_SERIALIZABLE(I3VectorI3Position)
file I3Vector.h
#include <string>
#include <icetray/serialization.h>
#include <icetray/I3FrameObject.h>
#include <icetray/ostream_pair.hpp>
#include <icetray/has_operator.h>
#include <vector>
#include “dataclasses/Utility.h
#include “icetray/OMKey.h”
#include “dataclasses/ModuleKey.h
#include “dataclasses/TankKey.h
#include “dataclasses/I3Position.h
#include “dataclasses/StationKey.h

Typedefs

typedef I3Vector<bool> I3VectorBool
typedef I3Vector<char> I3VectorChar
typedef I3Vector<short> I3VectorShort
typedef I3Vector<unsigned short> I3VectorUShort
typedef I3Vector<int> I3VectorInt
typedef I3Vector<unsigned int> I3VectorUInt
typedef I3Vector<long long> I3VectorInt64
typedef I3Vector<unsigned long long> I3VectorUInt64
typedef I3Vector<std::string> I3VectorString
typedef I3Vector<float> I3VectorFloat
typedef I3Vector<double> I3VectorDouble
typedef I3Vector<std::pair<double, double>> I3VectorDoubleDouble
typedef I3Vector<I3Position> I3VectorI3Position
typedef I3Vector<OMKey> I3VectorOMKey
typedef I3Vector<TankKey> I3VectorTankKey
typedef I3Vector<StationKey> I3VectorStationKey
typedef I3Vector<ModuleKey> I3VectorModuleKey
typedef I3Vector<unsigned int> I3VectorUnsignedInt

Functions

template<typename T>
std::ostream &operator<<(std::ostream &os, const I3Vector<T> v)
I3_POINTER_TYPEDEFS(I3VectorBool)
I3_POINTER_TYPEDEFS(I3VectorChar)
I3_POINTER_TYPEDEFS(I3VectorInt)
I3_POINTER_TYPEDEFS(I3VectorUInt)
I3_POINTER_TYPEDEFS(I3VectorInt64)
I3_POINTER_TYPEDEFS(I3VectorUInt64)
I3_POINTER_TYPEDEFS(I3VectorFloat)
I3_POINTER_TYPEDEFS(I3VectorDouble)
I3_POINTER_TYPEDEFS(I3VectorString)
I3_POINTER_TYPEDEFS(I3VectorOMKey)
I3_POINTER_TYPEDEFS(I3VectorTankKey)
I3_POINTER_TYPEDEFS(I3VectorStationKey)
I3_POINTER_TYPEDEFS(I3VectorModuleKey)
I3_POINTER_TYPEDEFS(I3VectorDoubleDouble)
I3_POINTER_TYPEDEFS(I3VectorI3Position)
file I3VEMCalibration.cxx
#include <icetray/serialization.h>

Version

$Id$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &oss, const I3VEMCalibration &vc)
I3_SERIALIZABLE(I3VEMCalibration)
file I3VEMCalibration.h
#include <icetray/OMKey.h>

Version

$Id$

Date

$Date$

Typedefs

typedef std::map<OMKey, I3VEMCalibration> I3VEMCalibrationMap

Functions

I3_POINTER_TYPEDEFS(I3VEMCalibrationMap)
I3_CLASS_VERSION(I3VEMCalibration, i3vemcalibration_version_)
I3_POINTER_TYPEDEFS(I3VEMCalibration)
std::ostream &operator<<(std::ostream &oss, const I3VEMCalibration &c)

Variables

static const unsigned i3vemcalibration_version_ = 0

This struct stores the VEM (Vertical Equivalent Muon) calibration data for an IceTop DOM. In addition it contains information concerning the switching between the high gain (HG) and low gain (LG) DOMs in a Tank.

Author

Tilo Waldenmaier (struct’d by Erik Blaufuss)

file I3Waveform.cxx
#include <icetray/serialization.h>
#include <algorithm>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/foreach.hpp>

Functions

I3_SPLIT_SERIALIZABLE(I3Waveform::StatusCompound)
bool operator==(const I3Waveform &lhs, const I3Waveform &rhs)
std::ostream &operator<<(std::ostream &oss, const I3Waveform &wf)
std::ostream &operator<<(std::ostream &oss, const I3Waveform::StatusCompound &sc)
I3_SPLIT_SERIALIZABLE(I3Waveform)
I3_SERIALIZABLE(I3WaveformSeriesMap)
I3_SERIALIZABLE(I3ScintWaveformSeriesMap)
file I3Waveform.h
#include <utility>
#include <vector>
#include <icetray/OMKey.h>

Copyright (C) 2004 The icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Defines

I3WAVEFORM_H_I3Waveform_Source

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

I3WAVEFORM_H_I3Waveform_Status

Typedefs

typedef std::vector<I3Waveform> I3WaveformSeries
typedef I3Map<OMKey, I3WaveformSeries> I3WaveformSeriesMap
typedef I3Map<ScintKey, I3WaveformSeries> I3ScintWaveformSeriesMap

Functions

SourceCompound(Source source = ATWD, unsigned id = 0)
bool operator==(const I3Waveform &lhs, const I3Waveform &rhs)
std::ostream &operator<<(std::ostream &oss, const I3Waveform &wf)
std::ostream &operator<<(std::ostream &oss, const I3Waveform::StatusCompound &wf)
I3_CLASS_VERSION(I3Waveform, i3waveform_version_)
I3_CLASS_VERSION(I3Waveform::StatusCompound, i3waveform_version_)
I3_POINTER_TYPEDEFS(I3Waveform)
I3_POINTER_TYPEDEFS(I3WaveformSeries)
I3_POINTER_TYPEDEFS(I3WaveformSeriesMap)
I3_POINTER_TYPEDEFS(I3ScintWaveformSeriesMap)

Variables

static const unsigned i3waveform_version_ = 3
uint8_t slop
uint8_t hlc
uint8_t id
uint8_t source
struct [anonymous] fields
uint8_t bits
file IceActKey.cxx
#include <icetray/I3Logging.h>

Functions

std::ostream &operator<<(std::ostream &os, const IceActKey &key)
bool operator<(const IceActKey &lhs, const IceActKey &rhs)
I3_SERIALIZABLE(IceActKey)
I3_SERIALIZABLE(I3VectorIceActKey)
file IceActKey.h
#include <iostream>
#include <icetray/serialization.h>
#include <icetray/I3PointerTypedefs.h>

Typedefs

typedef I3Vector<IceActKey> I3VectorIceActKey

Functions

bool operator<(const IceActKey &lhs, const IceActKey &rhs)
std::ostream &operator<<(std::ostream&, const IceActKey &key)
I3_POINTER_TYPEDEFS(IceActKey)
I3_POINTER_TYPEDEFS(I3VectorIceActKey)

Variables

static const unsigned iceactkey_version_ = 0
file jday.h

Functions

int CalDate(UTinstant*)
double JulDate(UTinstant*)
file ModuleKey.cxx
#include <icetray/serialization.h>
#include <sstream>
#include <boost/regex.hpp>
#include <boost/lexical_cast.hpp>

Functions

I3_SERIALIZABLE(ModuleKey)
I3_SERIALIZABLE(I3MapModuleKeyString)
std::ostream &operator<<(std::ostream &os, const ModuleKey &key)

streams an ModuleKey to an arbitrary ostream. These are important, the tray uses these conversion internally.

std::istream &operator>>(std::istream &is, ModuleKey &key)
file ModuleKey.h
#include <iostream>
#include <string>
#include <icetray/IcetrayFwd.h>
#include <icetray/I3FrameObject.h>
#include <icetray/serialization.h>
#include “dataclasses/I3Map.h

Typedefs

typedef I3Map<ModuleKey, std::string> I3MapModuleKeyString

Functions

I3_CLASS_VERSION(ModuleKey, modulekey_version_)
inline bool operator<(const ModuleKey &lhs, const ModuleKey &rhs)

comparison operator. First compares the string numbers, then compares the om numbers. Required to put ModuleKeys as the key of a map

Parameters:
Returns:

true if the lhs should be ordered before the rhs

std::ostream &operator<<(std::ostream&, const ModuleKey &key)

streams an ModuleKey to an arbitrary ostream. These are important, the tray uses these conversion internally.

std::istream &operator>>(std::istream&, ModuleKey&)
I3_POINTER_TYPEDEFS(ModuleKey)
I3_POINTER_TYPEDEFS(I3MapModuleKeyString)

Variables

static const unsigned modulekey_version_ = 1

$Id$

Copyright (C) 2012 The IceCube Collaboration http://www.icecube.wisc.edu

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SPDX-License-Identifier: BSD-2-Clause

file ostream_overloads.hpp
#include <vector>
#include <icetray/has_operator.h>

Functions

std::ostream &operator<<(std::ostream &oss, const I3Vector<char> l)
file ScintKey.cxx
#include <icetray/I3Logging.h>

Functions

std::ostream &operator<<(std::ostream &os, const ScintKey &key)
bool operator<(const ScintKey &lhs, const ScintKey &rhs)
I3_SERIALIZABLE(ScintKey)
I3_SERIALIZABLE(I3VectorScintKey)
file ScintKey.h
#include <iostream>
#include <icetray/serialization.h>
#include <icetray/I3PointerTypedefs.h>

Typedefs

typedef I3Vector<ScintKey> I3VectorScintKey

Functions

bool operator<(const ScintKey &lhs, const ScintKey &rhs)
std::ostream &operator<<(std::ostream&, const ScintKey &key)
I3_POINTER_TYPEDEFS(ScintKey)
I3_POINTER_TYPEDEFS(I3VectorScintKey)

Variables

static const unsigned scintkey_version_ = 0
file StationKey.h

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Typedefs

typedef int StationKey

the station key. Basically a number (the string it is on top). Negative for SPASE stations.

file stream_overloads.cpp

Functions

std::ostream &operator<<(std::ostream &oss, const I3Vector<char> l)
file TankKey.cxx
#include <icetray/serialization.h>
#include “dataclasses/TankKey.h

Functions

I3_SERIALIZABLE(TankKey)
std::ostream &operator<<(std::ostream &os, const TankKey &key)

streams an TankKey to an arbitrary ostream.

file TankKey.h
#include <utility>
#include <icetray/OMKey.h>
#include <icetray/serialization.h>
#include <iostream>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

Functions

inline bool operator<(const TankKey &lhs, const TankKey &rhs)

comparison operator. First compares the string numbers, then compares the tank numbers. Required to put TankKeys as the key of a map

Parameters:
Returns:

true if the lhs should be ordered before the rhs

std::ostream &operator<<(std::ostream&, const TankKey &key)

streams an TankKey to an arbitrary ostream.

I3_POINTER_TYPEDEFS(TankKey)
I3_CLASS_VERSION(TankKey, tankkey_version_)

Variables

static const unsigned tankkey_version_ = 0

A small class which is the string number and tank number for an IceTop tank.

file TestConstCache.cxx
#include <icetray/I3Module.h>

Functions

I3_MODULE(TestConstCache)
file tree.hh
#include <cassert>
#include <memory>
#include <stdexcept>
#include <iterator>
#include <set>

Functions

template<class T, class tree_node_allocator>
bool operator>(const typename tree<T, tree_node_allocator>::iterator_base &one, const typename tree<T, tree_node_allocator>::iterator_base &two)
file TriggerKey.cxx
#include <icetray/serialization.h>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Functions

std::ostream &operator<<(std::ostream &oss, const TriggerKey &k)
I3_SPLIT_SERIALIZABLE(TriggerKey)
file TriggerKey.h
#include <string>
#include <icetray/I3Logging.h>
#include <boost/optional.hpp>

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause $Id$

Version

$Revision$

Date

$Date$

Author

blaufuss

Defines

TRIGGERKEY_H_TriggerKey_SourceID

List the names of enumeration members defined in this file here. These can be used for e.g. pybindings, which require the names of the enumeration members to be known. This list should be updated whenever members or new enums are added to the class.

TRIGGERKEY_H_TriggerKey_TypeID
TRIGGERKEY_H_TriggerKey_SubtypeID

Typedefs

typedef std::vector<TriggerKey> TriggerKeyVector

Functions

I3_POINTER_TYPEDEFS(TriggerKey)

pointer type to insulate users from memory management

I3_CLASS_VERSION(TriggerKey, triggerkey_version_)
I3_POINTER_TYPEDEFS(TriggerKeyVector)
inline bool operator<(const TriggerKey &lhs, const TriggerKey &rhs)

Comparison operator. Required to use TriggerKeys as a key of a map.

Precedence between source, type, subtype and configuration ID is somewhat arbitrary, so I’ve picked: source, type, subtype, configuration ID in order of descending importance.

Parameters:
  • lhs – the left-hand trigger key.

  • rhs – the right-hand trigger key.

Returns:

true if the lhs should be ordered before the rhs.

inline bool operator>=(const TriggerKey &lhs, const TriggerKey &rhs)

Comparison operator.

Parameters:
  • lhs – the left-hand trigger key.

  • rhs – the right-hand trigger key.

Returns:

true if the rhs should be ordered before the lhs or if lhs and rhs are equal.

inline bool operator>(const TriggerKey &lhs, const TriggerKey &rhs)

Comparison operator.

Parameters:
  • lhs – the left-hand trigger key.

  • rhs – the right-hand trigger key.

Returns:

true if the rhs should be ordered before the lhs.

inline bool operator<=(const TriggerKey &lhs, const TriggerKey &rhs)

Comparison operator.

Parameters:
  • lhs – the left-hand trigger key.

  • rhs – the right-hand trigger key.

Returns:

true if the lhs should be ordered before the rhs or if lhs and rhs are equal.

std::ostream &operator<<(std::ostream &oss, const TriggerKey &k)

Variables

static const unsigned triggerkey_version_ = 1

A small class which is the “key” for the trigger status/config map in I3DetectorStatus.

Triggers are identified by three IDs in the IceCube DAQ system/global trigger. These three IDs make an “unique” identifier that can be used to look up additional trigger information like “prescale” for “MIN_BIAS” triggers or “threshold” and “timeWindow” for “SIMPLE_MULTIPLICITY” triggers.

Those three pieces are:

  • Source ID

  • Type ID

  • Config ID

Software triggers from the TWR DAQ system are somewhat special, if processed by the global trigger. A configuration that corresponds to a given source, type and config ID triplet describes how the trigger is processed by global trigger, but it carries no information about the TWR DAQ trigger system. There is no more difference between a simple multiplicity of 18 or 24. Thus is this triplet complemented by a subtype - it will only be used in connection with software triggers. The subtype will also avoid ambiguities, when decoding data from IceCube DAQ/global trigger.

file Utility.h
#include <stdint.h>
#include <icetray/serialization.h>
#include <icetray/IcetrayFwd.h>
#include <icetray/I3FrameObject.h>
#include <icetray/I3Logging.h>

Functions

template<typename T>
std::string AsXML(const T &ob)

Copyright (C) 2004 the icecube collaboration SPDX-License-Identifier: BSD-2-Clause

Version

$Id$

Date

$Date$

template<class MapType>
MapType::value_type::second_type &I3MapGet(const typename MapType::key_type &key, MapType &themap)

function to get data out of a map-like object.

template<class MapType>
const MapType::value_type::second_type &I3MapGet(const typename MapType::key_type &key, const MapType &themap)

function to get data out of a map-like object.

page todo

Namespace I3Constants

probably need more constants here. Add them here when you need them.

Member I3Constants::zIceTop

Make sure that the elevation of IceTop is the same as the elevation of AMANDA hole 4. If not, then correct for the difference.

Class I3Direction

implement “print out” of all information in a uniform way…

ensure that the temporary data isn’t written to disk.

Member i3position_version_

implement “print out” of all information in a uniform way…

insure that the temporary data isn’t written to disk.

Namespace kp

  • New-style move members are not completely finished yet.

  • Fixed depth iterators do not iterate over the entire range if there are ‘holes’ in the tree.

  • If a range uses const iter_base& as end iterator, things will inevitably go wrong, because upcast from iter_base to a non-sibling_iter is incorrect. This upcast should be removed (and then all illegal uses as previously in ‘equal’ will be flagged by the compiler). This requires new copy constructors though.

  • There’s a bug in replace(sibling_iterator, …) when the ranges sit next to each other. Turned up in append_child(iter,iter) but has been avoided now.

  • ”std::operator<” does not work correctly on our iterators, and for some reason a globally defined template operator< did not get picked up. Using a comparison class now, but this should be investigated.

dir calibration
dir calibration
dir dataclasses
dir dataclasses
dir dataclasses
dir deprecated
dir deprecated
dir detail
dir external
dir external
dir fft
dir fft
dir geometry
dir geometry
dir I3PODHolder
dir icetray
dir payload
dir payload
dir physics
dir physics
dir private
dir public
dir status
dir status
dir test_module
page index

The tree.hh library for C++ provides an STL-like container class for n-ary trees, templated over the data stored at the nodes. Various types of iterators are provided (post-order, pre-order, and others). Where possible the access methods are compatible with the STL or alternative algorithms are available.

Author

Kasper Peeters

Version

2.02

Date

12-Oct-2005