WaveCalibrator C++ API Reference

struct DroopParams

Public Members

double timeConstant1
double timeConstant2
double coef0
double coef1
double coef2
double exp1
double exp2
struct DroopRemainder

Public Functions

inline DroopRemainder()

Public Members

double react1
double react2
double time
class I3PMTSaturationFlagger : public I3ConditionalModule

Public Functions

I3PMTSaturationFlagger(const I3Context&)
void Configure()
void Calibration(I3FramePtr)
void DetectorStatus(I3FramePtr)
void DAQ(I3FramePtr)

Private Functions

void CalculateThresholds()
SET_LOGGER ("I3PMTSaturationFlagger")

Private Members

I3CalibrationConstPtr calibration_
I3DetectorStatusConstPtr status_
std::map<OMKey, double> thresholds_
double threshold_
std::string waveformName_
std::string outputName_
class I3WaveCalibrator : public I3ConditionalModule
#include <I3WaveCalibrator.h>

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Public Functions

I3WaveCalibrator(const I3Context&)

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

void Configure()
void Geometry(I3FramePtr frame)
void Calibration(I3FramePtr frame)
void DetectorStatus(I3FramePtr frame)
void DAQ(I3FramePtr frame)

Public Static Functions

static std::pair<double, double> GetWaveformOffset(I3CalibrationConstPtr, I3DetectorStatusConstPtr)
static I3TimeWindowPtr GetWaveformRange(I3FramePtr frame, const std::pair<double, double> &offsets)

Private Functions

size_t GetATWDSize(const I3DOMLaunch&, int channel = -1)
void CalibrateLaunches(const OMKey &om, const I3DOMLaunchSeries &launches, const I3OMGeo &geo, const I3DOMCalibration &calib, const I3DOMStatus &status, I3WaveformSeriesMap &waveform_map, I3TimeWindowSeriesMap &errata)
bool CalibrateATWD(const OMKey &om, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, I3Waveform &atwd, int channel)
bool CalibrateATWD_SLC(const OMKey &om, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, I3Waveform &atwd)
bool CalibrateFADC(const OMKey &om, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, I3Waveform &fadc)
bool CalibrateFADC_SLC(const OMKey &om, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, I3Waveform &fadc)
void ExtractWaveformStatus(const std::vector<WaveformBin> &bins, std::vector<I3Waveform::StatusCompound> &stati)
void CompactifyWaveform(I3Waveform &waveform)
void ReadATWD(std::vector<WaveformBin> &bins, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, int channel)
void ReadFADC(std::vector<WaveformBin> &bins, const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status)
void CorrectPedestalDroop(std::vector<std::vector<I3Waveform>> &atwds, std::vector<I3Waveform> &fadcs, I3TimeWindowSeries &errata, const I3DOMCalibration &calib)
void CorrectDroop(I3Waveform &wf, const I3Waveform *ref_wf, DroopRemainder &leftovers, I3TimeWindowSeries &errata, const I3DOMCalibration &calib)
void CorrectFADC_SLC(I3Waveform &fadc, DroopRemainder &leftovers, const I3DOMCalibration &calib)
bool CorrectATWD(I3Waveform &atwd, const DroopRemainder &leftovers, const I3DOMCalibration &calib)
DroopParams GetDroopParams(const I3DOMCalibration &calib, const double dt)
SET_LOGGER ("I3WaveCalibrator")

Private Members

I3GeometryConstPtr geometry_
I3CalibrationConstPtr calibration_
I3DetectorStatusConstPtr status_
std::pair<double, double> waveform_shift_range_
std::string waveform_span_name_
std::string errata_name_
std::string launch_name_
std::string waveform_name_
int atwd_saturation_margin_
int fadc_saturation_margin_
int fadc_undershoot_margin_
bool correct_droop_

Private Static Functions

static double GetStartTime(const I3DOMLaunch &launch, const I3DOMCalibration &calib, const I3DOMStatus &status, bool fadc = false)
class I3WaveformSplitter : public I3ConditionalModule

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Public Functions

I3WaveformSplitter(const I3Context&)
void Configure()
void DAQ(I3FramePtr frame)

Private Functions

void PackATWDChannels(I3FramePtr, I3WaveformSeriesMapPtr)
void PackATWDChips(I3FramePtr, I3WaveformSeriesMapPtr)
void PackUnsaturatedATWD(I3FramePtr, I3WaveformSeriesMapPtr)
unsigned GetChannel(const I3Waveform&)

Private Members

std::string input_name_
std::string atwd_hlc_name_
std::string fadc_hlc_name_
std::string slc_name_
bool split_atwd_channels_
bool split_atwd_chips_
bool highest_unsaturated_
bool force_
class I3WaveformTimeRangeCalculator : public I3ConditionalModule

$Id$

Copyright (C) 2012 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Calculate and store the earliest and latest possible waveform bin edge times for a given event. This standalone version can be used for e.g. SuperDST events where waveform metadata were discarded at the Pole.

