fill-ratio C++ API Reference

class FastMinBall
#include <FastMinBall.h>

Public Types

typedef std::vector<std::pair<OMKey, I3OMGeo>>::const_iterator geo_iter_t
typedef std::pair<geo_iter_t, geo_iter_t> string_range_t
typedef boost::filter_iterator<InXYCircle, std::vector<string_range_t>::const_iterator> filtered_string_iterator
typedef boost::filter_iterator<InRZCircle, segmented_iterator<filtered_string_iterator>> filtered_dom_iterator
typedef boost::iterator_range<filtered_dom_iterator> geo_range

Public Functions

FastMinBall(const I3OMGeoMap &geo)
geo_range GetMinBallGeometry(const I3Position&, double)
geo_iter_t LowerBound(const OMKey&, geo_iter_t)

Private Functions

inline FastMinBall(const FastMinBall&)
inline void operator=(const FastMinBall&)

Private Members

std::vector<std::pair<OMKey, I3OMGeo>> geometry_
std::vector<string_range_t> strings_
class I3FillRatio2StringDoubleMap : public I3Module

Public Functions

I3FillRatio2StringDoubleMap(const I3Context &context)
~I3FillRatio2StringDoubleMap()
void Physics(I3FramePtr frame)
void Configure()

Private Functions

I3FillRatio2StringDoubleMap()
I3FillRatio2StringDoubleMap(const I3FillRatio2StringDoubleMap&)
I3FillRatio2StringDoubleMap &operator=(const I3FillRatio2StringDoubleMap&)
SET_LOGGER ("I3FillRatio2StringDoubleMap")

Private Members

std::string fillratio_output_name_
std::string fillratiobox_
double meanDistance_
double rmsDistance_
double nchDistance_
double energyDistance_
double fillRadius_
double fillRadiusFromMean_
double fillRadiusFromEnergy_
double fillRadiusFromNCh_
double fillRadiusFromMeanPlusRMS_
double fillRatio_
double fillRatioFromMean_
double fillRatioFromMeanPlusRMS_
double fillRatioFromNCh_
double fillRatioFromEnergy_
double hitCount_
class I3FillRatioLite : public I3ConditionalModule

Public Functions

I3FillRatioLite(const I3Context&)
virtual ~I3FillRatioLite()
void Configure()
void Geometry(I3FramePtr)
void DetectorStatus(I3FramePtr)
void Physics(I3FramePtr)

Private Functions

void FillSubGeometry()

Private Members

std::string badDOMListName_
std::vector<OMKey> staticBadDOMList_
std::set<OMKey> badOMs_
I3GeometryConstPtr geometry_
FastMinBall *minballer_
std::string vertex_name_
std::string pulses_name_
std::string output_name_
double distance_scale_
double weighting_power_
class I3FillRatioModule : public I3ConditionalModule

An instance of the fill-ratio algorithm.

Public Functions

I3FillRatioModule(const I3Context &context)

Creates an instance of this class.

Parameters:

context – &#8212; the I3Context that will be given to this class by the IceTray framework, and that gives it access to the services. This module doesn’t actually use any services at the moment, but this is how modules are instantiated in IceTray.

virtual ~I3FillRatioModule()

Destroys an instance of this class.

void Configure()

Fetch any user-defined parameter from the steering file and configure this module.

void Finish()

Clean up any thing that needs to be done for an entire run, as opposed to a single event.

void Physics(I3FramePtr frame)

Operate on one event. Collect a distribution of distances from hit OMs to the vertex. Calculate the mean and RMS. Draw two spheres around the vertex, with radii of some user-defined numbers times the mean and RMS, respectively. Count the fraction of OMs inside this sphere which are hit.

Parameters:

frame – &#8212; the event to operate on.

void DetectorStatus(I3FramePtr frame)

Private Functions

I3FillRatioModule()
I3FillRatioModule(const I3FillRatioModule&)
I3FillRatioModule &operator=(const I3FillRatioModule&)
double CalculateWeight(double charge)

CalculateWeight is a convenience method for determining the weight of a hit, given the charge recorded in the waveform. The weight will be calculated from an exponential distribution, with the scale determined by the user’s input. A scale factor of zero will return a weight of 1.0, and a scale factor of 1.0 will return the charge as the weight.

Parameters:

charge – The charge from the pulse series for a given OM.

Returns:

The weight used to calculate how the charge is distributed about the COG.

double EstimateEnergyFromNCh(int nCh)

Estimate the energy from the NCh. This is used by the NCh fill ratio to find the energy estimate, which is then given to the “EstimateSPERadiusFromEnergy” method to find the radius if removal. Diffent detector configurations have different calibrations for this.

Parameters:

nCh – the NChannels from whatever pulse series is being used.

Returns:

The estimated log base 10 of the Energy in GeV.

double EstimateSPERadiusFromEnergy(double log10E)

