truncated_energy C++ API Reference

struct dom_prop_t

DOM property structure.

Public Members

double det_npes
double exp_npes
double dist_perpendicular_to_track
double dist_along_track
class I3TruncatedEnergy : public I3ConditionalModule

This module estimates an energy for a given track, using photorec tables.

In case lightsaber tables are used, the fitted energy is actually an energy loss per meter, for which I3Particle does not have a datamember, so it will be stored in a separate I3Double. A simplistic linear dE/dX(E) relation is used to associate an actual muon energy with this energy loss value; this associated energy value is stored in the energy field of the result I3Particle. The other datamembers are copied from the input track.

This module should in principle also be usable for cascades, but it has not been tested yet. If the input particle is not a track, I3TruncatedEnergy will just do nothing!

Public Functions

I3TruncatedEnergy(const I3Context &ctx)

Constructor

Parameters:

ctx – The context with which this module is built.

~I3TruncatedEnergy()
void Configure()
void Geometry(I3FramePtr frame)

This method is called by icetray whenever a new geometry frame is issued.

void Calibration(I3FramePtr frame)

This method is called by icetray whenever a new calibration frame is issued.

void Physics(I3FramePtr frame)
void Finish()

This method gives the user some screen output to let them know how the program has performed.

Private Types

enum BINMethodEventType_t

enum type for event classification for the BIN method

Values:

enumerator BIN_METHOD_EVENT_TYPE__BAD
enumerator BIN_METHOD_EVENT_TYPE__BIN_COUNT_GREATER_EQUAL_3
enumerator BIN_METHOD_EVENT_TYPE__BIN_COUNT_GREATER_EQUAL_3_AND_DOM_COUNT_GREATER_EQUAL_20
enum DOMMethodEventType_t

enum type for event classification for the DOM method

Values:

enumerator DOM_METHOD_EVENT_TYPE__BAD
enumerator DOM_METHOD_EVENT_TYPE__DOM_COUNT_GREATER_EQUAL_8_AND_LESS_20
enumerator DOM_METHOD_EVENT_TYPE__DOM_COUNT_GREATER_EQUAL_20
typedef std::map<const OMKey, dom_prop_t> dom_prop_map_t

Private Functions

bool CheckEventPulsesAndFitStatus(I3RecoPulseSeriesMapConstPtr reco_pulses_map, I3ParticleConstPtr reco_particle)

check if pulses and fit are usable

This method is used to make sure the event is a good event containing all required frame objects

double CalculateExpectedDomNPEsFromTrack(I3ParticleConstPtr reco_particle, const OMKey &omkey, const I3OMGeo &omgeo, const double ref_energy, const I3VectorOMKeyConstPtr bad_dom_list)

get expected NPE from table, for a particular DOM+track

This method is called in Physics() below, to count the expected PE from photonics for each DOM.

SET_LOGGER ("I3TruncatedEnergy")

Private Members

I3GeometryConstPtr geo_

current detector geometry

I3CalibrationConstPtr calib_

calibration info for Relative DOM Efficiency (RDE)

std::string RecoPulsesName_

name of the pulses to grab from the frame.

std::string RecoParticleName_

name of the reconstructed particle to use.

std::string ResultParticleName_

name of the result particle to put in the frame.

std::string I3PhotonicsServiceName_

name of the I3PhotonicsService object

I3PhotonicsServicePtr I3PhotonicsService_

pointer to I3PhotonicsService object

unsigned int nMissingParticle_

diagnostic counter: missing input particle (track, cascade)

unsigned int nMissingPulses_

diagnostic counter: missing input pulses

unsigned int nCallsSuccess_

diagnostic counter: successful photonics calls

unsigned int nCallsFail_

diagnostic counter: failed photonics calls

double SetMinCylinderBIN_

you can set the distance away from track for including DOMs or not

double SetMaxCylinderBIN_
double SetMinCylinderDOM_
double SetMaxCylinderDOM_
double SetMinDOMS_

you can set the minimum number of DOMS for the event to qualify or not

bool UseRDE_

if Relative DOM Efficiency should be used

std::string BadDomListName_

if all DOMs should be used in the likelihood instead of only hit ones

name of the BadDomList to grab from the frame

bool ReturnBinPos_

if bin position should be returned

namespace std

STL namespace.

namespace truncated_energy

Functions

double GetRDE(OMKey omkey, I3CalibrationConstPtr cal)

Variables

static const double i3unit_inv_m = 1. / I3Units::m

define inverse I3Units in advance because multiplications are much faster than divisions

static const double i3unit_inv_deg = 1. / I3Units::degree
file I3TruncatedEnergy.cxx
#include <icetray/I3TrayHeaders.h>
#include <icetray/I3Units.h>
#include <phys-services/I3Calculator.h>
#include <dataclasses/I3Double.h>
#include <dataclasses/I3Direction.h>
#include <dataclasses/I3Constants.h>
#include <algorithm>
#include <cmath>

Implementation of I3Truncated_Energy

(c) 2011 the IceCube Collaboration

Date

Rcs

2012-01-15 07:53:03 -0700 (15 Jan 2012)

Author

smiarecki

Author

mwolf

Defines

BINMETHOD_BIN_LENGTH

Functions

I3_MODULE(I3TruncatedEnergy)
file I3TruncatedEnergy.h
#include <icetray/I3ConditionalModule.h>
#include <icetray/OMKey.h>
#include <photonics-service/I3PhotonicsService.h>
#include <dataclasses/physics/I3Particle.h>
#include <dataclasses/I3Position.h>
#include <dataclasses/physics/I3RecoPulse.h>
#include <dataclasses/calibration/I3Calibration.h>
#include <dataclasses/geometry/I3Geometry.h>
dir icetray
dir private
dir public
dir truncated_energy
dir truncated_energy
dir truncated_energy