HOPS
HOPS class reference
Public Member Functions | Static Public Member Functions | List of all members
hops::MHO_DiFXOvexPatcher Class Reference

takes care of all the wierd structural fix-ups that turn a freshly-parsed VEX json into the special OVEX flavor the HOPS3 ovex parser will accept. Needed to make fourfit3 happy reading the root.json produced by difx2hops -k. Does the following: More...

#include <MHO_DiFXOvexPatcher.hh>

Public Member Functions

 MHO_DiFXOvexPatcher ()
 
const std::map< std::string, std::string > & GetDiFX2VexStationCodes () const
 
const std::map< std::string, std::string > & GetDiFX2VexStationNames () const
 
void Patch (mho_json &vex_root, const std::string &mode_name)
 
void SetDiFXInputData (const mho_json *input)
 
void SetExperimentNumber (int n)
 
void SetStationCodeMap (MHO_StationCodeMap *m)
 
void SetZoomBandRebuilder (MHO_DiFXZoomBandRebuilder *zb)
 

Static Public Member Functions

static std::string ComputeFourfitReftime (const mho_json &scan_obj)
 

Detailed Description

takes care of all the wierd structural fix-ups that turn a freshly-parsed VEX json into the special OVEX flavor the HOPS3 ovex parser will accept. Needed to make fourfit3 happy reading the root.json produced by difx2hops -k. Does the following:

Author
J. Barrett - barre.nosp@m.ttj@.nosp@m.mit.e.nosp@m.du
Date
Fri May 22 03:56:07 PM EDT 2026
  • stamp $EXPER.exper_num and target_correlator = "difx"
  • clear $DAS and station $DAS links (HOPS3 ovex can't parse them)
  • assign mk4_site_ID for every $SITE and build the DiFX-uppercase -> VEX-case station code / name maps consumed downstream
  • wrap $ANTENNA.axis_offset in the {axis_type, offset} struct
  • link $STATION entries to their $CLOCK keyword
  • synthesize $TRACKS from datastream quantBits and relink $MODE.$TRACKS
  • link $GLOBAL.$EOP to the first $EOP (or a dummy)
  • delegate zoom-band $FREQ/$BBC/$IF synthesis to MHO_DiFXZoomBandRebuilder
  • rewrite chan_def.phase_cal_id to match the station's $PHASE_CAL_DETECT (if not then fourfit3 do_phase_cal_detect.c aborts)
  • stamp the boilerplate $EVEX/$CORR_INIT/$LOG/$PBS_INIT junk that HOPS3 expects

Constructor & Destructor Documentation

◆ MHO_DiFXOvexPatcher()

hops::MHO_DiFXOvexPatcher::MHO_DiFXOvexPatcher ( )
inline

Member Function Documentation

◆ ComputeFourfitReftime()

std::string hops::MHO_DiFXOvexPatcher::ComputeFourfitReftime ( const mho_json scan_obj)
static

◆ GetDiFX2VexStationCodes()

const std::map< std::string, std::string >& hops::MHO_DiFXOvexPatcher::GetDiFX2VexStationCodes ( ) const
inline

◆ GetDiFX2VexStationNames()

const std::map< std::string, std::string >& hops::MHO_DiFXOvexPatcher::GetDiFX2VexStationNames ( ) const
inline

◆ Patch()

void hops::MHO_DiFXOvexPatcher::Patch ( mho_json vex_root,
const std::string &  mode_name 
)

◆ SetDiFXInputData()

void hops::MHO_DiFXOvexPatcher::SetDiFXInputData ( const mho_json input)
inline

◆ SetExperimentNumber()

void hops::MHO_DiFXOvexPatcher::SetExperimentNumber ( int  n)
inline

◆ SetStationCodeMap()

void hops::MHO_DiFXOvexPatcher::SetStationCodeMap ( MHO_StationCodeMap m)
inline

◆ SetZoomBandRebuilder()

void hops::MHO_DiFXOvexPatcher::SetZoomBandRebuilder ( MHO_DiFXZoomBandRebuilder zb)
inline

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