Estimate the SPE Radius from the energy, which is either obtained from the NCh or from apreiously-reconstructed vertex.

Parameters:

log10E – Log base 10 of the energy estimate.

Returns:

The estimated SPE Radius, which is then used to define the NCh and energy fill ratios.

SET_LOGGER ("I3FillRatioModule")

Private Members

std::string vertexName_

The name of the (previously reconstructed) vertex

std::string resultName_

The name of the I3FillRatioInfo which will be pushed into the frame.

std::string recoPulseName_

The name of the RecoPulseSeriesMap to be used for the calculation.

std::string badDOMListName_

A user-defined vector of OMs to exclude from this analysis. This is useful if one is running a single-detector-only analysis. Otherwise, a large number of UnHit-able OMs will be found in the geometry, and skew the result.

std::vector<OMKey> staticBadDOMList_
std::set<OMKey> badOMs_
double rmsSphereRadius_

The radius of the rms-defined shere, in units of the RMS.

double meanSphereRadius_

The radius of the mean-defined spere, in units of the mean.

double meanRMSSphereRadius_
double nChSphereRadius_

The radius of the nCh-defined spere, in units of the SPE Radius.

double energySphereRadius_

The radius of the energy-defined SPE spere, in units of the SPE Radius.

double ampWeightPower_

The distance distribution can be weighted by the charge recorded in the hits. The weighting is defined by a exponential. This defines the power of the exponential. Use a value of 0 to refrain from weighting, and a value of 1 to weight each hit by its charge.

int eventsSeen_

Counter for number of events seen (for use in debug output).

double minRadius_

Set a minimum radius for the Energy estimate fill ratios (Energy and NCh fillratios).

struct InRZCircle
#include <FastMinBall.h>

Public Functions

inline InRZCircle(const I3Position &pos, double radius)
inline bool operator()(const I3OMGeoMap::value_type &entry)

Public Members

const I3Position &pos_
const double radius_
struct InXYCircle
#include <FastMinBall.h>

Public Functions

inline InXYCircle(const I3Position &pos, double radius)
inline bool operator()(const FastMinBall::string_range_t &string_range)

Public Members

const I3Position &pos_
const double radius_
template<class Iterator>
class segmented_iterator : public boost::iterator_facade<segmented_iterator<Iterator>, Iterator::value_type::first_type::value_type, boost::forward_traversal_tag, const Iterator::value_type::first_type::value_type&, ptrdiff_t>
#include <FastMinBall.h>

Public Functions

inline segmented_iterator(Iterator begin_range, Iterator end_range)

Private Functions

inline void increment()
inline bool equal(const segmented_iterator<Iterator> &other) const
inline segmented_iterator<Iterator>::reference dereference() const

Private Members

Iterator begin_
Iterator current_range_
Iterator end_
Iterator::value_type::first_type current_
namespace std

STL namespace.

file FastMinBall.cxx
#include “fill-ratio/FastMinBall.h
#include “boost/foreach.hpp”

Functions

inline bool Compare(const std::pair<OMKey, I3OMGeo> &p1, const std::pair<OMKey, I3OMGeo> &p2)
file FastMinBall.h
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/I3Position.h”
#include <boost/iterator/iterator_facade.hpp>
#include <boost/range/iterator_range.hpp>
#include <boost/iterator/filter_iterator.hpp>
file I3FillRatio2StringDoubleMap.cxx
#include “recclasses/I3FillRatioInfo.h”
#include “dataclasses/I3Map.h”
#include <iostream>
#include <string>

Functions

I3_MODULE(I3FillRatio2StringDoubleMap)
file I3FillRatio2StringDoubleMap.h
#include “icetray/I3Module.h”
#include “icetray/I3Context.h”
#include “icetray/I3Frame.h”
#include “icetray/I3Logging.h”
file I3FillRatioLite.cxx
#include “icetray/I3ConditionalModule.h”
#include “dataclasses/I3Double.h”
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “dataclasses/physics/I3Particle.h”
#include “fill-ratio/FastMinBall.h
#include <boost/foreach.hpp>

Functions

I3_MODULE(I3FillRatioLite)
file I3FillRatioModule.cxx
#include “recclasses/I3FillRatioInfo.h”
#include “dataclasses/physics/I3Particle.h”
#include “icetray/OMKey.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “dataclasses/geometry/I3Geometry.h”

copyright (C) 2006 the IceCube Collaboration $Id$

Version

Author

Doug Rutledge

Date

26Aug2006

Functions

I3_MODULE(I3FillRatioModule)
file I3FillRatioModule.h
#include “icetray/I3ConditionalModule.h”
#include “icetray/I3TrayHeaders.h”
#include “icetray/OMKey.h”

copyright (C) 2006 the IceCube collaboration

Version

$Id$

Version

Rcs

Author

Doug Rutledge

Date

26Aug2006

dir fill-ratio
dir fill-ratio
dir fill-ratio
dir icetray
dir private
dir public