BIE |
/home/weinberg/src/BIE/include/GalaxyModelOneDHashed.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef GalaxyModelOneDHashed_h 00004 #define GalaxyModelOneDHashed_h 00005 00006 #include "hash_map.h" 00007 00008 #include <gaussQ.h> 00009 #include <Model.h> 00010 #include <Histogram1D.h> 00011 #include <CacheGalaxyModel.h> 00012 00013 #include "Serializable.h" 00014 00015 00016 namespace BIE { 00017 00018 //+ CLICLASS GalaxyModelOneDHashed SUPER Model 00020 class GalaxyModelOneDHashed : public Model 00021 { 00022 public: 00023 00024 //+ CLICONSTR int int SampleDistribution* 00026 GalaxyModelOneDHashed(int ndim, int mdim, SampleDistribution *_dist); 00027 00029 ~GalaxyModelOneDHashed(); 00030 00031 //+ CLIMETHOD void SetKnots int 00033 void SetKnots(int num) 00034 { 00035 NUM = num; 00036 delete intgr; 00037 intgr = new JacoQuad(NUM, ALPHA, BETA); 00038 } 00039 00040 //+ CLIMETHOD void LogLineOfSight double 00042 void LogLineOfSight(double Smin) 00043 { 00044 logs = true; 00045 smin = Smin; 00046 } 00047 00048 //+ CLIMETHOD void LinearLineOfSight 00050 void LinearLineOfSight() 00051 { 00052 logs = false; 00053 } 00054 00055 //+ CLIMETHOD void SetExtinction double double 00057 void SetExtinction(double A, double Z) {A1 = A; Z1 = Z;} 00058 00060 00061 00062 void Initialize(State&); 00064 void Initialize(vector<double>& w, vector< vector<double> >& p); 00066 00068 void ResetCache() {} 00069 00071 virtual double NormEval(double x, double y, SampleDistribution *d=NULL); 00072 00074 vector<double> Evaluate(double x, double y, SampleDistribution *d=NULL); 00075 00077 string ParameterDescription(int i); 00078 00080 int DataDimension() { return 1; } 00081 00082 00085 00087 static double A1; 00088 00090 static double Z1; 00091 00093 static double K0; 00094 00096 static double SIGK; 00097 00099 static int NUM; 00100 00105 00106 static double ALPHA; 00108 static double BETA; 00110 00112 static double R0; 00113 00115 static double RMAX; 00116 00118 static double AK; 00119 00121 00122 00123 static double AMIN; // Defaults: 0.2 00125 static double AMAX; // 8.0 00127 static double HMIN; // 50.0 00129 static double HMAX; // 1200.0 00131 00133 00134 00135 static bool logs; // Default: false 00137 static double smin; // Default: 0.01 00139 00141 00142 protected: 00143 00145 00146 00147 static double Log10; 00149 static double onedeg; 00151 00153 int M; 00154 00156 int Mcur; 00157 00159 int Ndim; 00160 00162 00163 00164 static const char* LENGTH_FIELDNAME; 00166 static const char* HEIGHT_FIELDNAME; 00168 static const char* PARAM_NAMES[]; 00170 00172 00173 00174 int nbins; 00176 vector<double> lowb; 00178 vector<double> highb; 00180 00182 JacoQuad *intgr; 00183 00185 vector<double> wt; 00186 00188 vector< vector<double> > pt; 00189 00191 virtual CacheGalaxyModel* 00192 generate(const coordPair &, SampleDistribution *sd=NULL); 00193 00195 virtual CacheGalaxyModel* 00196 compute_bins(const coordPair &, SampleDistribution *sd); 00197 00199 bool good_bounds; 00200 00202 void check_bounds(); 00203 00205 mmapGalCM cache; 00206 00208 coordPair lastP; 00209 00211 int missed; 00212 00214 EvalType type; 00215 00216 // AUTO GENERATED BY ../persistence/autopersist.py 00217 protected: 00218 GalaxyModelOneDHashed() {} 00219 private: 00220 friend class boost::serialization::access; 00221 template<class Archive> 00222 void serialize(Archive & ar, const unsigned int version) { 00223 this->pre_serialize(ar, version); 00224 try { 00225 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Model); 00226 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00227 } 00228 try { 00229 ar & BOOST_SERIALIZATION_NVP(A1); 00230 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00231 } 00232 try { 00233 ar & BOOST_SERIALIZATION_NVP(Z1); 00234 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00235 } 00236 try { 00237 ar & BOOST_SERIALIZATION_NVP(K0); 00238 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00239 } 00240 try { 00241 ar & BOOST_SERIALIZATION_NVP(SIGK); 00242 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00243 } 00244 try { 00245 ar & BOOST_SERIALIZATION_NVP(NUM); 00246 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00247 } 00248 try { 00249 ar & BOOST_SERIALIZATION_NVP(ALPHA); 00250 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00251 } 00252 try { 00253 ar & BOOST_SERIALIZATION_NVP(BETA); 00254 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00255 } 00256 try { 00257 ar & BOOST_SERIALIZATION_NVP(R0); 00258 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00259 } 00260 try { 00261 ar & BOOST_SERIALIZATION_NVP(RMAX); 00262 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00263 } 00264 try { 00265 ar & BOOST_SERIALIZATION_NVP(AK); 00266 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00267 } 00268 try { 00269 ar & BOOST_SERIALIZATION_NVP(AMIN); 00270 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00271 } 00272 try { 00273 ar & BOOST_SERIALIZATION_NVP(AMAX); 00274 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00275 } 00276 try { 00277 ar & BOOST_SERIALIZATION_NVP(HMIN); 00278 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00279 } 00280 try { 00281 ar & BOOST_SERIALIZATION_NVP(HMAX); 00282 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00283 } 00284 try { 00285 ar & BOOST_SERIALIZATION_NVP(logs); 00286 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00287 } 00288 try { 00289 ar & BOOST_SERIALIZATION_NVP(smin); 00290 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00291 } 00292 try { 00293 ar & BOOST_SERIALIZATION_NVP(Log10); 00294 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00295 } 00296 try { 00297 ar & BOOST_SERIALIZATION_NVP(onedeg); 00298 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00299 } 00300 try { 00301 ar & BOOST_SERIALIZATION_NVP(M); 00302 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00303 } 00304 try { 00305 ar & BOOST_SERIALIZATION_NVP(Mcur); 00306 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00307 } 00308 try { 00309 ar & BOOST_SERIALIZATION_NVP(Ndim); 00310 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00311 } 00312 try { 00313 ar & BOOST_SERIALIZATION_NVP(nbins); 00314 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00315 } 00316 try { 00317 ar & BOOST_SERIALIZATION_NVP(lowb); 00318 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00319 } 00320 try { 00321 ar & BOOST_SERIALIZATION_NVP(highb); 00322 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00323 } 00324 try { 00325 ar & BOOST_SERIALIZATION_NVP(intgr); 00326 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00327 } 00328 try { 00329 ar & BOOST_SERIALIZATION_NVP(wt); 00330 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00331 } 00332 try { 00333 ar & BOOST_SERIALIZATION_NVP(pt); 00334 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00335 } 00336 try { 00337 ar & BOOST_SERIALIZATION_NVP(good_bounds); 00338 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00339 } 00340 try { 00341 ar & BOOST_SERIALIZATION_NVP(cache); 00342 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00343 } 00344 try { 00345 ar & BOOST_SERIALIZATION_NVP(lastP); 00346 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00347 } 00348 try { 00349 ar & BOOST_SERIALIZATION_NVP(missed); 00350 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00351 } 00352 try { 00353 ar & BOOST_SERIALIZATION_NVP(type); 00354 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00355 } 00356 this->post_serialize(ar, version); 00357 } 00358 00359 }; 00360 00361 } 00362 00363 BIE_CLASS_TYPE_INFO(BIE::GalaxyModelOneDHashed) 00364 BIE_CLASS_EXPORT_KEY(BIE::GalaxyModelOneDHashed) 00365 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|