BIE |
/home/weinberg/src/BIE/include/GalaxyModelOneD.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef GalaxyModelOneD_h 00004 #define GalaxyModelOneD_h 00005 00006 #include <deque> 00007 00008 #include <gaussQ.h> 00009 #include <Model.h> 00010 #include <Histogram1D.h> 00011 00012 #include <CacheGalaxyModel.h> 00013 00014 #include "Serializable.h" 00015 00016 00017 namespace BIE { 00018 00019 //+ CLICLASS GalaxyModelOneD SUPER Model 00028 class GalaxyModelOneD : public Model 00029 { 00030 public: 00031 00032 //+ CLICONSTR int int SampleDistribution* 00034 GalaxyModelOneD(int ndim, int mdim, SampleDistribution *_dist); 00035 00037 GalaxyModelOneD(); 00038 00040 ~GalaxyModelOneD(); 00041 00042 //+ CLIMETHOD void SetKnots int 00044 void SetKnots(int num) 00045 { 00046 NUM = num; 00047 delete intgr; 00048 intgr = new JacoQuad(NUM, ALPHA, BETA); 00049 } 00050 00051 //+ CLIMETHOD void LogLineOfSight double 00053 void LogLineOfSight(double Smin) 00054 { 00055 logs = true; 00056 smin = Smin; 00057 } 00058 00059 //+ CLIMETHOD void LinearLineOfSight 00061 void LinearLineOfSight() 00062 { 00063 logs = false; 00064 } 00065 00066 //+ CLIMETHOD void SetExtinction double double 00068 void SetExtinction(double A, double Z) {A1 = A; Z1 = Z;} 00069 00070 //+ CLIMETHOD void ExtinctionCoefficient double 00072 void ExtinctionCoefficient(double ak) { AK = ak; } 00073 00074 //+ CLIMETHOD void CacheLimit int 00076 void CacheLimit(int num) { cache_limit=num; } 00077 00078 //+ CLIMETHOD void ModelLimits double double double double 00080 void ModelLimits(double amin, double amax, double hmin, double hmax) { 00081 AMIN = amin; 00082 AMAX = amax; 00083 HMIN = hmin; 00084 HMAX = hmax; 00085 } 00086 00087 //+ CLIMETHOD void MaximumDistance double 00089 void MaximumDistance(double rmax) { RMAX=rmax; } 00090 00092 00093 00094 void Initialize(State&); 00096 void Initialize(vector<double>& w, vector< vector<double> >& p); 00098 00100 void ResetCache() {} 00101 00103 virtual double NormEval(double x, double y, SampleDistribution *d=NULL); 00104 00106 virtual double NormEval(double x, double y); 00107 00109 virtual double NormEvalMeasure(double x, double y) { return cos(y); } 00110 00112 vector<double> Evaluate(double x, double y, SampleDistribution *d=NULL); 00113 00115 string ParameterDescription(int i); 00116 00118 int DataDimension() { return 1; } 00119 00120 00123 00125 static double LMAG; 00126 00128 static double HMAG; 00129 00131 static double A1; 00132 00134 static double Z1; 00135 00137 static double K0; 00138 00140 static double SIGK; 00141 00143 static int NUM; 00144 00146 static double ALPHA; 00147 static double BETA; 00148 00150 static double R0; 00151 00152 // Maximum radius (kpc) (default 20.0) 00153 static double RMAX; 00154 00156 static double AK; 00157 00159 00160 00161 static double AMIN; // Defaults: 0.2 00163 static double AMAX; // 8.0 00165 static double HMIN; // 50.0 00167 static double HMAX; // 1200.0 00169 00171 00172 00173 static bool logs; // Default: false 00175 static double smin; // Default: 0.01 00177 00179 00180 protected: 00181 00183 00184 00185 static double Log10; 00187 static double onedeg; 00189 00191 bool cache_full; 00192 00194 unsigned int cache_limit; 00195 00197 virtual void manageCache(coordPair&); 00198 00200 int M; 00201 00203 int Mcur; 00204 00206 int Ndim; 00207 00209 00210 00211 static const char* LENGTH_FIELDNAME; 00213 static const char* HEIGHT_FIELDNAME; 00215 static const char* PARAM_NAMES[]; 00217 00219 00220 00221 int nbins; 00223 vector<double> lowb; 00225 vector<double> highb; 00227 00229 JacoQuad *intgr; 00230 00232 vector<double> wt; 00234 vector< vector<double> > pt; 00235 00237 virtual void generate(double L, double B, SampleDistribution *sd=NULL); 00238 00240 virtual void compute_bins(); 00241 00243 bool good_bounds; 00244 00246 void check_bounds(); 00247 00249 mmapGalCM cache; 00250 00252 mmapGalCM::iterator mit; 00253 00255 deque<coordPair> cacheList; 00256 00258 CacheGalaxyModel *current; 00259 00261 EvalType type; 00262 00263 // AUTO GENERATED BY ../persistence/autopersist.py 00264 private: 00265 friend class boost::serialization::access; 00266 template<class Archive> 00267 void serialize(Archive & ar, const unsigned int version) { 00268 this->pre_serialize(ar, version); 00269 try { 00270 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Model); 00271 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00272 } 00273 try { 00274 ar & BOOST_SERIALIZATION_NVP(LMAG); 00275 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00276 } 00277 try { 00278 ar & BOOST_SERIALIZATION_NVP(HMAG); 00279 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00280 } 00281 try { 00282 ar & BOOST_SERIALIZATION_NVP(A1); 00283 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00284 } 00285 try { 00286 ar & BOOST_SERIALIZATION_NVP(Z1); 00287 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00288 } 00289 try { 00290 ar & BOOST_SERIALIZATION_NVP(K0); 00291 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00292 } 00293 try { 00294 ar & BOOST_SERIALIZATION_NVP(SIGK); 00295 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00296 } 00297 try { 00298 ar & BOOST_SERIALIZATION_NVP(NUM); 00299 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00300 } 00301 try { 00302 ar & BOOST_SERIALIZATION_NVP(ALPHA); 00303 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00304 } 00305 try { 00306 ar & BOOST_SERIALIZATION_NVP(BETA); 00307 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00308 } 00309 try { 00310 ar & BOOST_SERIALIZATION_NVP(R0); 00311 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00312 } 00313 try { 00314 ar & BOOST_SERIALIZATION_NVP(RMAX); 00315 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00316 } 00317 try { 00318 ar & BOOST_SERIALIZATION_NVP(AK); 00319 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00320 } 00321 try { 00322 ar & BOOST_SERIALIZATION_NVP(AMIN); 00323 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00324 } 00325 try { 00326 ar & BOOST_SERIALIZATION_NVP(AMAX); 00327 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00328 } 00329 try { 00330 ar & BOOST_SERIALIZATION_NVP(HMIN); 00331 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00332 } 00333 try { 00334 ar & BOOST_SERIALIZATION_NVP(HMAX); 00335 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00336 } 00337 try { 00338 ar & BOOST_SERIALIZATION_NVP(logs); 00339 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00340 } 00341 try { 00342 ar & BOOST_SERIALIZATION_NVP(smin); 00343 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00344 } 00345 try { 00346 ar & BOOST_SERIALIZATION_NVP(Log10); 00347 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00348 } 00349 try { 00350 ar & BOOST_SERIALIZATION_NVP(onedeg); 00351 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00352 } 00353 try { 00354 ar & BOOST_SERIALIZATION_NVP(cache_limit); 00355 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00356 } 00357 try { 00358 ar & BOOST_SERIALIZATION_NVP(M); 00359 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00360 } 00361 try { 00362 ar & BOOST_SERIALIZATION_NVP(Mcur); 00363 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00364 } 00365 try { 00366 ar & BOOST_SERIALIZATION_NVP(Ndim); 00367 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00368 } 00369 try { 00370 ar & BOOST_SERIALIZATION_NVP(nbins); 00371 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00372 } 00373 try { 00374 ar & BOOST_SERIALIZATION_NVP(lowb); 00375 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00376 } 00377 try { 00378 ar & BOOST_SERIALIZATION_NVP(highb); 00379 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00380 } 00381 try { 00382 ar & BOOST_SERIALIZATION_NVP(intgr); 00383 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00384 } 00385 try { 00386 ar & BOOST_SERIALIZATION_NVP(wt); 00387 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00388 } 00389 try { 00390 ar & BOOST_SERIALIZATION_NVP(pt); 00391 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00392 } 00393 try { 00394 ar & BOOST_SERIALIZATION_NVP(good_bounds); 00395 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00396 } 00397 try { 00398 ar & BOOST_SERIALIZATION_NVP(type); 00399 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00400 } 00401 this->post_serialize(ar, version); 00402 } 00403 00404 }; 00405 00406 } 00407 00408 BIE_CLASS_TYPE_INFO(BIE::GalaxyModelOneD) 00409 BIE_CLASS_EXPORT_KEY(BIE::GalaxyModelOneD) 00410 #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
|