wavecatcher-analysis
|
Class containing experimental functions. More...
#include <Experimental.h>
Public Member Functions | |
void | DerivativeAll () |
Derivative of all waveforms. | |
Experimental (int no_of_bin_files_to_read) | |
Initializer will call initializer of ReadRun class. | |
void | RebinAll (int=2, float=0, unsigned long=0) |
Rebin the data to test bandwidth effects. Will combine an integer number of bins into a new, wider bin and divide the new bin content by the integer number to preserve the shape and integral. | |
![]() | |
TH1F * | BaselineCorrectionResults (int, int, float=-5, float=5, int=200) |
Histograms of the contents of baseline_correction_result. | |
void | ChargeCorrelation (float, float, float, float, float, float, int, int, int, bool=false) |
Plot correlation of integrals/amplitudes between two channels. | |
float * | ChargeList (int, float=20, float=80, float=0, float=300, bool=1) |
Returns array with the individual "charge"/amplitude for all events of one channel. | |
TH1F * | ChargeSpectrum (int, float, float, float=0, float=300, float=-50, float=600, int=750) |
Histogram of the "charge" spectrum for one channel. | |
int | CheckBoundsX (int) |
Check if index exists in time of waveforms. | |
void | CorrectBaseline (float, float=-999) |
Baseline correction constant window. | |
void | CorrectBaseline_function (vector< float > &, float, float, int) |
Helper function called by CorrectBaseline() | |
void | CorrectBaselineMin (int=100, double=0.5, int=0, int=0, int=2) |
Baseline correction using minimum sum ( \(\propto\) mean) in range for correction. | |
void | CorrectBaselineMin (vector< float >, double, int, int) |
Wrapper for backwards compatibility. | |
void | CorrectBaselineMin (vector< float >, double=0, int=2) |
Baseline correction using minimum sum ( \(\propto\) mean) in range for correction. | |
void | CorrectBaselineMinSlopeRMS (int=100, bool=false, double=0.5, int=0, int=0, int=2) |
Baseline correction method searching for non-monotonic, rather constant regions. | |
void | CorrectBaselineMinSlopeRMS (vector< float >, double, int, int) |
Wrapper for backwards compatibility. | |
void | CorrectBaselineMinSlopeRMS (vector< float >, double=0, int=2) |
Baseline correction method searching for non-monotonic, rather constant regions. | |
void | FilterAll (double=.3, double=.9, double=.2) |
Filter all waveforms. | |
int | GetChannelIndex (int) |
Match channel number (wavecatcher input channel) to channel index. | |
virtual int | GetCurrentChannel (int) |
Get the current channel index for a certain waveform index. | |
virtual int | GetCurrentEvent (int) |
Get the current event index for a certain waveform index. | |
int | GetEventIndex (unsigned int) |
Returns index of a certain event number (if data files are read in parallel threads) | |
array< int, 3 > | GetIntWindow (const vector< float > &, float, float, float, float, int=0) |
Determine indices for integration window for peaks. | |
array< int, 3 > | GetIntWindow (const vector< float > &, int, int, int, int, int=0) |
Determine indices for integration window for peaks with bin indices. | |
array< int, 3 > | GetIntWindow (TH1F *, float, float, float, float, int=0) |
Determine indices for integration window for peaks. | |
float | GetPeakIntegral (const vector< float > &, float, float, float, float, int=0) |
Calculate the integral around a peak with several options explained in GetIntWindow(). | |
float | GetPeakIntegral (TH1F *, float, float, float, float, int=0) |
Calculate the integral around a peak with several options explained in GetIntWindow(). | |
void | GetTimingCFD (float=.3, float=100, float=140, double=0., bool=true, int=2, bool=false, bool=false) |
Determine the timing of the maximum peak with constant fraction discrimination. | |
virtual int | GetWaveformIndex (int, int) |
Returns index of a certain event number (if data files are read in parallel threads) | |
TH1F * | Getwf (int) |
Helper that returns the waveform histogram for a certain waveform number number. | |
virtual TH1F * | Getwf (int, int, int=1) |
Helper that returns the waveform histogram for a certain channel number and a certain event number. | |
template<typename T > | |
T * | getx (double shift=0.) |
Get array of x axis (time of the bin centers) for standard wavecatcher settings. | |
double * | gety (int) |
Get array of y values for a certain waveform. | |
double * | gety (int, int) |
Get array of y values for a certain waveform. | |
TH1F * | His_GetTimingCFD (int, float, float, int=-999) |
Plot results of GetTimingCFD() | |
TH1F * | His_GetTimingCFD_diff (vector< int >, vector< int >, float, float, int=-999) |
Plot timing difference between the mean timings of two channel ranges. | |
float | IndexToTime (int) |
Convert the bin number of the waveform to the time of the left bin edge | |
void | IntegralFilter (vector< float >, vector< bool >, float, float, float=50, float=250, bool=false, bool=false) |
Skip events with threshold on integral. | |
TGraph2D * | MaxDist (int, float=0, float=300) |
Finds maximum amplitude for a given channel in time window ["from", "to"] and creates 3d map of waveforms ordered by maxima on z axis. | |
virtual int | Nevents_good (int=0) |
Number of good events that are not skipped. | |
bool | PlotChannel (int) |
Check if a channel index should be plotted according to ReadRun::plot_active_channels. | |
void | PlotChannelAverages (bool=false) |
Plot averages only of the good, corrected waveforms for each channel. | |
void | PlotChannelSums (bool=false, bool=false, double=0., double=0., int=2) |
Plot sums of all raw waveforms for each channel. | |
void | PlotWFHeatmaps (float=-20, float=200, int=880, string="", float=0, EColorPalette=kRainBow) |
Plot stacks of all non-skipped waveforms for all active channels. | |
vector< bool > | PolarityMap (bool, int) |
Channel map of polarity changes during reading. For parameters see ReadFile(). | |
void | Print_GetTimingCFD (float=100, float=140, int=0, int=-999, string="S", bool=true) |
Plot results of GetTimingCFD() | |
void | Print_GetTimingCFD_diff (vector< int >, vector< int >, float=100, float=140, int=0, int=-999, float=-999, float=-999, string="RS", bool=true) |
Plot timing difference between the mean timings of two channel ranges. | |
void | PrintBaselineCorrectionResults (float=-5, float=5, int=200) |
Print histogram of the baseline correction values for all channels. | |
void | PrintChargeSpectrum (float, float, float=0, float=300, float=-50, float=600, int=750, float=0., float=0., int=99, int=0, bool=false) |
Plots the "charge" spectrums of all channels. | |
void | PrintChargeSpectrumWF (float, float, float=0, float=300, int=1, float=0., float=0., float=0., float=0.) |
Plot waveforms of all channels for a given event number and add the determined integration windows to the plot. | |
void | PrintDCR (float=15, float=85, float=0, float=300, double=3) |
Calculate (SiPM) dark count rate. | |
void | PrintMaxDist (float=0, float=300) |
Finds maximum amplitude for a given channel in time window ["from", "to"] and creates 3d map of waveforms ordered by maxima on z axis. | |
void | PrintSkippedEvents () |
Prints a list of all skipped events into the terminal for diagnostics. | |
void | PrintTimeDist (float=0, float=300, float=0, float=300, int=100, int=0, float=.3) |
Time distribution of maximum, CFD, or 10% - 90% rise time in a certain time window. | |
void | PrintWFProjection (float=0, float=320, float=-50, float=50, int=200) |
Plots waveform projection histograms of all channels. | |
virtual void | ReadFile (string, bool=false, int=9, string="out.root", bool=false, long long=-1) |
Routine to read files created by the wavecatcher. | |
ReadRun (int last_bin_file=0, int first_bin_file=0) | |
Constructor of the class. | |
void | SaveChargeLists (float=20, float=80, float=0, float=300, bool=1) |
Saves TGraphs to root file with the individual "charge"/amplitude for all events and all channels. | |
void | ShiftAllToAverageCF () |
This function shifts all waveforms to the average signal starting times for each channel. | |
virtual bool | SkipEvent (int, int=-1) |
Check if event should be skipped. | |
void | SkipEventsPerChannel (vector< float >, float=0, float=0, bool=false) |
Skip events above/below individual thresholds per channel. | |
void | SkipEventsTimeDiffCut (int, int, double, double, bool=false) |
Skip events where the time difference between two channels is outside of specified range. | |
void | SmoothAll (double, int) |
Smoothing all waveforms which are not skipped (for testing, careful when using for analysis!) | |
void | SmoothAll (double, string="Gaus") |
Smoothing all waveforms which are not skipped (for testing, careful when using for analysis!) | |
TH1F * | TimeDist (int, float=0, float=300, float=0, float=300, int=100, int=0, float=.3) |
Time distribution of maximum, CFD, or 10% - 90% rise time in a certain time window. | |
int | TimeToIndex (float) |
Convert time to the bin number of the waveform. | |
void | UnskipAll () |
Sets skip_event flag to false for all events, removing any previous cuts. | |
TH2F * | WFHeatmapChannel (int, float=-20, float=200, int=880) |
2D histogram of all non-skipped waveforms for one channel | |
TH1F * | WFProjectionChannel (int, int=0, int=1024, float=-50, float=50, int=200) |
Waveform projections for one channel. | |
virtual | ~ReadRun () |
Destructor. | |
Additional Inherited Members | |
![]() | |
static pair< float, bool > | LinearInterpolation (float, float, float, float, float, bool=false) |
Simple linear interpolation for x. | |
![]() | |
vector< int > | active_channels |
Stores the numbers of the active channels. | |
vector< vector< float > > | amplValuessum |
Collects sums of all waveforms for each channel. | |
vector< vector< float > > | baseline_correction_result |
Stores baseline correction results for CorrectBaseline() and related functions. | |
int | binNumber |
Number of bins (usually 1024 samples per waveform). | |
float | DAQ_factor = 250. / 4096. |
DAQ conversion factor for wavecatcher output to mV. | |
string | data_path |
Path to data. | |
bool | discard_original_eventnr = false |
Can be used to discard the original event numbering of the data. | |
int | end_read_at_channel = -1 |
See ReadRun::start_read_at_channel. | |
vector< unsigned int > | eventnr_storage |
Events will be stored here in the order they have been read. | |
int | FirstBinFileToRead |
Number first of .bin file to be read in. | |
vector< TFitResultPtr > | fit_results |
Stores the fit results of PrintChargeSpectrum() for all channels and all function calls in ascending order. | |
int | LastBinFileToRead |
Number of last .bin file to be read in. | |
int | maxNWF = 1e7 |
Maximum possible number of waveforms in data: number of active channels x number of events. | |
vector< int > | maxSumBin |
Stores bin numbers where the sum of waveforms have their maximum. | |
vector< float > | mean_integral |
Stores the mean integral/lightyield from PrintChargeSpectrum() for all channels. | |
int | nchannels |
Number of active channels in data. | |
int | nChannelsWC = 64 |
Wavecatcher hardware max. number of channels (reduce/increase if not using the 64 channel crate) | |
int | nevents = 0 |
Number of triggered events in data. | |
int | nwf |
Total number of waveforms read from data: number of active channels x number of events. | |
vector< int > | plot_active_channels |
Stores the numbers of the active channels which should be plotted. | |
vector< vector< float > > | PrintChargeSpectrum_cal = vector(nChannelsWC, vector<float>(2, 1)) |
Calibration values to normalize charge spectrum to number of photoelectrons Chennels must be ordered as in plot_active_channels. The first entry must be the gain and the second the position of the pedestal. | |
vector< float > | PrintChargeSpectrum_pars |
Starting values of the fit parameters for PrintChargeSpectrum() | |
TFile * | root_out |
Stores results of analysis. | |
vector< vector< float > > | rundata |
Stores waveforms. | |
vector< bool > | skip_event |
Stores the event numbers which should be skipped in the analysis. | |
float | SP = .3125 |
Sampling: ns per bin of data, sampling rate 3.2 GS/s -> 0.3125 ns. | |
float | SP_inv = 1 / .3125 |
1/SP | |
int | start_read_at_channel = -1 |
Do analysis only for limited range of channels to reduce memory usage. | |
vector< int > | switch_polarity_for_channels |
Stores the channel number where the polarity should be inverted. Example use to switch polarity for channel 0 and channel 14: mymeas.switch_polarity_for_channels = {0, 14}; . Needs to be called before ReadFile(). | |
float | tCutEndg |
End of time window for baseline correction when using ReadRun::Using_BaselineCorrection_in_file_loop. | |
float | tCutg |
Start of time window for baseline correction when using ReadRun::Using_BaselineCorrection_in_file_loop. | |
vector< TFitResultPtr > | timing_fit_results |
Stores the fit results of Print_GetTimingCFD() for all channels. | |
vector< vector< float > > | timing_results |
Matrix to store timing of peaks from GetTimingCFD() | |
bool | Using_BaselineCorrection_in_file_loop = false |
Set true for baseline correction during data reading. Needs to be called before ReadFile(). | |
![]() | |
virtual void | checkData (bool isBaselineCorrection=false) const |
Primitive check to see if data has been loaded. | |
![]() | |
int | PlotChannelAverages_cnt |
Index for multiple executions of the same plotting function. | |
int | PlotWFHeatmaps_cnt |
Index for multiple executions of the same plotting function. | |
int | PrintChargeSpectrum_cnt |
Index for multiple executions of the same plotting function. | |
int | PrintWFProjection_cnt |
Index for multiple executions of the same plotting function. | |
Class containing experimental functions.
Definition at line 8 of file Experimental.h.
|
inline |
Initializer will call initializer of ReadRun class.
no_of_bin_files_to_read |
Definition at line 12 of file Experimental.h.
void Experimental::DerivativeAll | ( | ) |
Derivative of all waveforms.
Calculates the forward differences. Reduces the number of bins by one for all waveforms. For testing purposes.
Definition at line 51 of file Experimental.cc.
Rebin the data to test bandwidth effects. Will combine an integer number of bins into a new, wider bin and divide the new bin content by the integer number to preserve the shape and integral.
CAUTION: Not tested with all functions.
Please note that PlotChannelSums() is calculated while parsing the data - before rebinning. Use PlotChannelAverages() instead.
ngroup | Integer number of bins to combine. |
sigma_noise | Add gaussian noise with sigma_noise to rebinned data. |
seed | Seed for the noise random number generator. |
Definition at line 14 of file Experimental.cc.