Producing Realistic Observations Using External Packages¶
If you want to produce a realistic simulation of a particular instrumental configuration, pyXSIM provides options for exporting its event lists to external packages. The supported software packages are:
MARX¶
The MARX version needs to be at least 5.3.1. To use SIMPUT with MARX, one only
needs to change the following lines in the marx.par
file:
# Change the source RA, Dec to match the center of the observation
SourceRA,r,a,45.0,0,360,"Source RA (degrees)"
SourceDEC,r,a,30.0,-90,90,"source DEC (degrees)"
# The source type should be "SIMPUT"
SourceType,s,a,"SIMPUT","POINT|GAUSS|IMAGE|LINE|BETA|RAYFILE|DISK|USER|SAOSAC|SIMPUT",,"source"
# Pointers to your SIMPUT file and the location of the SIMPUT library
S-SIMPUT-Source,f,a,"sloshing_events_simput.fits",,,"Filename of SIMPUT Catalog"
S-SIMPUT-Library,f,a,"/usr/local/simput-2.1.2/lib/libsimput.dylib",,,"Path to dynamically linked file libsimput.so"
# Pointing RA and Dec is up to you, but should be near the source
RA_Nom,r,a,45.,,,"RA_NOM for dither (degrees)"
Dec_Nom,r,a,30.,,,"DEC_NOM for dither (degrees)"
Roll_Nom,r,a,0.,,,"ROLL_NOM for dither (degrees)"
SIMX¶
Here is an example set of SIMX commands that uses a SIMPUT catalog made with pyXSIM:
#!/bin/bash
heainit
simxinit
punlearn simx
pset simx mode=hl
pset simx Exposure=1.0e4
pset simx UseSimput=yes
pset simx MissionName=XraySurveyor InstrumentName=HDXI
pset simx ScaleBkgnd=0.0
pset simx RandomSeed=24
pset simx SimputFile=spiral_242959_noshift_xrs_simput.fits
pset simx PointingRA=30.0 PointingDec=45.0
pset simx OutputFileName=spiral_242959_noshift_xrs
simx
SIXTE¶
Here is an example set of SIXTE commands that uses a SIMPUT catalog made with pyXSIM:
#!/bin/bash
export HEADASNOQUERY=
export HEADASPROMPT=/dev/null
. $HEADAS/headas-init.sh
base=sloshing_simput
xmldir=$SIXTE/share/sixte/instruments/athena-wfi/wfi_wo_filter_15row
xml0=${xmldir}/ld_wfi_ff_chip0.xml
xml1=${xmldir}/ld_wfi_ff_chip1.xml
xml2=${xmldir}/ld_wfi_ff_chip2.xml
xml3=${xmldir}/ld_wfi_ff_chip3.xml
$SIXTE/bin/athenawfisim \
XMLFile0=${xml0} XMLFile1=${xml1} XMLFile2=${xml2} XMLFile3=${xml3} \
RA=30.05 Dec=45.04 \
Prefix=sim_ \
Simput=${base}.fits \
EvtFile=evt.fits \
Exposure=6000.0 \
clobber=yes
ftmerge \
sim_chip0_evt.fits,sim_chip1_evt.fits,sim_chip2_evt.fits,sim_chip3_evt.fits \
sim_combined_evt.fits clobber=yes
$SIXTE/bin/imgev \
EvtFile=sim_combined_evt.fits \
Image=img_sloshing.fits \
CoordinateSystem=0 Projection=TAN \
NAXIS1=1078 NAXIS2=1078 CUNIT1=deg CUNIT2=deg \
CRVAL1=30.05 CRVAL2=45.04 CRPIX1=593.192308 CRPIX2=485.807692 \
CDELT1=-6.207043e-04 CDELT2=6.207043e-04 history=true \
clobber=yes
SOXS¶
Here is an example set of SOXS commands that uses a SIMPUT catalog made with pyXSIM:
import soxs
simput_file = "snr_simput.fits" # SIMPUT file to be read
out_file = "evt_mucal.fits" # event file to be written
exp_time = 30000. # The exposure time in seconds
instrument = "mucal" # short name for instrument to be used
sky_center = [30., 45.] # RA, Dec of pointing in degrees
soxs.instrument_simulator(simput_file, out_file, exp_time, instrument,
sky_center, overwrite=True)
Refer to the relevant documentation for all of those packages for more details,
as well as the SIMPUT section of the EventList
documentation.