/*************************************************************************** * (C) Copyright 2006 by GATS, Inc. * 11864 Canon Blvd., STE 101 * Newport News, VA 23606 * * All Rights Reserved. No part of this software or publication may be * reproduced, stored in a retrieval system, or transmitted, in any form * or by any means, electronic, mechanical, photocopying, recording, or * otherwise without the prior written permission of GATS, Inc. * *************************************************************************** * * Class: RefrReg.h * * Filename: RefrReg.h * * Description: AltReg has member functions to store signals, * calculate refraction errors, and write altitude * corrected output * @author C.W.Brown * (757)952-1048 * (757)873-5920 * * ***************************************************************************/ #ifndef REFR_REG_H #define REFR_REG_H #include #include #include #include "Event.h" #include "EventVar.h" #include "ConfigFile.h" #include "AltReg.h" #include "ModelData.h" #include "NonLinearity.h" using namespace std; class RefrReg:public AltReg{ private: //void normalize(vector&); //void initializeCO2Reg(); //void finalizeCO2Reg(int, int); //void setZOffset(int, int); public: int regValidityFlag; //!< Registration Validity Flag -- Used To Pass Over Registration Rather Than THROW exception RefrReg(); //!< default constructor - Constructs an empty EphemerisClass object RefrReg(Event&, Event&, ConfigFile&, int); //!< Constructs an empty RefrReg object //!< This constructor will be used with the Solar Ephem Object ~RefrReg(); //!< default destructor void calcZImpact(); //!< Finds TP Location corresponding to AngleImpact int getZcompareIndex(); //!< Returns zComparison Index for Comparison Method double getZcompareRatio(); //!< Returns zComparison Ratio (Percentage from Index to Comparison Altitude) void getRefractionQA(double &, double&); //!< Gets Refraction Angle Quality Data From Refraction Registration int searchZImpact(); void searchValidIndices(EventVar, int&, int&); void plotRefractionAngles(); double setRatio(); void setZcompareParams(); void compareAltRegMethods(EventVarVect); // void writeOutput(Event&); // //!< Writes the Output of All Member Variables to Event Object Tmp or Level1 void writeComparisonValues(Event&); void doRefractionRegistration(Event&, ModelData&); //!< Iterate Time to Match Model Signals with Observed void interpolateRefr(ModelData&); //!< Interpolate Impact Altitude from Initial Refraction Index void interpolateRefr(); //!< Interpolate Impact Altitude from Initial Refraction Index void fillAngleImpactUp(); void fillAngleImpactDown(); void fillAngleImpact(); void getStartIndex(); void getStartIndex(ModelData&); void calcRMS(double*, int); //!< Get RMS of Refraction Reg Indices }; #endif