List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | Private Attributes
DLECorrectionWG::DLECorrection Class Reference

Module to correct Direct Light Effects in the FADC traces. More...

#include <DLECorrection.h>

Inheritance diagram for DLECorrectionWG::DLECorrection:
Inheritance graph
[legend]

Public Types

enum  ResultFlag { eSuccess, eFailure, eBreakLoop, eContinueLoop }
 Flag returned by module methods to the RunController. More...
 
enum  VersionInfoType {
  eFilename = 1, eRevisionNumber = 2, eDate = 3, eTime = 4,
  eLastEditor = 5
}
 Different types of version info that can be retrieved from GetVersionInfo. More...
 

Public Member Functions

 DLECorrection ()=default
 
fwk::VModule::ResultFlag Finish () override
 Finish: invoked at end of the run (NOT end of the event) More...
 
utl::StopwatchGetStopwatch ()
 
const utl::StopwatchGetStopwatch () const
 
std::string GetVersionInfo (const VersionInfoType v) const
 Retrieve different sorts of module version info. More...
 
fwk::VModule::ResultFlag Init () override
 Initialize: invoked at beginning of run (NOT beginning of event) More...
 
void InitTiming ()
 
fwk::VModule::ResultFlag Run (evt::Event &event) override
 Run: invoked once per event. More...
 
ResultFlag RunWithTiming (evt::Event &event)
 
virtual ~DLECorrection ()=default
 

Static Public Member Functions

static std::string GetResultFlagByName (const ResultFlag flag)
 

Protected Types

enum  InfoLevel { eInfoNone = 0, eInfoFinal = 1, eInfoIntermediate = 2, eInfoDebug = 3 }
 

Protected Attributes

int fInfoLevel = 0
 

Private Member Functions

void ComputeCleanedRiseFall (sevt::PMTRecData &pmtRec, const unsigned int startIntegration, const unsigned int endIntegration, const double traceIntegral) const
 
void CorrectAverageDLE (sevt::Station &station, const double theta, const double phi) const
 
void CorrectDLE (evt::Event &event) const
 
void CorrectIndividualDLE (sevt::Station &station) const
 
double EstimateSignalFluct (const sevt::PMT &pmt, const bool ishgsat, const int pos) const
 
bool FlagNegBins (const sevt::PMT &pmt) const
 
bool FlagOscBaselines (const sevt::PMT &pmt, const bool hgsat, const int saturationValue) const
 
double GetFCorr (const int pmtId, const double theta, const double phi) const
 
 REGISTER_MODULE ("DLECorrectionWG", DLECorrection)
 
bool SelectPMT (const sevt::PMT &pmt, const bool lgsat, const bool hgsat, const unsigned int saturationValue) const
 

Private Attributes

std::string fAsymmParA
 
std::string fAsymmParB
 
double fBinSize = 0
 
bool fCalcCorrSignalRiseFall = false
 
sevt::StationConstants::SignalComponent fCleaned = sevt::StationConstants::eTotal
 
sevt::StationConstants::SignalComponent fComponent = sevt::StationConstants::eTotal
 
bool fCorrectHGSat = false
 
double fDLEFilterThreshold = 0
 
int fDLEMinNPMTs = 0
 
double fDLESignalThreshold = 0
 
bool fDoCorrectionAverage = false
 
bool fDoCorrectionIndividual = false
 
bool fExcludeBadTraces = false
 
bool fExcludeBadTracesCalc = false
 
std::vector< int > fExcludeStations
 
std::pair< double, double > fFallTimeFractions = { 0, 0 }
 
TFormula * fFormulaDLEParA = nullptr
 
TFormula * fFormulaDLEParB = nullptr
 
int fNegSignalThr = 0
 
int fOscOffset = 0
 
double fOscThrHG = 0
 
double fOscThrLG = 0
 
bool fOverwriteVEMTrace = false
 
std::pair< double, double > fRiseTimeFractions = { 0, 0 }
 
double fShiftPMT1 = 0
 
double fShiftPMT2 = 0
 
double fShiftPMT3 = 0
 
unsigned int fTraceSize = 0
 