Public Functions

inline I3WaveformTimeRangeCalculator(const I3Context &c)
inline void Configure()
inline void Calibration(I3FramePtr frame)
inline void DetectorStatus(I3FramePtr frame)
inline void DAQ(I3FramePtr frame)

Private Members

I3CalibrationConstPtr calibration_
I3DetectorStatusConstPtr status_
std::string waveform_span_name_
std::pair<double, double> waveform_shift_range_
struct SPETemplate

Public Members

double c
double x0
double b1
double b2
struct WaveformBin

Public Functions

inline WaveformBin()

Public Members

double counts
I3Waveform::Status status
int8_t channel
namespace I3WaveCalibratorDroopCorrection

Functions

static const SPETemplate *GetIntermediateKernel(const I3Waveform &ref, const I3Waveform &target, bool old_toroid)
static double IntermediateDroopKernel(const SPETemplate *p, double t)

Variables

const SPETemplate ATWDIntermediateKernelNT_0_1 = {1.264408, -0.080267, 0.801379, 15.469398}
const SPETemplate ATWDIntermediateKernelNT_0_2 = {3.703271, -2.623006, 2.737699, 17.279238}
const SPETemplate ATWDIntermediateKernelNT_1_2 = {9.345833, -4.231835, 2.481484, 11.030858}
const SPETemplate ATWDIntermediateKernelOT_0_1 = {0.901431, -0.244405, 0.667990, 17.548444}
const SPETemplate ATWDIntermediateKernelOT_0_2 = {0.584898, -2.303411, 0.970086, 26.540349}
const SPETemplate ATWDIntermediateKernelOT_1_2 = {5.647132, -4.359512, 1.992141, 12.033357}
const SPETemplate FADCIntermediateKernelNT_0 = {0.307512, 8.604226, 27.379807, 187.404273}
const SPETemplate FADCIntermediateKernelNT_1 = {0.312819, 12.195611, 27.791027, 187.577871}
const SPETemplate FADCIntermediateKernelNT_2 = {0.318635, 11.384870, 27.968044, 186.714228}
const SPETemplate FADCIntermediateKernelOT_0 = {0.314336, 9.271928, 27.818278, 187.254423}
const SPETemplate FADCIntermediateKernelOT_1 = {0.321027, 12.854169, 28.311563, 187.414187}
const SPETemplate FADCIntermediateKernelOT_2 = {0.326916, 12.237234, 28.611787, 187.034238}
namespace std

STL namespace.

file I3PMTSaturationFlagger.cxx
#include <icetray/I3ConditionalModule.h>
#include <icetray/I3Units.h>
#include <dataclasses/calibration/I3Calibration.h>
#include <dataclasses/status/I3DetectorStatus.h>
#include <dataclasses/physics/I3Waveform.h>
#include <dataclasses/I3TimeWindow.h>
#include <boost/foreach.hpp>
#include <boost/make_shared.hpp>

Functions

I3_MODULE(I3PMTSaturationFlagger)
file I3WaveCalibrator.cxx
#include “dataclasses/physics/I3DOMLaunch.h”
#include “dataclasses/physics/I3EventHeader.h”
#include “dataclasses/I3TimeWindow.h”
#include <boost/make_shared.hpp>
#include <boost/foreach.hpp>

Functions

I3_MODULE(I3WaveCalibrator)
file I3WaveCalibrator.h
#include “icetray/I3ConditionalModule.h”
#include “dataclasses/geometry/I3Geometry.h”
#include “dataclasses/calibration/I3Calibration.h”
#include “dataclasses/status/I3DetectorStatus.h”
#include “dataclasses/physics/I3Waveform.h”
#include “dataclasses/physics/I3DOMLaunch.h”
#include “dataclasses/I3TimeWindow.h”
file I3WaveCalibratorDroopCorrection.cxx
#include “icetray/I3Units.h”

Defines

OLD_TOROID(calibration)

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

Functions

inline const I3Waveform *GetUnsaturatedWaveform(const std::vector<I3Waveform> &atwds)
file I3WaveCalibratorInternals.cxx
#include “dataclasses/I3DOMFunctions.h”
#include “icetray/I3Units.h”
#include <boost/foreach.hpp>

Defines

ATWD_NBINS

$Id$

Copyright (C) 2011 Jakob van Santen vansanten@wisc.edu and the IceCube Collaboration http://www.icecube.wisc.edu

ATWD_NCHANNELS
ADC_MAX
file I3WaveformSplitter.cxx
#include “icetray/I3ConditionalModule.h”
#include “dataclasses/physics/I3Waveform.h”
#include <boost/make_shared.hpp>
#include <boost/foreach.hpp>

Functions

I3_MODULE(I3WaveformSplitter)
file I3WaveformTimeRangeCalculator.cxx

Functions

I3_MODULE(I3WaveformTimeRangeCalculator)
dir icetray
dir modules
dir private
dir WaveCalibrator
dir WaveCalibrator