STTools C++ API Reference

class I3BasicSeededRTConfigurationService : public sttools::seededRT::I3SeededRTConfigurationService, public I3ServiceBase

This class provides a seededRT ST configuration with commonly used DOM link ST configurations. It does not support distinct ST configurations for different subdetectors, with the exception of IceTop, which is fixed to an internal RT time and distance of zero, and has no links to other subdetectors.

Public Functions

inline I3BasicSeededRTConfigurationService(const I3Context &ctx)
inline void Configure()

Protected Attributes

double rtRadius_
double rtTime_
bool treat_string_36_as_deepcore_
class I3FourVector
#include <I3FourVector.h>

Public Functions

inline I3FourVector()
inline I3FourVector(double x0, double x1, double x2, double x3)
inline I3FourVector(const I3FourVector &rhs)
inline double GetX0() const
inline double GetX1() const
inline double GetX2() const
inline double GetX3() const
inline void SetX0(double x)
inline void SetX1(double x)
inline void SetX2(double x)
inline void SetX3(double x)
inline I3Position GetThreeVectorAsI3Position() const
inline bool IsNAN() const
Returns:

true if at least one component is nan and false otherwise.

inline void Set(double x0, double x1, double x2, double x3)

Sets all four components to the given values.

inline void SetToNAN()

Sets all four components to NAN.

inline std::string str()
Returns:

A std::string representation of this I3FourVector class.

template<typename T>
inline I3FourVector &operator+=(const T &rhs)
I3FourVector &operator+=(const I3FourVector &rhs)
template<typename T>
inline I3FourVector &operator/=(const T &rhs)
I3FourVector &operator/=(const I3FourVector &rhs)

Protected Attributes

double x0_

The four components of the vector.

double x1_
double x2_
double x3_

Private Functions

SET_LOGGER ("I3FourVector")
template<class SDataType, class SContextType, class PySContext_interfaceType>
class I3PySContext_interface : public def_visitor
#include <I3PySContext.h>

Public Functions

template<class classT>
inline void visit(classT &cls) const
class I3PySeededRTConfigurationService : public sttools::seededRT::I3SeededRTConfigurationService, public boost::python::wrapper<I3SeededRTConfigurationService>

Public Functions

