Manticore  Version 1.5.3
Physics of Molecular Clouds
Mass and Temperature Fitting of Dust Emission

Welcome to manticore! Manticore solves for the temperature and column density of molecular gas clouds given multi-wavelength infrared maps of the source. The data for each wavelength must be provided in a separate FITS file containing a single HDU (header-data unit), which must include at least the following keywords:

Keyword Contents
BAND band center (microns)
BUNIT map data units (MJy/sr)
OBJECT target object name
TELESCOP facility name

These keywords should naturally be supplemented by coordinate system specifications CRVALn, CDELTn, etc., but these are merely copied to the output and not used during processing. Note also the following assumptions on input maps:

  • Unit conversion is not supported; in particular, the maps must be in units of MJy/sr.
  • All maps are assumed to be coincident on the sky and must have the same pixel dimensions.

Manticore requires detailed knowledge of the detector bandpass response to process data, encapsulated in the Detector class. The following detectors are supported:

  • Herschel PACS (70, 100 and 160 micron bands)
  • Herschel SPIRE (250, 350 and 500 micron bands)

Adding support for a new detector requires creation of a new concrete class and updating logic in solve.cc to associate it with an input map as appropriate.

Calculations support the use of arbitrary dust opacity models, as encapsulated by the Dust class. Tabular models must be compiled into the program by adding the table to Dust.cc and updating dust::modelMap accordingly. Dust models should be specified for a gas-to-dust ratio of 100.

Manticore Usage

Manticore is a command line utility. To see the full list of program options, run manticore -vh (or --verbose --help). When last updated, the output was:

Manticore version 1.5.3, released Jan 15 2020.

Usage:  manticore [OPTIONS] BAND1.fits BAND2.fits BAND3.fits [...]

Options:

  -1, --one-param
        Fit one parameter dust emission model (default: two-param).
        (Fixed-temperature cloud model.)

  -2, --two-param
        Fit two parameter dust emission model (default).
        (Single-temperature cloud model.)

  -3, --three-param
        Fit three parameter dust emission model (default: two-param).
        (Two-temperature cloud model with prescribed halo temperature.)

  -4, --four-param
        Fit four parameter dust emission model (default: two-param).
        (Two-temperature cloud model, all parameters free.)

  -A, --accuracy=RELERR
        Maximum relative error for least-squares fit (default: 1e-3).

  -a, --abs-diff
        Output absolute differences in delta maps (default: sigma-relative).

  -B, --no-band-output
        Do not append input band data to output FITS file.

  -C, --cutout=COLSxROWS@COL0,ROW0
        Process only a COLSxROWS cutout at lower-left corner (COL0,ROW0).

  -c, --chi2-max=CHI2
        Maximum chi^2/DOF for meaningful 2-param result (default: 1.0).

  -D, --dust-model=(MODEL | MODELhalo,MODELcore)
        Dust opacity model(s) (default: DL3).
        Use pow:nu0_GHz:kappa0:beta for power law kappa0*(nu/nu0)^beta.
        (Available models: DL3 DL5 OH5)

  -e, --error-map=FILE
        Input FITS error map (BAND and TELESCOP keys must match parent image).

  -E, --error-pct=PCT
        Percent flux error when error map unavailable (default: 3.0).

  -F, --force
        Force overwrite of existing files.

  -G, --grid-samp
        Sample data on a fixed grid to estimate parameter variance.
        (Total number of samples is 2^numBands.)

  -g, --gas-to-dust=(RATIO | RATIOhalo,RATIOcore)
        Gas-to-dust ratio(s) (default: 100.0).

  -h, --help
        Display command line help summary and exit.

  -l, --log-file=FILE
        Redirect log output to FILE (default is stderr).

  -M, --model-map
        Replace input data with model observation grid.

  -m, --max-iterations=NMAX
        Maximum least-squares iterations per pixel (default: 50).

  -N, --nh2-min=NH2MIN
        Minimum allowed (halo) N(H2) column density in cm^-2.

  -n, --num-bands=NMIN
        Minimum number of bands required for least-squares fit (default: 3).

  -o, --output-file=FILE
        Output result to FITS file FILE (default: mtcore.fits).

  -P, --pacs-check
        Generate comparative PACS color correction tables and exit.

  -p, --point-source
        Use point source detector response (default is extended sources).

  -q, --quiet
        Quiet mode; decrement logging level (opposite of -v).
        (Specify multiple times for added effect.)

  -R, --rand-samp=N
        Randomly sample data N times to estimate parameter variance.
        (Without -G, -R or -S, the covariance matrix is used instead.)

  -S, --sys-samp
        Sample systematic data errors to estimate parameter variance.
        (May be combined with -G or -R.)

  -s, --single-temp=FILE
        FITS output file from the single-temperature (2-param) fit.

  -T, --temp0=T0
        Initial guess for (halo) temperature in Kelvin (default: 15.0).

  -t, --threads=NTHREADS
        Use NTHREADS threads for processing (default: 1).

  -v, --verbose
        Verbose mode; increment logging level (opposite of -q).
        (Specify multiple times for added effect.)

  -V, --version
        Display program version and exit.

