Commit b74899b6e68ea82a96acb9dfc0634cb37bf33995
Merge remote-tracking branch 'cdeil/action_1109' into integration
Showing
4 changed files
with
68 additions
and
47 deletions
doc/html/doc/ctobssim.html
| ... | ... | @@ -235,6 +235,21 @@ TeV).</td> |
| 235 | 235 | </tr> |
| 236 | 236 | <tr> |
| 237 | 237 | <td width="50"> </td> |
| 238 | +<td colspan="2"><span class="irafpar"><strong>edisp | |
| 239 | +[bool]</strong></span></td> | |
| 240 | +</tr> | |
| 241 | +<tr> | |
| 242 | +<td width="50"> </td> | |
| 243 | +<td width="25"> </td> | |
| 244 | +<td width="525">Apply energy dispersion?</td> | |
| 245 | +</tr> | |
| 246 | +<tr> | |
| 247 | +<td width="50"> </td> | |
| 248 | +<td> </td> | |
| 249 | +<td width="525"> </td> | |
| 250 | +</tr> | |
| 251 | +<tr> | |
| 252 | +<td width="50"> </td> | |
| 238 | 253 | <td colspan="2"><span class="irafpar"><strong>(deadc |
| 239 | 254 | = 0.95) |
| 240 | 255 | [double]</strong></span></td> | ... | ... |
src/ctobssim/ctobssim.cpp
| ... | ... | @@ -544,14 +544,15 @@ void ctobssim::set_list(GCTAObservation* obs) |
| 544 | 544 | if (obs != NULL) { |
| 545 | 545 | |
| 546 | 546 | // Get CTA observation parameters |
| 547 | - m_ra = (*this)["ra"].real(); | |
| 548 | - m_dec = (*this)["dec"].real(); | |
| 549 | - m_rad = (*this)["rad"].real(); | |
| 550 | - m_tmin = (*this)["tmin"].real(); | |
| 551 | - m_tmax = (*this)["tmax"].real(); | |
| 552 | - m_emin = (*this)["emin"].real(); | |
| 553 | - m_emax = (*this)["emax"].real(); | |
| 554 | - m_deadc = (*this)["deadc"].real(); | |
| 547 | + m_ra = (*this)["ra"].real(); | |
| 548 | + m_dec = (*this)["dec"].real(); | |
| 549 | + m_rad = (*this)["rad"].real(); | |
| 550 | + m_tmin = (*this)["tmin"].real(); | |
| 551 | + m_tmax = (*this)["tmax"].real(); | |
| 552 | + m_emin = (*this)["emin"].real(); | |
| 553 | + m_emax = (*this)["emax"].real(); | |
| 554 | + m_apply_edisp = (*this)["edisp"].boolean(); | |
| 555 | + m_deadc = (*this)["deadc"].real(); | |
| 555 | 556 | |
| 556 | 557 | // Allocate CTA event list |
| 557 | 558 | GCTAEventList events; |
| ... | ... | @@ -629,7 +630,8 @@ void ctobssim::simulate_source(GCTAObservation* obs, const GModels& models, |
| 629 | 630 | |
| 630 | 631 | // Get pointer on CTA response. Throw an exception if the response |
| 631 | 632 | // is not defined. |
| 632 | - const GCTAResponse& rsp = obs->response(); | |
| 633 | + GCTAResponse& rsp = const_cast<GCTAResponse&>(obs->response()); | |
| 634 | + rsp.apply_edisp(m_apply_edisp); | |
| 633 | 635 | |
| 634 | 636 | // Make sure that the observation holds a CTA event list. If this |
| 635 | 637 | // is not the case then allocate and attach a CTA event list now. |
| ... | ... | @@ -988,15 +990,16 @@ void ctobssim::init_members(void) |
| 988 | 990 | m_prefix.clear(); |
| 989 | 991 | m_caldb.clear(); |
| 990 | 992 | m_irf.clear(); |
| 991 | - m_seed = 1; | |
| 992 | - m_ra = 0.0; | |
| 993 | - m_dec = 0.0; | |
| 994 | - m_rad = 0.0; | |
| 995 | - m_tmin = 0.0; | |
| 996 | - m_tmax = 0.0; | |
| 997 | - m_emin = 0.0; | |
| 998 | - m_emax = 0.0; | |
| 999 | - m_deadc = 1.0; | |
| 993 | + m_seed = 1; | |
| 994 | + m_ra = 0.0; | |
| 995 | + m_dec = 0.0; | |
| 996 | + m_rad = 0.0; | |
| 997 | + m_tmin = 0.0; | |
| 998 | + m_tmax = 0.0; | |
| 999 | + m_emin = 0.0; | |
| 1000 | + m_emax = 0.0; | |
| 1001 | + m_apply_edisp = true; | |
| 1002 | + m_deadc = 1.0; | |
| 1000 | 1003 | |
| 1001 | 1004 | // Initialise protected members |
| 1002 | 1005 | m_rans.clear(); |
| ... | ... | @@ -1032,20 +1035,21 @@ void ctobssim::init_members(void) |
| 1032 | 1035 | void ctobssim::copy_members(const ctobssim& app) |
| 1033 | 1036 | { |
| 1034 | 1037 | // Copy user parameters |
| 1035 | - m_infile = app.m_infile; | |
| 1036 | - m_outfile = app.m_outfile; | |
| 1037 | - m_prefix = app.m_prefix; | |
| 1038 | - m_caldb = app.m_caldb; | |
| 1039 | - m_irf = app.m_irf; | |
| 1040 | - m_seed = app.m_seed; | |
| 1041 | - m_ra = app.m_ra; | |
| 1042 | - m_dec = app.m_dec; | |
| 1043 | - m_rad = app.m_rad; | |
| 1044 | - m_tmin = app.m_tmin; | |
| 1045 | - m_tmax = app.m_tmax; | |
| 1046 | - m_emin = app.m_emin; | |
| 1047 | - m_emax = app.m_emax; | |
| 1048 | - m_deadc = app.m_deadc; | |
| 1038 | + m_infile = app.m_infile; | |
| 1039 | + m_outfile = app.m_outfile; | |
| 1040 | + m_prefix = app.m_prefix; | |
| 1041 | + m_caldb = app.m_caldb; | |
| 1042 | + m_irf = app.m_irf; | |
| 1043 | + m_seed = app.m_seed; | |
| 1044 | + m_ra = app.m_ra; | |
| 1045 | + m_dec = app.m_dec; | |
| 1046 | + m_rad = app.m_rad; | |
| 1047 | + m_tmin = app.m_tmin; | |
| 1048 | + m_tmax = app.m_tmax; | |
| 1049 | + m_emin = app.m_emin; | |
| 1050 | + m_emax = app.m_emax; | |
| 1051 | + m_apply_edisp = app.m_apply_edisp; | |
| 1052 | + m_deadc = app.m_deadc; | |
| 1049 | 1053 | |
| 1050 | 1054 | // Copy protected members |
| 1051 | 1055 | m_area = app.m_area; | ... | ... |
src/ctobssim/ctobssim.hpp
| ... | ... | @@ -39,7 +39,7 @@ |
| 39 | 39 | /***********************************************************************//** |
| 40 | 40 | * @class ctobssim |
| 41 | 41 | * |
| 42 | - * @brief CTA observation simulator tool interface defintion | |
| 42 | + * @brief CTA observation simulator tool interface definition | |
| 43 | 43 | * |
| 44 | 44 | * This class simulates CTA observation(s) using Monte Carlo sampling of the |
| 45 | 45 | * source and background models. The class supports simulation of data of |
| ... | ... | @@ -79,20 +79,21 @@ protected: |
| 79 | 79 | void save_xml(void); |
| 80 | 80 | |
| 81 | 81 | // User parameters |
| 82 | - std::string m_infile; //!< Input model | |
| 83 | - std::string m_outfile; //!< Output events file | |
| 84 | - std::string m_prefix; //!< Prefix for multiple event lists | |
| 85 | - std::string m_caldb; //!< Calibration database repository | |
| 86 | - std::string m_irf; //!< Instrument response function | |
| 87 | - int m_seed; //!< Random number generator seed | |
| 88 | - double m_ra; //!< RA of pointing direction | |
| 89 | - double m_dec; //!< DEC of pointing direction | |
| 90 | - double m_rad; //!< FOV radius (degrees) | |
| 91 | - double m_tmin; //!< Start time (MET) | |
| 92 | - double m_tmax; //!< Stop time (MET) | |
| 93 | - double m_emin; //!< Lower energy (TeV) | |
| 94 | - double m_emax; //!< Upper energy (TeV) | |
| 95 | - double m_deadc; //!< Average deadtime correction | |
| 82 | + std::string m_infile; //!< Input model | |
| 83 | + std::string m_outfile; //!< Output events file | |
| 84 | + std::string m_prefix; //!< Prefix for multiple event lists | |
| 85 | + std::string m_caldb; //!< Calibration database repository | |
| 86 | + std::string m_irf; //!< Instrument response function | |
| 87 | + int m_seed; //!< Random number generator seed | |
| 88 | + double m_ra; //!< RA of pointing direction | |
| 89 | + double m_dec; //!< DEC of pointing direction | |
| 90 | + double m_rad; //!< FOV radius (degrees) | |
| 91 | + double m_tmin; //!< Start time (MET) | |
| 92 | + double m_tmax; //!< Stop time (MET) | |
| 93 | + double m_emin; //!< Lower energy (TeV) | |
| 94 | + double m_emax; //!< Upper energy (TeV) | |
| 95 | + bool m_apply_edisp; //!< Apply energy dispersion? | |
| 96 | + double m_deadc; //!< Average deadtime correction | |
| 96 | 97 | |
| 97 | 98 | // Protected members |
| 98 | 99 | double m_area; //!< Surface area for simulation (cm2) | ... | ... |
src/ctobssim/ctobssim.par
| ... | ... | @@ -36,6 +36,7 @@ tmin, r, a, 0.0, 0, , "Start time (MET in s)" |
| 36 | 36 | tmax, r, a, 1800.0, 0, , "End time (MET in s)" |
| 37 | 37 | emin, r, a, 0.1, 0, , "Lower energy limit (TeV)" |
| 38 | 38 | emax, r, a, 100.0, 0, , "Upper energy limit (TeV)" |
| 39 | +edisp, b, h, yes, , , "Apply energy dispersion?" | |
| 39 | 40 | deadc, r, h, 0.95, 0, 1, "Average deadtime correction factor" |
| 40 | 41 | # |
| 41 | 42 | # Standard parameters | ... | ... |