inline I3PySeededRTConfigurationService(bool allowSelfCoincidence, bool useDustlayerCorrection, double dustlayerUpperZBoundary, double dustlayerLowerZBoundary)
I3PySTConfigurationService_IMPLEMENTATION (I3SeededRTConfiguration, I3SeededRTConfigurationService) bool PyAreGlobalSettingsConsistant(bool throwException
class I3PySeededRTConfigurationService_interface : public sttools::I3PySTConfigurationService_interface<I3SeededRTConfiguration, I3SeededRTSContext, I3PySeededRTConfigurationService, I3PySeededRTConfigurationService_interface>

Public Functions

template<class classT>
inline void visit(classT &cls) const
class I3PySeededRTSContext_interface : public sttools::I3PySContext_interface<I3SeededRTSData, I3SeededRTSContext, I3PySeededRTSContext_interface>

Public Functions

template<class classT>
inline void visit(classT &cls) const
template<class STConfigurationType, class SContextType, class STConfigurationServiceType, class PySTConfigurationService_interfaceType>
class I3PySTConfigurationService_interface : public def_visitor

Public Functions

template<class classT>
inline void visit(classT &cls) const
template<class HitType, class OutType = I3Map<OMKey, vector<HitType>>>
class I3RTVetoModule : public I3STModule<sttools::seededRT::I3SeededRTConfigurationService>

Public Functions

I3RTVetoModule(const I3Context &context)

Protected Types

typedef I3Map<OMKey, vector<HitType>> InputHitSeriesMap
typedef sttools::seededRT::I3SeededRTSTHitInfo<HitType> STHitInfo
typedef vector<STHitInfo> STHitInfoSeries

Protected Functions

I3_POINTER_TYPEDEFS(InputHitSeriesMap)
I3_POINTER_TYPEDEFS(STHitInfoSeries)
I3_POINTER_TYPEDEFS(OutType)
virtual void SetupSContext(I3FramePtr frame)

The SetupSContext method is pure virtual and must be implemented by the derived module.

This method should setup the internals of the SContext class module member variable sContext_, e.g. the spatial condition map based on a Geometry frame. This method gets called by the Geometry frame-stop method, whenever a new geometry frame passes by.

virtual void RunSTAlgorithm(I3FramePtr frame)

The RunSTAlgorithm method is pure virtual and must be implemented by the derived module. This is the actual work-horse method, that is running the particular ST algorithm. This method is registered to the configured frame type (a.k.a. stream).

Private Functions

SET_LOGGER ("I3RTVetoModule")
class I3RUsageTimer
#include <I3RUsageTimer.h>

Public Functions

inline I3RUsageTimer()
inline I3RUsageTimer(double &totSysTime, double &totUsrTime, double &totWCTime, bool startImmediately = false, bool resetTotalTimes = false)
inline I3RUsageTimer(I3RUsage &rusage, bool startImmediately = false, bool resetTotalTimes = false)
inline I3RUsageTimer(I3RUsagePtr rusage, bool startImmediately = false, bool resetTotalTimes = false)

This constructor is needed for the pybindings. We will store the given shared pointer to the I3RUsage object within the timer class, so the I3RUsage object will not get destroyed at any time.

inline ~I3RUsageTimer()
void ResetTotalTimes()

Resets the total system, user, and wallclock times to zero.

bool Start(bool resetTotTimes = false)

Starts the timer.

Parameters:

resetTotTimes – If set to true, the total system, user, and wallclock time will be reset to zero.

Returns:

The status of the timer (true if it is active, false otherwise (i.e. an error occurred).

bool Stop()

Stops the timer. On success, it updates the system, user, and wallclock time by adding the measuring time duration.

Returns:

The status of the timer (true if it is still active after this call (i.e. an error occurred), false otherwise.

I3RUsagePtr GetCurrentRUsage()

Note

The method assumes, that the Start and Stop methods had been called before. If not, the values of the returned I3RUsage object are arbitrary.

Returns:

The current resource usage by returning a shared pointer to a new I3RUsage frame object, which could be put into an I3Frame. If there was an error, a NULL shared pointer is returned instead.

I3RUsagePtr GetTotalRUsage()
Returns:

The total resource usage as a shared pointer to a newly created I3RUsage frame object, which could be put into an I3Frame.

Protected Functions

double Delta(const struct timeval &startTime, const struct timeval &stopTime)

Returns the time difference in IceCube units between the stop and start times given by two struct timeval variables.

Protected Attributes

I3RUsagePtr internalTotRUsage_

A shared pointer to an I3RUsage object for storing the total system, user, and wallclock time if no external storage was provided.

double &totSysTime_

The reference to the total used system time.

double &totUsrTime_

The reference to the total used user time.

double &totWCTime_

The reference to the total used wallclock time.

struct rusage ruStart_

The resource usage at the start time of the timer.

struct rusage ruStop_

The resource usage at the stop time of the timer.

struct timeval wctStart_

The wallclock timeval at the start time of the timer.

struct timeval wctStop_

The wallclock timeval at the stop time of the timer.

bool isActive_

Flag if the timer is currently active and is measuring the time.

Private Functions

SET_LOGGER ("I3RUsageTimer")
template<class SDataType>
class I3SContext
#include <I3SContext.h>

Public Types

typedef SDataType s_data_t

Public Functions

inline I3SContext()

The default constructor.

inline I3SContext(const I3OMGeoMap &omGeoMap, typename OMKeyPairMap<SDataType>::Symmetry sDataMapSym)
inline boost::shared_ptr<OMKeyPairMap<SDataType>> GetSDataMap()

Returns a shared pointer to the spatial data map.

inline boost::shared_ptr<const OMKeyPairMap<SDataType>> GetSDataMap() const
inline void ConstructSDataMap(const I3OMGeoMap &omGeoMap, typename OMKeyPairMap<SDataType>::Symmetry sDataMapSym)

Constructs a new spatial data map and sets it to the context.

Note

An already constructed spatial data map will get destroyed if no shared pointer to the old spatial data map was retrieved via the GetSDataMap method before.

Parameters:
  • omGeoMap – The I3OMGeoMap object for which the spatial data map will be valid.

  • sDataMapSym – The OMKey pair symmetry of the spatial data map.

Protected Attributes

boost::shared_ptr<OMKeyPairMap<SDataType>> sDataMap_

The OMKeyPairMap, that stores the spatial data for each possible OMKey pair of the detector.

template<class HitType, class OutType = I3Map<OMKey, vector<HitType>>>
class I3SeededRTCleaningModule : public I3STModule<sttools::seededRT::I3SeededRTConfigurationService>

Public Functions

I3SeededRTCleaningModule(const I3Context &context)
void Configure()
void Finish()

Protected Types

typedef I3Map<OMKey, vector<HitType>> InputHitSeriesMap
typedef sttools::seededRT::I3SeededRTSTHitInfo<HitType> STHitInfo
typedef vector<STHitInfo> STHitInfoSeries

Protected Functions

I3_POINTER_TYPEDEFS(InputHitSeriesMap)
I3_POINTER_TYPEDEFS(STHitInfoSeries)
I3_POINTER_TYPEDEFS(OutType)
virtual void SetupSContext(I3FramePtr frame)

The SetupSContext method is pure virtual and must be implemented by the derived module.

This method should setup the internals of the SContext class module member variable sContext_, e.g. the spatial condition map based on a Geometry frame. This method gets called by the Geometry frame-stop method, whenever a new geometry frame passes by.

virtual void RunSTAlgorithm(I3FramePtr frame)

The RunSTAlgorithm method is pure virtual and must be implemented by the derived module. This is the actual work-horse method, that is running the particular ST algorithm. This method is registered to the configured frame type (a.k.a. stream).

Protected Attributes

std::string seedProcedure_

The name of the procedure to use for determining the initial seed hits.

uint32_t nHitsThreshold_

Some seed procedures need a configured number of hits threshold.

std::vector<OMKey> seedOMKeyList_

The list of OMKey objects that should be used for the OMKeyList seed procedure.

std::string seedHitSeriesMapName_

The name of the hit series map inside the current processed frame, whose hits should be used as seed hits.

bool allowNoSeedHits_

The switch if it is allowed that an event has no seed hits, i.e. no hits will be present in the output for those events.

bool storeEmptyResults_

The switch if result hit maps should be stored in the frame when they are empty.

int32_t maxNIterations_

The maximal number of iterations for the iterative RT hits selection procedure. The value -1 meens no constraint.

uint32_t nEventsWithNoSeedHits_

The number of events for which the configured seed procedure did not find any seed hits.

boost::function<uint32_t(const I3Frame&, STHitInfoSeries&)> doSeedProcedure_

BOOST function pointer that points to the configured seed procedure function.

std::string outputDiscardedHLCHitSeriesMapName_

The name of the optional output hit series map, that contains the cleaned away HLC hits.

std::string outputDiscardedSLCHitSeriesMapName_

The name of the optional output hit series map, that contains the cleaned away SLC hits.

I3GeometryConstPtr currentGeometry_

The last I3Geometry object seen

Private Functions

SET_LOGGER ("I3SeededRTCleaningModule")
class I3SeededRTConfiguration : public I3STConfiguration

Public Types

enum SeededRTCoordSys

Define the possible RT coordinate systems.

Values:

enumerator Sph
enumerator Cyl

Public Functions

inline I3SeededRTConfiguration()

The default constructor, needed by icecube::serialization.

inline I3SeededRTConfiguration(const std::string &name, const I3VectorOMKeyLinkSet &omKeyLinkSets, SeededRTCoordSys rtCoordSys, double rtTime, double rtRadius, double rtHeight)

The normal constructor. It allows to set each configuration option.

inline I3SeededRTConfiguration(const I3SeededRTConfiguration &rhs)
virtual ~I3SeededRTConfiguration()
inline SeededRTCoordSys GetRTCoordSys() const
inline double GetRTTime() const
inline double GetRTRadius() const
inline double GetRTHeight() const
inline void SetRTCoordSys(SeededRTCoordSys c)
inline void SetRTTime(double t)
inline void SetRTRadius(double r)
inline void SetRTHeight(double h)
inline bool operator==(const I3SeededRTConfiguration &rhs) const
std::string GetPrettySettingsStr(unsigned int nLeadingWS) const
inline std::string str() const
inline double GetSTVolumetime() const

The ST volume time (ST volume times ST time) that is spaned up by this ST configuration. This value can be used to compare two ST configurations in terms of their effectiveness.

Protected Attributes

SeededRTCoordSys rtCoordSys_

The type of the coordinate system to use for seededRT condition calculations.

double rtTime_

The time interval to use for seededRT condition calculations.

double rtRadius_

The distance radius to use for seededRT condition calculations.

double rtHeight_

If rtCoordSys_ is set to Cyl, this specifies the height of the cylinder that should be used around an OM for calculating the seededRT condition. The radius of the cylinder is then defined through the value of rtRadius_.

Private Functions

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

Friends

friend class icecube::serialization::access
class I3SeededRTConfigurationService : public sttools::I3STConfigurationService<I3SeededRTConfiguration, I3SeededRTSContext>

Subclassed by sttools::seededRT::I3BasicSeededRTConfigurationService, sttools::seededRT::I3PySeededRTConfigurationService

Public Functions

inline I3SeededRTConfigurationService(bool allowSelfCoincidence, bool useDustlayerCorrection, double dustlayerUpperZBoundary, double dustlayerLowerZBoundary)
inline bool GetAllowSelfCoincidence() const
inline void SetAllowSelfCoincidence(bool b)
inline bool GetUseDustlayerCorrection() const

Returns the global flag if the main dustlayer correction should be used.

inline void SetUseDustlayerCorrection(bool b)
inline double GetDustlayerUpperZBoundary() const

Returns the global setting for the upper z boundary of the main dust layer.

inline void SetDustlayerUpperZBoundary(double z)
inline double GetDustlayerLowerZBoundary() const

Returns the global setting for the lower z boundary of the main dust layer.

inline void SetDustlayerLowerZBoundary(double z)
virtual bool AreGlobalSettingsConsistant(bool throwException = false) const

Checks if the global settings are set consistantly.

Parameters:

throwException – If set to true, a log_fatal with an error message will be issued when a setting is not consistant.

virtual void FreezeSTConfiguration()

Freezes the ST configuration for optimal performance. It gets the maximal configured RTTime.

virtual void UnfreezeSTConfiguration()

Unfreezes the ST configuration.

inline double GetMaxRTTime() const

Returns the maximal

virtual bool SetupSContext(const I3OMGeoMap &omGeoMap)

Setups the spatial data map inside the I3SeededRTSContext object of this I3SeededRTConfigurationService object, based on the given I3OMGeo object, using the seededRT procedure.

Note

The spatial data map of the I3SeededRTSContext will be configured with an asymetric OMKey pair symmetry.

Protected Attributes

bool allowSelfCoincidence_

The global flag if hits of the same OM can be in causial ST connection.

bool useDustlayerCorrection_

The global flag if the main dust layer correction should be used (true) or not (false).

double dustlayerUpperZBoundary_

The global setting for the upper z boundary of the main dust layer in IceCube detector coordinates.

double dustlayerLowerZBoundary_

The global setting for the lower z boundary of the main dust layer in IceCube detector coordinates.

double maxRTTime_

The cached value for the maximal configured RT time.

Private Functions

SET_LOGGER ("I3SeededRTConfigurationService")
class I3SeededRTSContext : public sttools::I3SContext<I3SeededRTSData>

Public Functions

inline I3SeededRTSContext()

The default constructor.

inline I3SeededRTSContext(const I3OMGeoMap &omGeoMap, sttools::OMKeyPairMap<I3SeededRTSData>::Symmetry sDataMapSym)
inline double GetMaxDustlayerCorrectionLength() const
inline void SetMaxDustlayerCorrectionLength(double l)

Protected Attributes

double maxDustlayerCorrectionLength_

The maximal dustlayer correction length calculated for the spatial data map.

struct I3SeededRTSData
#include <I3SeededRTSData.h>

The I3SeededRTSData struct holds data about the spatial causal condition between two OMs. This data struct is used in an OMKeyPairMap to store these information for a pair of OMKeys, i.e. one OM link.

Public Functions

inline I3SeededRTSData()

Public Members

I3SeededRTConfiguration const *stConfig_

The pointer to the ST configuration object valid for the particular OM link. If this pointer is set to NULL, the two OMs of the OM link are not in spatial connection.

double dustlayerCorrectionLength_

The length of the spatial correction to account for (longer, due to higher scattering) propagation of light inside the main dustlayer.

template<class HitType>
class I3SeededRTSTHitInfo : public sttools::I3STHitInfo<HitType>

The I3SeededRTSTHitInfo class provides a data container for storing ST related information about a particular hit used by the seededRT algorithm as it is known from the classic SeededRTCleaning project.

Public Functions

inline I3SeededRTSTHitInfo(const OMKey omKey, const I3Position *omPosPtr, const HitType *hitPtr, uint32_t hitIdxWithinOMHitSeries, bool isHitSelected = false, bool isHitNewlySelected = false)
inline I3SeededRTSTHitInfo()
inline I3SeededRTSTHitInfo(const I3SeededRTSTHitInfo &rhs)
inline bool GetIsHitSelected() const
inline bool GetIsHitNewlySelected() const
inline std::set<uint32_t> GetSTPartnerOMHashes() const
inline std::set<uint32_t> &GetSTPartnerOMHashes()
inline void SetIsHitSelected(bool b)
inline void SetIsHitNewlySelected(bool b)
inline void SetSTPartnerOMHashes(const std::set<uint32_t> &hashes)
std::vector<OMKey> GetSTPartnerOMKeys(const OMKeyHasher &hasher) const

Returns a std::vector< OMKey > holding the OMKey objects of the OMs, which fulfill the ST conditions for this hit.

inline bool IsHitSelected() const
inline bool IsHitNewlySelected() const

Protected Attributes

bool isHitSelected_

The flag if this hit is selected.

bool isHitNewlySelected_

The temporary flag if this hit is selected newly by a particular algorithm.

std::set<uint32_t> stPartnerOMHashes_

The set of partner OMs fulfilling the ST conditions for this hit.

template<class STConfigurationType, class SContextType>
class I3STConfigurationService : public noncopyable

The I3STConfigurationService is noncopyable because it stores an array of raw pointers to STConfigurationType objects stored in itself. By copying the service, the raw pointers would point to the wrong (i.e. the old) STConfigurationType objects.

Public Functions

inline I3STConfigurationService()
inline virtual ~I3STConfigurationService()
template<class STConfigurationType_>
STConfigurationType_ CreateDefaultSTConfiguration() const

Creates the default ST configuration object. This method should be reimplemented by the derived class.

const SContextType::s_data_t &GetSDataForOMLink(const OMKey &omKey1, const OMKey &omKey2) const
const STConfigurationType &GetSTConfigurationForOMLink(const OMKey &omKey1, const OMKey &omKey2) const

Returns the STConfigurationType object set for the given OM link. This function loops through the stConfigVecPtr_ member variable. Thus, it is slow and should be used only when initializing the algorithm. The algorithm itself should cache the ST configuration for a particular DOM link in any way for fast access during event processing.

I3VectorOMKey GetOMKeys() const

Returns an I3VectorOMKey that contains all OMs which are somehow configured by this ST configuration service.

Note

The OMKeys in the returned list are unique.

virtual bool IsSTConfigurationComplete(const I3OMGeoMap &omGeoMap) const

Checks if the ST configuration provided by this ST configuration service is complete. This means, that all OMKeys present in the given geometry are also present in this ST configuration, i.e. each OM can be found in at least one OM link.

inline boost::shared_ptr<I3Vector<STConfigurationType>> GetSTConfigVecPtr()

Returns a boost::shared_ptr to the stConfigVecPtr_ member variable.

inline void SetSTConfigVecPtr(boost::shared_ptr<I3Vector<STConfigurationType>> &v)

Sets the stConfigVec_ member variable.

inline virtual void FreezeSTConfiguration()

Freezes the ST configuration (i.e. the stConfigVec_ member variable).

inline virtual void UnfreezeSTConfiguration()

Unfreezes the ST configuration (i.e. the stConfigVec_ member variable).

inline virtual bool IsSTConfigurationFrozen() const

Returns true if the ST configuration (i.e. the stConfigVecPtr_ member variable) is frozen and false otherwise.

Note

If the ST configuration is frozen, it must not be changed until the UnfreezeSTConfiguration method has been called!

inline const I3OMGeoMap &GetOMGeoMap() const

Returns a const reference to the I3OMGeoMap object, that is used by this ST configuration service (to setup the spatial context).

inline const SContextType &GetSContext() const

Returns a (const) reference to the spatial context object.

inline SContextType &GetSContext()
inline const STConfigurationType &GetDefaultSTConfig() const

Returns a reference to the default ST configuration object.

virtual bool SetupSContext(const I3OMGeoMap &omGeoMap)

The SetupSContext method should be re-implemented by the derived class, i.e the particular ST algorithm, and should setup the spatial ST context based on the given I3OMGeoMap object if, and only if, this method returns false. Otherwise it should just do nothing. This method here checks if the ST configuration is frozen and throws an exception if not. Furthermore it checks if the ST configuration is complete, and if the given I3OMGeoMap object is seen by this ST configuration service by the first time.

template<>
I3SeededRTConfiguration CreateDefaultSTConfiguration() const

Creates the default SeededRT ST configuration object. With this ST configuration any two hits will never be in causal connection.

Protected Attributes

boost::shared_ptr<I3Vector<STConfigurationType>> stConfigVecPtr_

The list of STConfigurationType objects. Because it should be possible to put the ST configuration into a frame, we need to use a boost::shared_ptr here.

const I3OMGeoMap *omGeoMapPtr_

The pointer to the I3OMGeoMap object for which the SContextType object is valid. This is needed in order to be able to setup the SContext only once for each geometry frame.

SContextType sContext_

The object for the spatial context valid for this ST configuration.

Private Functions

SET_LOGGER ("I3STConfigurationService")

Private Members

bool isSTConfigVecFrozen_

The flag if the ST configuration (i.e. the stConfigVec_ member variable) is frozen.

STConfigurationType defaultSTConfig_

The defaultSTConfig_ is a STConfiguationType object that will be returned by the GetSTConfigurationForOMLink method, when a specific OM link is not configured.

template<class HitType>
class I3STHitInfo
#include <I3STHitInfo.h>

Subclassed by sttools::seededRT::I3SeededRTSTHitInfo< HitType >

Public Functions

inline I3STHitInfo(const OMKey omKey, const I3Position *omPosPtr, const HitType *hitPtr, uint32_t hitIdxWithinOMHitSeries)
inline I3STHitInfo()
inline I3STHitInfo(const I3STHitInfo &rhs)
inline const OMKey &GetOMKey() const
inline const I3Position *GetOMPositionPtr() const
Returns:

A raw pointer to the I3Position object for the hit OM.

inline const I3Position &GetOMPosition() const
Returns:

A const reference to the I3Position object for the hit OM.

inline const HitType *GetHitPtr() const
inline uint32_t GetHitIdxWithinOMHitSeries() const
inline void SetOMKey(const OMKey &k)
inline void SetOMPositionPtr(const I3Position *ptr)
inline void SetHitPtr(const HitType *ptr)
inline void SetHitIdxWithinOMHitSeries(uint32_t idx)
inline double GetHitTime() const
Returns:

The time of the hit.

inline double GetHitCharge() const
Returns:

The charge of the hit.

inline bool IsHLCHit() const
Returns:

true if the hit has set the LC bit, i.e. it is a HLC hit.

inline bool IsSLCHit() const
Returns:

true if the hit is a SLC hit, i.e. it is not a HLC hit.

inline bool IsFirstOMHit() const
Returns:

true if the hit is the first hit of its OM, i.e. it has the hitIdxWithinOMHitSeries_ member variable set to 0.

Public Static Functions

static inline bool compareHitTimeAsc(const I3STHitInfo<HitType> &lhs, const I3STHitInfo<HitType> &rhs)

Function to compare two I3STHitInfo objects by ascending hit time.

Protected Attributes

OMKey omKey_

The OMKey to which this hit belongs to.

const I3Position *omPosPtr_

The pointer to the I3Position object for the position of the OM of this hit.

Note

Since we use a raw pointer here (instead of a copy of the I3Position object and only for performance reasons), the object this pointer points to MUST NOT change its location in memory! Usually the I3Position object was retrieved from a hit object stored in a std::vector object. In such cases it means, that the std::vector object MUST NOT change its capacity! Otherwise this pointer becomes invalid.

const HitType *hitPtr_

The pointer to the hit object itself.

Note

Since we use a raw pointer here (instead of a copy of the hit object and only for performance reasons), the object this pointer points to MUST NOT change its location in memory! Usually the hit object was retrieved from a std::vector object. In such cases it means, that the std::vector object MUST NOT change its capacity! Otherwise this pointer becomes invalid.

uint32_t hitIdxWithinOMHitSeries_

The index of the hit within the OM’s hit series. The first hit has the index 0.

template<class STConfigurationServiceType>
class I3STModule : public I3ConditionalModule
#include <I3STModule.h>

Public Functions

I3STModule(const I3Context &context)
void Finish()

Protected Functions

void Geometry(I3FramePtr frame)

The Geometry frame-stop method calls the SetupSTConfiguration method. So if the user re-implements this method, he needs to make sure that the SetupSTConfiguration method gets called, either by calling the Geometry method of this base module or by calling the SetupSTConfiguration directly.

virtual void SetupSContext(I3FramePtr frame) = 0

The SetupSContext method is pure virtual and must be implemented by the derived module.

This method should setup the internals of the SContext class module member variable sContext_, e.g. the spatial condition map based on a Geometry frame. This method gets called by the Geometry frame-stop method, whenever a new geometry frame passes by.

virtual void RunSTAlgorithm(I3FramePtr frame) = 0

The RunSTAlgorithm method is pure virtual and must be implemented by the derived module. This is the actual work-horse method, that is running the particular ST algorithm. This method is registered to the configured frame type (a.k.a. stream).

inline void CallRunSTAlgorithm(I3FramePtr frame)

Calls the most derived version of the RunSTAlgorithm method and does some book keeping.

void Configure_()

Internal configure function used by icetray to apply module configuration that is hidden to the user.

We use it here to ensure, that the ST configuration module parameters are defined and their values are retrieved. This way, the derived user ST module does not necessarily need to call the Configure() method of its base class module.

Protected Attributes

boost::shared_ptr<STConfigurationServiceType> stConfigService_

The shared pointer to the ST configuration object, that provides the ST configuration for this ST icetray module.

std::string geometryName_

The name of the I3Geometry frame object that should be used for constructing the spatial context.

std::string inputHitSeriesMapName_

The name of the input hit series map frame object (for example an I3DOMLaunchSeriesMap, an I3RecoPulseSeriesMap, or an I3RecoPulseSeriesMapMask I3FrameObject). What particular type is supported depends on the support of the derived module.

std::string outputHitSeriesMapName_

The name of the output hit series map frame object (for example an I3DOMLaunchSeriesMap, an I3RecoPulseSeriesMap, or an I3RecoPulseSeriesMapMask I3FrameObject). What particular type is supported depends on the support of the derived module.

std::set<I3Frame::Stream> runSTAlgorithmOnStreams_

The set of I3Frame type (a.k.a. stream) for which the RunSTAlgorithm method will get executed.

uint32_t nCallsToRunSTAlgorithm_

How many times the RunSTAlgorithm method has been called.

sttools::I3RUsageTimer totRUsageSTAlgorithmTimer_

The timer for collecting the total resource usage for running the ST algorithm.

Private Functions

SET_LOGGER ("I3STModule")
template<class HitType>
struct isAnyHit
#include <utilities.h>

Function object to determine if a hit is a hit, i.e. returns always true.

Public Functions

inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isFirstOMHit
#include <utilities.h>

Function object to determine if a hit is the first hit within the OM’s hit series.

Public Functions

inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isHitInSTConnectionToOM
#include <utilities.h>

Function object to determine if a hit is in ST connection to a given OM. This function object can then be used as callback function for the selectHits function.

Public Functions

inline isHitInSTConnectionToOM(const I3SeededRTConfigurationService &stConfigService, const OMKey &omKey, const I3Position &omKeyPos, const double omKeyHitTime)
inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)

Public Members

const I3SeededRTConfigurationService &stConfigService_
const OMKey omKey_
const I3Position omKeyPos_
const double omKeyHitTime_
template<class HitType>
struct isHitSeriesMapHit
#include <utilities.h>

Function object to determine if a ST hit is part of a hit series map.

Public Functions

inline isHitSeriesMapHit(const I3Map<OMKey, std::vector<HitType>> &hitSeriesMap)
inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)

Public Members

std::vector<I3STHitInfo<HitType>> hitInfoSeries_
std::vector<I3STHitInfo<HitType>>::const_iterator hitInfoSeriesCIter_
std::vector<I3STHitInfo<HitType>>::const_iterator hitInfoSeries_begin_
std::vector<I3STHitInfo<HitType>>::const_iterator hitInfoSeries_end_
template<class HitType>
struct isHLCHit
#include <utilities.h>

Function object to determine if a hit is a HLC hit.

Public Functions

inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isNthOMHit
#include <utilities.h>

Function object to determine if a hit is the N-th hit within the OM’s hit series.

Note

: The first hit has the number (nth parameter) 1!

Public Functions

inline isNthOMHit(uint32_t nth)
inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)

