Commit 8ae9a2afa32debf52362318e782ab9c25fce2e50
1 parent
07570657
Write back model parameter names that were read (#1820)
Showing
49 changed files
with
556 additions
and
548 deletions
ChangeLog
| 1 | -2016-07-18 Juergen Knoedlseder <jurgen.knodlseder@irap.omp.eu> | |
| 1 | +2016-07-19 Juergen Knoedlseder <jurgen.knodlseder@irap.omp.eu> | |
| 2 | 2 | |
| 3 | 3 | * Version 1.1.0 released |
| 4 | 4 | ========================= |
| 5 | 5 | |
| 6 | + Write same XML element names than those that were read (#1820) | |
| 6 | 7 | Rename spatial model components (#1818) |
| 7 | 8 | Fix consistency problem in GCTABackground3D (#1815) |
| 8 | 9 | Models accessing file now support relative file names (#1808) | ... | ... |
NEWS
| ... | ... | @@ -2,7 +2,7 @@ New Features and Important Changes in GammaLib 1.1.0 |
| 2 | 2 | |
| 3 | 3 | Author(s) : Juergen Knoedlseder |
| 4 | 4 | |
| 5 | -18 July 2016 | |
| 5 | +19 July 2016 | |
| 6 | 6 | |
| 7 | 7 | |
| 8 | 8 | 1. Introduction |
| ... | ... | @@ -233,6 +233,9 @@ By default the old model names are still supported. Support of the old model |
| 233 | 233 | names can be turned off by specifying the --disable-legacy-model-names option |
| 234 | 234 | to the ./configure script (#1818). |
| 235 | 235 | |
| 236 | +The model classes now write the same XML element names than those that were read | |
| 237 | +in. In that way a maximum legacy for the Fermi/LAT data format is assured (#1820). | |
| 238 | + | |
| 236 | 239 | |
| 237 | 240 | 9. Numerics module |
| 238 | 241 | ------------------ | ... | ... |
README.md
| 1 | 1 | GammaLib information |
| 2 | 2 | ==================== |
| 3 | -* Version: 1.1.0.dev1 (18 July 2016) | |
| 3 | +* Version: 1.1.0.dev1 (19 July 2016) | |
| 4 | 4 | * Author: Juergen Knoedlseder (jurgen.knodlseder@irap.omp.eu) |
| 5 | 5 | |
| 6 | 6 | [](https://cta-jenkins.irap.omp.eu/job/gammalib-integrate-os/) | ... | ... |
dev/testreport.py
0 → 100755
| 1 | +#! /usr/bin/env python | |
| 2 | +# ========================================================================== | |
| 3 | +# Display test reports | |
| 4 | +# | |
| 5 | +# Copyright (C) 2016 Juergen Knoedlseder | |
| 6 | +# | |
| 7 | +# This program is free software: you can redistribute it and/or modify | |
| 8 | +# it under the terms of the GNU General Public License as published by | |
| 9 | +# the Free Software Foundation, either version 3 of the License, or | |
| 10 | +# (at your option) any later version. | |
| 11 | +# | |
| 12 | +# This program is distributed in the hope that it will be useful, | |
| 13 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | +# GNU General Public License for more details. | |
| 16 | +# | |
| 17 | +# You should have received a copy of the GNU General Public License | |
| 18 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 19 | +# | |
| 20 | +# ========================================================================== | |
| 21 | +import glob | |
| 22 | +import gammalib | |
| 23 | + | |
| 24 | + | |
| 25 | +# ====================== # | |
| 26 | +# Report test case error # | |
| 27 | +# ====================== # | |
| 28 | +def report_one_error(name, xml): | |
| 29 | + """ | |
| 30 | + Report test case error | |
| 31 | + | |
| 32 | + Parameters | |
| 33 | + ---------- | |
| 34 | + name : str | |
| 35 | + Test case name | |
| 36 | + xml : gammalib.GXmlElement | |
| 37 | + Error XML element | |
| 38 | + """ | |
| 39 | + # Extract information | |
| 40 | + message = xml.attribute('message') | |
| 41 | + type = xml.attribute('type') | |
| 42 | + | |
| 43 | + # Print error information | |
| 44 | + print(' Error in %s: %s (%s)' % (name, message, type)) | |
| 45 | + | |
| 46 | + # Return | |
| 47 | + return | |
| 48 | + | |
| 49 | + | |
| 50 | +# ======================== # | |
| 51 | +# Report test case failure # | |
| 52 | +# ======================== # | |
| 53 | +def report_one_failure(name, xml): | |
| 54 | + """ | |
| 55 | + Report test case failure | |
| 56 | + | |
| 57 | + Parameters | |
| 58 | + ---------- | |
| 59 | + name : str | |
| 60 | + Test case name | |
| 61 | + xml : gammalib.GXmlElement | |
| 62 | + Failure XML element | |
| 63 | + """ | |
| 64 | + # Extract information | |
| 65 | + message = xml.attribute('message') | |
| 66 | + type = xml.attribute('type') | |
| 67 | + | |
| 68 | + # Print failure information | |
| 69 | + print(' Failure in %s: %s (%s)' % (name, message, type)) | |
| 70 | + | |
| 71 | + # Return | |
| 72 | + return | |
| 73 | + | |
| 74 | + | |
| 75 | +# ======================= # | |
| 76 | +# Report test case result # | |
| 77 | +# ======================= # | |
| 78 | +def report_one_test_case(xml): | |
| 79 | + """ | |
| 80 | + Report test case result | |
| 81 | + | |
| 82 | + Parameters | |
| 83 | + ---------- | |
| 84 | + xml : gammalib.GXmlElement | |
| 85 | + Test case XML element | |
| 86 | + """ | |
| 87 | + # Extract test case information | |
| 88 | + name = xml.attribute('name') | |
| 89 | + errors = int(xml.elements('error')) | |
| 90 | + failures = int(xml.elements('failure')) | |
| 91 | + | |
| 92 | + # If there are errors then display them | |
| 93 | + if errors > 0: | |
| 94 | + num = int(xml.elements('error')) | |
| 95 | + for i in range(num): | |
| 96 | + error = xml.element('error[%d]' % i) | |
| 97 | + report_one_error(name, error) | |
| 98 | + | |
| 99 | + # If there are failures then display them | |
| 100 | + if failures > 0: | |
| 101 | + num = int(xml.elements('failure')) | |
| 102 | + for i in range(num): | |
| 103 | + failure = xml.element('failure[%d]' % i) | |
| 104 | + report_one_failure(name, failure) | |
| 105 | + | |
| 106 | + # Return | |
| 107 | + return | |
| 108 | + | |
| 109 | + | |
| 110 | +# ========================= # | |
| 111 | +# Report test suite results # | |
| 112 | +# ========================= # | |
| 113 | +def report_one_test_suite(xml): | |
| 114 | + """ | |
| 115 | + Report test suite result | |
| 116 | + | |
| 117 | + Parameters | |
| 118 | + ---------- | |
| 119 | + xml : gammalib.GXmlElement | |
| 120 | + Test suite XML element | |
| 121 | + """ | |
| 122 | + # Extract test suite information | |
| 123 | + name = xml.attribute('name') | |
| 124 | + errors = int(xml.attribute('errors')) | |
| 125 | + failures = int(xml.attribute('failures')) | |
| 126 | + | |
| 127 | + # If there are errors or failures then print them | |
| 128 | + if errors > 0 or failures > 0: | |
| 129 | + | |
| 130 | + # Print header | |
| 131 | + if errors == 0: | |
| 132 | + print('%d failures occured in module "%s":' % | |
| 133 | + (failures, name)) | |
| 134 | + elif failures == 0: | |
| 135 | + print('%d errors occured in module "%s":' % | |
| 136 | + (errors, name)) | |
| 137 | + else: | |
| 138 | + print('%d errors and %d failures occured in module "%s":' % | |
| 139 | + (errors, failures, name)) | |
| 140 | + | |
| 141 | + # Determine number of test cases | |
| 142 | + num = int(xml.elements('testcase')) | |
| 143 | + | |
| 144 | + # Loop over all test cases | |
| 145 | + for i in range(num): | |
| 146 | + | |
| 147 | + # Get test case | |
| 148 | + case = xml.element('testcase[%d]' % i) | |
| 149 | + | |
| 150 | + # Report test case result | |
| 151 | + report_one_test_case(case) | |
| 152 | + | |
| 153 | + # Return | |
| 154 | + return | |
| 155 | + | |
| 156 | + | |
| 157 | +# ====================== # | |
| 158 | +# Report one test result # | |
| 159 | +# ====================== # | |
| 160 | +def report_one_test_result(file): | |
| 161 | + """ | |
| 162 | + Report one test result | |
| 163 | + | |
| 164 | + Parameters | |
| 165 | + ---------- | |
| 166 | + file : str | |
| 167 | + Test result file | |
| 168 | + """ | |
| 169 | + # Open XML file | |
| 170 | + xml = gammalib.GXml(file) | |
| 171 | + | |
| 172 | + # Determine number of testsuites | |
| 173 | + num = int(xml.element('testsuites').elements('testsuite')) | |
| 174 | + | |
| 175 | + # Loop over all test suites | |
| 176 | + for i in range(num): | |
| 177 | + | |
| 178 | + # Get test suite | |
| 179 | + suite = xml.element('testsuites > testsuite[%d]' % i) | |
| 180 | + | |
| 181 | + # Report test suite result | |
| 182 | + report_one_test_suite(suite) | |
| 183 | + | |
| 184 | + # Return | |
| 185 | + return | |
| 186 | + | |
| 187 | + | |
| 188 | +# =================== # | |
| 189 | +# Report test results # | |
| 190 | +# =================== # | |
| 191 | +def report_test_results(path, pattern="*.xml"): | |
| 192 | + """ | |
| 193 | + Report test results | |
| 194 | + | |
| 195 | + Parameters | |
| 196 | + ---------- | |
| 197 | + path : str | |
| 198 | + Directory containing test results | |
| 199 | + pattern : str, optional | |
| 200 | + Test report pattern | |
| 201 | + """ | |
| 202 | + # Get list of test reports | |
| 203 | + reports = glob.glob(path+'/'+pattern) | |
| 204 | + | |
| 205 | + # Loop over all reports | |
| 206 | + for report in reports: | |
| 207 | + report_one_test_result(report) | |
| 208 | + | |
| 209 | + # Return | |
| 210 | + return | |
| 211 | + | |
| 212 | + | |
| 213 | +# ======================== # | |
| 214 | +# Main routine entry point # | |
| 215 | +# ======================== # | |
| 216 | +if __name__ == '__main__': | |
| 217 | + | |
| 218 | + # Print header | |
| 219 | + print('') | |
| 220 | + print('GammaLib test reports') | |
| 221 | + print('=====================') | |
| 222 | + | |
| 223 | + # Report test results | |
| 224 | + report_test_results('test/reports') | ... | ... |
inst/com/test/data/crab.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-3" value="1.0" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.05" min="0.0" max="+5.0" free="0"/> | |
| 7 | - <parameter name="Scale" scale="1.0" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-3" value="1.0" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.05" min="0.0" max="+5.0" free="0"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1.0" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
inst/cta/test/data/crab.xml
| 1 | 1 | <?xml version="1.0" standalone="no"?> |
| 2 | 2 | <source_library title="source library"> |
| 3 | - <source name="MAGIC Crab (Albert et al. 2008, ApJ, 674, 1037)" type="PointSource"> | |
| 3 | + <source name="Crab" type="PointSource"> | |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | <radialModel type="Gaussian"> |
| 21 | 21 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_disk.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Gaussian Crab" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialDisk"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> |
| ... | ... | @@ -14,9 +14,9 @@ |
| 14 | 14 | </source> |
| 15 | 15 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 16 | 16 | <spectrum type="PowerLaw"> |
| 17 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 17 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 20 | 20 | </spectrum> |
| 21 | 21 | <radialModel type="Gaussian"> |
| 22 | 22 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_edisk.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Gaussian Crab" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="EllipticalDisk"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> |
| ... | ... | @@ -16,9 +16,9 @@ |
| 16 | 16 | </source> |
| 17 | 17 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 18 | 18 | <spectrum type="PowerLaw"> |
| 19 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 20 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 21 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 20 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 21 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 22 | 22 | </spectrum> |
| 23 | 23 | <radialModel type="Gaussian"> |
| 24 | 24 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_eplaw.xml
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="MAGIC Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="ExpCutoff"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 9 | 9 | </spectrum> |
| 10 | 10 | <spatialModel type="PointSource"> |
| 11 | 11 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -14,9 +14,9 @@ |
| 14 | 14 | </source> |
| 15 | 15 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 16 | 16 | <spectrum type="PowerLaw"> |
| 17 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 17 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 20 | 20 | </spectrum> |
| 21 | 21 | <radialModel type="Gaussian"> |
| 22 | 22 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_file_function.xml
| ... | ... | @@ -11,9 +11,9 @@ |
| 11 | 11 | </source> |
| 12 | 12 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 13 | 13 | <spectrum type="PowerLaw"> |
| 14 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 15 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 16 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 14 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 15 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 16 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 17 | 17 | </spectrum> |
| 18 | 18 | <radialModel type="Gaussian"> |
| 19 | 19 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_file_function_mod.xml
| ... | ... | @@ -11,9 +11,9 @@ |
| 11 | 11 | </source> |
| 12 | 12 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 13 | 13 | <spectrum type="PowerLaw"> |
| 14 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 15 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 16 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 14 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 15 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 16 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 17 | 17 | </spectrum> |
| 18 | 18 | <radialModel type="Gaussian"> |
| 19 | 19 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_gauss.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Gaussian Crab" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialGaussian"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> |
| ... | ... | @@ -14,9 +14,9 @@ |
| 14 | 14 | </source> |
| 15 | 15 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 16 | 16 | <spectrum type="PowerLaw"> |
| 17 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 17 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 18 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 19 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 20 | 20 | </spectrum> |
| 21 | 21 | <radialModel type="Gaussian"> |
| 22 | 22 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_irf.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="CTAIrfBackground" instrument="CTA"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 17 | - <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 17 | + <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | </source> |
| 21 | 21 | </source_library> | ... | ... |
inst/cta/test/data/crab_poly.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="MAGIC Crab (Albert et al. 2008, ApJ, 674, 1037)" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | <radialModel type="Polynom"> |
| 21 | 21 | <parameter name="Coeff0" scale="1.0" value="+1.00000" min="-10.0" max="10.0" free="0"/> | ... | ... |
inst/cta/test/data/crab_profile.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="MAGIC Crab (Albert et al. 2008, ApJ, 674, 1037)" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | <radialModel type="Profile"> |
| 21 | 21 | <parameter name="Width" scale="1.0" value="1.5" min="0.1" max="1000.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_ptsrc.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab (point source)" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 17 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | <radialModel type="Gaussian"> |
| 21 | 21 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/crab_shell.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Gaussian Crab" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialShell"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> |
| ... | ... | @@ -15,9 +15,9 @@ |
| 15 | 15 | </source> |
| 16 | 16 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 17 | 17 | <spectrum type="PowerLaw"> |
| 18 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 19 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 20 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 18 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 19 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 20 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 21 | 21 | </spectrum> |
| 22 | 22 | <radialModel type="Gaussian"> |
| 23 | 23 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/cta_model_aeff_bgd.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="My model" type="CTAAeffBackground" instrument="CTA"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-14" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 6 | - <parameter name="Index" scale="1.0" value="-2.4" min="-5.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-14" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 6 | + <parameter name="Index" scale="1.0" value="-2.4" min="-5.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | </source> |
| 10 | 10 | </source_library> | ... | ... |
inst/cta/test/data/cta_model_cube_bgd.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="CTABackgroundModel" type="CTACubeBackground" instrument="CTA"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-10" max="1e3" free="1"/> | |
| 6 | - <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-10" max="1e3" free="1"/> | |
| 6 | + <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | </source> |
| 10 | 10 | </source_library> | ... | ... |
inst/cta/test/data/cta_model_irf_bgd.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="My model" type="CTAIrfBackground" instrument="CTA"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 6 | - <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 6 | + <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | </source> |
| 10 | 10 | </source_library> | ... | ... |
inst/cta/test/data/onoff_model.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Background" type="CTAIrfBackground" instrument="CTAOnOff"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 17 | - <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 18 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 16 | + <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e3" free="1"/> | |
| 17 | + <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | |
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | </source> |
| 21 | 21 | </source_library> | ... | ... |
inst/cta/test/data/radio.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab radio template" type="DiffuseSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="DiffuseMap" file="radio_map.fits"> |
| 10 | 10 | <parameter scale="1" name="Prefactor" min="0.001" max="1000.0" value="1" free="0"/> |
| ... | ... | @@ -12,9 +12,9 @@ |
| 12 | 12 | </source> |
| 13 | 13 | <source name="Background" type="RadialAcceptance" instrument="CTA"> |
| 14 | 14 | <spectrum type="PowerLaw"> |
| 15 | - <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 16 | - <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 17 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 15 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | |
| 16 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | |
| 17 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 18 | 18 | </spectrum> |
| 19 | 19 | <radialModel type="Gaussian"> |
| 20 | 20 | <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="1"/> | ... | ... |
inst/cta/test/data/rsp_models.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="DiffuseSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="DiffuseMap" file="cena_lobes_parkes.fits"> |
| 10 | 10 | <parameter scale="1" name="Prefactor" min="0.001" max="1000.0" value="1" free="0"/> | ... | ... |
inst/cta/test/data/stacked_model.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" value="5.7" error="0" scale="1e-16" min="1e-07" max="1000" free="1" /> | |
| 6 | - <parameter name="Index" value="2.48" error="0" scale="-1" min="0" max="5" free="1" /> | |
| 7 | - <parameter name="Scale" value="0.3" scale="1e+06" min="0.01" max="1000" free="0" /> | |
| 5 | + <parameter name="Prefactor" value="5.7" scale="1e-16" min="1e-07" max="1000" free="1" /> | |
| 6 | + <parameter name="Index" value="2.48" scale="-1" min="0" max="5" free="1" /> | |
| 7 | + <parameter name="PivotEnergy" value="0.3" scale="1e+06" min="0.01" max="1000" free="0" /> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter name="RA" value="83.6331" scale="1" min="-360" max="360" free="0" /> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="BackgroundModel" type="CTACubeBackground" instrument="CTA,HESS,MAGIC,VERITAS"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter name="Prefactor" value="1" error="0" scale="1" min="0.01" max="100" free="1" /> | |
| 17 | - <parameter name="Index" value="0" error="0" scale="1" min="-5" max="5" free="1" /> | |
| 18 | - <parameter name="Scale" value="1" scale="1e+06" free="0" /> | |
| 16 | + <parameter name="Prefactor" value="1" scale="1" min="0.01" max="100" free="1" /> | |
| 17 | + <parameter name="Index" value="0" scale="1" min="-5" max="5" free="1" /> | |
| 18 | + <parameter name="PivotEnergy" value="1" scale="1e+06" min="0.01" max="1000" free="0" /> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | </source> |
| 21 | 21 | </source_library> | ... | ... |
inst/mwl/test/data/crab.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="1FGL J0005.7+3815" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
inst/mwl/test/data/crab_mwl.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab synchroton" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-03" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-3.0" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="1e-07" max="1e20" value="1.0" free="0"/> | |
| 5 | + <parameter scale="1e-03" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-3.0" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="1e-07" max="1e20" value="1.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> |
| ... | ... | @@ -13,9 +13,9 @@ |
| 13 | 13 | </source> |
| 14 | 14 | <source name="Crab inverse Compton" type="PointSource"> |
| 15 | 15 | <spectrum type="PowerLaw"> |
| 16 | - <parameter scale="1e-12" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 17 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-1.5" free="1"/> | |
| 18 | - <parameter scale="1.0" name="Scale" min="1e-07" max="1e20" value="1000.0" free="0"/> | |
| 16 | + <parameter scale="1e-12" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 17 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-1.5" free="1"/> | |
| 18 | + <parameter scale="1.0" name="PivotEnergy" min="1e-07" max="1e20" value="1000.0" free="0"/> | |
| 19 | 19 | </spectrum> |
| 20 | 20 | <spatialModel type="PointSource"> |
| 21 | 21 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
inst/mwl/test/data/crab_mwl2.xml
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab synchroton" type="PointSource"> |
| 4 | 4 | <spectrum type="ExpCutoff"> |
| 5 | - <parameter scale="1e-03" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-3.0" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Cutoff" min="1.0" max="100000.0" value="100.0" free="1"/> | |
| 8 | - <parameter scale="1.0" name="Scale" min="1e-07" max="1e20" value="1.0" free="0"/> | |
| 5 | + <parameter scale="1e-03" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-3.0" free="1"/> | |
| 7 | + <parameter scale="1.0" name="Cutoff" min="1.0" max="100000.0" value="100.0" free="1"/> | |
| 8 | + <parameter scale="1.0" name="PivotEnergy" min="1e-07" max="1e20" value="1.0" free="0"/> | |
| 9 | 9 | </spectrum> |
| 10 | 10 | <spatialModel type="PointSource"> |
| 11 | 11 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> |
| ... | ... | @@ -14,9 +14,9 @@ |
| 14 | 14 | </source> |
| 15 | 15 | <source name="Crab inverse Compton" type="PointSource"> |
| 16 | 16 | <spectrum type="PowerLaw"> |
| 17 | - <parameter scale="1e-12" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 18 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-1.2" free="1"/> | |
| 19 | - <parameter scale="1.0" name="Scale" min="1e-07" max="1e20" value="1000.0" free="0"/> | |
| 17 | + <parameter scale="1e-12" name="Prefactor" min="1e-07" max="1000.0" value="1.0" free="1"/> | |
| 18 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-1.2" free="1"/> | |
| 19 | + <parameter scale="1.0" name="PivotEnergy" min="1e-07" max="1e20" value="1000.0" free="0"/> | |
| 20 | 20 | </spectrum> |
| 21 | 21 | <spatialModel type="PointSource"> |
| 22 | 22 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
src/model/GModelPar.cpp
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * GModelPar.cpp - Model parameter class * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2009-2013 by Juergen Knoedlseder * | |
| 4 | + * copyright (C) 2009-2016 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -217,17 +217,28 @@ GModelPar* GModelPar::clone(void) const |
| 217 | 217 | * |
| 218 | 218 | * Each of the attributes are optional, with the following scheme for |
| 219 | 219 | * assigning default values in case that the attribute was not found: |
| 220 | - * - @p value sets @p m_factor_value (defaults to 0.0) | |
| 221 | - * - @p error sets @p m_factor_error (defaults to 0.0) | |
| 222 | - * - @p scale sets @p m_scale (defaults to 1.0) | |
| 223 | - * - @p min sets @p m_factor_min (will remove_min() if not found) | |
| 224 | - * - @p max sets @p m_factor_max (will remove_max() if not found) | |
| 225 | - * - @p free sets @p m_free (papameter will be fixed if not found) | |
| 220 | + * | |
| 221 | + * @p name sets @p m_name (defaults to "Unknown") | |
| 222 | + * @p value sets @p m_factor_value (defaults to 0.0) | |
| 223 | + * @p error sets @p m_factor_error (defaults to 0.0) | |
| 224 | + * @p scale sets @p m_scale (defaults to 1.0) | |
| 225 | + * @p min sets @p m_factor_min (will remove_min() if not found) | |
| 226 | + * @p max sets @p m_factor_max (will remove_max() if not found) | |
| 227 | + * @p free sets @p m_free (papameter will be fixed if not found) | |
| 226 | 228 | ***************************************************************************/ |
| 227 | 229 | void GModelPar::read(const GXmlElement& xml) |
| 228 | 230 | { |
| 231 | + // Get name | |
| 232 | + std::string arg = xml.attribute("name"); | |
| 233 | + if (arg != "") { | |
| 234 | + m_name = arg; | |
| 235 | + } | |
| 236 | + else { | |
| 237 | + m_name = "Unknown"; | |
| 238 | + } | |
| 239 | + | |
| 229 | 240 | // Get value |
| 230 | - std::string arg = xml.attribute("value"); | |
| 241 | + arg = xml.attribute("value"); | |
| 231 | 242 | if (arg != "") { |
| 232 | 243 | m_factor_value = gammalib::todouble(arg); |
| 233 | 244 | } |
| ... | ... | @@ -330,15 +341,20 @@ void GModelPar::read(const GXmlElement& xml) |
| 330 | 341 | * <parameter name=".." value=".." error=".." scale=".." min=".." max="..' free=".."> |
| 331 | 342 | * |
| 332 | 343 | * The following attributes will be set: |
| 333 | - * - @p value | |
| 334 | - * - @p error (only in case that the parameter is free) | |
| 335 | - * - @p scale | |
| 336 | - * - @p min (only in case that a minimum exists) | |
| 337 | - * - @p max (only in case that a maximum exists) | |
| 338 | - * - @p free | |
| 344 | + * | |
| 345 | + * @p name | |
| 346 | + * @p value | |
| 347 | + * @p error (only in case that the parameter is free) | |
| 348 | + * @p scale | |
| 349 | + * @p min (only in case that a minimum exists) | |
| 350 | + * @p max (only in case that a maximum exists) | |
| 351 | + * @p free | |
| 339 | 352 | ***************************************************************************/ |
| 340 | 353 | void GModelPar::write(GXmlElement& xml) const |
| 341 | 354 | { |
| 355 | + // Set name | |
| 356 | + xml.attribute("name", m_name); | |
| 357 | + | |
| 342 | 358 | // Set value |
| 343 | 359 | xml.attribute("value", gammalib::str(m_factor_value)); |
| 344 | 360 | ... | ... |
src/model/GModelSpectralConst.cpp
| ... | ... | @@ -466,57 +466,31 @@ void GModelSpectralConst::read(const GXmlElement& xml) |
| 466 | 466 | * |
| 467 | 467 | * @exception GException::model_invalid_spectral |
| 468 | 468 | * Existing XML element is not of type "ConstantValue" |
| 469 | - * @exception GException::model_invalid_parnum | |
| 470 | - * Invalid number of model parameters or nodes found in XML element. | |
| 471 | - * @exception GException::model_invalid_parnames | |
| 472 | - * Invalid model parameter names found in XML element. | |
| 473 | 469 | * |
| 474 | 470 | * Writes the spectral information into an XML element with the format |
| 475 | 471 | * |
| 476 | 472 | * <spectrum type="ConstantValue"> |
| 477 | - * <parameter name="Value" scale="1" min="0" max="1000" value="1" free="1"/> | |
| 473 | + * <parameter name="Normalization" scale="1" min="0" max="1000" value="1" free="1"/> | |
| 478 | 474 | * </spectrum> |
| 479 | 475 | ***************************************************************************/ |
| 480 | 476 | void GModelSpectralConst::write(GXmlElement& xml) const |
| 481 | 477 | { |
| 482 | 478 | // Set model type |
| 483 | 479 | if (xml.attribute("type") == "") { |
| 484 | - xml.attribute("type", "ConstantValue"); | |
| 480 | + xml.attribute("type", type()); | |
| 485 | 481 | } |
| 486 | 482 | |
| 487 | 483 | // Verify model type |
| 488 | - if (xml.attribute("type") != "ConstantValue") { | |
| 484 | + if (xml.attribute("type") != type()) { | |
| 489 | 485 | throw GException::model_invalid_spectral(G_WRITE, xml.attribute("type"), |
| 490 | - "Spectral model is not of type \"ConstantValue\"."); | |
| 491 | - } | |
| 492 | - | |
| 493 | - // If XML element has 0 nodes then append parameter node. The name | |
| 494 | - // of the node is "Value" as this is the Fermi-LAT standard. | |
| 495 | - // We thus assure that the XML files will be compatible with | |
| 496 | - // Fermi-LAT. | |
| 497 | - if (xml.elements() == 0) { | |
| 498 | - xml.append(GXmlElement("parameter name=\"Value\"")); | |
| 486 | + "Spectral model is not of type \""+type()+"\"."); | |
| 499 | 487 | } |
| 500 | 488 | |
| 501 | - // Verify that XML element has exactly 1 parameter | |
| 502 | - if (xml.elements() != 1 || xml.elements("parameter") != 1) { | |
| 503 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 504 | - "Spectral constant requires exactly 1 parameter."); | |
| 505 | - } | |
| 489 | + // Get normalisation parameter | |
| 490 | + GXmlElement* par = gammalib::xml_need_par(G_WRITE, xml, m_norm.name()); | |
| 506 | 491 | |
| 507 | - // Get parameter element | |
| 508 | - GXmlElement* par = xml.element("parameter", 0); | |
| 509 | - | |
| 510 | - // Set parameyter | |
| 511 | - if (par->attribute("name") == "Normalization" || | |
| 512 | - par->attribute("name") == "Value") { | |
| 513 | - m_norm.write(*par); | |
| 514 | - } | |
| 515 | - else { | |
| 516 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 517 | - "Spectral constant requires either" | |
| 518 | - " \"Normalization\" or \"Value\" parameter."); | |
| 519 | - } | |
| 492 | + // Write normalisation parameter | |
| 493 | + m_norm.write(*par); | |
| 520 | 494 | |
| 521 | 495 | // Return |
| 522 | 496 | return; | ... | ... |
src/model/GModelSpectralExpPlaw.cpp
| ... | ... | @@ -575,10 +575,10 @@ GEnergy GModelSpectralExpPlaw::mc(const GEnergy& emin, |
| 575 | 575 | * elements is |
| 576 | 576 | * |
| 577 | 577 | * <spectrum type="ExpCutoff"> |
| 578 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 579 | - * <parameter name="Index" scale=".." value=".." min=".." max=".." free=".."/> | |
| 580 | - * <parameter name="Cutoff" scale=".." value=".." min=".." max=".." free=".."/> | |
| 581 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 578 | + * <parameter name="Prefactor" ../> | |
| 579 | + * <parameter name="Index" ../> | |
| 580 | + * <parameter name="Cutoff" ../> | |
| 581 | + * <parameter name="PivotEnergy" ../> | |
| 582 | 582 | * </spectrum> |
| 583 | 583 | ***************************************************************************/ |
| 584 | 584 | void GModelSpectralExpPlaw::read(const GXmlElement& xml) |
| ... | ... | @@ -615,7 +615,8 @@ void GModelSpectralExpPlaw::read(const GXmlElement& xml) |
| 615 | 615 | } |
| 616 | 616 | |
| 617 | 617 | // Handle pivot energy |
| 618 | - else if (par->attribute("name") == "Scale") { | |
| 618 | + else if ((par->attribute("name") == "Scale") || | |
| 619 | + (par->attribute("name") == "PivotEnergy")) { | |
| 619 | 620 | m_pivot.read(*par); |
| 620 | 621 | npar[3]++; |
| 621 | 622 | } |
| ... | ... | @@ -626,7 +627,7 @@ void GModelSpectralExpPlaw::read(const GXmlElement& xml) |
| 626 | 627 | if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1 || npar[3] != 1) { |
| 627 | 628 | throw GException::model_invalid_parnames(G_READ, xml, |
| 628 | 629 | "Require \"Prefactor\", \"Index\", \"Cutoff\" and \"Scale\"" |
| 629 | - " parameters."); | |
| 630 | + " or \"PivotEnergy\" parameters."); | |
| 630 | 631 | } |
| 631 | 632 | |
| 632 | 633 | // Return |
| ... | ... | @@ -650,78 +651,36 @@ void GModelSpectralExpPlaw::read(const GXmlElement& xml) |
| 650 | 651 | * element is |
| 651 | 652 | * |
| 652 | 653 | * <spectrum type="ExpCutoff"> |
| 653 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 654 | - * <parameter name="Index" scale=".." value=".." min=".." max=".." free=".."/> | |
| 655 | - * <parameter name="Cutoff" scale=".." value=".." min=".." max=".." free=".."/> | |
| 656 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 654 | + * <parameter name="Prefactor" ../> | |
| 655 | + * <parameter name="Index" ../> | |
| 656 | + * <parameter name="Cutoff" ../> | |
| 657 | + * <parameter name="PivotEnergy" ../> | |
| 657 | 658 | * </spectrum> |
| 658 | 659 | ***************************************************************************/ |
| 659 | 660 | void GModelSpectralExpPlaw::write(GXmlElement& xml) const |
| 660 | 661 | { |
| 661 | 662 | // Set model type |
| 662 | 663 | if (xml.attribute("type") == "") { |
| 663 | - xml.attribute("type", "ExpCutoff"); | |
| 664 | + xml.attribute("type", type()); | |
| 664 | 665 | } |
| 665 | 666 | |
| 666 | 667 | // Verify model type |
| 667 | - if (xml.attribute("type") != "ExpCutoff") { | |
| 668 | + if (xml.attribute("type") != type()) { | |
| 668 | 669 | throw GException::model_invalid_spectral(G_WRITE, xml.attribute("type"), |
| 669 | - "Spectral model is not of type \"ExpCutoff\"."); | |
| 670 | + "Spectral model is not of type \""+type()+"\"."); | |
| 670 | 671 | } |
| 671 | 672 | |
| 672 | - // If XML element has 0 nodes then append 4 parameter nodes | |
| 673 | - if (xml.elements() == 0) { | |
| 674 | - xml.append(GXmlElement("parameter name=\"Prefactor\"")); | |
| 675 | - xml.append(GXmlElement("parameter name=\"Index\"")); | |
| 676 | - xml.append(GXmlElement("parameter name=\"Cutoff\"")); | |
| 677 | - xml.append(GXmlElement("parameter name=\"Scale\"")); | |
| 678 | - } | |
| 679 | - | |
| 680 | - // Verify that XML element has exactly 4 parameters | |
| 681 | - if (xml.elements() != 4 || xml.elements("parameter") != 4) { | |
| 682 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 683 | - "Power law model requires exactly 4 parameters."); | |
| 684 | - } | |
| 685 | - | |
| 686 | - // Set or update model parameter attributes | |
| 687 | - int npar[] = {0, 0, 0, 0}; | |
| 688 | - for (int i = 0; i < 4; ++i) { | |
| 689 | - | |
| 690 | - // Get parameter element | |
| 691 | - GXmlElement* par = xml.element("parameter", i); | |
| 692 | - | |
| 693 | - // Handle prefactor | |
| 694 | - if (par->attribute("name") == "Prefactor") { | |
| 695 | - npar[0]++; | |
| 696 | - m_norm.write(*par); | |
| 697 | - } | |
| 698 | - | |
| 699 | - // Handle index | |
| 700 | - else if (par->attribute("name") == "Index") { | |
| 701 | - npar[1]++; | |
| 702 | - m_index.write(*par); | |
| 703 | - } | |
| 704 | - | |
| 705 | - // Handle index | |
| 706 | - else if (par->attribute("name") == "Cutoff") { | |
| 707 | - npar[2]++; | |
| 708 | - m_ecut.write(*par); | |
| 709 | - } | |
| 710 | - | |
| 711 | - // Handle pivot energy | |
| 712 | - else if (par->attribute("name") == "Scale") { | |
| 713 | - m_pivot.write(*par); | |
| 714 | - npar[3]++; | |
| 715 | - } | |
| 716 | - | |
| 717 | - } // endfor: looped over all parameters | |
| 718 | - | |
| 719 | - // Check of all required parameters are present | |
| 720 | - if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1 || npar[3] != 1) { | |
| 721 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 722 | - "Require \"Prefactor\", \"Index\", \"Cutoff\" and \"Scale\"" | |
| 723 | - " parameters."); | |
| 724 | - } | |
| 673 | + // Get XML parameters | |
| 674 | + GXmlElement* norm = gammalib::xml_need_par(G_WRITE, xml, m_norm.name()); | |
| 675 | + GXmlElement* index = gammalib::xml_need_par(G_WRITE, xml, m_index.name()); | |
| 676 | + GXmlElement* ecut = gammalib::xml_need_par(G_WRITE, xml, m_ecut.name()); | |
| 677 | + GXmlElement* pivot = gammalib::xml_need_par(G_WRITE, xml, m_pivot.name()); | |
| 678 | + | |
| 679 | + // Write parameters | |
| 680 | + m_norm.write(*norm); | |
| 681 | + m_index.write(*index); | |
| 682 | + m_ecut.write(*ecut); | |
| 683 | + m_pivot.write(*pivot); | |
| 725 | 684 | |
| 726 | 685 | // Return |
| 727 | 686 | return; | ... | ... |
src/model/GModelSpectralLogParabola.cpp
| ... | ... | @@ -650,8 +650,9 @@ void GModelSpectralLogParabola::read(const GXmlElement& xml) |
| 650 | 650 | } |
| 651 | 651 | |
| 652 | 652 | // Handle pivot energy |
| 653 | - else if (par->attribute("name") == "Scale" || | |
| 654 | - par->attribute("name") == "Eb") { | |
| 653 | + else if ((par->attribute("name") == "Scale") || | |
| 654 | + (par->attribute("name") == "Eb") || | |
| 655 | + (par->attribute("name") == "PivotEnergy")) { | |
| 655 | 656 | m_pivot.read(*par); |
| 656 | 657 | npar[3]++; |
| 657 | 658 | } |
| ... | ... | @@ -663,7 +664,7 @@ void GModelSpectralLogParabola::read(const GXmlElement& xml) |
| 663 | 664 | throw GException::model_invalid_parnames(G_READ, xml, |
| 664 | 665 | "LogParabola requires \"Prefactor\" or \"norm\"," |
| 665 | 666 | " \"Index\" or \"alpha\", \"Curvature\" or \"beta\"" |
| 666 | - " and \"Scale\" or \"Eb\" parameters."); | |
| 667 | + " and \"Scale\", \"Eb\" or \"PivotEnergy\" parameters."); | |
| 667 | 668 | } |
| 668 | 669 | |
| 669 | 670 | // Return |
| ... | ... | @@ -687,10 +688,10 @@ void GModelSpectralLogParabola::read(const GXmlElement& xml) |
| 687 | 688 | * of the XML elements is |
| 688 | 689 | * |
| 689 | 690 | * <spectrum type="LogParabola"> |
| 690 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 691 | - * <parameter name="Index" scale=".." value=".." min=".." max=".." free=".."/> | |
| 692 | - * <parameter name="Curvature" scale=".." value=".." min=".." max=".." free=".."/> | |
| 693 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 691 | + * <parameter name="Prefactor" ../> | |
| 692 | + * <parameter name="Index" ../> | |
| 693 | + * <parameter name="Curvature" ../> | |
| 694 | + * <parameter name="PivotEnergy" ../> | |
| 694 | 695 | * </spectrum> |
| 695 | 696 | ***************************************************************************/ |
| 696 | 697 | void GModelSpectralLogParabola::write(GXmlElement& xml) const |
| ... | ... | @@ -706,59 +707,17 @@ void GModelSpectralLogParabola::write(GXmlElement& xml) const |
| 706 | 707 | "Spectral model is not of type \""+type()+"\"."); |
| 707 | 708 | } |
| 708 | 709 | |
| 709 | - // If XML element has 0 nodes then append 4 parameter nodes | |
| 710 | - if (xml.elements() == 0) { | |
| 711 | - xml.append(GXmlElement("parameter name=\"Prefactor\"")); | |
| 712 | - xml.append(GXmlElement("parameter name=\"Index\"")); | |
| 713 | - xml.append(GXmlElement("parameter name=\"Curvature\"")); | |
| 714 | - xml.append(GXmlElement("parameter name=\"Scale\"")); | |
| 715 | - } | |
| 716 | - | |
| 717 | - // Verify that XML element has exactly 4 parameters | |
| 718 | - if (xml.elements() != 4 || xml.elements("parameter") != 4) { | |
| 719 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 720 | - "LogParabola law model requires exactly 4 parameters."); | |
| 721 | - } | |
| 722 | - | |
| 723 | - // Set or update model parameter attributes | |
| 724 | - int npar[] = {0, 0, 0,0}; | |
| 725 | - for (int i = 0; i < 4; ++i) { | |
| 726 | - | |
| 727 | - // Get parameter element | |
| 728 | - GXmlElement* par = xml.element("parameter", i); | |
| 729 | - | |
| 730 | - // Handle prefactor | |
| 731 | - if (par->attribute("name") == "Prefactor"){ | |
| 732 | - npar[0]++; | |
| 733 | - m_norm.write(*par); | |
| 734 | - } | |
| 735 | - | |
| 736 | - // Handle index | |
| 737 | - else if (par->attribute("name") == "Index") { | |
| 738 | - npar[1]++; | |
| 739 | - m_index.write(*par); | |
| 740 | - } | |
| 741 | - | |
| 742 | - // Handle index | |
| 743 | - else if (par->attribute("name") == "Curvature"){ | |
| 744 | - npar[2]++; | |
| 745 | - m_curvature.write(*par); | |
| 746 | - } | |
| 747 | - | |
| 748 | - // Handle pivot energy | |
| 749 | - else if (par->attribute("name") == "Scale") { | |
| 750 | - m_pivot.write(*par); | |
| 751 | - npar[3]++; | |
| 752 | - } | |
| 753 | - | |
| 754 | - } // endfor: looped over all parameters | |
| 755 | - | |
| 756 | - // Check of all required parameters are present | |
| 757 | - if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1 || npar[3] != 1) { | |
| 758 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 759 | - "LogParabola requires \"Prefactor\", \"Index\", \"Curvature\"" | |
| 760 | - " and \"Scale\" parameters."); | |
| 761 | - } | |
| 710 | + // Get XML parameters | |
| 711 | + GXmlElement* norm = gammalib::xml_need_par(G_WRITE, xml, m_norm.name()); | |
| 712 | + GXmlElement* index = gammalib::xml_need_par(G_WRITE, xml, m_index.name()); | |
| 713 | + GXmlElement* curvature = gammalib::xml_need_par(G_WRITE, xml, m_curvature.name()); | |
| 714 | + GXmlElement* pivot = gammalib::xml_need_par(G_WRITE, xml, m_pivot.name()); | |
| 715 | + | |
| 716 | + // Write parameters | |
| 717 | + m_norm.write(*norm); | |
| 718 | + m_index.write(*index); | |
| 719 | + m_curvature.write(*curvature); | |
| 720 | + m_pivot.write(*pivot); | |
| 762 | 721 | |
| 763 | 722 | // Return |
| 764 | 723 | return; | ... | ... |
src/model/GModelSpectralNodes.cpp
| ... | ... | @@ -614,13 +614,13 @@ GEnergy GModelSpectralNodes::mc(const GEnergy& emin, |
| 614 | 614 | * |
| 615 | 615 | * <spectrum type="NodeFunction"> |
| 616 | 616 | * <node> |
| 617 | - * <parameter name="Energy" scale=".." value=".." min=".." max=".." free=".."/> | |
| 618 | - * <parameter name="Intensity" scale=".." value=".." min=".." max=".." free=".."/> | |
| 617 | + * <parameter name="Energy" ../> | |
| 618 | + * <parameter name="Intensity" ../> | |
| 619 | 619 | * </node> |
| 620 | 620 | * ... |
| 621 | 621 | * <node> |
| 622 | - * <parameter name="Energy" scale=".." value=".." min=".." max=".." free=".."/> | |
| 623 | - * <parameter name="Intensity" scale=".." value=".." min=".." max=".." free=".."/> | |
| 622 | + * <parameter name="Energy" ../> | |
| 623 | + * <parameter name="Intensity" ../> | |
| 624 | 624 | * </node> |
| 625 | 625 | * </spectrum> |
| 626 | 626 | * |
| ... | ... | @@ -727,21 +727,19 @@ void GModelSpectralNodes::read(const GXmlElement& xml) |
| 727 | 727 | * Existing XML element is not of required type |
| 728 | 728 | * @exception GException::model_invalid_parnum |
| 729 | 729 | * Invalid number of model parameters or nodes found in XML element. |
| 730 | - * @exception GException::model_invalid_parnames | |
| 731 | - * Invalid model parameter names found in XML element. | |
| 732 | 730 | * |
| 733 | 731 | * Writes the spectral information into an XML element. The format of the XML |
| 734 | 732 | * element is |
| 735 | 733 | * |
| 736 | 734 | * <spectrum type="NodeFunction"> |
| 737 | 735 | * <node> |
| 738 | - * <parameter name="Energy" scale=".." value=".." min=".." max=".." free=".."/> | |
| 739 | - * <parameter name="Intensity" scale=".." value=".." min=".." max=".." free=".."/> | |
| 736 | + * <parameter name="Energy" ../> | |
| 737 | + * <parameter name="Intensity" ../> | |
| 740 | 738 | * </node> |
| 741 | 739 | * ... |
| 742 | 740 | * <node> |
| 743 | - * <parameter name="Energy" scale=".." value=".." min=".." max=".." free=".."/> | |
| 744 | - * <parameter name="Intensity" scale=".." value=".." min=".." max=".." free=".."/> | |
| 741 | + * <parameter name="Energy" ../> | |
| 742 | + * <parameter name="Intensity" ../> | |
| 745 | 743 | * </node> |
| 746 | 744 | * </spectrum> |
| 747 | 745 | ***************************************************************************/ |
| ... | ... | @@ -781,45 +779,23 @@ void GModelSpectralNodes::write(GXmlElement& xml) const |
| 781 | 779 | // Get node |
| 782 | 780 | GXmlElement* node = xml.element("node", i); |
| 783 | 781 | |
| 784 | - // If XML element has 0 leafes then append energy and intensity | |
| 785 | - // element | |
| 786 | - if (node->elements() == 0) { | |
| 787 | - node->append(GXmlElement("parameter name=\"Energy\"")); | |
| 788 | - node->append(GXmlElement("parameter name=\"Intensity\"")); | |
| 789 | - } | |
| 790 | - | |
| 791 | - // Verify that node XML element has exactly 2 parameters | |
| 792 | - if (node->elements() != 2 || node->elements("parameter") != 2) { | |
| 793 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 794 | - "Node requires exactly 2 parameters."); | |
| 795 | - } | |
| 782 | + // Get copy of parameters so that we can change their names | |
| 783 | + GModelPar energy = m_energies[i]; | |
| 784 | + GModelPar intensity = m_values[i]; | |
| 796 | 785 | |
| 797 | - // Set or update model parameter attributes | |
| 798 | - int npar[] = {0, 0}; | |
| 799 | - for (int k = 0; k < 2; ++k) { | |
| 786 | + // Set names since we appended for internal usage the indices to the | |
| 787 | + // parameter names, and we want to get rid of them for writing the | |
| 788 | + // model into the XML element | |
| 789 | + energy.name("Energy"); | |
| 790 | + intensity.name("Intensity"); | |
| 800 | 791 | |
| 801 | - // Get parameter element | |
| 802 | - GXmlElement* par = node->element("parameter", k); | |
| 792 | + // Get XML parameters | |
| 793 | + GXmlElement* eng = gammalib::xml_need_par(G_WRITE, *node, energy.name()); | |
| 794 | + GXmlElement* val = gammalib::xml_need_par(G_WRITE, *node, intensity.name()); | |
| 803 | 795 | |
| 804 | - // Handle prefactor | |
| 805 | - if (par->attribute("name") == "Energy") { | |
| 806 | - npar[0]++; | |
| 807 | - m_energies[i].write(*par); | |
| 808 | - } | |
| 809 | - | |
| 810 | - // Handle index | |
| 811 | - else if (par->attribute("name") == "Intensity") { | |
| 812 | - npar[1]++; | |
| 813 | - m_values[i].write(*par); | |
| 814 | - } | |
| 815 | - | |
| 816 | - } // endfor: looped over parameters | |
| 817 | - | |
| 818 | - // Check of all required parameters are present | |
| 819 | - if (npar[0] != 1 || npar[1] != 1) { | |
| 820 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 821 | - "Require \"Energy\" and \"Intensity\" parameters."); | |
| 822 | - } | |
| 796 | + // Write parameters | |
| 797 | + energy.write(*eng); | |
| 798 | + intensity.write(*val); | |
| 823 | 799 | |
| 824 | 800 | } // endfor: looped over nodes |
| 825 | 801 | ... | ... |
src/model/GModelSpectralPlaw.cpp
| ... | ... | @@ -524,9 +524,9 @@ GEnergy GModelSpectralPlaw::mc(const GEnergy& emin, |
| 524 | 524 | * elements is |
| 525 | 525 | * |
| 526 | 526 | * <spectrum type="PowerLaw"> |
| 527 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 528 | - * <parameter name="Index" scale=".." value=".." min=".." max=".." free=".."/> | |
| 529 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 527 | + * <parameter name="Prefactor" ../> | |
| 528 | + * <parameter name="Index" ../> | |
| 529 | + * <parameter name="PivotEnergy" ../> | |
| 530 | 530 | * </spectrum> |
| 531 | 531 | * |
| 532 | 532 | * @todo Add parameter validity check |
| ... | ... | @@ -559,7 +559,8 @@ void GModelSpectralPlaw::read(const GXmlElement& xml) |
| 559 | 559 | } |
| 560 | 560 | |
| 561 | 561 | // Handle pivot energy |
| 562 | - else if (par->attribute("name") == "Scale") { | |
| 562 | + else if ((par->attribute("name") == "Scale") || | |
| 563 | + (par->attribute("name") == "PivotEnergy")) { | |
| 563 | 564 | m_pivot.read(*par); |
| 564 | 565 | npar[2]++; |
| 565 | 566 | } |
| ... | ... | @@ -569,7 +570,8 @@ void GModelSpectralPlaw::read(const GXmlElement& xml) |
| 569 | 570 | // Verify that all parameters were found |
| 570 | 571 | if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1) { |
| 571 | 572 | throw GException::model_invalid_parnames(G_READ, xml, |
| 572 | - "Require \"Prefactor\", \"Index\" and \"Scale\" parameters."); | |
| 573 | + "Require \"Prefactor\", \"Index\" and \"Scale\" or " | |
| 574 | + "\"PivotEnergy\" parameters."); | |
| 573 | 575 | } |
| 574 | 576 | |
| 575 | 577 | // Return |
| ... | ... | @@ -584,78 +586,38 @@ void GModelSpectralPlaw::read(const GXmlElement& xml) |
| 584 | 586 | * |
| 585 | 587 | * @exception GException::model_invalid_spectral |
| 586 | 588 | * Existing XML element is not of type "PowerLaw" |
| 587 | - * @exception GException::model_invalid_parnum | |
| 588 | - * Invalid number of model parameters or nodes found in XML element. | |
| 589 | - * @exception GException::model_invalid_parnames | |
| 590 | - * Invalid model parameter names found in XML element. | |
| 591 | 589 | * |
| 592 | 590 | * Writes the spectral information into an XML element. The format of the XML |
| 593 | 591 | * element is |
| 594 | 592 | * |
| 595 | 593 | * <spectrum type="PowerLaw"> |
| 596 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 597 | - * <parameter name="Index" scale=".." value=".." min=".." max=".." free=".."/> | |
| 598 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 594 | + * <parameter name="Prefactor" ../> | |
| 595 | + * <parameter name="Index" ../> | |
| 596 | + * <parameter name="PivotEnergy" ../> | |
| 599 | 597 | * </spectrum> |
| 600 | 598 | ***************************************************************************/ |
| 601 | 599 | void GModelSpectralPlaw::write(GXmlElement& xml) const |
| 602 | 600 | { |
| 603 | 601 | // Set model type |
| 604 | 602 | if (xml.attribute("type") == "") { |
| 605 | - xml.attribute("type", "PowerLaw"); | |
| 603 | + xml.attribute("type", type()); | |
| 606 | 604 | } |
| 607 | 605 | |
| 608 | 606 | // Verify model type |
| 609 | - if (xml.attribute("type") != "PowerLaw") { | |
| 607 | + if (xml.attribute("type") != type()) { | |
| 610 | 608 | throw GException::model_invalid_spectral(G_WRITE, xml.attribute("type"), |
| 611 | - "Spectral model is not of type \"PowerLaw\"."); | |
| 612 | - } | |
| 613 | - | |
| 614 | - // If XML element has 0 nodes then append 3 parameter nodes | |
| 615 | - if (xml.elements() == 0) { | |
| 616 | - xml.append(GXmlElement("parameter name=\"Prefactor\"")); | |
| 617 | - xml.append(GXmlElement("parameter name=\"Index\"")); | |
| 618 | - xml.append(GXmlElement("parameter name=\"Scale\"")); | |
| 619 | - } | |
| 620 | - | |
| 621 | - // Verify that XML element has exactly 3 parameters | |
| 622 | - if (xml.elements() != 3 || xml.elements("parameter") != 3) { | |
| 623 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 624 | - "Power law model requires exactly 3 parameters."); | |
| 609 | + "Spectral model is not of type \""+type()+"\"."); | |
| 625 | 610 | } |
| 626 | 611 | |
| 627 | - // Set or update model parameter attributes | |
| 628 | - int npar[] = {0, 0, 0}; | |
| 629 | - for (int i = 0; i < 3; ++i) { | |
| 630 | - | |
| 631 | - // Get parameter element | |
| 632 | - GXmlElement* par = xml.element("parameter", i); | |
| 633 | - | |
| 634 | - // Handle prefactor | |
| 635 | - if (par->attribute("name") == "Prefactor") { | |
| 636 | - npar[0]++; | |
| 637 | - m_norm.write(*par); | |
| 638 | - } | |
| 639 | - | |
| 640 | - // Handle index | |
| 641 | - else if (par->attribute("name") == "Index") { | |
| 642 | - npar[1]++; | |
| 643 | - m_index.write(*par); | |
| 644 | - } | |
| 645 | - | |
| 646 | - // Handle pivot energy | |
| 647 | - else if (par->attribute("name") == "Scale") { | |
| 648 | - m_pivot.write(*par); | |
| 649 | - npar[2]++; | |
| 650 | - } | |
| 651 | - | |
| 652 | - } // endfor: looped over all parameters | |
| 612 | + // Get XML parameters | |
| 613 | + GXmlElement* norm = gammalib::xml_need_par(G_WRITE, xml, m_norm.name()); | |
| 614 | + GXmlElement* index = gammalib::xml_need_par(G_WRITE, xml, m_index.name()); | |
| 615 | + GXmlElement* pivot = gammalib::xml_need_par(G_WRITE, xml, m_pivot.name()); | |
| 653 | 616 | |
| 654 | - // Check of all required parameters are present | |
| 655 | - if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1) { | |
| 656 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 657 | - "Require \"Prefactor\", \"Index\" and \"Scale\" parameters."); | |
| 658 | - } | |
| 617 | + // Write parameters | |
| 618 | + m_norm.write(*norm); | |
| 619 | + m_index.write(*index); | |
| 620 | + m_pivot.write(*pivot); | |
| 659 | 621 | |
| 660 | 622 | // Return |
| 661 | 623 | return; | ... | ... |
src/model/GModelSpectralSuperExpPlaw.cpp
| ... | ... | @@ -599,11 +599,11 @@ GEnergy GModelSpectralSuperExpPlaw::mc(const GEnergy& emin, |
| 599 | 599 | * elements is |
| 600 | 600 | * |
| 601 | 601 | * <spectrum type="PLSuperExpCutoff"> |
| 602 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 603 | - * <parameter name="Index1" scale=".." value=".." min=".." max=".." free=".."/> | |
| 604 | - * <parameter name="Cutoff" scale=".." value=".." min=".." max=".." free=".."/> | |
| 605 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 606 | - * <parameter name="Index2" scale=".." value=".." min=".." max=".." free=".."/> | |
| 602 | + * <parameter name="Prefactor" ../> | |
| 603 | + * <parameter name="Index1" ../> | |
| 604 | + * <parameter name="Cutoff" ../> | |
| 605 | + * <parameter name="Index2" ../> | |
| 606 | + * <parameter name="PivotEnergy" ../> | |
| 607 | 607 | * </spectrum> |
| 608 | 608 | ***************************************************************************/ |
| 609 | 609 | void GModelSpectralSuperExpPlaw::read(const GXmlElement& xml) |
| ... | ... | @@ -640,7 +640,8 @@ void GModelSpectralSuperExpPlaw::read(const GXmlElement& xml) |
| 640 | 640 | } |
| 641 | 641 | |
| 642 | 642 | // Handle pivot energy |
| 643 | - else if (par->attribute("name") == "Scale") { | |
| 643 | + else if ((par->attribute("name") == "Scale") || | |
| 644 | + (par->attribute("name") == "PivotEnergy")) { | |
| 644 | 645 | m_pivot.read(*par); |
| 645 | 646 | npar[3]++; |
| 646 | 647 | } |
| ... | ... | @@ -656,8 +657,8 @@ void GModelSpectralSuperExpPlaw::read(const GXmlElement& xml) |
| 656 | 657 | // Verify that all parameters were found |
| 657 | 658 | if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1 || npar[3] != 1 || npar[4] != 1) { |
| 658 | 659 | throw GException::model_invalid_parnames(G_READ, xml, |
| 659 | - "Require \"Prefactor\", \"Index1\", \"Cutoff\", \"Scale\" and \"Index2\"" | |
| 660 | - " parameters."); | |
| 660 | + "Require \"Prefactor\", \"Index1\", \"Cutoff\", \"Scale\" or " | |
| 661 | + "\"PivotEnergy\" and \"Index2\" parameters."); | |
| 661 | 662 | } |
| 662 | 663 | |
| 663 | 664 | // Return |
| ... | ... | @@ -672,95 +673,44 @@ void GModelSpectralSuperExpPlaw::read(const GXmlElement& xml) |
| 672 | 673 | * |
| 673 | 674 | * @exception GException::model_invalid_spectral |
| 674 | 675 | * Existing XML element is not of type "ExpCutoff" |
| 675 | - * @exception GException::model_invalid_parnum | |
| 676 | - * Invalid number of model parameters or nodes found in XML element. | |
| 677 | - * @exception GException::model_invalid_parnames | |
| 678 | - * Invalid model parameter names found in XML element. | |
| 679 | 676 | * |
| 680 | 677 | * Writes the spectral information into an XML element. The format of the XML |
| 681 | 678 | * element is |
| 682 | 679 | * |
| 683 | 680 | * <spectrum type="PLSuperExpCutoff"> |
| 684 | - * <parameter name="Prefactor" scale=".." value=".." min=".." max=".." free=".."/> | |
| 685 | - * <parameter name="Index1" scale=".." value=".." min=".." max=".." free=".."/> | |
| 686 | - * <parameter name="Cutoff" scale=".." value=".." min=".." max=".." free=".."/> | |
| 687 | - * <parameter name="Scale" scale=".." value=".." min=".." max=".." free=".."/> | |
| 688 | - * <parameter name="Index2" scale=".." value=".." min=".." max=".." free=".."/> | |
| 681 | + * <parameter name="Prefactor" ../> | |
| 682 | + * <parameter name="Index1" ../> | |
| 683 | + * <parameter name="Cutoff" ../> | |
| 684 | + * <parameter name="Index2" ../> | |
| 685 | + * <parameter name="PivotEnergy" ../> | |
| 689 | 686 | * </spectrum> |
| 690 | 687 | ***************************************************************************/ |
| 691 | 688 | void GModelSpectralSuperExpPlaw::write(GXmlElement& xml) const |
| 692 | 689 | { |
| 693 | 690 | // Set model type |
| 694 | 691 | if (xml.attribute("type") == "") { |
| 695 | - xml.attribute("type", "PLSuperExpCutoff"); | |
| 692 | + xml.attribute("type", type()); | |
| 696 | 693 | } |
| 697 | 694 | |
| 698 | 695 | // Verify model type |
| 699 | - if (xml.attribute("type") != "PLSuperExpCutoff") { | |
| 696 | + if (xml.attribute("type") != type()) { | |
| 700 | 697 | throw GException::model_invalid_spectral(G_WRITE, xml.attribute("type"), |
| 701 | - "Spectral model is not of type \"PLSuperExpCutoff\"."); | |
| 698 | + "Spectral model is not of type \""+type()+"\"."); | |
| 702 | 699 | } |
| 703 | 700 | |
| 704 | - // If XML element has 0 nodes then append 5 parameter nodes | |
| 705 | - if (xml.elements() == 0) { | |
| 706 | - xml.append(GXmlElement("parameter name=\"Prefactor\"")); | |
| 707 | - xml.append(GXmlElement("parameter name=\"Index1\"")); | |
| 708 | - xml.append(GXmlElement("parameter name=\"Cutoff\"")); | |
| 709 | - xml.append(GXmlElement("parameter name=\"Scale\"")); | |
| 710 | - xml.append(GXmlElement("parameter name=\"Index2\"")); | |
| 711 | - } | |
| 712 | - | |
| 713 | - // Verify that XML element has exactly 5 parameters | |
| 714 | - if (xml.elements() != 5 || xml.elements("parameter") != 5) { | |
| 715 | - throw GException::model_invalid_parnum(G_WRITE, xml, | |
| 716 | - "Super Exponetial Power law model requires exactly 5 parameters."); | |
| 717 | - } | |
| 718 | - | |
| 719 | - // Set or update model parameter attributes | |
| 720 | - int npar[] = {0, 0, 0, 0, 0}; | |
| 721 | - for (int i = 0; i < 5; ++i) { | |
| 722 | - | |
| 723 | - // Get parameter element | |
| 724 | - GXmlElement* par = xml.element("parameter", i); | |
| 725 | - | |
| 726 | - // Handle prefactor | |
| 727 | - if (par->attribute("name") == "Prefactor") { | |
| 728 | - npar[0]++; | |
| 729 | - m_norm.write(*par); | |
| 730 | - } | |
| 731 | - | |
| 732 | - // Handle index1 | |
| 733 | - else if (par->attribute("name") == "Index1") { | |
| 734 | - npar[1]++; | |
| 735 | - m_index1.write(*par); | |
| 736 | - } | |
| 737 | - | |
| 738 | - // Handle index | |
| 739 | - else if (par->attribute("name") == "Cutoff") { | |
| 740 | - npar[2]++; | |
| 741 | - m_ecut.write(*par); | |
| 742 | - } | |
| 743 | - | |
| 744 | - // Handle pivot energy | |
| 745 | - else if (par->attribute("name") == "Scale") { | |
| 746 | - m_pivot.write(*par); | |
| 747 | - npar[3]++; | |
| 748 | - } | |
| 749 | - | |
| 750 | - // Handle index2 | |
| 751 | - else if (par->attribute("name") == "Index2") { | |
| 752 | - npar[4]++; | |
| 753 | - m_index2.write(*par); | |
| 754 | - } | |
| 755 | - | |
| 756 | - } // endfor: looped over all parameters | |
| 757 | - | |
| 758 | - // Check of all required parameters are present | |
| 759 | - if (npar[0] != 1 || npar[1] != 1 || npar[2] != 1 || npar[3] != 1 || npar[4] != 1) { | |
| 760 | - throw GException::model_invalid_parnames(G_WRITE, xml, | |
| 761 | - "Require \"Prefactor\", \"Index1\", \"Cutoff\", \"Scale\" and \"Index2\"" | |
| 762 | - " parameters."); | |
| 763 | - } | |
| 701 | + // Get XML parameters | |
| 702 | + GXmlElement* norm = gammalib::xml_need_par(G_WRITE, xml, m_norm.name()); | |
| 703 | + GXmlElement* index1 = gammalib::xml_need_par(G_WRITE, xml, m_index1.name()); | |
| 704 | + GXmlElement* ecut = gammalib::xml_need_par(G_WRITE, xml, m_ecut.name()); | |
| 705 | + GXmlElement* index2 = gammalib::xml_need_par(G_WRITE, xml, m_index2.name()); | |
| 706 | + GXmlElement* pivot = gammalib::xml_need_par(G_WRITE, xml, m_pivot.name()); | |
| 707 | + | |
| 708 | + // Write parameters | |
| 709 | + m_norm.write(*norm); | |
| 710 | + m_index1.write(*index1); | |
| 711 | + m_ecut.write(*ecut); | |
| 712 | + m_index2.write(*index2); | |
| 713 | + m_pivot.write(*pivot); | |
| 764 | 714 | |
| 765 | 715 | // Return |
| 766 | 716 | return; | ... | ... |
test/data/crab.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="1FGL J0005.7+3815" type="PointSource" instrument="LAT,CTA" id="000001" ts="100.1" tscalc="1"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
test/data/model_diffuse_const.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="DiffuseSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="DiffuseIsotropic"> |
| 10 | 10 | <parameter name="Value" scale="1" value="1" min="0.1" max="10" free="0"/> | ... | ... |
test/data/model_diffuse_map.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="DiffuseSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="DiffuseMap" file="cena_lobes_parkes.fits"> |
| 10 | 10 | <parameter scale="1" name="Prefactor" min="0.001" max="1000.0" value="1" free="0"/> | ... | ... |
test/data/model_elliptical_disk.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="EllipticalDisk"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
test/data/model_elliptical_gauss.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="EllipticalGaussian"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
test/data/model_point_eplaw.xml
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="ExpCutoff"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 9 | 9 | </spectrum> |
| 10 | 10 | <spatialModel type="PointSource"> |
| 11 | 11 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
test/data/model_point_logparabola.xml
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="LogParabola"> |
| 5 | - <parameter name="Prefactor" scale="1e-17" value="5.878" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.32473" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Curvature" scale="-1" value="0.074" min="-5.0" max="+5.0" free="1"/> | |
| 8 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-17" value="5.878" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.32473" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="Curvature" scale="-1" value="0.074" min="-5.0" max="+5.0" free="1"/> | |
| 8 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 9 | 9 | </spectrum> |
| 10 | 10 | <spatialModel type="PointSource"> |
| 11 | 11 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
test/data/model_point_plaw.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Scale" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="PointSource"> |
| 10 | 10 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
test/data/model_point_supeplaw.xml
| ... | ... | @@ -2,11 +2,11 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Crab" type="PointSource"> |
| 4 | 4 | <spectrum type="PLSuperExpCutoff"> |
| 5 | - <parameter name="Prefactor" scale="1e-16" value="1.0" min="1e-07" max="1000.0" free="1"/> | |
| 6 | - <parameter name="Index1" scale="-1" value="2.0" min="0.0" max="+5.0" free="1"/> | |
| 7 | - <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | - <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 9 | - <parameter name="Index2" scale="1.0" value="1.5" min="0.1" max="5.0" free="1"/> | |
| 5 | + <parameter name="Prefactor" scale="1e-16" value="1.0" min="1e-07" max="1000.0" free="1"/> | |
| 6 | + <parameter name="Index1" scale="-1" value="2.0" min="0.0" max="+5.0" free="1"/> | |
| 7 | + <parameter name="Cutoff" scale="1e6" value="1.0" min="0.01" max="1000.0" free="1"/> | |
| 8 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | |
| 9 | + <parameter name="Index2" scale="1.0" value="1.5" min="0.1" max="5.0" free="1"/> | |
| 10 | 10 | </spectrum> |
| 11 | 11 | <spatialModel type="PointSource"> |
| 12 | 12 | <parameter free="0" max="360" min="-360" name="RA" scale="1" value="83.6331" /> | ... | ... |
test/data/model_radial_disk.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialDisk"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
test/data/model_radial_gauss.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialGaussian"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
test/data/model_radial_shell.xml
| ... | ... | @@ -2,9 +2,9 @@ |
| 2 | 2 | <source_library title="source library"> |
| 3 | 3 | <source name="Cen A lobes" type="ExtendedSource"> |
| 4 | 4 | <spectrum type="PowerLaw"> |
| 5 | - <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | - <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | - <parameter scale="1.0" name="Scale" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 5 | + <parameter scale="1e-07" name="Prefactor" min="1e-07" max="1000.0" value="1.73" free="1"/> | |
| 6 | + <parameter scale="1.0" name="Index" min="-5.0" max="+5.0" value="-2.1" free="1"/> | |
| 7 | + <parameter scale="1.0" name="PivotEnergy" min="10.0" max="1000000.0" value="100.0" free="0"/> | |
| 8 | 8 | </spectrum> |
| 9 | 9 | <spatialModel type="RadialShell"> |
| 10 | 10 | <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="1"/> | ... | ... |
test/data/test.xml
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | <spectrum type="PLSuperExpCutoff"> |
| 7 | 7 | <parameter free="1" max="1000" min="1e-07" name="Prefactor" scale="1e-07" value="0.02754520844" /> |
| 8 | 8 | <parameter free="1" max="5" min="-5" name="Index1" scale="1" value="-2.0458781" /> |
| 9 | - <parameter free="0" max="1000000" min="10" name="Scale" scale="1" value="100" /> | |
| 9 | + <parameter free="0" max="1000000" min="10" name="PivotEnergy" scale="1" value="100" /> | |
| 10 | 10 | <parameter free="1" max="100000" min="500" name="Cutoff" scale="1" value="8244.185952" /> |
| 11 | 11 | <parameter free="0" max="5" min="0" name="Index2" scale="1" value="1" /> |
| 12 | 12 | </spectrum> | ... | ... |
test/test_GModel.cpp
| ... | ... | @@ -1392,7 +1392,7 @@ void TestGModel::test_const(void) |
| 1392 | 1392 | test_value(model.value(), 3.9e-16); |
| 1393 | 1393 | |
| 1394 | 1394 | // Test operator access |
| 1395 | - const char* strarray[] = {"Value"}; | |
| 1395 | + const char* strarray[] = {"Normalization"}; | |
| 1396 | 1396 | for (int i = 0; i < 1; ++i) { |
| 1397 | 1397 | std::string keyname(strarray[i]); |
| 1398 | 1398 | model[keyname].remove_range(); // To allow setting of any value | ... | ... |
test/test_GXml.cpp
| ... | ... | @@ -274,55 +274,39 @@ void TestGXml::test_GXml_access(void) |
| 274 | 274 | // Test root document access |
| 275 | 275 | GXml xml; |
| 276 | 276 | xml.load(m_xml_file); |
| 277 | - test_assert(xml.size() == 3, | |
| 278 | - "Test if xml.children()==3", | |
| 279 | - "Unexpected number of children in document "+ | |
| 280 | - gammalib::str(xml.size())); | |
| 277 | + test_value(xml.size(), 3, "Check number of child elements"); | |
| 281 | 278 | |
| 282 | 279 | // Test node access |
| 283 | 280 | for (int i = 0; i < xml.size(); ++i) { |
| 284 | 281 | GXmlNode* ptr = xml[i]; |
| 285 | - test_assert(ptr != 0, "Test node access"); | |
| 282 | + test_assert(ptr != 0, "Check XML node access"); | |
| 286 | 283 | } |
| 287 | - test_assert(xml.elements() == 1, | |
| 288 | - "Test if xml.elements()==1", | |
| 289 | - "Unexpected number of child elements in document "+ | |
| 290 | - gammalib::str(xml.elements())); | |
| 284 | + test_value(xml.elements(), 1, "Check number of child elements"); | |
| 291 | 285 | |
| 292 | 286 | // Test node access |
| 293 | 287 | for (int i = 0; i < xml.elements(); ++i) { |
| 294 | 288 | GXmlNode* ptr = xml.element(i); |
| 295 | - test_assert(ptr != 0, "Test xml element access"); | |
| 289 | + test_assert(ptr != 0, "Check XML element access"); | |
| 296 | 290 | } |
| 297 | - test_assert(xml.elements("source_library") == 1, | |
| 298 | - "Test if the source_library = 1", | |
| 299 | - "Unexpected number of child elements in document "+ | |
| 300 | - gammalib::str(xml.elements("source_library"))); | |
| 291 | + test_value(xml.elements("source_library"), 1, "Check number of child elements"); | |
| 301 | 292 | |
| 302 | 293 | // Test element access |
| 303 | 294 | for (int i = 0; i < xml.elements("source_library"); ++i) { |
| 304 | 295 | GXmlElement* ptr = xml.element("source_library", i); |
| 305 | - test_assert(ptr->name() == "source_library", | |
| 306 | - "Test name", | |
| 307 | - "Unexpected element name "+ptr->name()); | |
| 296 | + test_value(ptr->name(), "source_library", "Check element name"); | |
| 308 | 297 | } |
| 309 | 298 | |
| 310 | 299 | // Test hierarchy access |
| 311 | 300 | GXmlElement* ptr = NULL; |
| 312 | 301 | ptr = xml.element("source_library"); |
| 313 | - test_assert(ptr->name() == "source_library", "Test hierarchy access", | |
| 314 | - "Unexpected element name "+ptr->name()); | |
| 302 | + test_value(ptr->name(), "source_library", "Check hierarchy level 1"); | |
| 315 | 303 | ptr = xml.element("source_library > source"); |
| 316 | - test_assert(ptr->name() == "source", "Test hierarchy access", | |
| 317 | - "Unexpected element name "+ptr->name()); | |
| 304 | + test_value(ptr->name(), "source", "Check hierarchy level 2"); | |
| 318 | 305 | ptr = xml.element("source_library > source > spectrum"); |
| 319 | - test_assert(ptr->name() == "spectrum", "Test hierarchy access", | |
| 320 | - "Unexpected element name "+ptr->name()); | |
| 306 | + test_value(ptr->name(), "spectrum", "Check hierarchy level 3"); | |
| 321 | 307 | ptr = xml.element("source_library > source > spectrum > parameter[2]"); |
| 322 | - test_assert(ptr->name() == "parameter", "Test hierarchy access", | |
| 323 | - "Unexpected element name "+ptr->name()); | |
| 324 | - test_assert(ptr->attribute("name") == "Scale", "Test hierarchy access", | |
| 325 | - "Unexpected element attribute "+ptr->attribute("name")); | |
| 308 | + test_value(ptr->name(), "parameter", "Check hierarchy level 4"); | |
| 309 | + test_value(ptr->attribute("name"), "PivotEnergy", "Check for attribute"); | |
| 326 | 310 | |
| 327 | 311 | // Return |
| 328 | 312 | return; | ... | ... |