#include <FdPulseFinder.h>
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 | |
fwk::VModule::ResultFlag | Finish () override |
Finish: invoked at end of the run (NOT end of the event) More... | |
utl::Stopwatch & | GetStopwatch () |
const utl::Stopwatch & | GetStopwatch () 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) |
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 | |
bool | FindAdditionalPulse (fevt::Pixel &pixel, const fevt::Eye &eye, const evt::ShowerFRecData &frec) const |
bool | FindBestSignalOverNoise (fevt::Pixel &pixel, const int start, const int stop) const |
bool | FindPulse (fevt::Pixel &pixel) |
true if pulse is found More... | |
REGISTER_MODULE ("FdPulseFinderOG", FdPulseFinder) | |
Private Attributes | |
int | fCountBoundsErr = 0 |
int | fCountFlt = 0 |
int | fCountNoRecData = 0 |
int | fCountNoTrigData = 0 |
int | fCountPix = 0 |
int | fCountPulsed = 0 |
int | fMaxWindowLength = 0 |
maximum width of signal assumed to search fluo pulses More... | |
int | fMaxWindowLengthTime = 0 |
double | fMinSnRatio = 0 |
minimum S/N Ratio to define a pulse More... | |
int | fMinWindowLength = 0 |
minimum width of signal assumed to search fluo pulses More... | |
int | fMinWindowLengthTime = 0 |
unsigned int | fOffset = 0 |
offset from trigger used to search for pulses More... | |
unsigned int | fOffsetTime = 0 |
bool | fuseAllPixels = false |
use also non FLT pixels More... | |
int | fVerbosity = 0 |
output control More... | |
Definition at line 28 of file FdPulseFinder.h.
|
protectedinherited |
|
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. |
|
inherited |
|
private |
Definition at line 687 of file FdPulseFinder.cc.
References Angle(), utl::Cross(), utl::deg, fdet::Telescope::GetCamera(), fevt::PixelRecData::GetCentroid(), fevt::PixelRecData::GetChi_i(), fevt::EyeRecData::GetChiZero(), fdet::Pixel::GetDirection(), fdet::FDetector::GetEye(), fdet::Eye::GetEyeCoordinateSystem(), fdet::Camera::GetFADCBinSize(), fdet::Camera::GetFADCTraceLength(), fevt::Pixel::GetId(), fdet::FDetector::GetPixel(), fevt::Pixel::GetRecData(), fevt::Eye::GetRecData(), fevt::EyeRecData::GetRp(), fevt::EyeRecData::GetSDP(), fevt::Eye::GetTelescope(), fdet::FDetector::GetTelescope(), fevt::Pixel::GetTelescopeId(), fevt::Telescope::GetTimeOffset(), fevt::EyeRecData::GetTZero(), fevt::Pixel::HasRecData(), INFO, utl::kSpeedOfLight, and fevt::PixelRecData::PulseIsFound().
|
private |
Definition at line 485 of file FdPulseFinder.cc.
References utl::abs(), fdet::Telescope::GetCamera(), fdet::Pixel::GetChannelId(), fdet::Camera::GetCutoffFrequency(), fdet::Pixel::GetDiaPhoton2PEFactor(), fdet::FDetector::GetEye(), fevt::Pixel::GetEyeId(), fdet::Camera::GetFADCBinSize(), fdet::Camera::GetGainVariance(), fevt::Pixel::GetId(), fevt::PixelRecData::GetPhotonTrace(), fdet::FDetector::GetPixel(), fevt::Pixel::GetRecData(), fdet::FDetector::GetReferenceLambda(), fevt::PixelRecData::GetRMS(), utl::Trace< T >::GetStart(), utl::Trace< T >::GetStop(), fdet::Eye::GetTelescope(), fevt::Pixel::GetTelescopeId(), utl::kPi, std::pow(), fevt::PixelRecData::SetCentroid(), fevt::PixelRecData::SetPulseFound(), fevt::PixelRecData::SetPulseStart(), fevt::PixelRecData::SetPulseStop(), fevt::PixelRecData::SetTotalCharge(), utl::Sqr(), and sqrt().
|
private |
true if pulse is found
/brief Locate Fluorescence Pulse in pixel (FS, 2006/05/05): If full FLT information is available, the FLT triggered section containing the 'biggest' signal (section integral) is searched. In this section the bin with the highest signal is located and the pulse is searched between (maxSignalBin-fOffset) and (maxSignalBin+fOffset).
(FS, 2006/09/08): The additional time added to the triggered section by the FLT (default: 20 microseconds) is subtracted if the minimal section length in the pixel exceeds this additional time. If triggered sections with shorter lengths are found in the pixel (as in some 2004 data), the biggest triggered section is taken as a whole, but the Offset to search for the pulse is extended by the additional FLT time in order to search the whole section for a pulse. RU 2007/02/20: The latter section refers to SLT trigger info only. The FLT per pixel data does not account for any FLT prolongation and really reflects the triggered time bins
If FLT information not available: Given t_trig the time of the first FLT, the search takes place between (t_trig - offset) and (t_trig + offset).
Common part: The window [pulseStart,pulseStop] that maximizes S/N is searched The window can have minimum length of fMinWindowLength and maximum of fMaxWindowLength
Definition at line 254 of file FdPulseFinder.cc.
References ERROR, utl::Trace< T >::GetBinning(), fdet::Telescope::GetCamera(), fdet::Pixel::GetChannelId(), fdet::FDetector::GetEye(), fdet::Pixel::GetEyeId(), fevt::PixelRecData::GetFirstTriggeredTimeBin(), fdet::Camera::GetFLTBoxcarSumLength(), fevt::PixelTriggerData::GetFLTTrace(), fevt::Pixel::GetId(), fevt::PixelRecData::GetPhotonTrace(), fdet::FDetector::GetPixel(), fevt::Pixel::GetRecData(), utl::Trace< T >::GetSize(), utl::Trace< T >::GetStart(), utl::Trace< T >::GetStop(), fdet::Eye::GetTelescope(), fdet::Pixel::GetTelescopeId(), fevt::Pixel::GetTriggerData(), fevt::Pixel::HasRecData(), fevt::Pixel::HasTriggerData(), INFO, and ns.
|
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 225 of file FdPulseFinder.cc.
References io::eSuccess.
|
staticinherited |
Definition at line 8 of file VModule.cc.
References fwk::VModule::eBreakLoop, fwk::VModule::eContinueLoop, fwk::VModule::eFailure, and fwk::VModule::eSuccess.
Referenced by fwk::RunController::DoNextInSequence(), fwk::RunController::FinishBranch(), and fwk::RunController::InitBranch().
|
inlineinherited |
Definition at line 106 of file VModule.h.
References fwk::VModule::fStopwatch.
|
inlineinherited |
Definition at line 107 of file VModule.h.
References fwk::VModule::fStopwatch.
|
inherited |
Retrieve different sorts of module version info.
Definition at line 26 of file VModule.cc.
Referenced by fwk::CentralConfig::GetConfig(), ThresholdCalculatorKG::ThresholdCalculator::Init(), fdDoubleBumpFinder::FdDoubleBumpFinder::Init(), LaserGeneratorNA::LaserGenerator::Init(), LaserLightSimulatorNA::LaserLightSimulator::Init(), FdElectronicsSimulatorOG::FdElectronicsSimulator::Init(), TelescopeSimulatorKG::TelescopeSimulator::Init(), TelescopeSimulatorKG2::TelescopeSimulator::Init(), SdSimpleSimKG::SdSimpleSim::Init(), ShowerPhotonGeneratorOG::ShowerPhotonGenerator::Init(), and testRunController::testModuleVersionInfo().
|
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 60 of file FdPulseFinder.cc.
References ERROR, io::eSuccess, utl::Branch::GetChild(), utl::Branch::GetData(), fwk::CentralConfig::GetTopBranch(), INFO, and ns.
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
private |
|
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 99 of file FdPulseFinder.cc.
References fevt::EyeRecData::AddPulsedPixel(), io::eSuccess, fevt::FEvent::EyesBegin(), fevt::FEvent::EyesEnd(), fdet::Telescope::GetCamera(), fdet::Camera::GetFADCBinSize(), evt::ShowerRecData::GetFRecShower(), fevt::EyeRecData::GetFRecShower(), fevt::EyeRecData::GetNPulsedPixels(), evt::Event::GetRecShower(), fdet::FDetector::GetTelescope(), evt::Event::HasFEvent(), fevt::EyeRecData::HasFRecShower(), evt::Event::HasRecShower(), INFO, fevt::EyeRecData::PulsedPixelsBegin(), fevt::EyeRecData::PulsedPixelsEnd(), fevt::EyeRecData::RemovePulsedPixel(), fevt::EyeRecData::RemoveSDPPixel(), fevt::EyeRecData::RemoveTimeFitPixel(), fevt::EyeRecData::SDPPixelsBegin(), fevt::EyeRecData::SDPPixelsEnd(), fevt::EyeRecData::TimeFitPixelsBegin(), and fevt::EyeRecData::TimeFitPixelsEnd().
|
inlineinherited |
Definition at line 98 of file VModule.h.
References fwk::VModule::fStopwatch, fwk::VModule::Run(), utl::Stopwatch::Start(), and utl::Stopwatch::Stop().
Referenced by fwk::RunController::DoNextInSequence().
|
mutableprivate |
Definition at line 68 of file FdPulseFinder.h.
|
mutableprivate |
Definition at line 64 of file FdPulseFinder.h.
|
mutableprivate |
Definition at line 66 of file FdPulseFinder.h.
|
mutableprivate |
Definition at line 67 of file FdPulseFinder.h.
|
mutableprivate |
Definition at line 63 of file FdPulseFinder.h.
|
mutableprivate |
Definition at line 65 of file FdPulseFinder.h.
|
protectedinherited |
Definition at line 123 of file VModule.h.
Referenced by RdChannelASCIINoiseImporterRD::RdChannelASCIINoiseImporterRD::Init(), Rd2dLDFFitter::Rd2dLDFFitter::Init(), RdChannelNoiseImporter_AERA::RdChannelNoiseImporter_AERA::Init(), and Rd2dLDFFitter::Rd2dLDFFitter::Run().
|
private |
maximum width of signal assumed to search fluo pulses
Definition at line 59 of file FdPulseFinder.h.
|
private |
Definition at line 60 of file FdPulseFinder.h.
|
private |
minimum S/N Ratio to define a pulse
Definition at line 48 of file FdPulseFinder.h.
|
private |
minimum width of signal assumed to search fluo pulses
Definition at line 55 of file FdPulseFinder.h.
|
private |
Definition at line 56 of file FdPulseFinder.h.
|
private |
offset from trigger used to search for pulses
Definition at line 51 of file FdPulseFinder.h.
|
private |
Definition at line 52 of file FdPulseFinder.h.
|
private |
use also non FLT pixels
Definition at line 45 of file FdPulseFinder.h.
|
private |
output control
Definition at line 42 of file FdPulseFinder.h.