Commit 068b6064d362cea60783082a12901c309c8ede7f
1 parent
df3c84ab
weekend saving
Showing
19 changed files
with
2309 additions
and
46 deletions
doc/Doxyfile
0 → 100644
| 1 | +# Doxyfile 1.4.1 | ||
| 2 | + | ||
| 3 | +# This file describes the settings to be used by the documentation system | ||
| 4 | +# doxygen (www.doxygen.org) for a project | ||
| 5 | +# | ||
| 6 | +# All text after a hash (#) is considered a comment and will be ignored | ||
| 7 | +# The format is: | ||
| 8 | +# TAG = value [value, ...] | ||
| 9 | +# For lists items can also be appended using: | ||
| 10 | +# TAG += value [value, ...] | ||
| 11 | +# Values that contain spaces should be placed between quotes (" ") | ||
| 12 | + | ||
| 13 | +#--------------------------------------------------------------------------- | ||
| 14 | +# Project related configuration options | ||
| 15 | +#--------------------------------------------------------------------------- | ||
| 16 | + | ||
| 17 | +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded | ||
| 18 | +# by quotes) that should identify the project. | ||
| 19 | + | ||
| 20 | +PROJECT_NAME = GammaLib | ||
| 21 | + | ||
| 22 | +# The PROJECT_NUMBER tag can be used to enter a project or revision number. | ||
| 23 | +# This could be handy for archiving the generated documentation or | ||
| 24 | +# if some version control system is used. | ||
| 25 | + | ||
| 26 | +PROJECT_NUMBER = 0.1pre | ||
| 27 | + | ||
| 28 | +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | ||
| 29 | +# base path where the generated documentation will be put. | ||
| 30 | +# If a relative path is entered, it will be relative to the location | ||
| 31 | +# where doxygen was started. If left blank the current directory will be used. | ||
| 32 | + | ||
| 33 | +OUTPUT_DIRECTORY = | ||
| 34 | + | ||
| 35 | +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create | ||
| 36 | +# 4096 sub-directories (in 2 levels) under the output directory of each output | ||
| 37 | +# format and will distribute the generated files over these directories. | ||
| 38 | +# Enabling this option can be useful when feeding doxygen a huge amount of | ||
| 39 | +# source files, where putting all generated files in the same directory would | ||
| 40 | +# otherwise cause performance problems for the file system. | ||
| 41 | + | ||
| 42 | +CREATE_SUBDIRS = YES | ||
| 43 | + | ||
| 44 | +# The OUTPUT_LANGUAGE tag is used to specify the language in which all | ||
| 45 | +# documentation generated by doxygen is written. Doxygen will use this | ||
| 46 | +# information to generate all constant output in the proper language. | ||
| 47 | +# The default language is English, other supported languages are: | ||
| 48 | +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, | ||
| 49 | +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, | ||
| 50 | +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, | ||
| 51 | +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, | ||
| 52 | +# Swedish, and Ukrainian. | ||
| 53 | + | ||
| 54 | +OUTPUT_LANGUAGE = English | ||
| 55 | + | ||
| 56 | +# This tag can be used to specify the encoding used in the generated output. | ||
| 57 | +# The encoding is not always determined by the language that is chosen, | ||
| 58 | +# but also whether or not the output is meant for Windows or non-Windows users. | ||
| 59 | +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES | ||
| 60 | +# forces the Windows encoding (this is the default for the Windows binary), | ||
| 61 | +# whereas setting the tag to NO uses a Unix-style encoding (the default for | ||
| 62 | +# all platforms other than Windows). | ||
| 63 | + | ||
| 64 | +USE_WINDOWS_ENCODING = NO | ||
| 65 | + | ||
| 66 | +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will | ||
| 67 | +# include brief member descriptions after the members that are listed in | ||
| 68 | +# the file and class documentation (similar to JavaDoc). | ||
| 69 | +# Set to NO to disable this. | ||
| 70 | + | ||
| 71 | +BRIEF_MEMBER_DESC = YES | ||
| 72 | + | ||
| 73 | +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend | ||
| 74 | +# the brief description of a member or function before the detailed description. | ||
| 75 | +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the | ||
| 76 | +# brief descriptions will be completely suppressed. | ||
| 77 | + | ||
| 78 | +REPEAT_BRIEF = YES | ||
| 79 | + | ||
| 80 | +# This tag implements a quasi-intelligent brief description abbreviator | ||
| 81 | +# that is used to form the text in various listings. Each string | ||
| 82 | +# in this list, if found as the leading text of the brief description, will be | ||
| 83 | +# stripped from the text and the result after processing the whole list, is | ||
| 84 | +# used as the annotated text. Otherwise, the brief description is used as-is. | ||
| 85 | +# If left blank, the following values are used ("$name" is automatically | ||
| 86 | +# replaced with the name of the entity): "The $name class" "The $name widget" | ||
| 87 | +# "The $name file" "is" "provides" "specifies" "contains" | ||
| 88 | +# "represents" "a" "an" "the" | ||
| 89 | + | ||
| 90 | +ABBREVIATE_BRIEF = | ||
| 91 | + | ||
| 92 | +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | ||
| 93 | +# Doxygen will generate a detailed section even if there is only a brief | ||
| 94 | +# description. | ||
| 95 | + | ||
| 96 | +ALWAYS_DETAILED_SEC = NO | ||
| 97 | + | ||
| 98 | +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all | ||
| 99 | +# inherited members of a class in the documentation of that class as if those | ||
| 100 | +# members were ordinary class members. Constructors, destructors and assignment | ||
| 101 | +# operators of the base classes will not be shown. | ||
| 102 | + | ||
| 103 | +INLINE_INHERITED_MEMB = NO | ||
| 104 | + | ||
| 105 | +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full | ||
| 106 | +# path before files name in the file list and in the header files. If set | ||
| 107 | +# to NO the shortest path that makes the file name unique will be used. | ||
| 108 | + | ||
| 109 | +FULL_PATH_NAMES = NO | ||
| 110 | + | ||
| 111 | +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag | ||
| 112 | +# can be used to strip a user-defined part of the path. Stripping is | ||
| 113 | +# only done if one of the specified strings matches the left-hand part of | ||
| 114 | +# the path. The tag can be used to show relative paths in the file list. | ||
| 115 | +# If left blank the directory from which doxygen is run is used as the | ||
| 116 | +# path to strip. | ||
| 117 | + | ||
| 118 | +STRIP_FROM_PATH = | ||
| 119 | + | ||
| 120 | +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of | ||
| 121 | +# the path mentioned in the documentation of a class, which tells | ||
| 122 | +# the reader which header file to include in order to use a class. | ||
| 123 | +# If left blank only the name of the header file containing the class | ||
| 124 | +# definition is used. Otherwise one should specify the include paths that | ||
| 125 | +# are normally passed to the compiler using the -I flag. | ||
| 126 | + | ||
| 127 | +STRIP_FROM_INC_PATH = | ||
| 128 | + | ||
| 129 | +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter | ||
| 130 | +# (but less readable) file names. This can be useful is your file systems | ||
| 131 | +# doesn't support long names like on DOS, Mac, or CD-ROM. | ||
| 132 | + | ||
| 133 | +SHORT_NAMES = NO | ||
| 134 | + | ||
| 135 | +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen | ||
| 136 | +# will interpret the first line (until the first dot) of a JavaDoc-style | ||
| 137 | +# comment as the brief description. If set to NO, the JavaDoc | ||
| 138 | +# comments will behave just like the Qt-style comments (thus requiring an | ||
| 139 | +# explicit @brief command for a brief description. | ||
| 140 | + | ||
| 141 | +JAVADOC_AUTOBRIEF = NO | ||
| 142 | + | ||
| 143 | +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen | ||
| 144 | +# treat a multi-line C++ special comment block (i.e. a block of //! or /// | ||
| 145 | +# comments) as a brief description. This used to be the default behaviour. | ||
| 146 | +# The new default is to treat a multi-line C++ comment block as a detailed | ||
| 147 | +# description. Set this tag to YES if you prefer the old behaviour instead. | ||
| 148 | + | ||
| 149 | +MULTILINE_CPP_IS_BRIEF = NO | ||
| 150 | + | ||
| 151 | +# If the DETAILS_AT_TOP tag is set to YES then Doxygen | ||
| 152 | +# will output the detailed description near the top, like JavaDoc. | ||
| 153 | +# If set to NO, the detailed description appears after the member | ||
| 154 | +# documentation. | ||
| 155 | + | ||
| 156 | +DETAILS_AT_TOP = NO | ||
| 157 | + | ||
| 158 | +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented | ||
| 159 | +# member inherits the documentation from any documented member that it | ||
| 160 | +# re-implements. | ||
| 161 | + | ||
| 162 | +INHERIT_DOCS = NO | ||
| 163 | + | ||
| 164 | +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC | ||
| 165 | +# tag is set to YES, then doxygen will reuse the documentation of the first | ||
| 166 | +# member in the group (if any) for the other members of the group. By default | ||
| 167 | +# all members of a group must be documented explicitly. | ||
| 168 | + | ||
| 169 | +DISTRIBUTE_GROUP_DOC = NO | ||
| 170 | + | ||
| 171 | +# The TAB_SIZE tag can be used to set the number of spaces in a tab. | ||
| 172 | +# Doxygen uses this value to replace tabs by spaces in code fragments. | ||
| 173 | + | ||
| 174 | +TAB_SIZE = 8 | ||
| 175 | + | ||
| 176 | +# This tag can be used to specify a number of aliases that acts | ||
| 177 | +# as commands in the documentation. An alias has the form "name=value". | ||
| 178 | +# For example adding "sideeffect=\par Side Effects:\n" will allow you to | ||
| 179 | +# put the command \sideeffect (or @sideeffect) in the documentation, which | ||
| 180 | +# will result in a user-defined paragraph with heading "Side Effects:". | ||
| 181 | +# You can put \n's in the value part of an alias to insert newlines. | ||
| 182 | + | ||
| 183 | +ALIASES = | ||
| 184 | + | ||
| 185 | +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C | ||
| 186 | +# sources only. Doxygen will then generate output that is more tailored for C. | ||
| 187 | +# For instance, some of the names that are used will be different. The list | ||
| 188 | +# of all members will be omitted, etc. | ||
| 189 | + | ||
| 190 | +OPTIMIZE_OUTPUT_FOR_C = NO | ||
| 191 | + | ||
| 192 | +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources | ||
| 193 | +# only. Doxygen will then generate output that is more tailored for Java. | ||
| 194 | +# For instance, namespaces will be presented as packages, qualified scopes | ||
| 195 | +# will look different, etc. | ||
| 196 | + | ||
| 197 | +OPTIMIZE_OUTPUT_JAVA = NO | ||
| 198 | + | ||
| 199 | +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of | ||
| 200 | +# the same type (for instance a group of public functions) to be put as a | ||
| 201 | +# subgroup of that type (e.g. under the Public Functions section). Set it to | ||
| 202 | +# NO to prevent subgrouping. Alternatively, this can be done per class using | ||
| 203 | +# the \nosubgrouping command. | ||
| 204 | + | ||
| 205 | +SUBGROUPING = YES | ||
| 206 | + | ||
| 207 | +#--------------------------------------------------------------------------- | ||
| 208 | +# Build related configuration options | ||
| 209 | +#--------------------------------------------------------------------------- | ||
| 210 | + | ||
| 211 | +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in | ||
| 212 | +# documentation are documented, even if no documentation was available. | ||
| 213 | +# Private class members and static file members will be hidden unless | ||
| 214 | +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES | ||
| 215 | + | ||
| 216 | +EXTRACT_ALL = YES | ||
| 217 | + | ||
| 218 | +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class | ||
| 219 | +# will be included in the documentation. | ||
| 220 | + | ||
| 221 | +EXTRACT_PRIVATE = YES | ||
| 222 | + | ||
| 223 | +# If the EXTRACT_STATIC tag is set to YES all static members of a file | ||
| 224 | +# will be included in the documentation. | ||
| 225 | + | ||
| 226 | +EXTRACT_STATIC = YES | ||
| 227 | + | ||
| 228 | +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) | ||
| 229 | +# defined locally in source files will be included in the documentation. | ||
| 230 | +# If set to NO only classes defined in header files are included. | ||
| 231 | +EXTRACT_LOCAL_CLASSES = YES | ||
| 232 | + | ||
| 233 | +# This flag is only useful for Objective-C code. When set to YES local | ||
| 234 | +# methods, which are defined in the implementation section but not in | ||
| 235 | +# the interface are included in the documentation. | ||
| 236 | +# If set to NO (the default) only methods in the interface are included. | ||
| 237 | + | ||
| 238 | +EXTRACT_LOCAL_METHODS = NO | ||
| 239 | + | ||
| 240 | +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all | ||
| 241 | +# undocumented members of documented classes, files or namespaces. | ||
| 242 | +# If set to NO (the default) these members will be included in the | ||
| 243 | +# various overviews, but no documentation section is generated. | ||
| 244 | +# This option has no effect if EXTRACT_ALL is enabled. | ||
| 245 | + | ||
| 246 | +HIDE_UNDOC_MEMBERS = NO | ||
| 247 | + | ||
| 248 | +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all | ||
| 249 | +# undocumented classes that are normally visible in the class hierarchy. | ||
| 250 | +# If set to NO (the default) these classes will be included in the various | ||
| 251 | +# overviews. This option has no effect if EXTRACT_ALL is enabled. | ||
| 252 | + | ||
| 253 | +HIDE_UNDOC_CLASSES = NO | ||
| 254 | + | ||
| 255 | +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all | ||
| 256 | +# friend (class|struct|union) declarations. | ||
| 257 | +# If set to NO (the default) these declarations will be included in the | ||
| 258 | +# documentation. | ||
| 259 | + | ||
| 260 | +HIDE_FRIEND_COMPOUNDS = NO | ||
| 261 | + | ||
| 262 | +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any | ||
| 263 | +# documentation blocks found inside the body of a function. | ||
| 264 | +# If set to NO (the default) these blocks will be appended to the | ||
| 265 | +# function's detailed documentation block. | ||
| 266 | + | ||
| 267 | +HIDE_IN_BODY_DOCS = NO | ||
| 268 | + | ||
| 269 | +# The INTERNAL_DOCS tag determines if documentation | ||
| 270 | +# that is typed after a \internal command is included. If the tag is set | ||
| 271 | +# to NO (the default) then the documentation will be excluded. | ||
| 272 | +# Set it to YES to include the internal documentation. | ||
| 273 | + | ||
| 274 | +INTERNAL_DOCS = NO | ||
| 275 | + | ||
| 276 | +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate | ||
| 277 | +# file names in lower-case letters. If set to YES upper-case letters are also | ||
| 278 | +# allowed. This is useful if you have classes or files whose names only differ | ||
| 279 | +# in case and if your file system supports case sensitive file names. Windows | ||
| 280 | +# and Mac users are advised to set this option to NO. | ||
| 281 | + | ||
| 282 | +CASE_SENSE_NAMES = YES | ||
| 283 | + | ||
| 284 | +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen | ||
| 285 | +# will show members with their full class and namespace scopes in the | ||
| 286 | +# documentation. If set to YES the scope will be hidden. | ||
| 287 | + | ||
| 288 | +HIDE_SCOPE_NAMES = NO | ||
| 289 | + | ||
| 290 | +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen | ||
| 291 | +# will put a list of the files that are included by a file in the documentation | ||
| 292 | +# of that file. | ||
| 293 | + | ||
| 294 | +SHOW_INCLUDE_FILES = YES | ||
| 295 | + | ||
| 296 | +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] | ||
| 297 | +# is inserted in the documentation for inline members. | ||
| 298 | + | ||
| 299 | +INLINE_INFO = YES | ||
| 300 | + | ||
| 301 | +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen | ||
| 302 | +# will sort the (detailed) documentation of file and class members | ||
| 303 | +# alphabetically by member name. If set to NO the members will appear in | ||
| 304 | +# declaration order. | ||
| 305 | + | ||
| 306 | +SORT_MEMBER_DOCS = YES | ||
| 307 | + | ||
| 308 | +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the | ||
| 309 | +# brief documentation of file, namespace and class members alphabetically | ||
| 310 | +# by member name. If set to NO (the default) the members will appear in | ||
| 311 | +# declaration order. | ||
| 312 | + | ||
| 313 | +SORT_BRIEF_DOCS = NO | ||
| 314 | + | ||
| 315 | +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be | ||
| 316 | +# sorted by fully-qualified names, including namespaces. If set to | ||
| 317 | +# NO (the default), the class list will be sorted only by class name, | ||
| 318 | +# not including the namespace part. | ||
| 319 | +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. | ||
| 320 | +# Note: This option applies only to the class list, not to the | ||
| 321 | +# alphabetical list. | ||
| 322 | +SORT_BY_SCOPE_NAME = NO | ||
| 323 | + | ||
| 324 | +# The GENERATE_TODOLIST tag can be used to enable (YES) or | ||
| 325 | +# disable (NO) the todo list. This list is created by putting \todo | ||
| 326 | +# commands in the documentation. | ||
| 327 | + | ||
| 328 | +GENERATE_TODOLIST = YES | ||
| 329 | + | ||
| 330 | +# The GENERATE_TESTLIST tag can be used to enable (YES) or | ||
| 331 | +# disable (NO) the test list. This list is created by putting \test | ||
| 332 | +# commands in the documentation. | ||
| 333 | + | ||
| 334 | +GENERATE_TESTLIST = YES | ||
| 335 | + | ||
| 336 | +# The GENERATE_BUGLIST tag can be used to enable (YES) or | ||
| 337 | +# disable (NO) the bug list. This list is created by putting \bug | ||
| 338 | +# commands in the documentation. | ||
| 339 | + | ||
| 340 | +GENERATE_BUGLIST = YES | ||
| 341 | + | ||
| 342 | +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or | ||
| 343 | +# disable (NO) the deprecated list. This list is created by putting | ||
| 344 | +# \deprecated commands in the documentation. | ||
| 345 | + | ||
| 346 | +GENERATE_DEPRECATEDLIST= YES | ||
| 347 | + | ||
| 348 | +# The ENABLED_SECTIONS tag can be used to enable conditional | ||
| 349 | +# documentation sections, marked by \if sectionname ... \endif. | ||
| 350 | + | ||
| 351 | +ENABLED_SECTIONS = | ||
| 352 | + | ||
| 353 | +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines | ||
| 354 | +# the initial value of a variable or define consists of for it to appear in | ||
| 355 | +# the documentation. If the initializer consists of more lines than specified | ||
| 356 | +# here it will be hidden. Use a value of 0 to hide initializers completely. | ||
| 357 | +# The appearance of the initializer of individual variables and defines in the | ||
| 358 | +# documentation can be controlled using \showinitializer or \hideinitializer | ||
| 359 | +# command in the documentation regardless of this setting. | ||
| 360 | + | ||
| 361 | +MAX_INITIALIZER_LINES = 30 | ||
| 362 | + | ||
| 363 | +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated | ||
| 364 | +# at the bottom of the documentation of classes and structs. If set to YES the | ||
| 365 | +# list will mention the files that were used to generate the documentation. | ||
| 366 | + | ||
| 367 | +SHOW_USED_FILES = YES | ||
| 368 | + | ||
| 369 | +# If the sources in your project are distributed over multiple directories | ||
| 370 | +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy | ||
| 371 | +# in the documentation. | ||
| 372 | + | ||
| 373 | +SHOW_DIRECTORIES = YES | ||
| 374 | + | ||
| 375 | +# The FILE_VERSION_FILTER tag can be used to specify a program or script that | ||
| 376 | +# doxygen should invoke to get the current version for each file (typically from the | ||
| 377 | +# version control system). Doxygen will invoke the program by executing (via | ||
| 378 | +# popen()) the command <command> <input-file>, where <command> is the value of | ||
| 379 | +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file | ||
| 380 | +# provided by doxygen. Whatever the progam writes to standard output | ||
| 381 | +# is used as the file version. See the manual for examples. | ||
| 382 | + | ||
| 383 | +FILE_VERSION_FILTER = | ||
| 384 | + | ||
| 385 | +#--------------------------------------------------------------------------- | ||
| 386 | +# configuration options related to warning and progress messages | ||
| 387 | +#--------------------------------------------------------------------------- | ||
| 388 | + | ||
| 389 | +# The QUIET tag can be used to turn on/off the messages that are generated | ||
| 390 | +# by doxygen. Possible values are YES and NO. If left blank NO is used. | ||
| 391 | + | ||
| 392 | +QUIET = NO | ||
| 393 | + | ||
| 394 | +# The WARNINGS tag can be used to turn on/off the warning messages that are | ||
| 395 | +# generated by doxygen. Possible values are YES and NO. If left blank | ||
| 396 | +# NO is used. | ||
| 397 | + | ||
| 398 | +WARNINGS = YES | ||
| 399 | + | ||
| 400 | +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings | ||
| 401 | +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will | ||
| 402 | +# automatically be disabled. | ||
| 403 | + | ||
| 404 | +WARN_IF_UNDOCUMENTED = YES | ||
| 405 | + | ||
| 406 | +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for | ||
| 407 | +# potential errors in the documentation, such as not documenting some | ||
| 408 | +# parameters in a documented function, or documenting parameters that | ||
| 409 | +# don't exist or using markup commands wrongly. | ||
| 410 | + | ||
| 411 | +WARN_IF_DOC_ERROR = YES | ||
| 412 | + | ||
| 413 | +# This WARN_NO_PARAMDOC option can be abled to get warnings for | ||
| 414 | +# functions that are documented, but have no documentation for their parameters | ||
| 415 | +# or return value. If set to NO (the default) doxygen will only warn about | ||
| 416 | +# wrong or incomplete parameter documentation, but not about the absence of | ||
| 417 | +# documentation. | ||
| 418 | + | ||
| 419 | +WARN_NO_PARAMDOC = NO | ||
| 420 | + | ||
| 421 | +# The WARN_FORMAT tag determines the format of the warning messages that | ||
| 422 | +# doxygen can produce. The string should contain the $file, $line, and $text | ||
| 423 | +# tags, which will be replaced by the file and line number from which the | ||
| 424 | +# warning originated and the warning text. Optionally the format may contain | ||
| 425 | +# $version, which will be replaced by the version of the file (if it could | ||
| 426 | +# be obtained via FILE_VERSION_FILTER) | ||
| 427 | + | ||
| 428 | +WARN_FORMAT = "$file:$line: $text" | ||
| 429 | + | ||
| 430 | +# The WARN_LOGFILE tag can be used to specify a file to which warning | ||
| 431 | +# and error messages should be written. If left blank the output is written | ||
| 432 | +# to stderr. | ||
| 433 | + | ||
| 434 | +WARN_LOGFILE = | ||
| 435 | + | ||
| 436 | +#--------------------------------------------------------------------------- | ||
| 437 | +# configuration options related to the input files | ||
| 438 | +#--------------------------------------------------------------------------- | ||
| 439 | + | ||
| 440 | +# The INPUT tag can be used to specify the files and/or directories that contain | ||
| 441 | +# documented source files. You may enter file names like "myfile.cpp" or | ||
| 442 | +# directories like "/usr/src/myproject". Separate the files or directories | ||
| 443 | +# with spaces. | ||
| 444 | + | ||
| 445 | +INPUT = "../include" "../src" "../pyext" | ||
| 446 | + | ||
| 447 | +# If the value of the INPUT tag contains directories, you can use the | ||
| 448 | +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
| 449 | +# and *.h) to filter out the source-files in the directories. If left | ||
| 450 | +# blank the following patterns are tested: | ||
| 451 | +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx | ||
| 452 | +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm | ||
| 453 | + | ||
| 454 | +FILE_PATTERNS = *.cpp *.cxx *.hpp *.i | ||
| 455 | + | ||
| 456 | +# The RECURSIVE tag can be used to turn specify whether or not subdirectories | ||
| 457 | +# should be searched for input files as well. Possible values are YES and NO. | ||
| 458 | +# If left blank NO is used. | ||
| 459 | + | ||
| 460 | +RECURSIVE = YES | ||
| 461 | + | ||
| 462 | +# The EXCLUDE tag can be used to specify files and/or directories that should | ||
| 463 | +# excluded from the INPUT source files. This way you can easily exclude a | ||
| 464 | +# subdirectory from a directory tree whose root is specified with the INPUT tag. | ||
| 465 | + | ||
| 466 | +EXCLUDE = | ||
| 467 | + | ||
| 468 | +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or | ||
| 469 | +# directories that are symbolic links (a Unix filesystem feature) are excluded | ||
| 470 | +# from the input. | ||
| 471 | + | ||
| 472 | +EXCLUDE_SYMLINKS = NO | ||
| 473 | + | ||
| 474 | +# If the value of the INPUT tag contains directories, you can use the | ||
| 475 | +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude | ||
| 476 | +# certain files from those directories. | ||
| 477 | + | ||
| 478 | +EXCLUDE_PATTERNS = | ||
| 479 | + | ||
| 480 | +# The EXAMPLE_PATH tag can be used to specify one or more files or | ||
| 481 | +# directories that contain example code fragments that are included (see | ||
| 482 | +# the \include command). | ||
| 483 | + | ||
| 484 | +EXAMPLE_PATH = | ||
| 485 | + | ||
| 486 | +# If the value of the EXAMPLE_PATH tag contains directories, you can use the | ||
| 487 | +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
| 488 | +# and *.h) to filter out the source-files in the directories. If left | ||
| 489 | +# blank all files are included. | ||
| 490 | + | ||
| 491 | +EXAMPLE_PATTERNS = | ||
| 492 | + | ||
| 493 | +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | ||
| 494 | +# searched for input files to be used with the \include or \dontinclude | ||
| 495 | +# commands irrespective of the value of the RECURSIVE tag. | ||
| 496 | +# Possible values are YES and NO. If left blank NO is used. | ||
| 497 | + | ||
| 498 | +EXAMPLE_RECURSIVE = NO | ||
| 499 | + | ||
| 500 | +# The IMAGE_PATH tag can be used to specify one or more files or | ||
| 501 | +# directories that contain image that are included in the documentation (see | ||
| 502 | +# the \image command). | ||
| 503 | + | ||
| 504 | +IMAGE_PATH = | ||
| 505 | + | ||
| 506 | +# The INPUT_FILTER tag can be used to specify a program that doxygen should | ||
| 507 | +# invoke to filter for each input file. Doxygen will invoke the filter program | ||
| 508 | +# by executing (via popen()) the command <filter> <input-file>, where <filter> | ||
| 509 | +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an | ||
| 510 | +# input file. Doxygen will then use the output that the filter program writes | ||
| 511 | +# to standard output. If FILTER_PATTERNS is specified, this tag will be | ||
| 512 | +# ignored. | ||
| 513 | + | ||
| 514 | +INPUT_FILTER = | ||
| 515 | + | ||
| 516 | +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | ||
| 517 | +# basis. Doxygen will compare the file name with each pattern and apply the | ||
| 518 | +# filter if there is a match. The filters are a list of the form: | ||
| 519 | +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further | ||
| 520 | +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER | ||
| 521 | +# is applied to all files. | ||
| 522 | + | ||
| 523 | +FILTER_PATTERNS = | ||
| 524 | + | ||
| 525 | +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | ||
| 526 | +# INPUT_FILTER) will be used to filter the input files when producing source | ||
| 527 | +# files to browse (i.e. when SOURCE_BROWSER is set to YES). | ||
| 528 | + | ||
| 529 | +FILTER_SOURCE_FILES = NO | ||
| 530 | + | ||
| 531 | +#--------------------------------------------------------------------------- | ||
| 532 | +# configuration options related to source browsing | ||
| 533 | +#--------------------------------------------------------------------------- | ||
| 534 | + | ||
| 535 | +# If the SOURCE_BROWSER tag is set to YES then a list of source files will | ||
| 536 | +# be generated. Documented entities will be cross-referenced with these sources. | ||
| 537 | +# Note: To get rid of all source code in the generated output, make sure also | ||
| 538 | +# VERBATIM_HEADERS is set to NO. | ||
| 539 | + | ||
| 540 | +SOURCE_BROWSER = NO | ||
| 541 | + | ||
| 542 | +# Setting the INLINE_SOURCES tag to YES will include the body | ||
| 543 | +# of functions and classes directly in the documentation. | ||
| 544 | + | ||
| 545 | +INLINE_SOURCES = NO | ||
| 546 | + | ||
| 547 | +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct | ||
| 548 | +# doxygen to hide any special comment blocks from generated source code | ||
| 549 | +# fragments. Normal C and C++ comments will always remain visible. | ||
| 550 | + | ||
| 551 | +STRIP_CODE_COMMENTS = YES | ||
| 552 | + | ||
| 553 | +# If the REFERENCED_BY_RELATION tag is set to YES (the default) | ||
| 554 | +# then for each documented function all documented | ||
| 555 | +# functions referencing it will be listed. | ||
| 556 | + | ||
| 557 | +REFERENCED_BY_RELATION = YES | ||
| 558 | + | ||
| 559 | +# If the REFERENCES_RELATION tag is set to YES (the default) | ||
| 560 | +# then for each documented function all documented entities | ||
| 561 | +# called/used by that function will be listed. | ||
| 562 | + | ||
| 563 | +REFERENCES_RELATION = YES | ||
| 564 | + | ||
| 565 | +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen | ||
| 566 | +# will generate a verbatim copy of the header file for each class for | ||
| 567 | +# which an include is specified. Set to NO to disable this. | ||
| 568 | + | ||
| 569 | +VERBATIM_HEADERS = YES | ||
| 570 | + | ||
| 571 | +#--------------------------------------------------------------------------- | ||
| 572 | +# configuration options related to the alphabetical class index | ||
| 573 | +#--------------------------------------------------------------------------- | ||
| 574 | + | ||
| 575 | +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index | ||
| 576 | +# of all compounds will be generated. Enable this if the project | ||
| 577 | +# contains a lot of classes, structs, unions or interfaces. | ||
| 578 | + | ||
| 579 | +ALPHABETICAL_INDEX = YES | ||
| 580 | + | ||
| 581 | +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then | ||
| 582 | +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns | ||
| 583 | +# in which this list will be split (can be a number in the range [1..20]) | ||
| 584 | + | ||
| 585 | +COLS_IN_ALPHA_INDEX = 5 | ||
| 586 | + | ||
| 587 | +# In case all classes in a project start with a common prefix, all | ||
| 588 | +# classes will be put under the same header in the alphabetical index. | ||
| 589 | +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that | ||
| 590 | +# should be ignored while generating the index headers. | ||
| 591 | + | ||
| 592 | +IGNORE_PREFIX = | ||
| 593 | + | ||
| 594 | +#--------------------------------------------------------------------------- | ||
| 595 | +# configuration options related to the HTML output | ||
| 596 | +#--------------------------------------------------------------------------- | ||
| 597 | + | ||
| 598 | +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will | ||
| 599 | +# generate HTML output. | ||
| 600 | + | ||
| 601 | +GENERATE_HTML = YES | ||
| 602 | + | ||
| 603 | +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. | ||
| 604 | +# If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
| 605 | +# put in front of it. If left blank `html' will be used as the default path. | ||
| 606 | + | ||
| 607 | +HTML_OUTPUT = html | ||
| 608 | + | ||
| 609 | +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for | ||
| 610 | +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank | ||
| 611 | +# doxygen will generate files with .html extension. | ||
| 612 | + | ||
| 613 | +HTML_FILE_EXTENSION = .html | ||
| 614 | + | ||
| 615 | +# The HTML_HEADER tag can be used to specify a personal HTML header for | ||
| 616 | +# each generated HTML page. If it is left blank doxygen will generate a | ||
| 617 | +# standard header. | ||
| 618 | + | ||
| 619 | +HTML_HEADER = | ||
| 620 | + | ||
| 621 | +# The HTML_FOOTER tag can be used to specify a personal HTML footer for | ||
| 622 | +# each generated HTML page. If it is left blank doxygen will generate a | ||
| 623 | +# standard footer. | ||
| 624 | + | ||
| 625 | +HTML_FOOTER = | ||
| 626 | + | ||
| 627 | +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading | ||
| 628 | +# style sheet that is used by each HTML page. It can be used to | ||
| 629 | +# fine-tune the look of the HTML output. If the tag is left blank doxygen | ||
| 630 | +# will generate a default style sheet. Note that doxygen will try to copy | ||
| 631 | +# the style sheet file to the HTML output directory, so don't put your own | ||
| 632 | +# stylesheet in the HTML output directory as well, or it will be erased! | ||
| 633 | + | ||
| 634 | +HTML_STYLESHEET = | ||
| 635 | + | ||
| 636 | +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, | ||
| 637 | +# files or namespaces will be aligned in HTML using tables. If set to | ||
| 638 | +# NO a bullet list will be used. | ||
| 639 | + | ||
| 640 | +HTML_ALIGN_MEMBERS = YES | ||
| 641 | + | ||
| 642 | +# If the GENERATE_HTMLHELP tag is set to YES, additional index files | ||
| 643 | +# will be generated that can be used as input for tools like the | ||
| 644 | +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) | ||
| 645 | +# of the generated HTML documentation. | ||
| 646 | + | ||
| 647 | +GENERATE_HTMLHELP = NO | ||
| 648 | + | ||
| 649 | +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can | ||
| 650 | +# be used to specify the file name of the resulting .chm file. You | ||
| 651 | +# can add a path in front of the file if the result should not be | ||
| 652 | +# written to the html output directory. | ||
| 653 | + | ||
| 654 | +CHM_FILE = | ||
| 655 | + | ||
| 656 | +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can | ||
| 657 | +# be used to specify the location (absolute path including file name) of | ||
| 658 | +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run | ||
| 659 | +# the HTML help compiler on the generated index.hhp. | ||
| 660 | + | ||
| 661 | +HHC_LOCATION = | ||
| 662 | + | ||
| 663 | +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag | ||
| 664 | +# controls if a separate .chi index file is generated (YES) or that | ||
| 665 | +# it should be included in the master .chm file (NO). | ||
| 666 | + | ||
| 667 | +GENERATE_CHI = NO | ||
| 668 | + | ||
| 669 | +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag | ||
| 670 | +# controls whether a binary table of contents is generated (YES) or a | ||
| 671 | +# normal table of contents (NO) in the .chm file. | ||
| 672 | + | ||
| 673 | +BINARY_TOC = NO | ||
| 674 | + | ||
| 675 | +# The TOC_EXPAND flag can be set to YES to add extra items for group members | ||
| 676 | +# to the contents of the HTML help documentation and to the tree view. | ||
| 677 | + | ||
| 678 | +TOC_EXPAND = NO | ||
| 679 | + | ||
| 680 | +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at | ||
| 681 | +# top of each HTML page. The value NO (the default) enables the index and | ||
| 682 | +# the value YES disables it. | ||
| 683 | + | ||
| 684 | +DISABLE_INDEX = NO | ||
| 685 | + | ||
| 686 | +# This tag can be used to set the number of enum values (range [1..20]) | ||
| 687 | +# that doxygen will group on one line in the generated HTML documentation. | ||
| 688 | + | ||
| 689 | +ENUM_VALUES_PER_LINE = 4 | ||
| 690 | + | ||
| 691 | +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be | ||
| 692 | +# generated containing a tree-like index structure (just like the one that | ||
| 693 | +# is generated for HTML Help). For this to work a browser that supports | ||
| 694 | +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, | ||
| 695 | +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are | ||
| 696 | +# probably better off using the HTML help feature. | ||
| 697 | + | ||
| 698 | +GENERATE_TREEVIEW = YES | ||
| 699 | + | ||
| 700 | +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be | ||
| 701 | +# used to set the initial width (in pixels) of the frame in which the tree | ||
| 702 | +# is shown. | ||
| 703 | + | ||
| 704 | +TREEVIEW_WIDTH = 250 | ||
| 705 | + | ||
| 706 | +#--------------------------------------------------------------------------- | ||
| 707 | +# configuration options related to the LaTeX output | ||
| 708 | +#--------------------------------------------------------------------------- | ||
| 709 | + | ||
| 710 | +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will | ||
| 711 | +# generate Latex output. | ||
| 712 | + | ||
| 713 | +GENERATE_LATEX = YES | ||
| 714 | + | ||
| 715 | +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. | ||
| 716 | +# If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
| 717 | +# put in front of it. If left blank `latex' will be used as the default path. | ||
| 718 | + | ||
| 719 | +LATEX_OUTPUT = latex | ||
| 720 | + | ||
| 721 | +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | ||
| 722 | +# invoked. If left blank `latex' will be used as the default command name. | ||
| 723 | + | ||
| 724 | +LATEX_CMD_NAME = latex | ||
| 725 | + | ||
| 726 | +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to | ||
| 727 | +# generate index for LaTeX. If left blank `makeindex' will be used as the | ||
| 728 | +# default command name. | ||
| 729 | + | ||
| 730 | +MAKEINDEX_CMD_NAME = makeindex | ||
| 731 | + | ||
| 732 | +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact | ||
| 733 | +# LaTeX documents. This may be useful for small projects and may help to | ||
| 734 | +# save some trees in general. | ||
| 735 | + | ||
| 736 | +COMPACT_LATEX = NO | ||
| 737 | + | ||
| 738 | +# The PAPER_TYPE tag can be used to set the paper type that is used | ||
| 739 | +# by the printer. Possible values are: a4, a4wide, letter, legal and | ||
| 740 | +# executive. If left blank a4wide will be used. | ||
| 741 | + | ||
| 742 | +PAPER_TYPE = a4wide | ||
| 743 | + | ||
| 744 | +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX | ||
| 745 | +# packages that should be included in the LaTeX output. | ||
| 746 | + | ||
| 747 | +EXTRA_PACKAGES = | ||
| 748 | + | ||
| 749 | +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for | ||
| 750 | +# the generated latex document. The header should contain everything until | ||
| 751 | +# the first chapter. If it is left blank doxygen will generate a | ||
| 752 | +# standard header. Notice: only use this tag if you know what you are doing! | ||
| 753 | + | ||
| 754 | +LATEX_HEADER = | ||
| 755 | + | ||
| 756 | +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated | ||
| 757 | +# is prepared for conversion to pdf (using ps2pdf). The pdf file will | ||
| 758 | +# contain links (just like the HTML output) instead of page references | ||
| 759 | +# This makes the output suitable for online browsing using a pdf viewer. | ||
| 760 | + | ||
| 761 | +PDF_HYPERLINKS = YES | ||
| 762 | + | ||
| 763 | +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of | ||
| 764 | +# plain latex in the generated Makefile. Set this option to YES to get a | ||
| 765 | +# higher quality PDF documentation. | ||
| 766 | + | ||
| 767 | +USE_PDFLATEX = NO | ||
| 768 | + | ||
| 769 | +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. | ||
| 770 | +# command to the generated LaTeX files. This will instruct LaTeX to keep | ||
| 771 | +# running if errors occur, instead of asking the user for help. | ||
| 772 | +# This option is also used when generating formulas in HTML. | ||
| 773 | + | ||
| 774 | +LATEX_BATCHMODE = NO | ||
| 775 | + | ||
| 776 | +# If LATEX_HIDE_INDICES is set to YES then doxygen will not | ||
| 777 | +# include the index chapters (such as File Index, Compound Index, etc.) | ||
| 778 | +# in the output. | ||
| 779 | + | ||
| 780 | +LATEX_HIDE_INDICES = NO | ||
| 781 | + | ||
| 782 | +#--------------------------------------------------------------------------- | ||
| 783 | +# configuration options related to the RTF output | ||
| 784 | +#--------------------------------------------------------------------------- | ||
| 785 | + | ||
| 786 | +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output | ||
| 787 | +# The RTF output is optimized for Word 97 and may not look very pretty with | ||
| 788 | +# other RTF readers or editors. | ||
| 789 | + | ||
| 790 | +GENERATE_RTF = NO | ||
| 791 | + | ||
| 792 | +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. | ||
| 793 | +# If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
| 794 | +# put in front of it. If left blank `rtf' will be used as the default path. | ||
| 795 | + | ||
| 796 | +RTF_OUTPUT = rtf | ||
| 797 | + | ||
| 798 | +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact | ||
| 799 | +# RTF documents. This may be useful for small projects and may help to | ||
| 800 | +# save some trees in general. | ||
| 801 | + | ||
| 802 | +COMPACT_RTF = NO | ||
| 803 | + | ||
| 804 | +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated | ||
| 805 | +# will contain hyperlink fields. The RTF file will | ||
| 806 | +# contain links (just like the HTML output) instead of page references. | ||
| 807 | +# This makes the output suitable for online browsing using WORD or other | ||
| 808 | +# programs which support those fields. | ||
| 809 | +# Note: wordpad (write) and others do not support links. | ||
| 810 | + | ||
| 811 | +RTF_HYPERLINKS = NO | ||
| 812 | + | ||
| 813 | +# Load stylesheet definitions from file. Syntax is similar to doxygen's | ||
| 814 | +# config file, i.e. a series of assignments. You only have to provide | ||
| 815 | +# replacements, missing definitions are set to their default value. | ||
| 816 | + | ||
| 817 | +RTF_STYLESHEET_FILE = | ||
| 818 | + | ||
| 819 | +# Set optional variables used in the generation of an rtf document. | ||
| 820 | +# Syntax is similar to doxygen's config file. | ||
| 821 | + | ||
| 822 | +RTF_EXTENSIONS_FILE = | ||
| 823 | + | ||
| 824 | +#--------------------------------------------------------------------------- | ||
| 825 | +# configuration options related to the man page output | ||
| 826 | +#--------------------------------------------------------------------------- | ||
| 827 | + | ||
| 828 | +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will | ||
| 829 | +# generate man pages | ||
| 830 | + | ||
| 831 | +GENERATE_MAN = NO | ||
| 832 | + | ||
| 833 | +# The MAN_OUTPUT tag is used to specify where the man pages will be put. | ||
| 834 | +# If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
| 835 | +# put in front of it. If left blank `man' will be used as the default path. | ||
| 836 | + | ||
| 837 | +MAN_OUTPUT = man | ||
| 838 | + | ||
| 839 | +# The MAN_EXTENSION tag determines the extension that is added to | ||
| 840 | +# the generated man pages (default is the subroutine's section .3) | ||
| 841 | + | ||
| 842 | +MAN_EXTENSION = .3 | ||
| 843 | + | ||
| 844 | +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, | ||
| 845 | +# then it will generate one additional man file for each entity | ||
| 846 | +# documented in the real man page(s). These additional files | ||
| 847 | +# only source the real man page, but without them the man command | ||
| 848 | +# would be unable to find the correct page. The default is NO. | ||
| 849 | + | ||
| 850 | +MAN_LINKS = NO | ||
| 851 | + | ||
| 852 | +#--------------------------------------------------------------------------- | ||
| 853 | +# configuration options related to the XML output | ||
| 854 | +#--------------------------------------------------------------------------- | ||
| 855 | + | ||
| 856 | +# If the GENERATE_XML tag is set to YES Doxygen will | ||
| 857 | +# generate an XML file that captures the structure of | ||
| 858 | +# the code including all documentation. | ||
| 859 | + | ||
| 860 | +GENERATE_XML = NO | ||
| 861 | + | ||
| 862 | +# The XML_OUTPUT tag is used to specify where the XML pages will be put. | ||
| 863 | +# If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
| 864 | +# put in front of it. If left blank `xml' will be used as the default path. | ||
| 865 | + | ||
| 866 | +XML_OUTPUT = xml | ||
| 867 | + | ||
| 868 | +# The XML_SCHEMA tag can be used to specify an XML schema, | ||
| 869 | +# which can be used by a validating XML parser to check the | ||
| 870 | +# syntax of the XML files. | ||
| 871 | + | ||
| 872 | +XML_SCHEMA = | ||
| 873 | + | ||
| 874 | +# The XML_DTD tag can be used to specify an XML DTD, | ||
| 875 | +# which can be used by a validating XML parser to check the | ||
| 876 | +# syntax of the XML files. | ||
| 877 | + | ||
| 878 | +XML_DTD = | ||
| 879 | + | ||
| 880 | +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will | ||
| 881 | +# dump the program listings (including syntax highlighting | ||
| 882 | +# and cross-referencing information) to the XML output. Note that | ||
| 883 | +# enabling this will significantly increase the size of the XML output. | ||
| 884 | + | ||
| 885 | +XML_PROGRAMLISTING = YES | ||
| 886 | + | ||
| 887 | +#--------------------------------------------------------------------------- | ||
| 888 | +# configuration options for the AutoGen Definitions output | ||
| 889 | +#--------------------------------------------------------------------------- | ||
| 890 | + | ||
| 891 | +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will | ||
| 892 | +# generate an AutoGen Definitions (see autogen.sf.net) file | ||
| 893 | +# that captures the structure of the code including all | ||
| 894 | +# documentation. Note that this feature is still experimental | ||
| 895 | +# and incomplete at the moment. | ||
| 896 | + | ||
| 897 | +GENERATE_AUTOGEN_DEF = NO | ||
| 898 | + | ||
| 899 | +#--------------------------------------------------------------------------- | ||
| 900 | +# configuration options related to the Perl module output | ||
| 901 | +#--------------------------------------------------------------------------- | ||
| 902 | + | ||
| 903 | +# If the GENERATE_PERLMOD tag is set to YES Doxygen will | ||
| 904 | +# generate a Perl module file that captures the structure of | ||
| 905 | +# the code including all documentation. Note that this | ||
| 906 | +# feature is still experimental and incomplete at the | ||
| 907 | +# moment. | ||
| 908 | + | ||
| 909 | +GENERATE_PERLMOD = NO | ||
| 910 | + | ||
| 911 | +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate | ||
| 912 | +# the necessary Makefile rules, Perl scripts and LaTeX code to be able | ||
| 913 | +# to generate PDF and DVI output from the Perl module output. | ||
| 914 | + | ||
| 915 | +PERLMOD_LATEX = NO | ||
| 916 | + | ||
| 917 | +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be | ||
| 918 | +# nicely formatted so it can be parsed by a human reader. This is useful | ||
| 919 | +# if you want to understand what is going on. On the other hand, if this | ||
| 920 | +# tag is set to NO the size of the Perl module output will be much smaller | ||
| 921 | +# and Perl will parse it just the same. | ||
| 922 | + | ||
| 923 | +PERLMOD_PRETTY = YES | ||
| 924 | + | ||
| 925 | +# The names of the make variables in the generated doxyrules.make file | ||
| 926 | +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. | ||
| 927 | +# This is useful so different doxyrules.make files included by the same | ||
| 928 | +# Makefile don't overwrite each other's variables. | ||
| 929 | + | ||
| 930 | +PERLMOD_MAKEVAR_PREFIX = | ||
| 931 | + | ||
| 932 | +#--------------------------------------------------------------------------- | ||
| 933 | +# Configuration options related to the preprocessor | ||
| 934 | +#--------------------------------------------------------------------------- | ||
| 935 | + | ||
| 936 | +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will | ||
| 937 | +# evaluate all C-preprocessor directives found in the sources and include | ||
| 938 | +# files. | ||
| 939 | + | ||
| 940 | +ENABLE_PREPROCESSING = YES | ||
| 941 | + | ||
| 942 | +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro | ||
| 943 | +# names in the source code. If set to NO (the default) only conditional | ||
| 944 | +# compilation will be performed. Macro expansion can be done in a controlled | ||
| 945 | +# way by setting EXPAND_ONLY_PREDEF to YES. | ||
| 946 | + | ||
| 947 | +MACRO_EXPANSION = NO | ||
| 948 | + | ||
| 949 | +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES | ||
| 950 | +# then the macro expansion is limited to the macros specified with the | ||
| 951 | +# PREDEFINED and EXPAND_AS_PREDEFINED tags. | ||
| 952 | + | ||
| 953 | +EXPAND_ONLY_PREDEF = NO | ||
| 954 | + | ||
| 955 | +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files | ||
| 956 | +# in the INCLUDE_PATH (see below) will be search if a #include is found. | ||
| 957 | + | ||
| 958 | +SEARCH_INCLUDES = YES | ||
| 959 | + | ||
| 960 | +# The INCLUDE_PATH tag can be used to specify one or more directories that | ||
| 961 | +# contain include files that are not input files but should be processed by | ||
| 962 | +# the preprocessor. | ||
| 963 | + | ||
| 964 | +INCLUDE_PATH = | ||
| 965 | + | ||
| 966 | +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | ||
| 967 | +# patterns (like *.h and *.hpp) to filter out the header-files in the | ||
| 968 | +# directories. If left blank, the patterns specified with FILE_PATTERNS will | ||
| 969 | +# be used. | ||
| 970 | + | ||
| 971 | +INCLUDE_FILE_PATTERNS = | ||
| 972 | + | ||
| 973 | +# The PREDEFINED tag can be used to specify one or more macro names that | ||
| 974 | +# are defined before the preprocessor is started (similar to the -D option of | ||
| 975 | +# gcc). The argument of the tag is a list of macros of the form: name | ||
| 976 | +# or name=definition (no spaces). If the definition and the = are | ||
| 977 | +# omitted =1 is assumed. To prevent a macro definition from being | ||
| 978 | +# undefined via #undef or recursively expanded use the := operator | ||
| 979 | +# instead of the = operator. | ||
| 980 | + | ||
| 981 | +PREDEFINED = | ||
| 982 | + | ||
| 983 | +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then | ||
| 984 | +# this tag can be used to specify a list of macro names that should be expanded. | ||
| 985 | +# The macro definition that is found in the sources will be used. | ||
| 986 | +# Use the PREDEFINED tag if you want to use a different macro definition. | ||
| 987 | + | ||
| 988 | +EXPAND_AS_DEFINED = | ||
| 989 | + | ||
| 990 | +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then | ||
| 991 | +# doxygen's preprocessor will remove all function-like macros that are alone | ||
| 992 | +# on a line, have an all uppercase name, and do not end with a semicolon. Such | ||
| 993 | +# function macros are typically used for boiler-plate code, and will confuse | ||
| 994 | +# the parser if not removed. | ||
| 995 | + | ||
| 996 | +SKIP_FUNCTION_MACROS = YES | ||
| 997 | + | ||
| 998 | +#--------------------------------------------------------------------------- | ||
| 999 | +# Configuration::additions related to external references | ||
| 1000 | +#--------------------------------------------------------------------------- | ||
| 1001 | + | ||
| 1002 | +# The TAGFILES option can be used to specify one or more tagfiles. | ||
| 1003 | +# Optionally an initial location of the external documentation | ||
| 1004 | +# can be added for each tagfile. The format of a tag file without | ||
| 1005 | +# this location is as follows: | ||
| 1006 | +# TAGFILES = file1 file2 ... | ||
| 1007 | +# Adding location for the tag files is done as follows: | ||
| 1008 | +# TAGFILES = file1=loc1 "file2 = loc2" ... | ||
| 1009 | +# where "loc1" and "loc2" can be relative or absolute paths or | ||
| 1010 | +# URLs. If a location is present for each tag, the installdox tool | ||
| 1011 | +# does not have to be run to correct the links. | ||
| 1012 | +# Note that each tag file must have a unique name | ||
| 1013 | +# (where the name does NOT include the path) | ||
| 1014 | +# If a tag file is not located in the directory in which doxygen | ||
| 1015 | +# is run, you must also specify the path to the tagfile here. | ||
| 1016 | + | ||
| 1017 | +TAGFILES = | ||
| 1018 | + | ||
| 1019 | +# When a file name is specified after GENERATE_TAGFILE, doxygen will create | ||
| 1020 | +# a tag file that is based on the input files it reads. | ||
| 1021 | + | ||
| 1022 | +GENERATE_TAGFILE = | ||
| 1023 | + | ||
| 1024 | +# If the ALLEXTERNALS tag is set to YES all external classes will be listed | ||
| 1025 | +# in the class index. If set to NO only the inherited external classes | ||
| 1026 | +# will be listed. | ||
| 1027 | + | ||
| 1028 | +ALLEXTERNALS = NO | ||
| 1029 | + | ||
| 1030 | +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed | ||
| 1031 | +# in the modules index. If set to NO, only the current project's groups will | ||
| 1032 | +# be listed. | ||
| 1033 | + | ||
| 1034 | +EXTERNAL_GROUPS = YES | ||
| 1035 | + | ||
| 1036 | +# The PERL_PATH should be the absolute path and name of the perl script | ||
| 1037 | +# interpreter (i.e. the result of `which perl'). | ||
| 1038 | + | ||
| 1039 | +PERL_PATH = /usr/bin/perl | ||
| 1040 | + | ||
| 1041 | +#--------------------------------------------------------------------------- | ||
| 1042 | +# Configuration options related to the dot tool | ||
| 1043 | +#--------------------------------------------------------------------------- | ||
| 1044 | + | ||
| 1045 | +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will | ||
| 1046 | +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base | ||
| 1047 | +# or super classes. Setting the tag to NO turns the diagrams off. Note that | ||
| 1048 | +# this option is superseded by the HAVE_DOT option below. This is only a | ||
| 1049 | +# fallback. It is recommended to install and use dot, since it yields more | ||
| 1050 | +# powerful graphs. | ||
| 1051 | + | ||
| 1052 | +CLASS_DIAGRAMS = YES | ||
| 1053 | + | ||
| 1054 | +# If set to YES, the inheritance and collaboration graphs will hide | ||
| 1055 | +# inheritance and usage relations if the target is undocumented | ||
| 1056 | +# or is not a class. | ||
| 1057 | + | ||
| 1058 | +HIDE_UNDOC_RELATIONS = NO | ||
| 1059 | + | ||
| 1060 | +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is | ||
| 1061 | +# available from the path. This tool is part of Graphviz, a graph visualization | ||
| 1062 | +# toolkit from AT&T and Lucent Bell Labs. The other options in this section | ||
| 1063 | +# have no effect if this option is set to NO (the default) | ||
| 1064 | + | ||
| 1065 | +HAVE_DOT = NO | ||
| 1066 | + | ||
| 1067 | +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
| 1068 | +# will generate a graph for each documented class showing the direct and | ||
| 1069 | +# indirect inheritance relations. Setting this tag to YES will force the | ||
| 1070 | +# the CLASS_DIAGRAMS tag to NO. | ||
| 1071 | + | ||
| 1072 | +CLASS_GRAPH = YES | ||
| 1073 | + | ||
| 1074 | +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
| 1075 | +# will generate a graph for each documented class showing the direct and | ||
| 1076 | +# indirect implementation dependencies (inheritance, containment, and | ||
| 1077 | +# class references variables) of the class with other documented classes. | ||
| 1078 | + | ||
| 1079 | +COLLABORATION_GRAPH = YES | ||
| 1080 | + | ||
| 1081 | +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen | ||
| 1082 | +# will generate a graph for groups, showing the direct groups dependencies | ||
| 1083 | + | ||
| 1084 | +GROUP_GRAPHS = YES | ||
| 1085 | + | ||
| 1086 | +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and | ||
| 1087 | +# collaboration diagrams in a style similar to the OMG's Unified Modeling | ||
| 1088 | +# Language. | ||
| 1089 | + | ||
| 1090 | +UML_LOOK = NO | ||
| 1091 | + | ||
| 1092 | +# If set to YES, the inheritance and collaboration graphs will show the | ||
| 1093 | +# relations between templates and their instances. | ||
| 1094 | + | ||
| 1095 | +TEMPLATE_RELATIONS = NO | ||
| 1096 | + | ||
| 1097 | +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT | ||
| 1098 | +# tags are set to YES then doxygen will generate a graph for each documented | ||
| 1099 | +# file showing the direct and indirect include dependencies of the file with | ||
| 1100 | +# other documented files. | ||
| 1101 | + | ||
| 1102 | +INCLUDE_GRAPH = YES | ||
| 1103 | + | ||
| 1104 | +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and | ||
| 1105 | +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each | ||
| 1106 | +# documented header file showing the documented files that directly or | ||
| 1107 | +# indirectly include this file. | ||
| 1108 | + | ||
| 1109 | +INCLUDED_BY_GRAPH = YES | ||
| 1110 | + | ||
| 1111 | +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will | ||
| 1112 | +# generate a call dependency graph for every global function or class method. | ||
| 1113 | +# Note that enabling this option will significantly increase the time of a run. | ||
| 1114 | +# So in most cases it will be better to enable call graphs for selected | ||
| 1115 | +# functions only using the \callgraph command. | ||
| 1116 | + | ||
| 1117 | +CALL_GRAPH = NO | ||
| 1118 | + | ||
| 1119 | +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen | ||
| 1120 | +# will graphical hierarchy of all classes instead of a textual one. | ||
| 1121 | + | ||
| 1122 | +GRAPHICAL_HIERARCHY = YES | ||
| 1123 | + | ||
| 1124 | +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES | ||
| 1125 | +# then doxygen will show the dependencies a directory has on other directories | ||
| 1126 | +# in a graphical way. The dependency relations are determined by the #include | ||
| 1127 | +# relations between the files in the directories. | ||
| 1128 | + | ||
| 1129 | +DIRECTORY_GRAPH = YES | ||
| 1130 | + | ||
| 1131 | +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images | ||
| 1132 | +# generated by dot. Possible values are png, jpg, or gif | ||
| 1133 | +# If left blank png will be used. | ||
| 1134 | + | ||
| 1135 | +DOT_IMAGE_FORMAT = png | ||
| 1136 | + | ||
| 1137 | +# The tag DOT_PATH can be used to specify the path where the dot tool can be | ||
| 1138 | +# found. If left blank, it is assumed the dot tool can be found in the path. | ||
| 1139 | + | ||
| 1140 | +DOT_PATH = | ||
| 1141 | + | ||
| 1142 | +# The DOTFILE_DIRS tag can be used to specify one or more directories that | ||
| 1143 | +# contain dot files that are included in the documentation (see the | ||
| 1144 | +# \dotfile command). | ||
| 1145 | + | ||
| 1146 | +DOTFILE_DIRS = | ||
| 1147 | + | ||
| 1148 | +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width | ||
| 1149 | +# (in pixels) of the graphs generated by dot. If a graph becomes larger than | ||
| 1150 | +# this value, doxygen will try to truncate the graph, so that it fits within | ||
| 1151 | +# the specified constraint. Beware that most browsers cannot cope with very | ||
| 1152 | +# large images. | ||
| 1153 | + | ||
| 1154 | +MAX_DOT_GRAPH_WIDTH = 1024 | ||
| 1155 | + | ||
| 1156 | +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height | ||
| 1157 | +# (in pixels) of the graphs generated by dot. If a graph becomes larger than | ||
| 1158 | +# this value, doxygen will try to truncate the graph, so that it fits within | ||
| 1159 | +# the specified constraint. Beware that most browsers cannot cope with very | ||
| 1160 | +# large images. | ||
| 1161 | + | ||
| 1162 | +MAX_DOT_GRAPH_HEIGHT = 1024 | ||
| 1163 | + | ||
| 1164 | +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the | ||
| 1165 | +# graphs generated by dot. A depth value of 3 means that only nodes reachable | ||
| 1166 | +# from the root by following a path via at most 3 edges will be shown. Nodes | ||
| 1167 | +# that lay further from the root node will be omitted. Note that setting this | ||
| 1168 | +# option to 1 or 2 may greatly reduce the computation time needed for large | ||
| 1169 | +# code bases. Also note that a graph may be further truncated if the graph's | ||
| 1170 | +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH | ||
| 1171 | +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), | ||
| 1172 | +# the graph is not depth-constrained. | ||
| 1173 | + | ||
| 1174 | +MAX_DOT_GRAPH_DEPTH = 0 | ||
| 1175 | + | ||
| 1176 | +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent | ||
| 1177 | +# background. This is disabled by default, which results in a white background. | ||
| 1178 | +# Warning: Depending on the platform used, enabling this option may lead to | ||
| 1179 | +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to | ||
| 1180 | +# read). | ||
| 1181 | + | ||
| 1182 | +DOT_TRANSPARENT = NO | ||
| 1183 | + | ||
| 1184 | +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output | ||
| 1185 | +# files in one run (i.e. multiple -o and -T options on the command line). This | ||
| 1186 | +# makes dot run faster, but since only newer versions of dot (>1.8.10) | ||
| 1187 | +# support this, this feature is disabled by default. | ||
| 1188 | + | ||
| 1189 | +DOT_MULTI_TARGETS = NO | ||
| 1190 | + | ||
| 1191 | +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will | ||
| 1192 | +# generate a legend page explaining the meaning of the various boxes and | ||
| 1193 | +# arrows in the dot generated graphs. | ||
| 1194 | + | ||
| 1195 | +GENERATE_LEGEND = YES | ||
| 1196 | + | ||
| 1197 | +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will | ||
| 1198 | +# remove the intermediate dot files that are used to generate | ||
| 1199 | +# the various graphs. | ||
| 1200 | + | ||
| 1201 | +DOT_CLEANUP = YES | ||
| 1202 | + | ||
| 1203 | +#--------------------------------------------------------------------------- | ||
| 1204 | +# Configuration::additions related to the search engine | ||
| 1205 | +#--------------------------------------------------------------------------- | ||
| 1206 | + | ||
| 1207 | +# The SEARCHENGINE tag specifies whether or not a search engine should be | ||
| 1208 | +# used. If set to NO the values of all tags below this one will be ignored. | ||
| 1209 | + | ||
| 1210 | +SEARCHENGINE = NO |
include/GFitsAsciiTable.hpp
| @@ -42,7 +42,7 @@ public: | @@ -42,7 +42,7 @@ public: | ||
| 42 | GFitsAsciiTable* clone(void) const; | 42 | GFitsAsciiTable* clone(void) const; |
| 43 | GFitsTableCol* column(const std::string colname); | 43 | GFitsTableCol* column(const std::string colname); |
| 44 | GFitsTableCol* column(const int colnum); | 44 | GFitsTableCol* column(const int colnum); |
| 45 | - | 45 | + |
| 46 | private: | 46 | private: |
| 47 | // Private methods | 47 | // Private methods |
| 48 | void init_members(void); | 48 | void init_members(void); |
include/GFitsData.hpp
| @@ -38,7 +38,7 @@ public: | @@ -38,7 +38,7 @@ public: | ||
| 38 | virtual void open(__fitsfile* fptr) = 0; | 38 | virtual void open(__fitsfile* fptr) = 0; |
| 39 | virtual void close(void) = 0; | 39 | virtual void close(void) = 0; |
| 40 | virtual GFitsData* clone(void) const = 0; | 40 | virtual GFitsData* clone(void) const = 0; |
| 41 | - | 41 | + |
| 42 | protected: | 42 | protected: |
| 43 | // Protected methods | 43 | // Protected methods |
| 44 | void init_members(void); | 44 | void init_members(void); |
include/GLATResponse.hpp
0 → 100644
| 1 | +/*************************************************************************** | ||
| 2 | + * GLATResponse.hpp - GLAST LAT Response class * | ||
| 3 | + * ----------------------------------------------------------------------- * | ||
| 4 | + * copyright : (C) 2008 by Jurgen Knodlseder * | ||
| 5 | + * ----------------------------------------------------------------------- * | ||
| 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 2 of the License, or * | ||
| 10 | + * (at your option) any later version. * | ||
| 11 | + * * | ||
| 12 | + ***************************************************************************/ | ||
| 13 | +/** | ||
| 14 | + * @file GLATResponse.hpp | ||
| 15 | + * @brief GLATResponse class definition. | ||
| 16 | + * @author J. Knodlseder | ||
| 17 | + */ | ||
| 18 | + | ||
| 19 | +#ifndef GLATRESPONSE_HPP | ||
| 20 | +#define GLATRESPONSE_HPP | ||
| 21 | + | ||
| 22 | +/* __ Includes ___________________________________________________________ */ | ||
| 23 | +#include "GVector.hpp" | ||
| 24 | +#include "GSkyDir.hpp" | ||
| 25 | +#include "GResponse.hpp" | ||
| 26 | +#include "GFitsHDU.hpp" | ||
| 27 | + | ||
| 28 | +/* __ Namespaces _________________________________________________________ */ | ||
| 29 | + | ||
| 30 | + | ||
| 31 | +/*************************************************************************** | ||
| 32 | + * GLATResponse class definition * | ||
| 33 | + ***************************************************************************/ | ||
| 34 | +/** | ||
| 35 | + * @class GLATResponse | ||
| 36 | + * | ||
| 37 | + * @brief Interface for the GLAST LAT instrument response function classes. | ||
| 38 | + * | ||
| 39 | + * @author J. Knodlseder | ||
| 40 | + */ | ||
| 41 | +class GLATResponse : public GResponse { | ||
| 42 | + | ||
| 43 | +public: | ||
| 44 | + // Constructors and destructors | ||
| 45 | + GLATResponse(); | ||
| 46 | + GLATResponse(const GLATResponse& rsp); | ||
| 47 | + ~GLATResponse(); | ||
| 48 | + | ||
| 49 | + // Operators | ||
| 50 | + GLATResponse& operator= (const GLATResponse & rsp); | ||
| 51 | + | ||
| 52 | + // Methods | ||
| 53 | + double irf(const GSkyDir& obsDir, const double& obsEng, | ||
| 54 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 55 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 56 | + const double& time); | ||
| 57 | + double psf(const GSkyDir& obsDir, const double& obsEng, | ||
| 58 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 59 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 60 | + const double& time); | ||
| 61 | + double aeff(const GSkyDir& obsDir, const double& obsEng, | ||
| 62 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 63 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 64 | + const double& time); | ||
| 65 | + double edisp(const GSkyDir& obsDir, const double& obsEng, | ||
| 66 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 67 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 68 | + const double& time); | ||
| 69 | + | ||
| 70 | + void set_caldb(std::string caldb); | ||
| 71 | + void load(std::string rspname); | ||
| 72 | + void save(std::string rspname) const; | ||
| 73 | + GLATResponse* clone(void) const; | ||
| 74 | + | ||
| 75 | +private: | ||
| 76 | + // Private methods | ||
| 77 | + void init_members(void); | ||
| 78 | + void copy_members(const GLATResponse& rsp); | ||
| 79 | + void free_members(void); | ||
| 80 | + void init_aeff(void); | ||
| 81 | + void init_psf(void); | ||
| 82 | + void init_edisp(void); | ||
| 83 | + GVector get_fits_column(const GFitsHDU* hdu, const std::string& colname); | ||
| 84 | + | ||
| 85 | + // Private data area | ||
| 86 | + | ||
| 87 | +}; | ||
| 88 | + | ||
| 89 | + | ||
| 90 | +/*************************************************************************** | ||
| 91 | + * Inline methods * | ||
| 92 | + ***************************************************************************/ | ||
| 93 | +inline | ||
| 94 | +GLATResponse* GLATResponse::clone(void) const | ||
| 95 | +{ | ||
| 96 | + return new GLATResponse(*this); | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +#endif /* GLATRESPONSE_HPP */ |
include/GResponse.hpp
| @@ -10,46 +10,141 @@ | @@ -10,46 +10,141 @@ | ||
| 10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
| 11 | * * | 11 | * * |
| 12 | ***************************************************************************/ | 12 | ***************************************************************************/ |
| 13 | +/** | ||
| 14 | + * @file GResponse.hpp | ||
| 15 | + * @brief GResponse class definition. | ||
| 16 | + * @author J. Knodlseder | ||
| 17 | + */ | ||
| 13 | 18 | ||
| 14 | #ifndef GRESPONSE_HPP | 19 | #ifndef GRESPONSE_HPP |
| 15 | #define GRESPONSE_HPP | 20 | #define GRESPONSE_HPP |
| 16 | 21 | ||
| 17 | /* __ Includes ___________________________________________________________ */ | 22 | /* __ Includes ___________________________________________________________ */ |
| 18 | -//#include "GVector.hpp" | 23 | +#include "GSkyDir.hpp" |
| 19 | 24 | ||
| 20 | /* __ Namespaces _________________________________________________________ */ | 25 | /* __ Namespaces _________________________________________________________ */ |
| 21 | -using namespace std; | ||
| 22 | 26 | ||
| 23 | 27 | ||
| 24 | /*************************************************************************** | 28 | /*************************************************************************** |
| 25 | * GResponse class definition * | 29 | * GResponse class definition * |
| 26 | ***************************************************************************/ | 30 | ***************************************************************************/ |
| 31 | +/** | ||
| 32 | + * @class GResponse | ||
| 33 | + * | ||
| 34 | + * @brief Abstract interface for the instrument response function classes. | ||
| 35 | + * | ||
| 36 | + * @author J. Knodlseder | ||
| 37 | + */ | ||
| 27 | class GResponse { | 38 | class GResponse { |
| 28 | 39 | ||
| 29 | -// Public methods | ||
| 30 | public: | 40 | public: |
| 31 | - // Constructors and destructors | ||
| 32 | - //GResponse(); | ||
| 33 | - //GResponse(const GResponse& r); | ||
| 34 | - //virtual ~GResponse(); | 41 | + /// Constructor |
| 42 | + GResponse(); | ||
| 35 | 43 | ||
| 36 | - // Operators | 44 | + /// Copy constructor |
| 45 | + GResponse(const GResponse& rsp); | ||
| 37 | 46 | ||
| 38 | - // Methods | 47 | + /// Destructor |
| 48 | + virtual ~GResponse(); | ||
| 49 | + | ||
| 50 | + /// Assignment operator | ||
| 51 | + virtual GResponse& operator= (const GResponse& rsp); | ||
| 52 | + | ||
| 53 | + /// Pure virtual method to define the interface for the member function | ||
| 54 | + /// returning the instrument response function value | ||
| 55 | + /// @param obsDir Observed photon direction | ||
| 56 | + /// @param obsEng Observed energy of photon | ||
| 57 | + /// @param srcDir True photon direction | ||
| 58 | + /// @param srcEng True energy of photon | ||
| 59 | + /// @param instPntDir Instrument pointing direction (e.g. z-axis) | ||
| 60 | + /// @param instPosAng Instrument position angle | ||
| 61 | + /// @param time Photon arrival time | ||
| 62 | + virtual double irf(const GSkyDir& obsDir, const double& obsEng, | ||
| 63 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 64 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 65 | + const double& time) = 0; | ||
| 66 | + | ||
| 67 | + /// Pure virtual method to define the interface for the member function | ||
| 68 | + /// returning the point spread function value | ||
| 69 | + /// @param obsDir Observed photon direction | ||
| 70 | + /// @param obsEng Observed energy of photon | ||
| 71 | + /// @param srcDir True photon direction | ||
| 72 | + /// @param srcEng True energy of photon | ||
| 73 | + /// @param instPntDir Instrument pointing direction (e.g. z-axis) | ||
| 74 | + /// @param instPosAng Instrument position angle | ||
| 75 | + /// @param time Photon arrival time | ||
| 76 | + virtual double psf(const GSkyDir& obsDir, const double& obsEng, | ||
| 77 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 78 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 79 | + const double& time) = 0; | ||
| 80 | + | ||
| 81 | + /// Pure virtual method to define the interface for the member function | ||
| 82 | + /// returning the effective area value | ||
| 83 | + /// @param obsDir Observed photon direction | ||
| 84 | + /// @param obsEng Observed energy of photon | ||
| 85 | + /// @param srcDir True photon direction | ||
| 86 | + /// @param srcEng True energy of photon | ||
| 87 | + /// @param instPntDir Instrument pointing direction (e.g. z-axis) | ||
| 88 | + /// @param instPosAng Instrument position angle | ||
| 89 | + /// @param time Photon arrival time | ||
| 90 | + virtual double aeff(const GSkyDir& obsDir, const double& obsEng, | ||
| 91 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 92 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 93 | + const double& time) = 0; | ||
| 94 | + | ||
| 95 | + /// Pure virtual method to define the interface for the member function | ||
| 96 | + /// returning the energy dispersion value | ||
| 97 | + /// @param obsDir Observed photon direction | ||
| 98 | + /// @param obsEng Observed energy of photon | ||
| 99 | + /// @param srcDir True photon direction | ||
| 100 | + /// @param srcEng True energy of photon | ||
| 101 | + /// @param instPntDir Instrument pointing direction (e.g. z-axis) | ||
| 102 | + /// @param instPosAng Instrument position angle | ||
| 103 | + /// @param time Photon arrival time | ||
| 104 | + virtual double edisp(const GSkyDir& obsDir, const double& obsEng, | ||
| 105 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 106 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 107 | + const double& time) = 0; | ||
| 108 | + | ||
| 109 | + /// Pure virtual method to define the calibration database | ||
| 110 | + /// @param caldb Calibration database to be used | ||
| 111 | + virtual void set_caldb(std::string caldb) = 0; | ||
| 112 | + | ||
| 113 | + /// Pure virtual method to load the instrument response from the calibration | ||
| 114 | + /// database | ||
| 115 | + /// @param rspname Name of the instrument response | ||
| 39 | virtual void load(std::string rspname) = 0; | 116 | virtual void load(std::string rspname) = 0; |
| 40 | - virtual void save(std::string rspname) = 0; | ||
| 41 | - virtual void set_caldb(std::string dbname) = 0; | ||
| 42 | - | ||
| 43 | -// Methods and data that are available to derived classes | 117 | + |
| 118 | + /// Pure virtual method to save the instrument response into the calibration | ||
| 119 | + /// database | ||
| 120 | + /// @param rspname Name of the instrument response | ||
| 121 | + virtual void save(std::string rspname) const = 0; | ||
| 122 | + | ||
| 123 | + /// Pure virtual method to clone the response instance | ||
| 124 | + virtual GResponse* clone(void) const = 0; | ||
| 125 | + | ||
| 44 | protected: | 126 | protected: |
| 45 | - // Protected methods | 127 | + /// Name of or path to the calibration database |
| 128 | + std::string m_caldb; | ||
| 129 | + | ||
| 130 | + /// Name of the instrument response | ||
| 131 | + std::string m_rspname; | ||
| 132 | + | ||
| 133 | + /// Protected method that initialises protected members of the class | ||
| 134 | + void init_members(void); | ||
| 135 | + | ||
| 136 | + /// Protected method that copies protected members of the class | ||
| 137 | + void copy_members(const GResponse& rsp); | ||
| 46 | 138 | ||
| 47 | - // Protected data area | ||
| 48 | - std::string m_caldb; // Calibration database name | ||
| 49 | - std::string m_rspname; // Response name | 139 | + /// Protected method that frees memory allocated by instances of the class |
| 140 | + void free_members(void); | ||
| 50 | 141 | ||
| 51 | -// Methods that are available to the base class only | ||
| 52 | private: | 142 | private: |
| 53 | }; | 143 | }; |
| 54 | 144 | ||
| 145 | + | ||
| 146 | +/*************************************************************************** | ||
| 147 | + * Inline methods * | ||
| 148 | + ***************************************************************************/ | ||
| 149 | + | ||
| 55 | #endif /* GRESPONSE_HPP */ | 150 | #endif /* GRESPONSE_HPP */ |
include/GSkyDir.hpp
0 → 100644
| 1 | +/*************************************************************************** | ||
| 2 | + * GSkyDir.hpp - Class that implements a sky direction * | ||
| 3 | + * ----------------------------------------------------------------------- * | ||
| 4 | + * copyright : (C) 2008 by Jurgen Knodlseder * | ||
| 5 | + * ----------------------------------------------------------------------- * | ||
| 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 2 of the License, or * | ||
| 10 | + * (at your option) any later version. * | ||
| 11 | + * * | ||
| 12 | + ***************************************************************************/ | ||
| 13 | +/** | ||
| 14 | + * @file GSkyDir.hpp | ||
| 15 | + * @brief GSkyDir class definition. | ||
| 16 | + * @author J. Knodlseder | ||
| 17 | + */ | ||
| 18 | + | ||
| 19 | +#ifndef GSKYDIR_HPP | ||
| 20 | +#define GSKYDIR_HPP | ||
| 21 | + | ||
| 22 | +/* __ Includes ___________________________________________________________ */ | ||
| 23 | + | ||
| 24 | +/* __ Namespaces _________________________________________________________ */ | ||
| 25 | + | ||
| 26 | + | ||
| 27 | +/*************************************************************************** | ||
| 28 | + * GSkyDir class definition * | ||
| 29 | + ***************************************************************************/ | ||
| 30 | +/** | ||
| 31 | + * @class GSkyDir | ||
| 32 | + * | ||
| 33 | + * @brief Interface for the sky direction classes. | ||
| 34 | + * | ||
| 35 | + * @author J. Knodlseder | ||
| 36 | + */ | ||
| 37 | +class GSkyDir { | ||
| 38 | + | ||
| 39 | +public: | ||
| 40 | + /// Constructor | ||
| 41 | + GSkyDir(); | ||
| 42 | + | ||
| 43 | + /// Copy constructor | ||
| 44 | + GSkyDir(const GSkyDir& dir); | ||
| 45 | + | ||
| 46 | + /// Destructor | ||
| 47 | + virtual ~GSkyDir(); | ||
| 48 | + | ||
| 49 | + /// Assignment operator | ||
| 50 | + GSkyDir& operator= (const GSkyDir& dir); | ||
| 51 | + | ||
| 52 | +protected: | ||
| 53 | + /// Longitude | ||
| 54 | + double m_lon; | ||
| 55 | + | ||
| 56 | + /// Latitude | ||
| 57 | + double m_lat; | ||
| 58 | + | ||
| 59 | + /// Protected method that initialises protected members of the class | ||
| 60 | + void init_members(void); | ||
| 61 | + | ||
| 62 | + /// Protected method that copies protected members of the class | ||
| 63 | + void copy_members(const GSkyDir& dir); | ||
| 64 | + | ||
| 65 | + /// Protected method that frees memory allocated by instances of the class | ||
| 66 | + void free_members(void); | ||
| 67 | + | ||
| 68 | +private: | ||
| 69 | + | ||
| 70 | +}; | ||
| 71 | + | ||
| 72 | + | ||
| 73 | +/*************************************************************************** | ||
| 74 | + * Inline methods * | ||
| 75 | + ***************************************************************************/ | ||
| 76 | + | ||
| 77 | +#endif /* GSKYDIR_HPP */ |
include/GammaLib.hpp
include/Makefile.am
| 1 | # Define package included headers (to be installed) | 1 | # Define package included headers (to be installed) |
| 2 | pkginclude_HEADERS = GammaLib.hpp \ | 2 | pkginclude_HEADERS = GammaLib.hpp \ |
| 3 | GException.hpp \ | 3 | GException.hpp \ |
| 4 | + GSkyDir.hpp \ | ||
| 4 | GData.hpp \ | 5 | GData.hpp \ |
| 5 | GResponse.hpp \ | 6 | GResponse.hpp \ |
| 7 | + GLATResponse.hpp \ | ||
| 6 | GObservation.hpp \ | 8 | GObservation.hpp \ |
| 7 | GFitsHeaderCard.hpp \ | 9 | GFitsHeaderCard.hpp \ |
| 8 | GFitsHeader.hpp \ | 10 | GFitsHeader.hpp \ |
include/Makefile.in
| @@ -179,8 +179,10 @@ target_alias = @target_alias@ | @@ -179,8 +179,10 @@ target_alias = @target_alias@ | ||
| 179 | # Define package included headers (to be installed) | 179 | # Define package included headers (to be installed) |
| 180 | pkginclude_HEADERS = GammaLib.hpp \ | 180 | pkginclude_HEADERS = GammaLib.hpp \ |
| 181 | GException.hpp \ | 181 | GException.hpp \ |
| 182 | + GSkyDir.hpp \ | ||
| 182 | GData.hpp \ | 183 | GData.hpp \ |
| 183 | GResponse.hpp \ | 184 | GResponse.hpp \ |
| 185 | + GLATResponse.hpp \ | ||
| 184 | GObservation.hpp \ | 186 | GObservation.hpp \ |
| 185 | GFitsHeaderCard.hpp \ | 187 | GFitsHeaderCard.hpp \ |
| 186 | GFitsHeader.hpp \ | 188 | GFitsHeader.hpp \ |
src/GSkyDir.cpp
0 → 100644
| 1 | +/*************************************************************************** | ||
| 2 | + * GSkyDir.cpp - Class that implements a sky direction * | ||
| 3 | + * ----------------------------------------------------------------------- * | ||
| 4 | + * copyright : (C) 2008 by Jurgen Knodlseder * | ||
| 5 | + * ----------------------------------------------------------------------- * | ||
| 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 2 of the License, or * | ||
| 10 | + * (at your option) any later version. * | ||
| 11 | + * * | ||
| 12 | + * ----------------------------------------------------------------------- * | ||
| 13 | + ***************************************************************************/ | ||
| 14 | + | ||
| 15 | +/* __ Includes ___________________________________________________________ */ | ||
| 16 | +#include "GException.hpp" | ||
| 17 | +#include "GSkyDir.hpp" | ||
| 18 | + | ||
| 19 | +/* __ Namespaces _________________________________________________________ */ | ||
| 20 | + | ||
| 21 | +/* __ Method name definitions ____________________________________________ */ | ||
| 22 | + | ||
| 23 | +/* __ Macros _____________________________________________________________ */ | ||
| 24 | + | ||
| 25 | +/* __ Coding definitions _________________________________________________ */ | ||
| 26 | + | ||
| 27 | +/* __ Debug definitions __________________________________________________ */ | ||
| 28 | + | ||
| 29 | + | ||
| 30 | + | ||
| 31 | +/*========================================================================== | ||
| 32 | + = = | ||
| 33 | + = GSkyDir constructors/destructors = | ||
| 34 | + = = | ||
| 35 | + ==========================================================================*/ | ||
| 36 | + | ||
| 37 | +/*************************************************************************** | ||
| 38 | + * Constructor * | ||
| 39 | + * ----------------------------------------------------------------------- * | ||
| 40 | + ***************************************************************************/ | ||
| 41 | +GSkyDir::GSkyDir() | ||
| 42 | +{ | ||
| 43 | + // Initialise class members for clean destruction | ||
| 44 | + init_members(); | ||
| 45 | + | ||
| 46 | + // Return | ||
| 47 | + return; | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | + | ||
| 51 | +/*************************************************************************** | ||
| 52 | + * Copy constructor * | ||
| 53 | + * ----------------------------------------------------------------------- * | ||
| 54 | + ***************************************************************************/ | ||
| 55 | +GSkyDir::GSkyDir(const GSkyDir& dir) | ||
| 56 | +{ | ||
| 57 | + // Initialise class members for clean destruction | ||
| 58 | + init_members(); | ||
| 59 | + | ||
| 60 | + // Copy members | ||
| 61 | + copy_members(dir); | ||
| 62 | + | ||
| 63 | + // Return | ||
| 64 | + return; | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | + | ||
| 68 | +/*************************************************************************** | ||
| 69 | + * Destructor * | ||
| 70 | + * ----------------------------------------------------------------------- * | ||
| 71 | + ***************************************************************************/ | ||
| 72 | +GSkyDir::~GSkyDir() | ||
| 73 | +{ | ||
| 74 | + // Free members | ||
| 75 | + free_members(); | ||
| 76 | + | ||
| 77 | + // Return | ||
| 78 | + return; | ||
| 79 | +} | ||
| 80 | + | ||
| 81 | + | ||
| 82 | +/*========================================================================== | ||
| 83 | + = = | ||
| 84 | + = GSkyDir operators = | ||
| 85 | + = = | ||
| 86 | + ==========================================================================*/ | ||
| 87 | + | ||
| 88 | +/*************************************************************************** | ||
| 89 | + * Assignment operator * | ||
| 90 | + * ----------------------------------------------------------------------- * | ||
| 91 | + ***************************************************************************/ | ||
| 92 | +GSkyDir& GSkyDir::operator= (const GSkyDir& dir) | ||
| 93 | +{ | ||
| 94 | + // Execute only if object is not identical | ||
| 95 | + if (this != &dir) { | ||
| 96 | + | ||
| 97 | + // Free members | ||
| 98 | + free_members(); | ||
| 99 | + | ||
| 100 | + // Initialise private members for clean destruction | ||
| 101 | + init_members(); | ||
| 102 | + | ||
| 103 | + // Copy members | ||
| 104 | + copy_members(dir); | ||
| 105 | + | ||
| 106 | + } // endif: object was not identical | ||
| 107 | + | ||
| 108 | + // Return this object | ||
| 109 | + return *this; | ||
| 110 | +} | ||
| 111 | + | ||
| 112 | + | ||
| 113 | +/*========================================================================== | ||
| 114 | + = = | ||
| 115 | + = GSkyDir public methods = | ||
| 116 | + = = | ||
| 117 | + ==========================================================================*/ | ||
| 118 | + | ||
| 119 | + | ||
| 120 | +/*========================================================================== | ||
| 121 | + = = | ||
| 122 | + = GSkyDir private methods = | ||
| 123 | + = = | ||
| 124 | + ==========================================================================*/ | ||
| 125 | + | ||
| 126 | +/*************************************************************************** | ||
| 127 | + * Initialise class members * | ||
| 128 | + * ----------------------------------------------------------------------- * | ||
| 129 | + ***************************************************************************/ | ||
| 130 | +void GSkyDir::init_members(void) | ||
| 131 | +{ | ||
| 132 | + // Initialise members | ||
| 133 | + | ||
| 134 | + // Return | ||
| 135 | + return; | ||
| 136 | +} | ||
| 137 | + | ||
| 138 | + | ||
| 139 | +/*************************************************************************** | ||
| 140 | + * Copy class members * | ||
| 141 | + * ----------------------------------------------------------------------- * | ||
| 142 | + ***************************************************************************/ | ||
| 143 | +void GSkyDir::copy_members(const GSkyDir& dir) | ||
| 144 | +{ | ||
| 145 | + // Copy attributes | ||
| 146 | + | ||
| 147 | + // Copy other membres | ||
| 148 | + | ||
| 149 | + // Return | ||
| 150 | + return; | ||
| 151 | +} | ||
| 152 | + | ||
| 153 | + | ||
| 154 | +/*************************************************************************** | ||
| 155 | + * Delete class members * | ||
| 156 | + * ----------------------------------------------------------------------- * | ||
| 157 | + ***************************************************************************/ | ||
| 158 | +void GSkyDir::free_members(void) | ||
| 159 | +{ | ||
| 160 | + // Free memory | ||
| 161 | + | ||
| 162 | + // Signal free pointers | ||
| 163 | + | ||
| 164 | + // Return | ||
| 165 | + return; | ||
| 166 | +} | ||
| 167 | + | ||
| 168 | + | ||
| 169 | +/*========================================================================== | ||
| 170 | + = = | ||
| 171 | + = GSkyDir friends = | ||
| 172 | + = = | ||
| 173 | + ==========================================================================*/ | ||
| 174 | + | ||
| 175 | + | ||
| 176 | +/*========================================================================== | ||
| 177 | + = = | ||
| 178 | + = Other functions used by GSkyDir = | ||
| 179 | + = = | ||
| 180 | + ==========================================================================*/ |
src/Makefile.am
| @@ -10,8 +10,10 @@ INCLUDES = -I$(top_srcdir)/include \ | @@ -10,8 +10,10 @@ INCLUDES = -I$(top_srcdir)/include \ | ||
| 10 | 10 | ||
| 11 | files = GException.cpp \ | 11 | files = GException.cpp \ |
| 12 | GTools.cpp \ | 12 | GTools.cpp \ |
| 13 | + GSkyDir.cpp \ | ||
| 13 | data/GData.cpp \ | 14 | data/GData.cpp \ |
| 14 | rsp/GResponse.cpp \ | 15 | rsp/GResponse.cpp \ |
| 16 | + rsp/GLATResponse.cpp \ | ||
| 15 | obs/GObservation.cpp \ | 17 | obs/GObservation.cpp \ |
| 16 | fits/GFitsHeaderCard.cpp \ | 18 | fits/GFitsHeaderCard.cpp \ |
| 17 | fits/GFitsHeader.cpp \ | 19 | fits/GFitsHeader.cpp \ |
src/Makefile.in
| @@ -59,14 +59,14 @@ am__installdirs = "$(DESTDIR)$(libdir)" | @@ -59,14 +59,14 @@ am__installdirs = "$(DESTDIR)$(libdir)" | ||
| 59 | libLTLIBRARIES_INSTALL = $(INSTALL) | 59 | libLTLIBRARIES_INSTALL = $(INSTALL) |
| 60 | LTLIBRARIES = $(lib_LTLIBRARIES) | 60 | LTLIBRARIES = $(lib_LTLIBRARIES) |
| 61 | libgamma_la_LIBADD = | 61 | libgamma_la_LIBADD = |
| 62 | -am__objects_1 = GException.lo GTools.lo GData.lo GResponse.lo \ | ||
| 63 | - GObservation.lo GFitsHeaderCard.lo GFitsHeader.lo GFitsData.lo \ | ||
| 64 | - GFitsImage.lo GFitsAsciiTable.lo GFitsBinTable.lo \ | ||
| 65 | - GFitsTableCol.lo GFitsTableStrCol.lo GFitsTableShtCol.lo \ | ||
| 66 | - GFitsTableLngCol.lo GFitsTableFltCol.lo GFitsTableDblCol.lo \ | ||
| 67 | - GFitsHDU.lo GFits.lo GFitPar.lo GVector.lo GMatrixBase.lo \ | ||
| 68 | - GMatrix.lo GSymMatrix.lo GSparseMatrix.lo GSparseSymbolic.lo \ | ||
| 69 | - GSparseNumeric.lo | 62 | +am__objects_1 = GException.lo GTools.lo GSkyDir.lo GData.lo \ |
| 63 | + GResponse.lo GLATResponse.lo GObservation.lo \ | ||
| 64 | + GFitsHeaderCard.lo GFitsHeader.lo GFitsData.lo GFitsImage.lo \ | ||
| 65 | + GFitsAsciiTable.lo GFitsBinTable.lo GFitsTableCol.lo \ | ||
| 66 | + GFitsTableStrCol.lo GFitsTableShtCol.lo GFitsTableLngCol.lo \ | ||
| 67 | + GFitsTableFltCol.lo GFitsTableDblCol.lo GFitsHDU.lo GFits.lo \ | ||
| 68 | + GFitPar.lo GVector.lo GMatrixBase.lo GMatrix.lo GSymMatrix.lo \ | ||
| 69 | + GSparseMatrix.lo GSparseSymbolic.lo GSparseNumeric.lo | ||
| 70 | am_libgamma_la_OBJECTS = $(am__objects_1) | 70 | am_libgamma_la_OBJECTS = $(am__objects_1) |
| 71 | libgamma_la_OBJECTS = $(am_libgamma_la_OBJECTS) | 71 | libgamma_la_OBJECTS = $(am_libgamma_la_OBJECTS) |
| 72 | DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) | 72 | DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) |
| @@ -204,8 +204,10 @@ INCLUDES = -I$(top_srcdir)/include \ | @@ -204,8 +204,10 @@ INCLUDES = -I$(top_srcdir)/include \ | ||
| 204 | 204 | ||
| 205 | files = GException.cpp \ | 205 | files = GException.cpp \ |
| 206 | GTools.cpp \ | 206 | GTools.cpp \ |
| 207 | + GSkyDir.cpp \ | ||
| 207 | data/GData.cpp \ | 208 | data/GData.cpp \ |
| 208 | rsp/GResponse.cpp \ | 209 | rsp/GResponse.cpp \ |
| 210 | + rsp/GLATResponse.cpp \ | ||
| 209 | obs/GObservation.cpp \ | 211 | obs/GObservation.cpp \ |
| 210 | fits/GFitsHeaderCard.cpp \ | 212 | fits/GFitsHeaderCard.cpp \ |
| 211 | fits/GFitsHeader.cpp \ | 213 | fits/GFitsHeader.cpp \ |
| @@ -319,6 +321,9 @@ GData.lo: data/GData.cpp | @@ -319,6 +321,9 @@ GData.lo: data/GData.cpp | ||
| 319 | GResponse.lo: rsp/GResponse.cpp | 321 | GResponse.lo: rsp/GResponse.cpp |
| 320 | $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GResponse.lo `test -f 'rsp/GResponse.cpp' || echo '$(srcdir)/'`rsp/GResponse.cpp | 322 | $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GResponse.lo `test -f 'rsp/GResponse.cpp' || echo '$(srcdir)/'`rsp/GResponse.cpp |
| 321 | 323 | ||
| 324 | +GLATResponse.lo: rsp/GLATResponse.cpp | ||
| 325 | + $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GLATResponse.lo `test -f 'rsp/GLATResponse.cpp' || echo '$(srcdir)/'`rsp/GLATResponse.cpp | ||
| 326 | + | ||
| 322 | GObservation.lo: obs/GObservation.cpp | 327 | GObservation.lo: obs/GObservation.cpp |
| 323 | $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GObservation.lo `test -f 'obs/GObservation.cpp' || echo '$(srcdir)/'`obs/GObservation.cpp | 328 | $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GObservation.lo `test -f 'obs/GObservation.cpp' || echo '$(srcdir)/'`obs/GObservation.cpp |
| 324 | 329 |
src/fits/GFitsHDU.cpp
| @@ -83,6 +83,7 @@ GFitsHDU::~GFitsHDU() | @@ -83,6 +83,7 @@ GFitsHDU::~GFitsHDU() | ||
| 83 | return; | 83 | return; |
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | + | ||
| 86 | /*========================================================================== | 87 | /*========================================================================== |
| 87 | = = | 88 | = = |
| 88 | = GFitsHDU operators = | 89 | = GFitsHDU operators = |
src/fits/GFitsTableFltCol.cpp
| @@ -356,7 +356,9 @@ void GFitsTableFltCol::load(void) | @@ -356,7 +356,9 @@ void GFitsTableFltCol::load(void) | ||
| 356 | // Allocate memory | 356 | // Allocate memory |
| 357 | if (m_data != NULL) delete [] m_data; | 357 | if (m_data != NULL) delete [] m_data; |
| 358 | m_data = new float[m_size]; | 358 | m_data = new float[m_size]; |
| 359 | - | 359 | +cout << endl; |
| 360 | +cout << "m_size: " << m_size << endl; | ||
| 361 | +cout << "m_colnum: " << m_colnum << endl; | ||
| 360 | // Load column data | 362 | // Load column data |
| 361 | int status = 0; | 363 | int status = 0; |
| 362 | status = __ffgcv(m_fitsfile, __TFLOAT, m_colnum, 1, 1, m_size, | 364 | status = __ffgcv(m_fitsfile, __TFLOAT, m_colnum, 1, 1, m_size, |
src/rsp/GLATResponse.cpp
0 → 100644
| 1 | +/*************************************************************************** | ||
| 2 | + * GLATResponse.cpp - GLAST LAT Response class * | ||
| 3 | + * ----------------------------------------------------------------------- * | ||
| 4 | + * copyright : (C) 2008 by Jurgen Knodlseder * | ||
| 5 | + * ----------------------------------------------------------------------- * | ||
| 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 2 of the License, or * | ||
| 10 | + * (at your option) any later version. * | ||
| 11 | + * * | ||
| 12 | + * ----------------------------------------------------------------------- * | ||
| 13 | + ***************************************************************************/ | ||
| 14 | + | ||
| 15 | +/* __ Includes ___________________________________________________________ */ | ||
| 16 | +//#include <vector> | ||
| 17 | +#include <iostream> // cout, cerr | ||
| 18 | +#include "GException.hpp" | ||
| 19 | +#include "GVector.hpp" | ||
| 20 | +#include "GLATResponse.hpp" | ||
| 21 | +#include "GFits.hpp" | ||
| 22 | +#include "GFitsTableFltCol.hpp" | ||
| 23 | + | ||
| 24 | +/* __ Namespaces _________________________________________________________ */ | ||
| 25 | + | ||
| 26 | +/* __ Method name definitions ____________________________________________ */ | ||
| 27 | + | ||
| 28 | +/* __ Macros _____________________________________________________________ */ | ||
| 29 | + | ||
| 30 | +/* __ Coding definitions _________________________________________________ */ | ||
| 31 | + | ||
| 32 | +/* __ Debug definitions __________________________________________________ */ | ||
| 33 | + | ||
| 34 | + | ||
| 35 | + | ||
| 36 | +/*========================================================================== | ||
| 37 | + = = | ||
| 38 | + = GLATResponse constructors/destructors = | ||
| 39 | + = = | ||
| 40 | + ==========================================================================*/ | ||
| 41 | + | ||
| 42 | +/*************************************************************************** | ||
| 43 | + * Constructor * | ||
| 44 | + * ----------------------------------------------------------------------- * | ||
| 45 | + ***************************************************************************/ | ||
| 46 | +GLATResponse::GLATResponse() : GResponse() | ||
| 47 | +{ | ||
| 48 | + // Initialise class members for clean destruction | ||
| 49 | + init_members(); | ||
| 50 | + | ||
| 51 | + // Return | ||
| 52 | + return; | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | + | ||
| 56 | +/*************************************************************************** | ||
| 57 | + * Copy constructor * | ||
| 58 | + * ----------------------------------------------------------------------- * | ||
| 59 | + ***************************************************************************/ | ||
| 60 | +GLATResponse::GLATResponse(const GLATResponse& rsp) : GResponse(rsp) | ||
| 61 | +{ | ||
| 62 | + // Initialise class members for clean destruction | ||
| 63 | + init_members(); | ||
| 64 | + | ||
| 65 | + // Copy members | ||
| 66 | + copy_members(rsp); | ||
| 67 | + | ||
| 68 | + // Return | ||
| 69 | + return; | ||
| 70 | +} | ||
| 71 | + | ||
| 72 | + | ||
| 73 | +/*************************************************************************** | ||
| 74 | + * Destructor * | ||
| 75 | + * ----------------------------------------------------------------------- * | ||
| 76 | + ***************************************************************************/ | ||
| 77 | +GLATResponse::~GLATResponse() | ||
| 78 | +{ | ||
| 79 | + // Free members | ||
| 80 | + free_members(); | ||
| 81 | + | ||
| 82 | + // Return | ||
| 83 | + return; | ||
| 84 | +} | ||
| 85 | + | ||
| 86 | + | ||
| 87 | +/*========================================================================== | ||
| 88 | + = = | ||
| 89 | + = GLATResponse operators = | ||
| 90 | + = = | ||
| 91 | + ==========================================================================*/ | ||
| 92 | + | ||
| 93 | +/*************************************************************************** | ||
| 94 | + * Assignment operator * | ||
| 95 | + * ----------------------------------------------------------------------- * | ||
| 96 | + ***************************************************************************/ | ||
| 97 | +GLATResponse& GLATResponse::operator= (const GLATResponse& rsp) | ||
| 98 | +{ | ||
| 99 | + // Execute only if object is not identical | ||
| 100 | + if (this != &rsp) { | ||
| 101 | + | ||
| 102 | + // Copy base class members | ||
| 103 | + this->GResponse::operator=(rsp); | ||
| 104 | + | ||
| 105 | + // Free members | ||
| 106 | + free_members(); | ||
| 107 | + | ||
| 108 | + // Initialise private members for clean destruction | ||
| 109 | + init_members(); | ||
| 110 | + | ||
| 111 | + // Copy members | ||
| 112 | + copy_members(rsp); | ||
| 113 | + | ||
| 114 | + } // endif: object was not identical | ||
| 115 | + | ||
| 116 | + // Return this object | ||
| 117 | + return *this; | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | + | ||
| 121 | +/*========================================================================== | ||
| 122 | + = = | ||
| 123 | + = GLATResponse public methods = | ||
| 124 | + = = | ||
| 125 | + ==========================================================================*/ | ||
| 126 | + | ||
| 127 | +/*************************************************************************** | ||
| 128 | + * Return value of instrument response function * | ||
| 129 | + * ----------------------------------------------------------------------- * | ||
| 130 | + ***************************************************************************/ | ||
| 131 | +double GLATResponse::irf(const GSkyDir& obsDir, const double& obsEng, | ||
| 132 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 133 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 134 | + const double& time) | ||
| 135 | +{ | ||
| 136 | + // Return IRF value | ||
| 137 | + return 0.0; | ||
| 138 | +} | ||
| 139 | + | ||
| 140 | + | ||
| 141 | +/*************************************************************************** | ||
| 142 | + * Return effective area * | ||
| 143 | + * ----------------------------------------------------------------------- * | ||
| 144 | + ***************************************************************************/ | ||
| 145 | +double GLATResponse::aeff(const GSkyDir& obsDir, const double& obsEng, | ||
| 146 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 147 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 148 | + const double& time) | ||
| 149 | +{ | ||
| 150 | + // Return Aeff value | ||
| 151 | + return 0.0; | ||
| 152 | +} | ||
| 153 | + | ||
| 154 | + | ||
| 155 | +/*************************************************************************** | ||
| 156 | + * Return value of point spread function * | ||
| 157 | + * ----------------------------------------------------------------------- * | ||
| 158 | + ***************************************************************************/ | ||
| 159 | +double GLATResponse::psf(const GSkyDir& obsDir, const double& obsEng, | ||
| 160 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 161 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 162 | + const double& time) | ||
| 163 | +{ | ||
| 164 | + // Return PSF value | ||
| 165 | + return 0.0; | ||
| 166 | +} | ||
| 167 | + | ||
| 168 | + | ||
| 169 | +/*************************************************************************** | ||
| 170 | + * Return value of energy dispersion * | ||
| 171 | + * ----------------------------------------------------------------------- * | ||
| 172 | + ***************************************************************************/ | ||
| 173 | +double GLATResponse::edisp(const GSkyDir& obsDir, const double& obsEng, | ||
| 174 | + const GSkyDir& srcDir, const double& srcEng, | ||
| 175 | + const GSkyDir& instPntDir, const double& instPosAng, | ||
| 176 | + const double& time) | ||
| 177 | +{ | ||
| 178 | + // Return Edisp value | ||
| 179 | + return 0.0; | ||
| 180 | +} | ||
| 181 | + | ||
| 182 | + | ||
| 183 | +/*************************************************************************** | ||
| 184 | + * Set calibration database * | ||
| 185 | + * ----------------------------------------------------------------------- * | ||
| 186 | + ***************************************************************************/ | ||
| 187 | +/** | ||
| 188 | + * @brief Set the path to the calibration database. | ||
| 189 | + */ | ||
| 190 | +void GLATResponse::set_caldb(std::string caldb) | ||
| 191 | +{ | ||
| 192 | + // Simply copy path | ||
| 193 | + // NOTE: Some check should be done on whether the path exists !!! | ||
| 194 | + m_caldb = caldb; | ||
| 195 | + | ||
| 196 | + // Return | ||
| 197 | + return; | ||
| 198 | +} | ||
| 199 | + | ||
| 200 | + | ||
| 201 | +/*************************************************************************** | ||
| 202 | + * Load response * | ||
| 203 | + * ----------------------------------------------------------------------- * | ||
| 204 | + ***************************************************************************/ | ||
| 205 | +/** | ||
| 206 | + * @brief Load a specified LAT response function. | ||
| 207 | + */ | ||
| 208 | +void GLATResponse::load(std::string rspname) | ||
| 209 | +{ | ||
| 210 | + // Store response name | ||
| 211 | + m_rspname = rspname; | ||
| 212 | + | ||
| 213 | + // Initialise effective area | ||
| 214 | + init_aeff(); | ||
| 215 | + | ||
| 216 | + // Initialise PSF | ||
| 217 | + init_psf(); | ||
| 218 | + | ||
| 219 | + // Initialise energy dispersion | ||
| 220 | + init_edisp(); | ||
| 221 | +} | ||
| 222 | + | ||
| 223 | + | ||
| 224 | +/*************************************************************************** | ||
| 225 | + * Save response * | ||
| 226 | + * ----------------------------------------------------------------------- * | ||
| 227 | + ***************************************************************************/ | ||
| 228 | +/** | ||
| 229 | + * @brief Save me my friend ... | ||
| 230 | + */ | ||
| 231 | +void GLATResponse::save(std::string rspname) const | ||
| 232 | +{ | ||
| 233 | +} | ||
| 234 | + | ||
| 235 | + | ||
| 236 | +/*========================================================================== | ||
| 237 | + = = | ||
| 238 | + = GLATResponse private methods = | ||
| 239 | + = = | ||
| 240 | + ==========================================================================*/ | ||
| 241 | + | ||
| 242 | +/*************************************************************************** | ||
| 243 | + * Initialise effective area * | ||
| 244 | + * ----------------------------------------------------------------------- * | ||
| 245 | + ***************************************************************************/ | ||
| 246 | +void GLATResponse::init_aeff(void) | ||
| 247 | +{ | ||
| 248 | + // Build filename | ||
| 249 | + std::string filename = "aeff_" + m_rspname + ".fits"; | ||
| 250 | + | ||
| 251 | + // Open FITS file | ||
| 252 | + GFits file; | ||
| 253 | + file.open(m_caldb + "/" + filename); | ||
| 254 | + | ||
| 255 | + // Get pointer towards effective area HDU | ||
| 256 | + GFitsHDU* hdu = file.hdu("EFFECTIVE AREA"); | ||
| 257 | + if (hdu == NULL) { | ||
| 258 | + cout << endl << "TEST ERROR: Unable to find HDU <EFFECTIVE AREA>." << endl; | ||
| 259 | + throw; | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + // Get pointers to data columns | ||
| 263 | + GFitsTableFltCol* energ_lo = (GFitsTableFltCol*)hdu->column("ENERG_LO"); | ||
| 264 | + GFitsTableFltCol* energ_hi = (GFitsTableFltCol*)hdu->column("ENERG_HI"); | ||
| 265 | + GFitsTableFltCol* ctheta_lo = (GFitsTableFltCol*)hdu->column("CTHETA_LO"); | ||
| 266 | + GFitsTableFltCol* ctheta_hi = (GFitsTableFltCol*)hdu->column("CTHETA_HI"); | ||
| 267 | + GFitsTableFltCol* effarea = (GFitsTableFltCol*)hdu->column("EFFAREA"); | ||
| 268 | + if (energ_lo == NULL || energ_hi == NULL || | ||
| 269 | + ctheta_lo == NULL || ctheta_hi == NULL || effarea == NULL) { | ||
| 270 | + cout << endl << "TEST ERROR: Unable to get <EFFECTIVE AREA> columns." << endl; | ||
| 271 | + throw; | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + // ... | ||
| 275 | + | ||
| 276 | + // Return | ||
| 277 | + return; | ||
| 278 | +} | ||
| 279 | + | ||
| 280 | + | ||
| 281 | +/*************************************************************************** | ||
| 282 | + * Initialise PSF * | ||
| 283 | + * ----------------------------------------------------------------------- * | ||
| 284 | + ***************************************************************************/ | ||
| 285 | +void GLATResponse::init_psf(void) | ||
| 286 | +{ | ||
| 287 | + // Build filename | ||
| 288 | + std::string filename = "psf_" + m_rspname + ".fits"; | ||
| 289 | + | ||
| 290 | + // Open FITS file | ||
| 291 | + GFits file; | ||
| 292 | + file.open(m_caldb + "/" + filename); | ||
| 293 | + | ||
| 294 | + // Get pointer towards PSF HDU | ||
| 295 | + GFitsHDU* hdu = file.hdu("RPSF"); | ||
| 296 | + if (hdu == NULL) { | ||
| 297 | + cout << endl << "TEST ERROR: Unable to find HDU <RPSF>." << endl; | ||
| 298 | + throw; | ||
| 299 | + } | ||
| 300 | + | ||
| 301 | + // Get data | ||
| 302 | + GVector energ_lo = get_fits_column(hdu, "ENERG_LO"); | ||
| 303 | +/* | ||
| 304 | + GVector energ_hi = get_fits_column(hdu, "ENERG_HI"); | ||
| 305 | + GVector ctheta_lo = get_fits_column(hdu, "CTHETA_LO"); | ||
| 306 | + GVector ctheta_hi = get_fits_column(hdu, "CTHETA_HI"); | ||
| 307 | + GVector ncore = get_fits_column(hdu, "NCORE"); | ||
| 308 | + GVector sigma = get_fits_column(hdu, "SIGMA"); | ||
| 309 | + GVector gcore = get_fits_column(hdu, "GCORE"); | ||
| 310 | + GVector gtail = get_fits_column(hdu, "GTAIL"); | ||
| 311 | +*/ | ||
| 312 | + // ... | ||
| 313 | + | ||
| 314 | + // Return | ||
| 315 | + return; | ||
| 316 | +} | ||
| 317 | + | ||
| 318 | + | ||
| 319 | +/*************************************************************************** | ||
| 320 | + * Initialise energy dispersion * | ||
| 321 | + * ----------------------------------------------------------------------- * | ||
| 322 | + ***************************************************************************/ | ||
| 323 | +void GLATResponse::init_edisp(void) | ||
| 324 | +{ | ||
| 325 | + // Build filename | ||
| 326 | + std::string filename = "edisp_" + m_rspname + ".fits"; | ||
| 327 | + | ||
| 328 | + // Open FITS file | ||
| 329 | + GFits file; | ||
| 330 | + file.open(m_caldb + "/" + filename); | ||
| 331 | + | ||
| 332 | + // Get pointer towards energy dispersion HDU | ||
| 333 | + GFitsHDU* hdu = file.hdu("ENERGY DISPERSION"); | ||
| 334 | + if (hdu == NULL) { | ||
| 335 | + cout << endl << "TEST ERROR: Unable to find HDU <ENERGY DISPERSION>." << endl; | ||
| 336 | + throw; | ||
| 337 | + } | ||
| 338 | + | ||
| 339 | + // Get pointers to data columns | ||
| 340 | + GFitsTableFltCol* energ_lo = (GFitsTableFltCol*)hdu->column("ENERG_LO"); | ||
| 341 | + GFitsTableFltCol* energ_hi = (GFitsTableFltCol*)hdu->column("ENERG_HI"); | ||
| 342 | + GFitsTableFltCol* ctheta_lo = (GFitsTableFltCol*)hdu->column("CTHETA_LO"); | ||
| 343 | + GFitsTableFltCol* ctheta_hi = (GFitsTableFltCol*)hdu->column("CTHETA_HI"); | ||
| 344 | + GFitsTableFltCol* dnorm = (GFitsTableFltCol*)hdu->column("DNORM"); | ||
| 345 | + GFitsTableFltCol* ltail = (GFitsTableFltCol*)hdu->column("LTAIL"); | ||
| 346 | + GFitsTableFltCol* rwidth = (GFitsTableFltCol*)hdu->column("RWIDTH"); | ||
| 347 | + GFitsTableFltCol* nr2 = (GFitsTableFltCol*)hdu->column("NR2"); | ||
| 348 | + GFitsTableFltCol* lt2 = (GFitsTableFltCol*)hdu->column("LT2"); | ||
| 349 | + GFitsTableFltCol* rt2 = (GFitsTableFltCol*)hdu->column("RT2"); | ||
| 350 | + if (energ_lo == NULL || energ_hi == NULL || | ||
| 351 | + ctheta_lo == NULL || ctheta_hi == NULL || | ||
| 352 | + dnorm == NULL || ltail == NULL || rwidth == NULL || | ||
| 353 | + nr2 == NULL || lt2 == NULL || rt2 == NULL) { | ||
| 354 | + cout << endl << "TEST ERROR: Unable to get <ENERGY DISPERSION> columns." << endl; | ||
| 355 | + throw; | ||
| 356 | + } | ||
| 357 | + | ||
| 358 | + // ... | ||
| 359 | + | ||
| 360 | + // Return | ||
| 361 | + return; | ||
| 362 | +} | ||
| 363 | + | ||
| 364 | + | ||
| 365 | +/*************************************************************************** | ||
| 366 | + * Initialise class members * | ||
| 367 | + * ----------------------------------------------------------------------- * | ||
| 368 | + ***************************************************************************/ | ||
| 369 | +void GLATResponse::init_members(void) | ||
| 370 | +{ | ||
| 371 | + // Initialise members | ||
| 372 | + //m_aeff_name.clear(); | ||
| 373 | + //m_psf_name.clear(); | ||
| 374 | + //m_edisp_name.clear(); | ||
| 375 | + | ||
| 376 | + // By default use HANDOFF response database. | ||
| 377 | + char* handoff = getenv("HANDOFF_IRF_DIR"); | ||
| 378 | + if (handoff != NULL) | ||
| 379 | + m_caldb.assign(handoff); | ||
| 380 | + | ||
| 381 | + | ||
| 382 | + // Return | ||
| 383 | + return; | ||
| 384 | +} | ||
| 385 | + | ||
| 386 | + | ||
| 387 | +/*************************************************************************** | ||
| 388 | + * Copy class members * | ||
| 389 | + * ----------------------------------------------------------------------- * | ||
| 390 | + ***************************************************************************/ | ||
| 391 | +void GLATResponse::copy_members(const GLATResponse& rsp) | ||
| 392 | +{ | ||
| 393 | + // Copy attributes | ||
| 394 | + //m_aeff_name = rsp.m_aeff_name; | ||
| 395 | + //m_psf_name = rsp.m_psf_name; | ||
| 396 | + //m_edisp_name = rsp.m_edisp_name; | ||
| 397 | + | ||
| 398 | + // Copy other membres | ||
| 399 | + | ||
| 400 | + // Return | ||
| 401 | + return; | ||
| 402 | +} | ||
| 403 | + | ||
| 404 | + | ||
| 405 | +/*************************************************************************** | ||
| 406 | + * Delete class members * | ||
| 407 | + * ----------------------------------------------------------------------- * | ||
| 408 | + ***************************************************************************/ | ||
| 409 | +void GLATResponse::free_members(void) | ||
| 410 | +{ | ||
| 411 | + // Free memory | ||
| 412 | + | ||
| 413 | + // Signal free pointers | ||
| 414 | + | ||
| 415 | + // Return | ||
| 416 | + return; | ||
| 417 | +} | ||
| 418 | + | ||
| 419 | + | ||
| 420 | +/*************************************************************************** | ||
| 421 | + * Load floating point data from column into vector * | ||
| 422 | + * ----------------------------------------------------------------------- * | ||
| 423 | + ***************************************************************************/ | ||
| 424 | +GVector GLATResponse::get_fits_column(const GFitsHDU* hdu, const std::string& colname) | ||
| 425 | +{ | ||
| 426 | + // Get pointer on column | ||
| 427 | + GFitsTableFltCol* ptr = (GFitsTableFltCol*)hdu->column(colname); | ||
| 428 | + if (ptr == NULL) | ||
| 429 | + throw; | ||
| 430 | + | ||
| 431 | + // Load data into vector | ||
| 432 | + int num = ptr->repeat(); | ||
| 433 | + GVector data(num); | ||
| 434 | + for (int i = 0; i < num; ++i) | ||
| 435 | + data(i) = ptr->real(0,i); | ||
| 436 | + cout << data << endl; | ||
| 437 | + | ||
| 438 | + // Return vector | ||
| 439 | + return data; | ||
| 440 | +} | ||
| 441 | + | ||
| 442 | + | ||
| 443 | +/*========================================================================== | ||
| 444 | + = = | ||
| 445 | + = GLATResponse friends = | ||
| 446 | + = = | ||
| 447 | + ==========================================================================*/ | ||
| 448 | + | ||
| 449 | + | ||
| 450 | +/*========================================================================== | ||
| 451 | + = = | ||
| 452 | + = Other functions used by GLATResponse = | ||
| 453 | + = = | ||
| 454 | + ==========================================================================*/ |
src/rsp/GResponse.cpp
| @@ -15,9 +15,9 @@ | @@ -15,9 +15,9 @@ | ||
| 15 | /* __ Includes ___________________________________________________________ */ | 15 | /* __ Includes ___________________________________________________________ */ |
| 16 | #include "GException.hpp" | 16 | #include "GException.hpp" |
| 17 | #include "GResponse.hpp" | 17 | #include "GResponse.hpp" |
| 18 | +#include <iostream> // cout, cerr | ||
| 18 | 19 | ||
| 19 | /* __ Namespaces _________________________________________________________ */ | 20 | /* __ Namespaces _________________________________________________________ */ |
| 20 | -using namespace std; | ||
| 21 | 21 | ||
| 22 | /* __ Method name definitions ____________________________________________ */ | 22 | /* __ Method name definitions ____________________________________________ */ |
| 23 | 23 | ||
| @@ -35,6 +35,50 @@ using namespace std; | @@ -35,6 +35,50 @@ using namespace std; | ||
| 35 | = = | 35 | = = |
| 36 | ==========================================================================*/ | 36 | ==========================================================================*/ |
| 37 | 37 | ||
| 38 | +/*************************************************************************** | ||
| 39 | + * Constructor * | ||
| 40 | + * ----------------------------------------------------------------------- * | ||
| 41 | + ***************************************************************************/ | ||
| 42 | +GResponse::GResponse() | ||
| 43 | +{ | ||
| 44 | + // Initialise class members for clean destruction | ||
| 45 | + init_members(); | ||
| 46 | + | ||
| 47 | + // Return | ||
| 48 | + return; | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | + | ||
| 52 | +/*************************************************************************** | ||
| 53 | + * Copy constructor * | ||
| 54 | + * ----------------------------------------------------------------------- * | ||
| 55 | + ***************************************************************************/ | ||
| 56 | +GResponse::GResponse(const GResponse& rsp) | ||
| 57 | +{ | ||
| 58 | + // Initialise class members for clean destruction | ||
| 59 | + init_members(); | ||
| 60 | + | ||
| 61 | + // Copy members | ||
| 62 | + copy_members(rsp); | ||
| 63 | + | ||
| 64 | + // Return | ||
| 65 | + return; | ||
| 66 | +} | ||
| 67 | + | ||
| 68 | + | ||
| 69 | +/*************************************************************************** | ||
| 70 | + * Destructor * | ||
| 71 | + * ----------------------------------------------------------------------- * | ||
| 72 | + ***************************************************************************/ | ||
| 73 | +GResponse::~GResponse() | ||
| 74 | +{ | ||
| 75 | + // Free members | ||
| 76 | + free_members(); | ||
| 77 | + | ||
| 78 | + // Return | ||
| 79 | + return; | ||
| 80 | +} | ||
| 81 | + | ||
| 38 | 82 | ||
| 39 | /*========================================================================== | 83 | /*========================================================================== |
| 40 | = = | 84 | = = |
| @@ -42,20 +86,90 @@ using namespace std; | @@ -42,20 +86,90 @@ using namespace std; | ||
| 42 | = = | 86 | = = |
| 43 | ==========================================================================*/ | 87 | ==========================================================================*/ |
| 44 | 88 | ||
| 89 | +/*************************************************************************** | ||
| 90 | + * Assignment operator * | ||
| 91 | + * ----------------------------------------------------------------------- * | ||
| 92 | + ***************************************************************************/ | ||
| 93 | +GResponse& GResponse::operator= (const GResponse& rsp) | ||
| 94 | +{ | ||
| 95 | + // Execute only if object is not identical | ||
| 96 | + if (this != &rsp) { | ||
| 97 | + | ||
| 98 | + // Free members | ||
| 99 | + free_members(); | ||
| 100 | + | ||
| 101 | + // Initialise private members for clean destruction | ||
| 102 | + init_members(); | ||
| 103 | + | ||
| 104 | + // Copy members | ||
| 105 | + copy_members(rsp); | ||
| 106 | + | ||
| 107 | + } // endif: object was not identical | ||
| 108 | + | ||
| 109 | + // Return this object | ||
| 110 | + return *this; | ||
| 111 | +} | ||
| 112 | + | ||
| 45 | 113 | ||
| 46 | /*========================================================================== | 114 | /*========================================================================== |
| 47 | = = | 115 | = = |
| 48 | - = GResponse methods = | 116 | + = GResponse public methods = |
| 49 | = = | 117 | = = |
| 50 | ==========================================================================*/ | 118 | ==========================================================================*/ |
| 51 | 119 | ||
| 52 | 120 | ||
| 53 | /*========================================================================== | 121 | /*========================================================================== |
| 54 | = = | 122 | = = |
| 55 | - = GResponse private functions = | 123 | + = GResponse private methods = |
| 56 | = = | 124 | = = |
| 57 | ==========================================================================*/ | 125 | ==========================================================================*/ |
| 58 | 126 | ||
| 127 | +/*************************************************************************** | ||
| 128 | + * Initialise class members * | ||
| 129 | + * ----------------------------------------------------------------------- * | ||
| 130 | + ***************************************************************************/ | ||
| 131 | +void GResponse::init_members(void) | ||
| 132 | +{ | ||
| 133 | + // Initialise members | ||
| 134 | + m_caldb.clear(); | ||
| 135 | + m_rspname.clear(); | ||
| 136 | + | ||
| 137 | + // Return | ||
| 138 | + return; | ||
| 139 | +} | ||
| 140 | + | ||
| 141 | + | ||
| 142 | +/*************************************************************************** | ||
| 143 | + * Copy class members * | ||
| 144 | + * ----------------------------------------------------------------------- * | ||
| 145 | + ***************************************************************************/ | ||
| 146 | +void GResponse::copy_members(const GResponse& rsp) | ||
| 147 | +{ | ||
| 148 | + // Copy attributes | ||
| 149 | + m_caldb = rsp.m_caldb; | ||
| 150 | + m_rspname = rsp.m_rspname; | ||
| 151 | + | ||
| 152 | + // Copy other membres | ||
| 153 | + | ||
| 154 | + // Return | ||
| 155 | + return; | ||
| 156 | +} | ||
| 157 | + | ||
| 158 | + | ||
| 159 | +/*************************************************************************** | ||
| 160 | + * Delete class members * | ||
| 161 | + * ----------------------------------------------------------------------- * | ||
| 162 | + ***************************************************************************/ | ||
| 163 | +void GResponse::free_members(void) | ||
| 164 | +{ | ||
| 165 | + // Free memory | ||
| 166 | + | ||
| 167 | + // Signal free pointers | ||
| 168 | + | ||
| 169 | + // Return | ||
| 170 | + return; | ||
| 171 | +} | ||
| 172 | + | ||
| 59 | 173 | ||
| 60 | /*========================================================================== | 174 | /*========================================================================== |
| 61 | = = | 175 | = = |
test/test_GFits.cpp
| @@ -205,6 +205,19 @@ void test_columns(void) | @@ -205,6 +205,19 @@ void test_columns(void) | ||
| 205 | std::cout << e.what() << std::endl; | 205 | std::cout << e.what() << std::endl; |
| 206 | throw; | 206 | throw; |
| 207 | } | 207 | } |
| 208 | + try { | ||
| 209 | + GFitsTableFltCol flt = *((GFitsTableFltCol*)fits.hdu("BinTable2")->column("TFLOAT3")); | ||
| 210 | + if (!fequal(flt.real(0,0),0.0)) { | ||
| 211 | + cout << endl << "TEST ERROR: Bad TFLOAT (3) values read (" | ||
| 212 | + << flt.real(0,0) << " != 0.0)." << endl; | ||
| 213 | + throw; | ||
| 214 | + } | ||
| 215 | + } | ||
| 216 | + catch (exception &e) { | ||
| 217 | + std::cout << std::endl << "TEST ERROR: Unable to handle single TFLOAT column." << std::endl; | ||
| 218 | + std::cout << e.what() << std::endl; | ||
| 219 | + throw; | ||
| 220 | + } | ||
| 208 | std::cout << ". ok." << std::endl; | 221 | std::cout << ". ok." << std::endl; |
| 209 | 222 | ||
| 210 | // | 223 | // |
test/test_GFits.fits
No preview for this file type
test/test_GResponse.cpp
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
| 13 | 13 | ||
| 14 | /* __ Includes ___________________________________________________________ */ | 14 | /* __ Includes ___________________________________________________________ */ |
| 15 | #include "test_GResponse.hpp" | 15 | #include "test_GResponse.hpp" |
| 16 | +#include <iostream> // cout, cerr | ||
| 16 | 17 | ||
| 17 | /* __ Namespaces _________________________________________________________ */ | 18 | /* __ Namespaces _________________________________________________________ */ |
| 18 | 19 | ||
| @@ -20,20 +21,25 @@ | @@ -20,20 +21,25 @@ | ||
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | /*************************************************************************** | 23 | /*************************************************************************** |
| 23 | - * Test: Open * | 24 | + * Test: LAT Response * |
| 24 | ***************************************************************************/ | 25 | ***************************************************************************/ |
| 25 | -void test_open(void) | 26 | +void test_lat_response(void) |
| 26 | { | 27 | { |
| 27 | - std::cout << "Test GResponse: Open PSF FITS file: "; | 28 | + cout << "Test GLATResponse: Open PSF FITS file: "; |
| 28 | try { | 29 | try { |
| 30 | + // Get HANDOFF Response | ||
| 31 | + GLATResponse rsp; | ||
| 32 | + rsp.set_caldb("irf/lat"); | ||
| 33 | + rsp.load("Pass5_v0_front"); | ||
| 34 | +/* | ||
| 29 | // Open FITS file | 35 | // Open FITS file |
| 30 | GFits fits; | 36 | GFits fits; |
| 31 | - fits.open("irf/lat/aeff_Pass5_v0_front.fits"); | 37 | + fits.open("irf/lat/aeff_.fits"); |
| 32 | 38 | ||
| 33 | // Get pointer towards effective area HDU | 39 | // Get pointer towards effective area HDU |
| 34 | GFitsHDU* aeff = fits.hdu("EFFECTIVE AREA"); | 40 | GFitsHDU* aeff = fits.hdu("EFFECTIVE AREA"); |
| 35 | if (aeff == NULL) { | 41 | if (aeff == NULL) { |
| 36 | - std::cout << std::endl << "TEST ERROR: Unable to find HDU <EFFECTIVE AREA>." << std::endl; | 42 | + cout << endl << "TEST ERROR: Unable to find HDU <EFFECTIVE AREA>." << endl; |
| 37 | throw; | 43 | throw; |
| 38 | } | 44 | } |
| 39 | 45 | ||
| @@ -43,14 +49,14 @@ void test_open(void) | @@ -43,14 +49,14 @@ void test_open(void) | ||
| 43 | GFitsTableFltCol ctheta_lo = *((GFitsTableFltCol*)aeff->column("CTHETA_LO")); | 49 | GFitsTableFltCol ctheta_lo = *((GFitsTableFltCol*)aeff->column("CTHETA_LO")); |
| 44 | GFitsTableFltCol ctheta_hi = *((GFitsTableFltCol*)aeff->column("CTHETA_HI")); | 50 | GFitsTableFltCol ctheta_hi = *((GFitsTableFltCol*)aeff->column("CTHETA_HI")); |
| 45 | GFitsTableFltCol effarea = *((GFitsTableFltCol*)aeff->column("EFFAREA")); | 51 | GFitsTableFltCol effarea = *((GFitsTableFltCol*)aeff->column("EFFAREA")); |
| 46 | - | 52 | +*/ |
| 47 | } | 53 | } |
| 48 | catch (exception &e) { | 54 | catch (exception &e) { |
| 49 | - std::cout << std::endl << "TEST ERROR: Unable to open FITS file." << std::endl; | ||
| 50 | - std::cout << e.what() << std::endl; | 55 | + cout << endl << "TEST ERROR: Unable to open FITS file." << endl; |
| 56 | + cout << e.what() << endl; | ||
| 51 | throw; | 57 | throw; |
| 52 | } | 58 | } |
| 53 | - std::cout << ". ok." << std::endl; | 59 | + cout << ". ok." << endl; |
| 54 | } | 60 | } |
| 55 | 61 | ||
| 56 | 62 | ||
| @@ -60,13 +66,13 @@ void test_open(void) | @@ -60,13 +66,13 @@ void test_open(void) | ||
| 60 | int main(void) | 66 | int main(void) |
| 61 | { | 67 | { |
| 62 | // Dump header | 68 | // Dump header |
| 63 | - std::cout << std::endl; | ||
| 64 | - std::cout << "***************************" << std::endl; | ||
| 65 | - std::cout << "* GResponse class testing *" << std::endl; | ||
| 66 | - std::cout << "**************************" << std::endl; | 69 | + cout << std::endl; |
| 70 | + cout << "***************************" << endl; | ||
| 71 | + cout << "* GResponse class testing *" << endl; | ||
| 72 | + cout << "**************************" << endl; | ||
| 67 | 73 | ||
| 68 | // Execute the tests | 74 | // Execute the tests |
| 69 | - test_open(); | 75 | + test_lat_response(); |
| 70 | 76 | ||
| 71 | // Return | 77 | // Return |
| 72 | return 0; | 78 | return 0; |