Detailed Description

Module to correct Direct Light Effects in the FADC traces.

Author
Nicole Krohm
Date
27 Feb 2014

For details see thesis (GAP 2017-xxx). The frame of the module has been adopted from DLECorrectionGG. Parametrizations of the average DLE correcion have been updated. The method to correct individual DLE instances has been revisited. The order of the corrections has been inverted to: individual, average. Several options have been added.

Definition at line 53 of file DLECorrectionWG/DLECorrection.h.

Member Enumeration Documentation

enum fwk::VModule::InfoLevel
protectedinherited
Enumerator
eInfoNone 
eInfoFinal 
eInfoIntermediate 
eInfoDebug 

Definition at line 125 of file VModule.h.

enum fwk::VModule::ResultFlag
inherited

Flag returned by module methods to the RunController.

Enumerator
eSuccess 

Report success to RunController.

eFailure 

Report failure to RunController, causing RunController to terminate execution.

eBreakLoop 

Break current loop. It works for nested loops too!

eContinueLoop 

Skip remaining modules in the current loop and continue with next iteration of the loop.

Definition at line 60 of file VModule.h.

Different types of version info that can be retrieved from GetVersionInfo.

Enumerator
eFilename 
eRevisionNumber 
eDate 
eTime 
eLastEditor 

Definition at line 110 of file VModule.h.

Constructor & Destructor Documentation

DLECorrectionWG::DLECorrection::DLECorrection ( )
default
virtual DLECorrectionWG::DLECorrection::~DLECorrection ( )
virtualdefault

Member Function Documentation

void DLECorrection::ComputeCleanedRiseFall ( sevt::PMTRecData pmtRec,
const unsigned int  startIntegration,
const unsigned int  endIntegration,
const double  traceIntegral 
) const
private
void DLECorrection::CorrectAverageDLE ( sevt::Station station,
const double  theta,
const double  phi 
) const
private
void DLECorrectionWG::DLECorrection::CorrectDLE ( evt::Event event) const
private
void DLECorrection::CorrectIndividualDLE ( sevt::Station station) const
private
double DLECorrection::EstimateSignalFluct ( const sevt::PMT pmt,
const bool  ishgsat,
const int  pos 
) const
private
VModule::ResultFlag DLECorrection::Finish ( )
overridevirtual

Finish: invoked at end of the run (NOT end of the event)

This method is for things that should be done at the end of the run (for example, closing files or writing out histograms) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 739 of file DLECorrectionWG/DLECorrection.cc.

References io::eSuccess.

bool DLECorrection::FlagNegBins ( const sevt::PMT pmt) const
private
bool DLECorrection::FlagOscBaselines ( const sevt::PMT pmt,
const bool  hgsat,
const int  saturationValue 
) const
private
double DLECorrection::GetFCorr ( const int  pmtId,
const double  theta,
const double  phi 
) const
private

Definition at line 191 of file DLECorrectionWG/DLECorrection.cc.

References utl::deg.

std::string fwk::VModule::GetResultFlagByName ( const ResultFlag  flag)
staticinherited
utl::Stopwatch& fwk::VModule::GetStopwatch ( )
inlineinherited

Definition at line 106 of file VModule.h.

References fwk::VModule::fStopwatch.

const utl::Stopwatch& fwk::VModule::GetStopwatch ( ) const
inlineinherited

Definition at line 107 of file VModule.h.

References fwk::VModule::fStopwatch.

std::string fwk::VModule::GetVersionInfo ( const VersionInfoType  v) const
inherited
VModule::ResultFlag DLECorrection::Init ( )
overridevirtual

Initialize: invoked at beginning of run (NOT beginning of event)

This method is for things that should be done once at the beginning of a run (for example, booking histograms, performing calculations that need to be done only once, initializing parameters) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 432 of file DLECorrectionWG/DLECorrection.cc.

References utl::deg, sevt::StationConstants::eDirectLightSubtracted, ERROR, io::eSuccess, sevt::StationConstants::eTotal, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), and INFO.

void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().

