API
 
Loading...
Searching...
No Matches
modalGainOpt.hpp File Reference

The MagAO-X PSD-based gain optimizer header file. More...

#include <algorithm>
#include <atomic>
#include <cctype>
#include <mx/ao/analysis/clAOLinearPredictor.hpp>
#include <mx/ao/analysis/clGainOpt.hpp>
#include <mx/mxException.hpp>
#include "modalPsdProcessor.hpp"
#include "../../libMagAOX/libMagAOX.hpp"
#include "../../magaox_git_version.h"
Include dependency graph for modalGainOpt.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MagAOX::app::psdShmimT
 
struct  MagAOX::app::freqShmimT
 
struct  MagAOX::app::gainFactShmimT
 
struct  MagAOX::app::multFactShmimT
 
struct  MagAOX::app::pcGainFactShmimT
 
struct  MagAOX::app::pcMultFactShmimT
 
struct  MagAOX::app::numpccoeffShmimT
 
struct  MagAOX::app::acoeffShmimT
 
struct  MagAOX::app::bcoeffShmimT
 
struct  MagAOX::app::gainCalShmimT
 
struct  MagAOX::app::gainCalFactShmimT
 
struct  MagAOX::app::tauShmimT
 
struct  MagAOX::app::noiseShmimT
 
struct  MagAOX::app::wfsavgShmimT
 Tag type for the live WFS average shmim monitor. More...
 
struct  MagAOX::app::wfsmaskShmimT
 Tag type for the WFS mask shmim monitor. More...
 
class  MagAOX::app::modalGainOpt
 The MagAO-X PSD-based gain optimizer. More...
 

Namespaces

namespace  MagAOX
 
namespace  MagAOX::app
 

Macros

#define MGO_BREADCRUMB
 

Typedefs

typedef modalPsdProcessor< float > MagAOX::app::processPsdProcessorT
 

Functions

std::string MagAOX::app::olProcessMethodElement (int method)
 
std::string MagAOX::app::olProcessMethodLabel (int method)
 
std::string MagAOX::app::olProcessMethodName (int method)
 
int MagAOX::app::olProcessMethodFromElement (const std::string &element)
 
int MagAOX::app::olProcessMethodFromName (std::string method)
 
std::string MagAOX::app::extrapBoolString (bool value)
 
std::string MagAOX::app::extrapNoiseEstimateDomainElement (int domain)
 
std::string MagAOX::app::extrapNoiseEstimateDomainLabel (int domain)
 
std::string MagAOX::app::extrapNoiseEstimateDomainName (int domain)
 
int MagAOX::app::extrapNoiseEstimateDomainFromElement (const std::string &element)
 
int MagAOX::app::extrapNoiseEstimateDomainFromName (std::string domain)
 
std::string MagAOX::app::extrapNoiseEstimateRangeElement (int range)
 
std::string MagAOX::app::extrapNoiseEstimateRangeLabel (int range)
 
std::string MagAOX::app::extrapNoiseEstimateRangeName (int range)
 
int MagAOX::app::extrapNoiseEstimateRangeFromElement (const std::string &element)
 
int MagAOX::app::extrapNoiseEstimateRangeFromName (std::string range)
 
std::string MagAOX::app::extrapNoiseEstimateStatisticElement (int statistic)
 
std::string MagAOX::app::extrapNoiseEstimateStatisticLabel (int statistic)
 
std::string MagAOX::app::extrapNoiseEstimateStatisticName (int statistic)
 
int MagAOX::app::extrapNoiseEstimateStatisticFromElement (const std::string &element)
 
int MagAOX::app::extrapNoiseEstimateStatisticFromName (std::string statistic)
 
std::string MagAOX::app::extrapClosedLoopOlEstimateMethodElement (int method)
 
std::string MagAOX::app::extrapClosedLoopOlEstimateMethodLabel (int method)
 
std::string MagAOX::app::extrapClosedLoopOlEstimateMethodName (int method)
 
int MagAOX::app::extrapClosedLoopOlEstimateMethodFromElement (const std::string &element)
 
int MagAOX::app::extrapClosedLoopOlEstimateMethodFromName (std::string method)
 
std::string MagAOX::app::extrapPowerLawCrossoverModeElement (int mode)
 
std::string MagAOX::app::extrapPowerLawCrossoverModeLabel (int mode)
 
std::string MagAOX::app::extrapPowerLawCrossoverModeName (int mode)
 
int MagAOX::app::extrapPowerLawCrossoverModeFromElement (const std::string &element)
 
int MagAOX::app::extrapPowerLawCrossoverModeFromName (std::string mode)
 
 MagAOX::app::if (ipRecv.find("toggle"))
 
 MagAOX::app::if (ipRecv.find("request"))
 
 MagAOX::app::if (freq< 0)
 
std::lock_guard< std::mutex > MagAOX::app::lock (m_goptMutex)
 
 MagAOX::app::recordModalGainOpt (false)
 
 MagAOX::app::if (ipRecv.find(m_opticalGainElement))
 
return MagAOX::app::handleExtrapMethodProperty (ipRecv)
 
return MagAOX::app::handleExtrapNoiseEstimateDomainProperty (ipRecv)
 
