---
###############################################
#
#  Configuration file for CSST simulation
#  CSST-Sim Group, 2021/10/07, version 0.3
#
###############################################

# Base diretories and naming setup
# Can add some of the command-line arguments here as well;
# OK to pass either way or both, as long as they are consistent
# work_dir: "/public/home/fangyuedong/sim_code_release/CSST/test/"
work_dir: "/public/home/fangyuedong/temp/CSST/workplace/"
data_dir: "/data/simudata/CSSOSDataProductsSims/data/"
run_name: "TEST_random_knots"

# (Optional) a file of point list 
# if you just want to run default pointing:
# - pointing_dir: null
# - pointing_file: null
pointing_dir: "/data/simudata/CSSOSDataProductsSims/data/"
pointing_file: "pointing_test1214.dat"

# Whether to use MPI
run_option:
  use_mpi: YES
  # NOTE: "n_threads" paramters is currently not used in the backend
  # simulation codes. It should be implemented later in the web frontend
  # in order to config the number of threads to request from NAOC cluster
  n_threads: 80

  # Output catalog only?
  # If yes, no imaging simulation will run
  out_cat_only: NO

  # Only simulate stars?
  star_only: NO

  # Only simulate galaxies?
  galaxy_only: NO

###############################################
# Observation setting
###############################################
obs_setting:

  # Options for survey types:
  # "Photometric": simulate photometric chips only
  # "Spectroscopic": simulate slitless spectroscopic chips only
  # "All": simulate full focal plane
  survey_type: "All"
  
  # Exposure time [seconds]
  exp_time: 150.

  # Observation starting date & time
  # (Subject to change)
  date_obs: "210525" # [yymmdd]
  time_obs: "120000" # [hhmmss]

  # Default Pointing [degrees]
  # Note: NOT valid when a pointing list file is specified
  ra_center: 60.
  dec_center:  -40.

  # Image rotation [degree]
  image_rot: -113.4333

  # Number of calibration pointings
  # Note: only valid when a pointing list is specified
  np_cal: 0

  # Run specific pointing(s):
  # - give a list of indexes of pointings: [ip_1, ip_2...]
  # - run all pointings: null
  # Note: only valid when a pointing list is specified
  run_pointings: [1]
  
  # Run specific chip(s):
  # - give a list of indexes of chips: [ip_1, ip_2...]
  # - run all chips: null
  # Note: for all pointings
  run_chips: [1, 26, 29, 6, 7, 22, 23, 19, 20]

  # Whether to enable astrometric modeling
  # astrometric_lib: "libshao.so"
  enable_astrometric_model: True

###############################################
# Input path setting
###############################################

# Default path settings for WIDE survey simulation
input_path:
  cat_dir: "Catalog_20210126/"
  star_cat: "MMW_Cluster_D20_healpix_21.hdf5"
  galaxy_cat: "galaxyCats_r_10.0_healpix.hdf5"

SED_templates_path:
  star_SED: "Catalog_20210126/SpecLib.hdf5"
  galaxy_SED: "Templates/Galaxy/"


###############################################
# PSF setting
###############################################
psf_setting:
  
  # Which PSF model to use:
  # "Gauss": simple gaussian profile
  # "Interp": Interpolated PSF from sampled ray-tracing data
  psf_model: "Interp"

  # PSF size [arcseconds]
  # radius of 80% energy encircled
  # NOTE: only valid for "Gauss" PSF
  psf_rcont: 0.15

  # path to PSF data
  # NOTE: only valid for "Interp" PSF
  psf_dir: "/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/psfCube"

  # path to field-distortion model
  # Note: only valid when ins_effects: field_dist is "ON"
  fd_path: "FieldDistModelGlobal_v1.0.pickle"
  
  # sigma_spin: 0.0 # psf spin?

###############################################
# Shear setting
###############################################

shear_setting:
  # Options to generate mock shear field:
  # "constant": all galaxies are assigned a constant reduced shear
  # "catalog": from catalog (not available yet)
  # "extra": from seprate file
  shear_type: "constant"

  # For constant shear filed
  reduced_g1: 0.026
  reduced_g2: 0.015

  # Representation of the shear vector?
  reShear: "E"

  # rotate galaxy ellipticity
  rotateEll: 0. # [degree]

  # Extra shear catalog
  # (currently not used)
  # shear_cat: "mockShear.cat"

###############################################
# Instrumental effects setting
###############################################
ins_effects:
  # switches
  field_dist:     ON  # Whether to add field distortions
  add_back:       ON  # Whether to add sky background
  add_dark:       ON  # Whether to add dark noise
  add_readout:    ON  # Whether to add read-out (Gaussian) noise
  add_bias:       ON  # Whether to add bias-level to images
  shutter_effect: ON  # Whether to add shutter effect
  flat_fielding:  ON  # Whether to add flat-fielding effect
  prnu_effect:    ON  # Whether to add PRNU effect
  non_linear:     OFF # Whether to add non-linearity
  cosmic_ray:     ON  # Whether to add cosmic-ray
  cray_differ:    ON  # Whether to generate different cosmic ray maps CAL and MS output
  cte_trail:      ON  # Whether to simulate CTE trails
  saturbloom:     ON  # Whether to simulate Saturation & Blooming
  add_badcolumns: ON  # Whether to add bad columns
  add_hotpixels:  ON  # Whether to add hot pixels
  add_deadpixels: ON  # Whether to add dead(dark) pixels
  bright_fatter:  ON  # Whether to simulate Brighter-Fatter (also diffusion) effect

  # values
  dark_exptime:   300   # Exposure time for dark current frames [seconds]
  flat_exptime:   150   # Exposure time for flat-fielding frames [seconds]
  readout_time:   40    # The read-out time for each channel [seconds]
  df_strength:    2.3   # Sillicon sensor diffusion strength
  bias_level:     500   # bias level [e-/pixel]
  gain:           1.1   # Gain
  full_well:      90000 # Full well depth [e-]
  NBias:          1     # Number of bias frames to be exported for each exposure
  NDark:          1     # Number of dark frames to be exported for each exposure
  NFlat:          1     # Number of flat frames to be exported for each exposure

###############################################
# Output options
###############################################
output_setting:
  readout16:      OFF # Whether to export as 16 channels (subimages) with pre- and over-scan
  shutter_output: OFF # Whether to export shutter effect 16-bit image
  bias_output:    ON  # Whether to export bias frames
  dark_output:    ON  # Whether to export the combined dark current files
  flat_output:    ON  # Whether to export the combined flat-fielding files
  prnu_output:    OFF # Whether to export the PRNU (pixel-to-pixel flat-fielding) files

###############################################
# Random seeds
###############################################
random_seeds:
  seed_Av:              121212    # Seed for generating random intrinsic extinction
  seed_poisson:         20210601  # Seed for Poisson noise
  seed_CR:              20210317  # Seed for generating random cosmic ray maps
  seed_flat:            20210101  # Seed for generating random flat fields
  seed_prnu:            20210102  # Seed for photo-response non-uniformity
  seed_gainNonUniform:  20210202  # Seed for gain nonuniformity
  seed_biasNonUniform:  20210203  # Seed for bias nonuniformity
  seed_rnNonUniform:    20210204  # Seed for readout-noise nonuniformity
  seed_badcolumns:      20240309  # Seed for bad columns
  seed_defective:       20210304  # Seed for defective (bad) pixels
  seed_readout:         20210601  # Seed for read-out gaussian noise
...