BIE |
/home/weinberg/src/BIE/include/GalaxyModelTwoD.h00001 // This is really -*- C++ -*- 00002 00003 00004 00005 #ifndef GalaxyModelTwoD_h 00006 #define GalaxyModelTwoD_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 GalaxyModelTwoD SUPER Model 00020 class GalaxyModelTwoD : public Model 00021 { 00022 public: 00023 00024 //+ CLICONSTR int int SampleDistribution* 00026 GalaxyModelTwoD(int ndim, int mdim, SampleDistribution *_dist); 00027 00029 ~GalaxyModelTwoD(); 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 SetExtinction double double 00042 void SetExtinction(double A, double Z) {A1 = A; Z1 = Z;} 00043 00045 00046 00047 void Initialize(State&); 00049 void Initialize(vector<double>& w, vector< vector<double> >& p); 00051 00053 void ResetCache() {} 00054 00056 virtual double NormEval(double x, double y); 00057 00059 virtual double NormEval(double x, double y, SampleDistribution *d); 00060 00062 virtual double NormEvalMeasure(double x, double y) { return cos(y); } 00063 00065 vector<double> Evaluate(double x, double y, SampleDistribution *d); 00066 00068 string ParameterDescription(int i); 00069 00071 int DataDimension() { return 1; } 00072 00073 00076 00078 static double LMAG; 00079 00081 static double HMAG; 00082 00084 static double A1; 00085 00087 static double Z1; 00088 00090 static double K0; 00091 00093 static int NUM; 00094 00099 00100 static double ALPHA; 00102 static double BETA; 00104 00106 static double R0; 00107 00109 static double RMAX; 00110 00112 static double AK; 00113 00115 00116 00117 static double AMIN; // Defaults: 0.2 00119 static double AMAX; // 8.0 00121 static double HMIN; // 50.0 00123 static double HMAX; // 1200.0 00125 00127 static string BASISDATA; // Defaults: "basisdata.2d" 00128 00130 00131 protected: 00132 00134 00135 00136 static double Log10; 00138 static double onedeg; 00140 00142 int M; 00143 00145 int Mcur; 00146 00148 int Ndim; 00149 00151 00152 00153 static const char* LENGTH_FIELDNAME; 00155 static const char* HEIGHT_FIELDNAME; 00157 static const char* PARAM_NAMES[]; 00159 00161 00162 00163 int nbins; 00165 vector<double> lowb1; 00167 vector<double> highb1; 00169 vector<double> lowb2; 00171 vector<double> highb2; 00173 00175 vector<double> flux; 00176 00178 00179 00180 int nparam; 00182 vector<double> x; 00184 vector<double> y; 00186 vector<double> sx; 00188 vector<double> sy; 00190 vector<double> w; 00192 00194 JacoQuad *intgr; 00195 00197 vector<double> wt; 00198 00200 vector< vector<double> >pt; 00201 00203 virtual void generate(double L, double B, SampleDistribution *d); 00204 00206 virtual void compute_bins(); 00207 00209 bool good_bounds; 00210 00212 void check_bounds(); 00213 00215 mmapGalCM cache; 00216 00218 mmapGalCM::iterator mit; 00219 00221 CacheGalaxyModel *current; 00222 00224 EvalType type; 00225 00226 // AUTO GENERATED BY ../persistence/autopersist.py 00227 protected: 00228 GalaxyModelTwoD() {} 00229 private: 00230 friend class boost::serialization::access; 00231 template<class Archive> 00232 void serialize(Archive & ar, const unsigned int version) { 00233 this->pre_serialize(ar, version); 00234 try { 00235 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Model); 00236 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00237 } 00238 try { 00239 ar & BOOST_SERIALIZATION_NVP(LMAG); 00240 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00241 } 00242 try { 00243 ar & BOOST_SERIALIZATION_NVP(HMAG); 00244 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00245 } 00246 try { 00247 ar & BOOST_SERIALIZATION_NVP(A1); 00248 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00249 } 00250 try { 00251 ar & BOOST_SERIALIZATION_NVP(Z1); 00252 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00253 } 00254 try { 00255 ar & BOOST_SERIALIZATION_NVP(K0); 00256 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00257 } 00258 try { 00259 ar & BOOST_SERIALIZATION_NVP(NUM); 00260 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00261 } 00262 try { 00263 ar & BOOST_SERIALIZATION_NVP(ALPHA); 00264 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00265 } 00266 try { 00267 ar & BOOST_SERIALIZATION_NVP(BETA); 00268 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00269 } 00270 try { 00271 ar & BOOST_SERIALIZATION_NVP(R0); 00272 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00273 } 00274 try { 00275 ar & BOOST_SERIALIZATION_NVP(RMAX); 00276 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00277 } 00278 try { 00279 ar & BOOST_SERIALIZATION_NVP(AK); 00280 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00281 } 00282 try { 00283 ar & BOOST_SERIALIZATION_NVP(AMIN); 00284 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00285 } 00286 try { 00287 ar & BOOST_SERIALIZATION_NVP(AMAX); 00288 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00289 } 00290 try { 00291 ar & BOOST_SERIALIZATION_NVP(HMIN); 00292 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00293 } 00294 try { 00295 ar & BOOST_SERIALIZATION_NVP(HMAX); 00296 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00297 } 00298 try { 00299 ar & BOOST_SERIALIZATION_NVP(BASISDATA); 00300 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00301 } 00302 try { 00303 ar & BOOST_SERIALIZATION_NVP(Log10); 00304 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00305 } 00306 try { 00307 ar & BOOST_SERIALIZATION_NVP(onedeg); 00308 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00309 } 00310 try { 00311 ar & BOOST_SERIALIZATION_NVP(M); 00312 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00313 } 00314 try { 00315 ar & BOOST_SERIALIZATION_NVP(Mcur); 00316 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00317 } 00318 try { 00319 ar & BOOST_SERIALIZATION_NVP(Ndim); 00320 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00321 } 00322 try { 00323 ar & BOOST_SERIALIZATION_NVP(nbins); 00324 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00325 } 00326 try { 00327 ar & BOOST_SERIALIZATION_NVP(lowb1); 00328 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00329 } 00330 try { 00331 ar & BOOST_SERIALIZATION_NVP(highb1); 00332 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00333 } 00334 try { 00335 ar & BOOST_SERIALIZATION_NVP(lowb2); 00336 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00337 } 00338 try { 00339 ar & BOOST_SERIALIZATION_NVP(highb2); 00340 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00341 } 00342 try { 00343 ar & BOOST_SERIALIZATION_NVP(flux); 00344 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00345 } 00346 try { 00347 ar & BOOST_SERIALIZATION_NVP(x); 00348 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00349 } 00350 try { 00351 ar & BOOST_SERIALIZATION_NVP(y); 00352 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00353 } 00354 try { 00355 ar & BOOST_SERIALIZATION_NVP(sx); 00356 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00357 } 00358 try { 00359 ar & BOOST_SERIALIZATION_NVP(sy); 00360 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00361 } 00362 try { 00363 ar & BOOST_SERIALIZATION_NVP(w); 00364 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00365 } 00366 try { 00367 ar & BOOST_SERIALIZATION_NVP(intgr); 00368 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00369 } 00370 try { 00371 ar & BOOST_SERIALIZATION_NVP(wt); 00372 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00373 } 00374 try { 00375 ar & BOOST_SERIALIZATION_NVP(pt); 00376 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00377 } 00378 try { 00379 ar & BOOST_SERIALIZATION_NVP(good_bounds); 00380 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00381 } 00382 try { 00383 ar & BOOST_SERIALIZATION_NVP(cache); 00384 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00385 } 00386 try { 00387 ar & BOOST_SERIALIZATION_NVP(current); 00388 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00389 } 00390 try { 00391 ar & BOOST_SERIALIZATION_NVP(type); 00392 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00393 } 00394 this->post_serialize(ar, version); 00395 } 00396 00397 }; 00398 00399 } 00400 00401 BIE_CLASS_TYPE_INFO(BIE::GalaxyModelTwoD) 00402 BIE_CLASS_EXPORT_KEY(BIE::GalaxyModelTwoD) 00403 #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
|