skypy icon indicating copy to clipboard operation
skypy copied to clipboard

BUG: Overgeneration of galaxies

Open Fox-Davidson opened this issue 2 years ago • 2 comments

Describe the bug When calculating the number density of galaxies for redshift sampling in 'schechter lf redshift' (/galaxies/redshift.py) there is a missing factor of h_0^3. This is required due to the units of phi_*. Not including this factor can overgenerate the number of galaxies by a factor of 3 (given h=0.7) for the entire magnitude/luminosity function.

To Reproduce Steps to reproduce the behaviour:

  1. Generate a catalogue of galaxies
  2. Integrate the expected magnitude Schechter function with the values used in the YAML file by volume defined by skyarea
  3. Create a histogram (or extract values) from the catalogue with the same bins as the above integral
  4. Plot these together, there should be a significantly increased number in the catalogue values compared to the analytical values Please see the Jupyter Notebook and YAML files attached (I couldn't attach them in their native forms so hopefully they are still helpful)

Expected behaviour The catalogue values should exactly follow the analytical plot as they are sampled from the same distribution

Desktop (please complete the following information):

Fox-Davidson avatar Nov 11 '22 18:11 Fox-Davidson

Hi @Fox-Davidson, thanks for this PR! Am I right in saying this could also be fixed by making your units for phi* have a h_0 in them? I think doing that + updating the documentation to specify that normalisation constants should have those units would be better than putting h_0 units in here, which we had discussed before and decided not to do.

itrharrison avatar Nov 18 '22 09:11 itrharrison

Action: Add more specific guidance to the contributing guidelines for the consistency in h units. The user should put in and receive h-less units (ie where there is no h unit present as a variable).

Fox-Davidson avatar Nov 22 '22 15:11 Fox-Davidson