DLECorrectionWG::DLECorrection::REGISTER_MODULE ( "DLECorrectionWG"  ,
DLECorrection   
)
private
VModule::ResultFlag DLECorrection::Run ( evt::Event event)
overridevirtual

Run: invoked once per event.

This method is for things that should be done once per event {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 551 of file DLECorrectionWG/DLECorrection.cc.

References io::eSuccess, evt::Event::HasRecShower(), and evt::Event::HasSEvent().

ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
bool DLECorrection::SelectPMT ( const sevt::PMT pmt,
const bool  lgsat,
const bool  hgsat,
const unsigned int  saturationValue 
) const
private

Member Data Documentation

std::string DLECorrectionWG::DLECorrection::fAsymmParA
private

Definition at line 101 of file DLECorrectionWG/DLECorrection.h.

std::string DLECorrectionWG::DLECorrection::fAsymmParB
private

Definition at line 102 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fBinSize = 0
private

Definition at line 85 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fCalcCorrSignalRiseFall = false
private

Definition at line 89 of file DLECorrectionWG/DLECorrection.h.

sevt::StationConstants::SignalComponent DLECorrectionWG::DLECorrection::fCleaned = sevt::StationConstants::eTotal
private

Definition at line 113 of file DLECorrectionWG/DLECorrection.h.

sevt::StationConstants::SignalComponent DLECorrectionWG::DLECorrection::fComponent = sevt::StationConstants::eTotal
private

Definition at line 112 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fCorrectHGSat = false
private

Definition at line 94 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fDLEFilterThreshold = 0
private

Definition at line 95 of file DLECorrectionWG/DLECorrection.h.

int DLECorrectionWG::DLECorrection::fDLEMinNPMTs = 0
private

Definition at line 97 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fDLESignalThreshold = 0
private

Definition at line 96 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fDoCorrectionAverage = false
private

Definition at line 93 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fDoCorrectionIndividual = false
private

Definition at line 92 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fExcludeBadTraces = false
private

Definition at line 104 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fExcludeBadTracesCalc = false
private

Definition at line 105 of file DLECorrectionWG/DLECorrection.h.

std::vector<int> DLECorrectionWG::DLECorrection::fExcludeStations
private

Definition at line 103 of file DLECorrectionWG/DLECorrection.h.

std::pair<double, double> DLECorrectionWG::DLECorrection::fFallTimeFractions = { 0, 0 }
private

Definition at line 91 of file DLECorrectionWG/DLECorrection.h.

TFormula* DLECorrectionWG::DLECorrection::fFormulaDLEParA = nullptr
private

Definition at line 114 of file DLECorrectionWG/DLECorrection.h.

TFormula* DLECorrectionWG::DLECorrection::fFormulaDLEParB = nullptr
private

Definition at line 115 of file DLECorrectionWG/DLECorrection.h.

int fwk::VModule::fInfoLevel = 0
protectedinherited
int DLECorrectionWG::DLECorrection::fNegSignalThr = 0
private

Definition at line 109 of file DLECorrectionWG/DLECorrection.h.

int DLECorrectionWG::DLECorrection::fOscOffset = 0
private

Definition at line 108 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fOscThrHG = 0
private

Definition at line 106 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fOscThrLG = 0
private

Definition at line 107 of file DLECorrectionWG/DLECorrection.h.

bool DLECorrectionWG::DLECorrection::fOverwriteVEMTrace = false
private

Definition at line 88 of file DLECorrectionWG/DLECorrection.h.

std::pair<double, double> DLECorrectionWG::DLECorrection::fRiseTimeFractions = { 0, 0 }
private

Definition at line 90 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fShiftPMT1 = 0
private

Definition at line 98 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fShiftPMT2 = 0
private

Definition at line 99 of file DLECorrectionWG/DLECorrection.h.

double DLECorrectionWG::DLECorrection::fShiftPMT3 = 0
private

Definition at line 100 of file DLECorrectionWG/DLECorrection.h.

unsigned int DLECorrectionWG::DLECorrection::fTraceSize = 0
private

Definition at line 84 of file DLECorrectionWG/DLECorrection.h.


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.