Compilation Requirements

  • GNU Science Library, available in the base repository on RHEL 6/7. Version 1.15 is known to work.
  • Ceres Solver, available in the EPEL repository on RHEL 6/7. Tested with version 1.12.0.
  • cfitsio, C libraries for manipulating FITS files. Available in the EPEL repository if not installed.
  • CCfits, a C++ wrapper library for the cfitsio library.
  • MathJax is required for the Doxygen documentation. If the MathJax/ directory (or link) is present, the generated Doxyfile will use it; otherwise, a web link will be used (hence requiring live web access to see equations in the documentation).

To compile, just type make and make docs. The manticore executable will be in the top-level directory, documentation in html/.

Version History

  • 1.5.3 (Jan 15 2020)
    • Fixed DL5 dust model table.
  • 1.5.2 (Jan 9 2020)
    • Restored -N/--nh2-min option to constrain minimum (halo) column density.
  • 1.5.1 (Oct 28 2019)
    • Added temperature map and cutout support to -s/--single-temp.
    • Added support for (local) C++ reference links in Doxygen documentation.
  • 1.5 (Sep 4 2019)
    • Added MacOS X support to (revamped) CMake/configure scripts.
    • C++ syntax fixes.
  • 1.4.3 (Aug 24 2019)
    • Optimized solver speed (now 2-3x faster).
    • The --sys-samp option can now be used in conjunction with --grid-samp or --rand-samp.
    • Added a \(\chi^2\) deviation map to FITS output.
    • Build system rewritten using CMake, guided by a simple configure script and Makefile.
  • 1.4.2 (Aug 15 2019)
    • Implemented -S/--sys-samp option to resample systematic data errors and determine the corresponding parameter uncertainties.
    • Fixed program crash using models with even parameter counts.
  • 1.4.1 (Aug 2 2019)
    • Implemented -C/--cutout option for on-the-fly cutout processing (renamed previous -C/--check option to -P/--pacs-check).
    • Fixed differential flux scaling with -a/--abs-diff.
    • Further enhanced fitter robustness checks.
    • Reversed halo/core order for -D/--dust-model and -g/--gas-to-dust options to match FITS output.
  • 1.4 (Jul 28 2019)
    • Implemented parameter variance estimation using either random Monte Carlo (-R/--rand-samp) or fixed grid (-G/--grid-samp) sampling.
    • Added extra fitter convergence checking with automated retry.
  • 1.3 (Jul 24 2019)
    • Replaced the GSL and LEVMAR solvers with Google Ceres solver.
    • Box constraints are always in effect and internally maintained. The low temperature limit is now 5K.
    • Added fractional flux maps for the cold component (if present); these have names like frac160, frac250, etc.
    • Added support for one-parameter fits (one-component, prescribed T).
    • Removed obsolete manticore-bc executable.
    • Removed -N/--nh-min option.