Show
Ignore:
Timestamp:
06/25/08 11:17:40 (5 months ago)
Author:
rporter
Message:

/trunk/source - a bunch of relatively minor changes, essentially all refactoring and comments. One change to command parser. "atom XX-like error generation" now accepts "PESSimistic" option, which chooses the worst of two sets of data in the Monte Carlo calculation.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/source/helike_einsta.cpp

    r1997 r2127  
    253253                        fixit(); // adding the 2-photon decay 2^3S - 1^1S may be important in early universe 
    254254                        A = ForbiddenHe[ipHi - 1]; 
    255                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     255                        iso_put_error(ipHE_LIKE,nelem,ipHe2s3S ,ipHe1s1S,IPRAD, 0.01f, 0.20f); 
     256                        iso_put_error(ipHE_LIKE,nelem,ipHe2s1S ,ipHe1s1S,IPRAD, 0.01f, 0.05f); 
     257                        iso_put_error(ipHE_LIKE,nelem,ipHe2p3P0,ipHe1s1S,IPRAD, 0.00f, 0.00f); 
     258                        iso_put_error(ipHE_LIKE,nelem,ipHe2p3P1,ipHe1s1S,IPRAD, 0.01f, 0.05f); 
     259                        iso_put_error(ipHE_LIKE,nelem,ipHe2p3P2,ipHe1s1S,IPRAD, 0.01f, 0.01f); 
    256260                } 
    257261                else 
     
    293297                                TotalInsanity(); 
    294298                        } 
    295                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
    296                 } 
    297                 /*      For now just just put 1% error for forbidden lines. */ 
    298                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,.01f); 
     299                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
     300                } 
     301 
    299302                return A; 
    300303        } 
     
    313316                A = 8.0E-3 * exp(9.283/sqrt((double)N_(ipLo))) * pow((double)nelem,9.091) / 
    314317                        pow((double)N_(ipHi),2.877); 
    315                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     318                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    316319        } 
    317320 
     
    328331                        A *= (2.*(ipLo-3)+1.0)/3.0; 
    329332                } 
    330                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     333                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    331334        } 
    332335 
     
    344347                        /* 20% error is based on difference between Savukov, Labzowsky, and Johnson (2005) 
    345348                         * and Lach and Pachucki (2001) for the helium transition. */ 
    346                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.2f); 
     349                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.2f,0.2f); 
    347350                } 
    348351                else 
     
    351354                         * the above values to 10% or better. */ 
    352355                        A= 7.22E-9*pow((double)nelem, 9.33); 
    353                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.3f); 
     356                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.3f,0.3f); 
    354357                } 
    355358        } 
     
    361364                { 
    362365                        A = 1.549; 
    363                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     366                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    364367                } 
    365368                else 
     
    369372                         * >>refercon   astro-ph 0205163        */ 
    370373                        A= 0.1834*pow((double)nelem, 6.5735); 
    371                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     374                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    372375                } 
    373376        } 
     
    383386                 * See discussion "Energy order within 2 3P" near the top of helike.c */ 
    384387                A = 5.78E-12; 
    385                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     388                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    386389 
    387390        } 
     
    396399                 * See discussion "Energy order within 2 3P" near the top of helike.c */ 
    397400                A = 3.61E-15; 
    398                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     401                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    399402        } 
    400403 
     
    403406                /* Current transition is not supported. */ 
    404407                A = iso.SmallA; 
    405                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
    406         } 
    407  
    408         /* For now just put 1% error for forbidden lines. */ 
    409         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,.01f); 
     408                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
     409        } 
    410410 
    411411        ASSERT( A > 0.); 
     
    488488                                Aul = TransProbs[nelem][ipHi][ipLo]; 
    489489 
    490                                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.0005f); 
     490                                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.0001f,0.002f); 
    491491                        } 
    492492 
     
    502502                                                Aul = (1.59208e10) / pow(Eff_nupper,3.0); 
    503503                                        ASSERT( Aul > 0.); 
    504                                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.005f); 
     504                                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.0002f,0.002f); 
    505505                                } 
    506506 
     
    511511                                        Aul = H_Einstein_A(nHi ,lHi , nLo , lLo , nelem); 
    512512                                        ASSERT( Aul > 0.); 
    513  
    514                                         if( lHi + lLo >= 7 ) 
    515                                         { 
    516                                                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.001f); 
    517                                         } 
    518                                         else 
    519                                         { 
    520                                                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.01f); 
    521                                         } 
     513                                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.006f,0.04f); 
    522514                                } 
    523515                                /* These fits come from extrapolations of Drake's oscillator strengths 
     
    616608 
    617609                                        ASSERT( Aul > 0. ); 
    618                                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.01f); 
     610                                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.0002f,0.002f); 
    619611                                } 
    620612                                else 
     
    633625 
    634626                                        ASSERT( Aul > 0. ); 
    635                                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.03f); 
     627                                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.01f,0.07f); 
    636628                                } 
    637629                        } 
     
    652644 
    653645                                Aul = TransProbs[nelem][ipHi][ipLo]; 
    654                                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     646                                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    655647                        } 
    656648 
     
    784776 
    785777                                } 
    786                                 iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f); 
     778                                iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.1f,0.1f); 
    787779                        } 
    788  
    789                         /* for now just give ions some a 5% error across the board */ 
    790                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.05f); 
    791780                } 
    792781        } 
     
    1005994                        /* Neither upper nor lower is resolved...Aul's are easy.        */ 
    1006995                        Aul = HydroEinstA( N_(ipLo), N_(ipHi) )*z4; 
    1007                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.001f); 
     996                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.001f,0.001f); 
    1008997 
    1009998                        ASSERT( Aul > 0.); 
     
    10341023                                iso.CachedAs[ipISO][nelem][ N_(ipHi)-iso.n_HighestResolved_max[ipISO][nelem]-1 ][ ipLo ][1] = 0.f; 
    10351024 
    1036                         iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.01f); 
     1025                        iso_put_error(ipHE_LIKE,nelem,ipHi,ipLo,IPRAD,0.01f,0.01f); 
    10371026                        ASSERT( Aul > 0.); 
    10381027                }