A simple SDP Finder. More...
#include "FdSDPFinderOG/FdSDPFinder.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 () |
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 () |
Initialize: invoked at beginning of run (NOT beginning of event) More... | |
void | InitTiming () |
fwk::VModule::ResultFlag | Run (evt::Event &event) |
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 | |
void | EstimateChi_i (fevt::Eye &eye) |
void | FindSDP (fevt::Eye &eye) |
utl::AxialVector | FindSDPFirstGuess (fevt::Eye &eye) |
bool | IsIsolated (const fevt::Pixel &, const fevt::Eye &eye) |
void | ReadmitPixel (fevt::Eye &eye) |
REGISTER_MODULE ("FdSDPFinderOG", FdSDPFinder) | |
void | RemoveNoise (fevt::Eye &eye) |
void | RemoveOutliers (fevt::Eye &eye) |
Static Private Member Functions | |
static void | MinuitFitFunc (int &npar, double *gin, double &f, double *par, int iflag) |
Private Attributes | |
bool | fFirstGuessFromCharge |
bool | fGoodEvent |
double | fIsolationLimit |
Time limit for pixel isolation. More... | |
double | fMaxDistance |
maximum allowed distance of pixel from trial SDP More... | |
unsigned int | fMinPixels |
minimum number of pixels to perform reconstruction More... | |
utl::Vector | fSDP |
double | fSDPCorrThetaPhi |
utl::Vector | fSDPFirstGuess |
double | fSDPPhiError |
double | fSDPThetaError |
Static Private Attributes | |
static double | fChi2 =0 |
static fevt::Eye * | fCurEye =0 |
static unsigned int | fNDof =0 |
|
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 861 of file FdSDPFinder.cc.
References Angle(), utl::cross(), fevt::PixelRecData::GetCentroid(), fdet::Pixel::GetDirection(), fdet::Eye::GetEyeCoordinateSystem(), fdet::Channel::GetFADCBinSize(), utl::BasicVector< HepVector >::GetR(), fevt::Pixel::GetRecData(), fevt::Eye::GetRecData(), fevt::Eye::GetTelescope(), fevt::Pixel::GetTelescopeId(), fevt::Telescope::GetTimeOffset(), fevt::EyeRecData::PulsedPixelsBegin(), fevt::EyeRecData::PulsedPixelsEnd(), fevt::PixelRecData::SetChi_i(), and fevt::PixelRecData::SetT_i().
|
private |
call minuit
Definition at line 396 of file FdSDPFinder.cc.
References degree, ERROR, fSDP(), fSDPPhiError(), fSDPThetaError(), fdet::Eye::GetEyeCoordinateSystem(), INFO, UnivRecNS::npar, and WARNING.
|
private |
Definition at line 231 of file FdSDPFinder.cc.
References utl::cross(), degree, fdet::FDetector::GetChannel(), fdet::Pixel::GetDirection(), fdet::FDetector::GetEye(), fdet::Eye::GetEyeCoordinateSystem(), fdet::Channel::GetFADCBinSize(), utl::AxialVector::GetMag(), fdet::FDetector::GetPixel(), fevt::Eye::GetRecData(), fevt::Eye::GetTelescope(), fdet::Channel::GetTelescopeId(), fevt::Telescope::GetTimeOffset(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), INFO, utl::AxialVector::Normalize(), fevt::EyeRecData::PulsedPixelsBegin(), fevt::EyeRecData::PulsedPixelsEnd(), and WARNING.
|
virtual |
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 219 of file FdSDPFinder.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().
|
virtual |
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 54 of file FdSDPFinder.cc.
References ERROR, io::eSuccess, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), and INFO.
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
private |
Definition at line 556 of file FdSDPFinder.cc.
References utl::abs(), Angle(), degree, fevt::PixelRecData::GetCentroid(), fdet::FDetector::GetChannel(), fdet::Pixel::GetDirection(), fdet::Channel::GetFADCBinSize(), fdet::FDetector::GetPixel(), fevt::Pixel::GetRecData(), fevt::Eye::GetRecData(), fevt::Eye::GetTelescope(), fdet::Channel::GetTelescopeId(), fevt::Pixel::GetTelescopeId(), fevt::Telescope::GetTimeOffset(), fevt::EyeRecData::PulsedPixelsBegin(), and fevt::EyeRecData::PulsedPixelsEnd().
|
staticprivate |
/brief Minimization function The function to be minimized by Minuit. The sum of the angular distances of each pixel from a trial SDP defined by its and
.
where and
is the pixel charge
Definition at line 801 of file FdSDPFinder.cc.
References Angle(), degree, fdet::Pixel::GetDirection(), fdet::Eye::GetEyeCoordinateSystem(), fevt::Pixel::GetRecData(), fevt::PixelRecData::GetTotalCharge(), utl::kPi, fevt::EyeRecData::SDPPixelsBegin(), and fevt::EyeRecData::SDPPixelsEnd().
|
private |
Check that the pixel is within an angular distance < from the trial SDP. If so, add it to the list of pixels to be used for SDP determination
Definition at line 520 of file FdSDPFinder.cc.
References utl::abs(), fevt::EyeRecData::AddSDPPixel(), Angle(), fdet::Pixel::GetDirection(), fevt::Pixel::GetId(), fevt::Eye::GetRecData(), utl::kPi, fevt::EyeRecData::PulsedPixelsBegin(), fevt::EyeRecData::PulsedPixelsEnd(), fevt::EyeRecData::SDPPixelsBegin(), and fevt::EyeRecData::SDPPixelsEnd().
|
private |
|
private |
Check that the pixel is within an angular distance < from the trial SDP. If so, add it to the list of pixels to be used for SDP determination
Definition at line 493 of file FdSDPFinder.cc.
References utl::abs(), Angle(), fdet::Pixel::GetDirection(), fevt::Eye::GetRecData(), utl::kPi, fevt::EyeRecData::RemoveSDPPixel(), fevt::EyeRecData::SDPPixelsBegin(), and fevt::EyeRecData::SDPPixelsEnd().
|
private |
Sommers and Fick, GAP 2003-045 . Funcion still experimental
Definition at line 688 of file FdSDPFinder.cc.
References utl::abs(), degree, fevt::PixelRecData::GetChi_i(), utl::TimeInterval::GetNanoSecond(), fevt::EyeRecData::GetNSDPPixels(), fevt::Pixel::GetRecData(), fevt::Eye::GetRecData(), fevt::PixelRecData::GetT_i(), fevt::Eye::HasRecData(), fevt::EyeRecData::RemoveSDPPixel(), fevt::EyeRecData::SDPPixelsBegin(), and fevt::EyeRecData::SDPPixelsEnd().
|
virtual |
Ignore eye if less than fMinPixels (datacard file
)
Implements fwk::VModule.
Definition at line 86 of file FdSDPFinder.cc.
References io::eSuccess, fevt::FEvent::EyesBegin(), fevt::FEvent::EyesEnd(), fSDP(), fSDPPhiError(), fSDPThetaError(), fevt::Eye::GetId(), fevt::EyeRecData::GetNPulsedPixels(), fevt::EyeRecData::GetNSDPPixels(), fevt::Eye::GetRecData(), evt::Event::HasFEvent(), fevt::Eye::HasRecData(), INFO, fevt::Eye::MakeRecData(), fevt::TelescopeRecData::SetSDP(), fevt::EyeRecData::SetSDP(), fevt::TelescopeRecData::SetSDPCorrThetaPhi(), fevt::EyeRecData::SetSDPCorrThetaPhi(), fevt::TelescopeRecData::SetSDPFitChiSquare(), fevt::EyeRecData::SetSDPFitChiSquare(), fevt::TelescopeRecData::SetSDPPhiError(), fevt::EyeRecData::SetSDPPhiError(), fevt::TelescopeRecData::SetSDPThetaError(), fevt::EyeRecData::SetSDPThetaError(), fevt::Eye::TelescopesBegin(), and fevt::Eye::TelescopesEnd().
|
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().
|
staticprivate |
Definition at line 66 of file FdSDPFinder.h.
|
staticprivate |
Definition at line 58 of file FdSDPFinder.h.
|
private |
use track bed charge for SDP first guess (number of pixels otherwise)
Definition at line 75 of file FdSDPFinder.h.
|
private |
Definition at line 79 of file FdSDPFinder.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 |
Time limit for pixel isolation.
Definition at line 78 of file FdSDPFinder.h.
|
private |
maximum allowed distance of pixel from trial SDP
Definition at line 72 of file FdSDPFinder.h.
|
private |
minimum number of pixels to perform reconstruction
Definition at line 70 of file FdSDPFinder.h.
|
staticprivate |
Definition at line 67 of file FdSDPFinder.h.
|
private |
Definition at line 60 of file FdSDPFinder.h.
|
private |
Definition at line 65 of file FdSDPFinder.h.
|
private |
Definition at line 61 of file FdSDPFinder.h.
|
private |
Definition at line 64 of file FdSDPFinder.h.
|
private |
Definition at line 63 of file FdSDPFinder.h.