Public Members

uint32_t idx_
template<class HitType>
struct isNthOMKeyHit
#include <utilities.h>

Function object to determine if a hit is the n-th hit of an OM that is present in a given OMKey list.

Note

: The first hit has the number (nth parameter) 1!

Public Functions

inline isNthOMKeyHit(uint32_t nth, const std::vector<OMKey> &omKeys)
inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)

Public Members

isNthOMHit<HitType> isNthOMHit_
isOMKeyHit<HitType> isOMKeyHit_
template<class HitType>
struct isOMKeyHit
#include <utilities.h>

Function object to determine if a hit is part of an OM present in a given OMKey list.

Public Functions

inline isOMKeyHit(const std::vector<OMKey> &omKeys)
inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)

Public Members

std::vector<OMKey> omKeys_
template<class HitType>
struct isSelectedHit
#include <utilities.h>

Function object to determine if a hit is selected.

Public Functions

inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isSLCHit
#include <utilities.h>

Function object to determine if a hit is a SLC hit.

Public Functions

inline bool operator()(const I3STHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isUnselectedHit
#include <utilities.h>

Function object to determine if a hit is unselected.

Public Functions

inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)
template<class HitType>
struct isUnselectedHLCHit
#include <utilities.h>

Function object to determine if a hit is an unselected HLC hit.

