clast C++ API Reference

class I3CLastCalculator

Core calculation class for I3CLastModule module.

This class contains a series of functions to calculate the tensor of inertia and related quantities. With this, you can calculate the inertia tensor of the hits, diagonalize the inertia tensor, and correct the direction of the longest eigenvector.

In addition, a simplified version of the cfirst algorithm is included so that the start time of the cascade can be estimated by looking at the times of hits that are close to the light cone assuming that the vertex is at the center of gravity. This implementation differs from the cfirst one in that it will return the time of the first hit in the event for an events that do not have a sufficient number of hits on/near the light cone. In this way, a seed will always have a start time — something that is required by subsequent likelihood fits.

And, finally, this code contains routines that parameterize the estimate of the cascade energy from the nchannels for IceCube AMANDA. These parameterization was obtained from cascade MC data.

Public Functions

inline I3CLastCalculator(double ampWeight, int ampOpt, double directHitRadius, double directHitWindow, int directHitThreshold, double e0, double e1, double e2, double e3, double e4, double e5, double a0, double a1, double a2, double a3, double a4, double a5)
inline I3Matrix CalculateTOI(I3RecoPulseSeriesMapConstPtr pulse_series, const I3OMGeoMap &om_geo, const I3Position &cogPosition)
inline int CorrectDirection(I3RecoPulseSeriesMapConstPtr pulse_series, const I3OMGeoMap &om_geo, const I3Position &cog, const std::vector<double> &minevect)
inline std::vector<double> diagonalizeTOI(I3Matrix &inertiatensor, double &mineval, double &eval2, double &eval3, double &evalratio)
inline double CalculateTime(I3RecoPulseSeriesMapConstPtr pulseMap, const I3OMGeoMap &omMap, const I3Position &cogPosition)
inline double CalculateEnergy_From_I3Hits(I3RecoPulseSeriesMapConstPtr pulseMap)
inline double CalculateEnergy_From_AMHits(I3RecoPulseSeriesMapConstPtr pulseMap)

Private Members

double ampWeight_
int ampOpt_
double rMax_
double directHitWindow_
double threshold_
double e0_
double e1_
double e2_
double e3_
double e4_
double e5_
double a0_
double a1_
double a2_
double a3_
double a4_
double a5_
class I3CLastModule : public I3ConditionalModule
#include <I3CLastModule.h>

Seed Estimator for Cascade.

The main module for generating a complete seed for cascade analysis uses the tensor of inertia reconstruction to estimate a direction, the COG to estimate a vertex position, and the cfirst-ish light-cone algorithm to estimate the start time (though, unlike cfirst, this code will always return a start time since, if the cfirst algorithm fails, it will return the hit time of the first hit in the event.)

Public Functions

I3CLastModule(const I3Context &ctx)
inline ~I3CLastModule()
void Configure()
void Physics(I3FramePtr frame)

Excecute the CLast first guess reconstruction on the event in the provided frame.

Private Functions

I3CLastModule(const I3CLastModule &source)
I3CLastModule &operator=(const I3CLastModule &source)
SET_LOGGER ("I3CLastModule")

Private Members

std::string moduleName_
bool AmandaMode_
std::string inputReadout_
int minHits_
double ampWeight_
int ampOpt_
double directHitRadius_
double directHitWindow_
int directHitThreshold_
double e0_
double e1_
double e2_
double e3_
double e4_
double e5_
double a0_
double a1_
double a2_
double a3_
double a4_
double a5_
namespace std

STL namespace.

file I3CLastCalculator.h
#include <gsl/gsl_eigen.h>
#include “dataclasses/I3Matrix.h”
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “dataclasses/I3Position.h”
#include “icetray/OMKey.h”
#include “dataclasses/I3Constants.h”

copyright (C) 2006 the icecube collaboration

Rcs

I3CLastCalculator.h 18552 2006-04-19 15:45:25Z grullon

Version

Rcs

1.3

Date

Rcs

2006-04-19 10:45:25 -0500 (Wed, 19 Apr 2006)

Author

Pat Toale toale@phys.psu.edu (based on TensorOfInertia code by Sean Grullon grullon@icecube.wisc.edu)

file I3CLastModule.cxx
#include “clast/I3CLastModule.h
#include “recclasses/I3CLastFitParams.h”
#include “icetray/I3TrayHeaders.h”
#include “icetray/I3Units.h”
#include “dataclasses/physics/I3Particle.h”
#include “dataclasses/I3Position.h”
#include “icetray/OMKey.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include <iostream>
#include “phys-services/I3Cuts.h”
#include <boost/iterator/filter_iterator.hpp>
#include “dataclasses/I3Constants.h”

copyright (C) 2004 the icecube collaboration

Rcs

I3CLast.cxx 42855 2008-02-29 22:52:50Z joanna

Version

Rcs

1.6

Date

Rcs

2008-02-29 15:52:50 -0700 (Fri, 29 Feb 2008)

Author

toale (derived from TensorOfInertia code originally written by grullon)

Functions

I3_MODULE(I3CLastModule)
file I3CLastModule.h
#include “icetray/I3ConditionalModule.h”
#include “icetray/I3Logging.h”
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/physics/I3RecoPulse.h”
#include “dataclasses/I3Map.h”

copyright (C) 2004 the icecube collaboration

Version

Rcs

I3CLast.h 42854 2008-02-29 22:52:12Z joanna

Version

Rcs

1.3

Date

Rcs

2008-02-29 15:52:12 -0700 (Fri, 29 Feb 2008)

Author

Pat Toale (derived from TensorOfInteria code by Sean Grullon)

dir clast
dir clast
dir clast
dir icetray
dir private
dir public