return MagAOX::app::handleExtrapNoiseEstimateRangeProperty (ipRecv)
 
return MagAOX::app::handleExtrapNoiseEstimateStatisticProperty (ipRecv)
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapNoiseEstimateLowFreqMaxHz, m_extrapConfig.m_noiseEstimateLowFreqMaxHz, ipRecv, "extrap noise-estimate low-freq max hz")
 
return MagAOX::app::handleExtrapClosedLoopOlEstimateMethodProperty (ipRecv)
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawIndex, m_extrapConfig.m_powerLawIndex, ipRecv, "extrap power-law index")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawNormFreq, m_extrapConfig.m_powerLawNormFreq, ipRecv, "extrap power-law norm freq")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawMatchFreq, m_extrapConfig.m_powerLawMatchFreq, ipRecv, "extrap power-law match freq")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawMatchFallbackWindowHz, m_extrapConfig.m_powerLawMatchFallbackWindowHz, ipRecv, "extrap power-law match fallback window")
 
return MagAOX::app::handleExtrapPowerLawCrossoverModeProperty (ipRecv)
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawAutoSmoothWidthHz, m_extrapConfig.m_powerLawAutoSmoothWidthHz, ipRecv, "extrap power-law auto smooth width")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawAutoMaxFreqFraction, m_extrapConfig.m_powerLawAutoMaxFreqFraction, ipRecv, "extrap power-law auto max freq fraction")
 
return MagAOX::app::handleExtrapToggleProperty (m_indiP_extrapFitPowerLawIndex, m_extrapConfig.m_fitPowerLawIndex, ipRecv, "extrap fit power-law index")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawOnlyAboveFreq, m_extrapConfig.m_powerLawOnlyAboveFreq, ipRecv, "extrap power-law only above freq")
 
return MagAOX::app::handleExtrapToggleProperty (m_indiP_extrapPowerLawFitIncludesMatchPoint, m_extrapConfig.m_powerLawFitIncludesMatchPoint, ipRecv, "extrap fit includes match point")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawFitMinFreqHz, m_extrapConfig.m_powerLawFitMinFreqHz, ipRecv, "extrap fit min freq")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawFitMaxFreqHz, m_extrapConfig.m_powerLawFitMaxFreqHz, ipRecv, "extrap fit max freq")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawFitBinWidthHz, m_extrapConfig.m_powerLawFitBinWidthHz, ipRecv, "extrap fit bin width")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapPowerLawBlendBins, m_extrapConfig.m_powerLawBlendBins, ipRecv, "extrap power-law blend bins")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapDropoutGapFactor, m_extrapConfig.m_dropoutGapFactor, ipRecv, "extrap dropout gap factor")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapDropoutTinyFactor, m_extrapConfig.m_dropoutTinyFactor, ipRecv, "extrap dropout tiny factor")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapDropoutMaxBins, m_extrapConfig.m_dropoutMaxBins, ipRecv, "extrap dropout max bins")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapClSignificanceThreshold, m_extrapConfig.m_clSignificanceThreshold, ipRecv, "extrap CL significance threshold")
 
return MagAOX::app::handleExtrapNumberProperty (m_indiP_extrapClMinSignificantFraction, m_extrapConfig.m_clMinSignificantFraction, ipRecv, "extrap CL minimum significant fraction")
 
 MagAOX::app::if (ipRecv.find("current"))
 

Variables

static constexpr int MagAOX::app::c_olProcessNone = 0
 
static constexpr int MagAOX::app::c_olProcessLegacy = 1
 
static constexpr int MagAOX::app::c_olProcessPowerLawOnly = 2
 
static constexpr int MagAOX::app::c_olProcessMoffatPeaks = 3
 
static constexpr int MagAOX::app::c_extrapNoiseEstimateOpenLoop = 0
 
static constexpr int MagAOX::app::c_extrapNoiseEstimateClosedLoopPreXfer = 1
 
static constexpr int MagAOX::app::c_extrapNoiseEstimateHighFreq = 0
 
static constexpr int MagAOX::app::c_extrapNoiseEstimateLowFreq = 1
 
static constexpr int MagAOX::app::c_extrapNoiseEstimatePercentile = 0
 
static constexpr int MagAOX::app::c_extrapNoiseEstimateMinimum = 1
 
static constexpr int MagAOX::app::c_extrapClosedLoopOlEstimateEtfOnly = 0
 
static constexpr int MagAOX::app::c_extrapClosedLoopOlEstimateNtfAware = 1
 
static constexpr int MagAOX::app::c_extrapPowerLawCrossoverManual = 0
 
static constexpr int MagAOX::app::c_extrapPowerLawCrossoverAutoSmoothedCrossing = 1
 
float MagAOX::app::target
 
 MagAOX::app::m_opticalGain = sqrt( target )
 
 MagAOX::app::m_gainGain = target
 
 MagAOX::app::m_gainLeak = target
 

Detailed Description

The MagAO-X PSD-based gain optimizer header file.

Definition in file modalGainOpt.hpp.

Macro Definition Documentation

◆ MGO_BREADCRUMB

#define MGO_BREADCRUMB

Definition at line 42 of file modalGainOpt.hpp.