#ifndef EDGEMODEL_H_ #define EDGEMODEL_H_ // //----------------------------------------------------------------------- /// @copyright /// (c) Copyright 2008 by GATS, Inc., /// 11864 Canon Blvd, Suite 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. /// //----------------------------------------------------------------------- /// /// @file SolarEdgeModel.h /// /// @author John Burton /// /// @date Thu May 8 14:06:58 2008 /// //----------------------------------------------------------------------- // //----------------------------------------------------------------------- // Include Files: //----------------------------------------------------------------------- // #include #include "EventVar.h" #include "EventVarVect.h" #include "ConfigFile.h" #include "XAxisFunctor.h" // //----------------------------------------------------------------------- // Constants, Defines, Macros and Type Definitions: //----------------------------------------------------------------------- // // //----------------------------------------------------------------------- // Global Variables: //----------------------------------------------------------------------- // // //----------------------------------------------------------------------- // Class Definition: //----------------------------------------------------------------------- // class EdgeModel { // //----------------------------------------------------------------------- // Private Members: //----------------------------------------------------------------------- // private: double a0_; double a1_; double a2_; double a3_; ConfigFile cf_; std::string section_; EventVar Grid_; EventVar EdgeModel_; EventVar Sample_; EventVar Location_; // void lmDegreeOfFit(int n_par, double *par, int m_dat, double *fvec, // void *data, int iflag, int iter, int nfev); // void lmEvaluate(double *par, int m_dat, double *fvec, void *data, int *info); // double lmFitEdge(double *par, double loc); // double Boltzmann(double x, double a0, double a1, double a2, double a3); // //----------------------------------------------------------------------- // Protected Members: //----------------------------------------------------------------------- // protected: // //----------------------------------------------------------------------- // Public Members: //----------------------------------------------------------------------- // public: EdgeModel(ConfigFile &cf, std::string section); EdgeModel(EventVar &sample, EventVar &location, double &topedge, double &bottomedge); EventVar findEdge(void); EventVar findEdge(EventVar &sample, EventVar &location, double &topedge, double &bottomedge); EventVar findEdge(double &a0, double &a1, double &a2, double &a3); void setTransmissionModel(EventVar &ImpactAngle, EventVar &Transmission); void attenuateEdgeModel(double &topedge_ia, double &bottomedge_ia); void attenuateEdgeModel(void); }; // end class EdgeModel #endif