Public Functions

inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)

Public Members

isUnselectedHit<HitType> isUnselectedHit_
isHLCHit<HitType> isHLCHit_
template<class HitType>
struct isUnselectedSLCHit
#include <utilities.h>

Function object to determine if a hit is an unselected SLC hit.

Public Functions

inline bool operator()(const I3SeededRTSTHitInfo<HitType> &stHitInfo)

Public Members

isUnselectedHit<HitType> isUnselectedHit_
isSLCHit<HitType> isSLCHit_
class OMKeyHasher
#include <OMKeyHasher.h>

Public Functions

inline OMKeyHasher()
inline OMKeyHasher(const std::vector<OMKey> &keys)
inline OMKeyHasher(const I3OMGeoMap &omGeoMap)
inline void init(const std::vector<OMKey> &omKeys)

Initializes the OMKeyHasher object based on a given OMKey list.

inline int GetMinString() const
inline int GetMaxString() const
inline uint32_t GetStringRange() const
inline unsigned int GetMinOM() const
inline unsigned int GetMaxOM() const
inline uint32_t GetOMRange() const
inline uint32_t GetSize() const

Returns the maximal possible index hash value.

inline uint32_t operator()(const OMKey &key) const

Returns an unique hash for the given OMKey. This is just a shortway for the HashOMKey method.

inline uint32_t HashOMKey(const OMKey &key) const

Returns an unique hash for the given OMKey.

inline OMKey DecodeHash(uint32_t index) const

Decodes a given hash and returns the OMKey object, that corresponds to the given hash.

Protected Functions

inline uint32_t CreateLinearHash(const OMKey &key) const

Hashes the given OMKey linearly, i.e. encoding string and OM number.

inline OMKey DecodeLinearHash(uint32_t hash) const

Decodes a given linear hash and returns the OMKey object, that corresponds to the given linear hash.

Protected Attributes

int minString_
unsigned int minOM_
uint32_t stringRange_
uint32_t omRange_
uint32_t maxLinearHash_
uint32_t maxIndexHash_
std::vector<uint32_t> linearHash2index_

The linearHash2index list provides the mapping from linear hashes to index values. Some of the list entries might be unused.

std::vector<uint32_t> index2linearHash_

The index2linearHash list provides the mapping from index values to linear hashes. All the entries are used.

Private Functions

SET_LOGGER ("OMKeyHasher")
template<class T>
class OMKeyPairMap
#include <OMKeyPairMap.h>

Public Types

enum Symmetry

Values:

enumerator AsymAndEqualOMKeysAreAllowed
enumerator SymAndEqualOMKeysAreAllowed
enumerator SymAndEqualOMKeysAreForbidden
typedef OMKeyPair key_type
typedef T mapped_type

Public Functions

inline OMKeyPairMap(const I3OMGeoMap &i3OMGeoMap, Symmetry symmetry = AsymAndEqualOMKeysAreAllowed)

Constructor, taking an I3OMGeoMap object as input to construct the OMKeyHasher object.

inline OMKeyPairMap(const I3VectorOMKey &omKeys, Symmetry symmetry = AsymAndEqualOMKeysAreAllowed)

Constructor, taking an I3VectorOMKey object as input to construct the OMKeyHasher object.

inline ~OMKeyPairMap()
inline const OMKeyHasher &GetOMKeyHasher() const
inline mapped_type &at(const size_t idx)

Gets a (const) reference to the mapped_type value for the given map array index.

Parameters:

idx – The map array index. Must be in the range [0, size_).

Returns:

The reference to the mapped_type value for the given indexed element.

inline const mapped_type &at(const size_t idx) const
inline mapped_type &at(const OMKey &omKey1, const OMKey &omKey2)

Gets a (const) reference to the mapped_type value for the given two OMKey objects forming an OMKey pair.

Parameters:
  • omKey1 – The OMKey object of the first DOM.

  • omKey2 – The OMKey object of the second DOM.

Returns:

The reference to the mapped_type value for the given OMKeyPair object.

inline const mapped_type &at(const OMKey &omKey1, const OMKey &omKey2) const
inline mapped_type &at(const OMKeyPair &pair)

Gets a (constant) reference to the mapped_type value for the given OMKeyPair object.

Parameters:

pair – The OMKeyPair object.

Returns:

The reference to the mapped_type value for the given OMKeyPair object.

inline const mapped_type &at(const OMKeyPair &pair) const
inline mapped_type &operator[](const OMKeyPair &pair)

Gets a non-constant or constant reference to the mapped_type value for the given OMKeyPair object. This is a shortcut for the at method.

inline const mapped_type &operator[](const OMKeyPair &pair) const
inline uint32_t GetSizeOfMapArray() const

Returns the size (number of elements) of the internal map array used to implement the map.

inline size_t GetMemSizeOfMapArray() const

Returns the memory size in bytes of the internal map array used to implement the map.

Protected Functions

inline void init()

Initializes this OMKeyPairMap based on the OMKeyHasher and Symmetry objects.

uint32_t GetIndex_AsymAndEqualOMKeysAreAllowed(const OMKey &omKey1, const OMKey &omKey2) const

Gets the map array index for the given OMKeyPair object for an asymmetric OMKey pair map where OMKey pairs with the same OMKeys are allowed.

Parameters:
  • omKey1 – The OMKey object of the first DOM.

  • omKey2 – The OMKey object of the second DOM.

Returns:

The map index for the given OMKeyPair object.

uint32_t GetIndex_SymAndEqualOMKeysAreAllowed(const OMKey &omKey1, const OMKey &omKey2) const

Gets the map array index for the given OMKeyPair object for a symmetric OMKey pair map where OMKey pairs with the same OMKeys are allowed.

Parameters:
  • omKey1 – The OMKey object of the first DOM.

  • omKey2 – The OMKey object of the second DOM.

Returns:

The map index for the given OMKeyPair object.

uint32_t GetIndex_SymAndEqualOMKeysAreForbidden(const OMKey &omKey1, const OMKey &omKey2) const

Gets the map array index for the given OMKeyPair object for a symmetric OMKey pair map where OMKey pairs with the same OMKeys are forbidden.

Parameters:
  • omKey1 – The OMKey object of the first DOM.

  • omKey2 – The OMKey object of the second DOM.

Returns:

The map index for the given OMKeyPair object.

Protected Attributes

OMKeyHasher omKeyHasher_

The OMKey hasher object for the particular I3OMGeoMap.

Symmetry symmetry_

The kind of symmetry that should be valid for this map of OMKey pairs.

uint32_t size_

The size of the map, e.g. how many array elements there are.

T *map_

T array implementing the internal map data.

uint32_t (OMKeyPairMap::* GetIndex)(const OMKey &omKey1, const OMKey &omKey2) const

The member function pointer that points to the appropriate GetIndex_… method depending on the symmetry of this OMKey pair map.

Private Functions

SET_LOGGER ("OMKeyPairMap")
template<class HitType>
struct seedWithAllCoreHits
#include <utilities.h>

Function object to seed with all hits that have at least nHitsThreshold partner ST hits.

Note

If the allowNoSeedHits option is set to false and no hits fulfill the requirements above, all hits will be used as seed hits!

Public Functions

inline seedWithAllCoreHits(const I3SeededRTConfigurationService &stConfigService, uint32_t nHitsThreshold, bool allowNoSeedHits)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

const I3SeededRTConfigurationService &stConfigService_
uint32_t nHitsThreshold_
bool allowNoSeedHits_
template<class HitType>
struct seedWithAllHLCHits
#include <utilities.h>

Function object to seed with all hits, which are HLC hits.

Public Functions

inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)
template<class HitType>
struct seedWithHitSeriesMapHitsFromFrame
#include <utilities.h>

Function object to seed with all hits which are contained inside an I3Map< OMKey, std::vector< HitType > > object named seedHitSeriesMapName present in the current processed frame.

Note

It must be made sure, that the hit series map exists inside the frame! Otherwise it will raise a runtime error exception.

Public Functions

inline seedWithHitSeriesMapHitsFromFrame(const std::string &seedHitSeriesMapName)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

std::string seedHitSeriesMapName_
template<class HitType>
struct seedWithHLCCOGSTHits
#include <utilities.h>

Function object to seed with hits which fulfill the ST conditions around the Center-of-Gravity (COG) of all HLC hits.

Note

If the allowNoSeedHits option is set to false and no hits fulfill the requirements above, all HLC hits will be used as seed hits!

Public Functions

inline seedWithHLCCOGSTHits(const I3SeededRTConfigurationService &stConfigService, bool allowNoSeedHits)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

const I3SeededRTConfigurationService &stConfigService_
bool allowNoSeedHits_
template<class HitType>
struct seedWithHLCCoreHits
#include <utilities.h>

Function object to seed with all HLC hits that have at least nHitsThreshold partner ST HLC hits.

Note

If the allowNoSeedHits option is set to false and no HLC hits fulfill the requirements above, all HLC hits will be used as seed hits!

Public Functions

inline seedWithHLCCoreHits(const I3SeededRTConfigurationService &stConfigService, uint32_t nHitsThreshold, bool allowNoSeedHits)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

const I3SeededRTConfigurationService &stConfigService_
uint32_t nHitsThreshold_
bool allowNoSeedHits_
template<class HitType>
struct seedWithNthOMKeyHits
#include <utilities.h>

Function object to seed with all hits which belong to the OMs present in the given std::vector< OMKey > object and which are the N-th hits within the OM’s hit series.

Public Functions

inline seedWithNthOMKeyHits(uint32_t nth, const std::vector<OMKey> &omKeys)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

uint32_t nth_
std::vector<OMKey> omKeys_
template<class HitType>
struct seedWithOMKeyHits
#include <utilities.h>

Function object to seed with all hits which belong to the OMs present in the given std::vector< OMKey > object.

Public Functions

inline seedWithOMKeyHits(const std::vector<OMKey> &omKeys)
inline uint32_t operator()(const I3Frame &frame, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Public Members

std::vector<OMKey> omKeys_
namespace std

STL namespace.

namespace sttools

Functions

template<>
double getHitCharge<I3DOMLaunch>(const I3DOMLaunch &hit)
template<>
double getHitCharge<I3RecoPulse>(const I3RecoPulse &hit)
template<>
bool getHitLCBit<I3DOMLaunch>(const I3DOMLaunch &hit)
template<>
bool getHitLCBit<I3RecoPulse>(const I3RecoPulse &hit)
template<>
double getHitTime<I3DOMLaunch>(const I3DOMLaunch &hit)
template<>
double getHitTime<I3RecoPulse>(const I3RecoPulse &hit)
std::string convertI3RUsageToString(const I3RUsage &rusage)

Converts an I3RUsage object into a std::string.

template<>
bool isOutputFrameObjectEmpty(const I3RecoPulseSeriesMapMask &output)
template<>
I3RecoPulseSeriesMapMaskPtr createOutputFrameObject(const I3Frame &frame, const string &inputHitSeriesMapName)
template<>
void addHitToOutputFrameObject(I3RecoPulseSeriesMapMask &output, const OMKey &omkey, const I3RecoPulse &hit)
OMKey getOMKeyClosestToPosition(I3OMGeoMap const &omgeomap, I3Position const &pos)
template<class T>
std::string streamToString(const T &cls)
template<class HitType>
double getHitCharge(const HitType &hit)

Function to get the charge of a hit type object.

template<class HitType>
bool getHitLCBit(const HitType &hit)

Function to get the Local Coincidence bit from a hit type object.

template<class HitType>
double getHitTime(const HitType &hit)

Function to get the time from a hit type object.

I3_POINTER_TYPEDEFS(OMKeyHasher)
template<class HitType, template<class HitType_> class STHitInfoType>
boost::shared_ptr<std::vector<STHitInfoType<HitType>>> createSTHitInfoSeries()

Creates a new empty shared std::vector< STHitInfoType< HitType > > object for storing ST hit information about hits of type HitType.

Returns:

A BOOST shared pointer to the newly created ST hit information series.

template<class HitType, template<class HitType_> class STHitInfoType>
I3FourVector calcHitsCOGFourPosition(const std::vector<STHitInfoType<HitType>> &stHitInfoSeries, boost::function<bool(const STHitInfoType<HitType> &rtHitInfo)> hitSelectFctn = isAnyHit<HitType>())

Calculates the Center-of-Gravity of the given hits for which the given hit select function returns true.

template<class HitType>
inline boost::shared_ptr<const I3Map<OMKey, std::vector<HitType>>> getHitSeriesMap(const I3Frame &frame, const std::string &hitSeriesMapName)

Gets a shared pointer to the given named constant hit series map inside the given I3Frame object.

Throws:

RuntimeException – If the given hit series map does not exists in the frame, or could not be loaded.

template<class OutType>
boost::shared_ptr<OutType> createOutputFrameObject(const I3Frame &frame, const std::string &inputHitSeriesMapName)

Function to create an output I3FrameObject of type OutType. The created output frame object will be empty.

Returns:

A BOOST shared pointer pointing to the created frame object.

template<class OutType>
bool isOutputFrameObjectEmpty(const OutType &output)

Function to check if an output frame object is empty.

Parameters:

output – The output frame object.

Returns:

The boolean value true if the output frame object is empty, false otherwise.

template<>
bool isOutputFrameObjectEmpty<I3RecoPulseSeriesMapMask>(const I3RecoPulseSeriesMapMask &output)
template<class HitType, class OutType>
inline void addHitToOutputFrameObject(OutType &output, const OMKey &omkey, const HitType &hit)

Function to add a hit to the output frame object.

namespace seededRT

Typedefs

typedef OMKeyPairMap<I3SeededRTSData> I3SeededRTSDataMap

Functions

I3_POINTER_TYPEDEFS(I3SeededRTConfigurationService)
I3_POINTER_TYPEDEFS(I3SeededRTSContext)
I3_POINTER_TYPEDEFS(I3SeededRTSDataMap)
inline bool equivalent(const OMKey &omKey1, const OMKey &omKey2)
template<class HitType>
void fillSeededRTSTHitInfoSeries(const I3SeededRTConfigurationService &stConfigService, const I3Map<OMKey, std::vector<HitType>> &inputHitSeriesMap, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Fills a given seededRT ST hit info series with all hits from a given hit series map, based on a given ST configuration defined via the given I3VectorSTConfiguration object.

template<class HitType>
uint32_t countSelectedSTHits(std::vector<I3SeededRTSTHitInfo<HitType>> const &stHitInfoSeries)

Counts the number of selected ST hits inside a given ST hit info series.

template<class HitType>
uint32_t selectHits(std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries, boost::function<bool(const I3SeededRTSTHitInfo<HitType>&)> hitSelectFctn)

Selects hits for which the specified hit select function returns true.

Parameters:
  • stHitInfoSeries – The std::vector< I3SeededRTSTHitInfo< HitType > >

  • hitSelectFctn – The address of the hit select function that checks if the hit given by I3SeededRTSTHitInfo< HitType > object should get selected as seed (returns true) or not (returns false).

Returns:

The number of selected seed hits.

inline bool areTimesInTemporalCausalConnection(const double time1, const double time2, const double rtTime, const double dustlayerCorrectionLength = 0)

Checks if the two given times are in temporal causal connection to each other by using the given RT time and dustlayer correction length.

Note

For performance reasons, we define this function as an inline function.

Returns:

true if the two times are temporally close enough, and false otherwise.

template<class HitType>
uint32_t deselectRTHitsBelowRTPartnerHitsThreshold(const I3SeededRTConfigurationService &stConfigService, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries, uint32_t threshold)

Determines the selected RT hits of each selected RT hit and deselects those selected RT hits which have less RT hits than the given threshold.

Note

The given ST hit info series must be ascended time ordered in hit time!

Returns:

The number of total selected hits.

template<class HitType>
uint32_t doSelectRTHitsIteration(const I3SeededRTConfigurationService &stConfigService, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries)

Selects new hits which fulfill the seededRT conditions for already selected hits. In order to select all hits, that fulfill the seededRT conditions, this function has to be called several times, until it does not select more hits.

Note

The given ST hit info series must be ascended time ordered in hit time!

Returns:

The number of total (old+new) selected hits.

template<class HitType>
uint32_t doIterativeSelectRTHitsProcedure(const I3SeededRTConfigurationService &stConfigService, std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries, int32_t maxNIterations = -1)

Does the iterative seededRT procedure of adding RT hits to the selections of already selected hits. This function makes use of the doSelectRTHitsIteration function.

template<class HitType, class OutType>
boost::shared_ptr<OutType> createAndFillOutputFrameObject(const I3Frame &frame, const std::string &inputHitSeriesMapName, const std::vector<I3SeededRTSTHitInfo<HitType>> &stHitInfoSeries, boost::function<bool(const I3SeededRTSTHitInfo<HitType>&)> hitSelectFctn = isSelectedHit<HitType>())

Function to create an output frame object of type OutType, and filling it with all selected hits from a given I3SeededRTSTHitInfo series.

inline bool arePositionsInSpatialCausalConnection(const I3SeededRTConfigurationService &stConfigService, const I3SeededRTConfiguration &stConfig, const I3Position &srcPos, const I3Position &dstPos, double *dustlayerCorrectionLengthPtr)

Checks if the two given positions are in spatial causal connection to each other by using the given ST configuration service and the given ST configuration object.

This method needs to calculate the dustlayer correction length for the distance between the given positions. The value of the calculated dustlayer correction length can be gathered by specifying a pointer to a double value, which will be set if the pointer is non-zero and if the two positions are in spatial range.

Note

For performance reasons, we define this function as an inline function.

Returns:

true if the two position are spatially close enough, and false otherwise. If false is returned, the double value of the dustlayer correction length is not set!

template<class HitType, class OutType>
boost::shared_ptr<OutType> doSeededRTCleaning(const I3SeededRTConfigurationService &stConfigService, boost::function<uint32_t(const I3Frame&, std::vector<I3SeededRTSTHitInfo<HitType>>&)> doSeedProcedure, const I3Frame &frame, const std::string &inputHitSeriesMapName, int32_t maxNIterations = -1, bool allowNoSeedHits = false)

Utility function to do a seededRT cleaning on a given hit series map stored inside a given I3Frame object.

file hit_info_getters.cxx
#include “dataclasses/physics/I3DOMLaunch.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “dataclasses/I3MapOMKeyMask.h”

This file contains the implementation of the utility functions to get information about hits within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file hit_info_getters.h

This file contains the definitions of utility functions to get information about hits within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3FourVector.cxx
#include “STTools/I3FourVector.h

This file contains the implementation of the I3FourVector class within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Functions

std::ostream &operator<<(std::ostream &os, const sttools::I3FourVector &rhs)
file I3FourVector.h
#include <stdint.h>
#include <cmath>
#include <ostream>
#include <string>
#include “icetray/I3Logging.h”
#include “dataclasses/I3Position.h”

This file contains the definition of the I3FourVector class inside the sttools namespace. The I3FourVector class is used to store four components (in case of a four-position, a time and a 3-position).

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Functions

std::ostream &operator<<(std::ostream &os, const sttools::I3FourVector &rhs)
file I3PySContext.h
#include <boost/python.hpp>
#include <boost/python/def_visitor.hpp>

This file contains the definition of the I3PySContext_interface template. It is a boost::python visitor, that helps to expose I3SContext C++ classes of particular ST algorithms to Python.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3PySeededRTConfigurationService.h
#include <boost/python.hpp>
#include “icetray/I3Logging.h”

This file contains the definition of the I3PySeededRTConfigurationService class. It is a boost::python wrapper class derived from the I3PySTConfigurationService template, that helps to expose the I3SeededRTConfigurationService C++ class to Python.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3PySeededRTSContext.h
#include “STTools/I3PySContext.h

This file contains the definition of the I3PySeededRTSContext_interface class. It is a boost::python visitor class derived from the I3PySContext_interface template, that helps to expose the I3SeededRTSContext C++ class to Python.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3PySTConfigurationService.h
#include <vector>
#include <boost/python.hpp>
#include <boost/python/def_visitor.hpp>
#include “icetray/OMKey.h”
#include “icetray/I3Logging.h”
#include “dataclasses/geometry/I3OMGeo.h”

This file contains the definition of the I3PySTConfigurationService template. It is a boost::python wrapper template, that helps to expose I3STConfigurationService C++ classes of particular ST algorithms to Python.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Defines

I3PySTConfigurationService_IMPLEMENTATION(STConfigurationType, STConfigurationServiceType)
file I3RTVetoModule.cxx
#include <algorithm>
#include <vector>
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/I3PointerTypedefs.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3MapOMKeyMask.h”
#include “dataclasses/physics/I3DOMLaunch.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “STTools/I3STModule.h

This file contains the definition and implementation of the RTVeto I3Module (or better I3STModule).

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Typedefs

typedef I3RTVetoModule<I3RecoPulse, I3RecoPulseSeriesMap> I3RTVeto_RecoPulse_Module
typedef I3RTVetoModule<I3RecoPulse, I3RecoPulseSeriesMapMask> I3RTVeto_RecoPulseMask_Module
typedef I3RTVetoModule<I3DOMLaunch, I3DOMLaunchSeriesMap> I3RTVeto_DOMLaunch_Module
file I3RUsageTimer.cxx
#include “STTools/I3RUsageTimer.h

This file contains the implementation of the I3RUsageTimer class within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3RUsageTimer.h
#include <sys/time.h>
#include <sys/resource.h>
#include <boost/make_shared.hpp>
#include “icetray/I3Logging.h”
#include “icetray/I3Units.h”
#include “icetray/I3PhysicsTimer.h”

This file contains the definition of the I3RUsageTimer class within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SContext.h
#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include <dataclasses/geometry/I3OMGeo.h>

This file contains the definition of the I3SContext class inside the sttools namespace. The I3SContext class is used to store internal API state variables like a spatial data map.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SeededRTCleaningModule.cxx
#include <string>
#include “icetray/I3PointerTypedefs.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3MapOMKeyMask.h”
#include “dataclasses/physics/I3DOMLaunch.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “STTools/I3FourVector.h
#include “STTools/I3STModule.h
#include “STTools/utilities.h

This file contains the definition and implementation of the SeededRTCleaning I3Module (or better spoken I3STModule).

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Typedefs

typedef I3SeededRTCleaningModule<I3RecoPulse, I3RecoPulseSeriesMap> I3SeededRTCleaning_RecoPulse_Module
typedef I3SeededRTCleaningModule<I3RecoPulse, I3RecoPulseSeriesMapMask> I3SeededRTCleaning_RecoPulseMask_Module
typedef I3SeededRTCleaningModule<I3DOMLaunch, I3DOMLaunchSeriesMap> I3SeededRTCleaning_DOMLaunch_Module
file I3SeededRTConfiguration.cxx
#include <sstream>
#include “icetray/serialization.h”
#include “STTools/utilities.h

This file contains the implementation of the I3SeededRTConfiguration class.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Functions

I3_SERIALIZABLE(I3SeededRTConfiguration)
I3_SERIALIZABLE(I3VectorSeededRTConfiguration)
std::ostream &operator<<(std::ostream &os, const I3SeededRTConfiguration &rhs)
file I3SeededRTConfiguration.h
#include <ostream>
#include “icetray/I3PointerTypedefs.h”
#include “icetray/I3Units.h”
#include “dataclasses/I3Constants.h”
#include “dataclasses/I3Vector.h”
#include “recclasses/I3STConfiguration.h”
#include “recclasses/OMKeyLinkSet.h”

This file contains the definition of the I3SeededRTConfiguration class.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Typedefs

typedef I3Vector<I3SeededRTConfiguration> I3VectorSeededRTConfiguration

Functions

std::ostream &operator<<(std::ostream &os, const I3SeededRTConfiguration &rhs)
I3_POINTER_TYPEDEFS(I3SeededRTConfiguration)
I3_CLASS_VERSION(I3SeededRTConfiguration, i3seededrtconfiguration_version_)
I3_POINTER_TYPEDEFS(I3VectorSeededRTConfiguration)

Variables

static const unsigned i3seededrtconfiguration_version_ = 0
file I3SeededRTConfigurationService.cxx
#include <algorithm>
#include <cmath>
#include <boost/foreach.hpp>
#include “icetray/I3ServiceBase.h”
#include “icetray/I3SingleServiceFactory.h”
#include “icetray/I3Units.h”
#include “dataclasses/I3Constants.h”
#include “STTools/I3RUsageTimer.h
#include “STTools/utilities.h

This file contains the implementation of the I3SeededRTConfigurationService class within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Functions

I3_SERVICE_FACTORY(I3BasicSeededRTConfigurationServiceFactory)
file I3SeededRTConfigurationService.h
#include <cmath>
#include “icetray/I3Logging.h”

This file contains the definition of the I3SeededRTConfigurationService class within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SeededRTSContext.h
#include “icetray/I3PointerTypedefs.h”
#include “STTools/OMKeyPairMap.h
#include “STTools/I3SContext.h

This file contains the definition of the I3SeededRTSContext class, a specialization of the I3SContext template for the seededRT algorithm within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SeededRTSData.h

This file contains the definition of the I3SeededRTSData data structure within the sttools::seededRT namespace, which is used by the seededRT algorithm to store spatial map data.

Copyright (C) 2013 - 2014 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SeededRTSDataMap.h
#include “icetray/I3PointerTypedefs.h”
#include “STTools/OMKeyPairMap.h

This file contains the definition of the I3SeededRTSDataMap class within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3SeededRTSTHitInfo.h
#include <stdint.h>
#include <set>
#include <vector>
#include <boost/make_shared.hpp>
#include “icetray/OMKey.h”
#include “dataclasses/I3Vector.h”
#include “STTools/OMKeyHasher.h
#include “STTools/I3STHitInfo.h

This file contains the definition of the I3SeededRTSTHitInfo template within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se Olaf Schulz and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3STConfigurationService.h
#include <algorithm>
#include <set>
#include <vector>
#include <boost/foreach.hpp>
#include <boost/utility.hpp>
#include “icetray/I3Logging.h”
#include “icetray/OMKey.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/geometry/I3OMGeo.h”
#include “STTools/OMKeyHasher.h
#include “STTools/OMKeyPairMap.h
#include “recclasses/OMKeyLink.h”
#include “recclasses/I3STConfiguration.h”

This file contains the definition of the I3STConfigurationService template. The I3STConfigurationService template is a base class for all ST algorithm configuration services.

Copyright (C) 2013 - 2014 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

It also holds an object of SContextType for the spatial context valid for this ST configuration service. This spatial context is considered as constant as long as the ST configuration does not change, i.e. the ST configuration is frozen.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Version

$Id$

Date

$Date$ It holds an boost::shared_ptr< I3Vector<STConfigurationType> > member variable named stConfigVecPtr_. This is a list of ST configuration objects of type STConfigurationType. This type must be a class specific for a particular ST algorithm, and must be derived from the I3STConfiguration base class.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3STHitInfo.h

This file contains the definition of the I3STHitInfo template class within the sttools namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se Olaf Schulz and the IceCube Collaboration http://www.icecube.wisc.edu

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Version

$Id$

Date

$Date$ This class should be used as base class for all STHitInfo classes used by ST algorithms.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file I3STModule.h
#include <set>
#include <string>
#include <vector>
#include <boost/foreach.hpp>
#include <boost/python.hpp>
#include “icetray/I3DefaultName.h”
#include “icetray/I3Frame.h”
#include “icetray/I3ConditionalModule.h”
#include “STTools/I3RUsageTimer.h
#include “STTools/utilities.h

This file contains the definition of the I3STModule icetray module.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

This base module is derived from the I3ConditionalModule, so conditional execution of the module is possible.

Version

$Id$

Date

$Date$ This icetray module should be used as a base class module for a particular icetray module, that implements ST algorithms.

It also provides pre-defined ST configuration parameters and a method to do the ST configuration setup procedure.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file OMKeyHasher.h
#include <stdint.h>
#include <limits>
#include <vector>
#include <boost/foreach.hpp>
#include “icetray/I3Logging.h”
#include “icetray/OMKey.h”
#include “icetray/I3PointerTypedefs.h”
#include “dataclasses/geometry/I3Geometry.h”

This file contains the definition of the OMKeyHasher class within the sttools namespace.

Copyright (C) 2011 - 2013 Martin Wolf martin.wolf@fysik.su.se Robert Franke and the IceCube Collaboration http://www.icecube.wisc.edu

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Version

$Id$

Date

$Date$ This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file OMKeyPairMap.h
#include “dataclasses/I3Vector.h”
#include “dataclasses/geometry/I3OMGeo.h”
#include “STTools/OMKeyHasher.h
#include “recclasses/OMKeyPair.h”

This file contains the definition of the OMKeyPairMap template class within the sttools namespace.

Copyright (C) 2011 - 2013 Martin Wolf martin.wolf@fysik.su.se Robert Franke Keven J. Meagher and the IceCube Collaboration http://www.icecube.wisc.edu

Since it is implemented as a contiguous C-style array, reading its content is extemly fast, what is required when a map is created only once (based on an I3OMGeoMap from a Geometry frame) and then read several times by each event, as it is usually the case for ST algorithms.

Version

$Id$

Date

$Date$ An OMKeyPairMap is an array that represents an OMKeyPair to <something> map. It can be used for example to signify if an OMKey pair fulfills some condition (for example a spatial condition).

The OMKey pair map has a symmetry property, that defines the symmetry between the two OMKeys of an OMKeyPair object. If the relationship between the two OMKeys is symmetric, the required memory to store the map is only approx. half of the required memory to store a map for an asymmetric relationship. However, the default setting for the symmetry of the OMKeyPairMap object is an asymmetric map.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file streamToString.hpp
#include <string>
#include <sstream>

This file contains the definition of the streamToString template function that converts a given class instance into a std::string by using the operator<< function.

Copyright (C) 2013 - 2014 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Basically, this means, that one should include this header file at the very last.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Version

$Id$

Date

$Date$ Note: The operator<< function for the particular class of the form std::ostream& operator<<(std::ostream& os, const T& rhs); must be defined BEFORE this header is included by the first time! Otherwise the clang compiler will fail with an error not finding this function.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file algorithms/seededRT/utilities.cxx

This file contains the implementation of the utility functions of the seededRT algorithms within the sttools::seededRT namespace.

Copyright (C) 2013 - 2014 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file utilities.cxx
#include <string>
#include <sstream>
#include <boost/make_shared.hpp>
#include “icetray/I3Logging.h”
#include “icetray/I3Frame.h”
#include “icetray/I3Units.h”
#include “STTools/utilities.h

This file contains the implementation of utility functions within the sttools namespace useful for user defined ST algorithms.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file algorithms/seededRT/utilities.h
#include <algorithm>
#include <cmath>
#include <stdint.h>
#include <vector>
#include <boost/implicit_cast.hpp>
#include <boost/function.hpp>
#include “icetray/OMKey.h”
#include “icetray/I3PointerTypedefs.h”
#include “icetray/I3Logging.h”
#include “dataclasses/ostream_overloads.hpp”
#include “dataclasses/I3Constants.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3Vector.h”
#include “dataclasses/geometry/I3OMGeo.h”
#include “STTools/I3FourVector.h
#include “STTools/utilities.h

This file contains the definitions of the utility functions for the seededRT algorithm within the sttools::seededRT namespace.

Copyright (C) 2013 Martin Wolf martin.wolf@icecube.wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

$Date$

Version

$Id$

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

file utilities.h
#include <sstream>
#include <string>
#include <vector>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include “icetray/OMKey.h”
#include “icetray/I3Frame.h”
#include “icetray/I3PhysicsTimer.h”
#include “dataclasses/I3Map.h”
#include “dataclasses/I3MapOMKeyMask.h”
#include “dataclasses/geometry/I3OMGeo.h”
#include “STTools/OMKeyPairMap.h
#include “STTools/I3FourVector.h
#include “STTools/I3STHitInfo.h

This file contains the definitions of the utility functions within the sttools namespace useful for ST user defined algorithms.

Copyright (C) 2013 Martin Wolf martin.wolf@fysik.su.se and the IceCube Collaboration http://www.icecube.wisc.edu

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Version

$Id$

Date

$Date$ The functions are C++ templated via the template parameters HitType and OutType, so they can be used both with I3DOMLaunchSeriesMaps and I3RecoPulseSeriesMaps as input data.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Note

This file should not be included directly into the user’s application. Instead, the user should include the api.h header file.

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

dir algorithms
dir algorithms
dir cpp
dir icetray
dir modules
dir private
dir public
dir seededRT
dir seededRT
dir STTools
dir STTools
dir STTools