diff --git a/lalapps/src/inspiral/inspinj.c b/lalapps/src/inspiral/inspinj.c index b06b27ea29e695f3855829fb3ea954d8f616f228..b4cc7d43d071105d4378c09cc6f3a075f8394328 100644 --- a/lalapps/src/inspiral/inspinj.c +++ b/lalapps/src/inspiral/inspinj.c @@ -551,6 +551,7 @@ static void print_usage(char *program) " --d-distr distDist set the distance distribution of injections\n"\ " source: take distance from galaxy source file\n"\ " uniform: uniform distribution in distance\n"\ + " distancesquared: uniform distribution in distance^2\n"\ " log10: uniform distribution in log10(d) \n"\ " volume: uniform distribution in volume\n"\ " sfr: distribution derived from the SFR\n"\ @@ -1963,6 +1964,10 @@ int main( int argc, char *argv[] ) { dDistr=uniformDistance; } + else if (!strcmp(dummy, "distancesquared")) + { + dDistr=uniformDistanceSquared; + } else if (!strcmp(dummy, "log10")) { dDistr=uniformLogDistance; @@ -1979,7 +1984,7 @@ int main( int argc, char *argv[] ) { fprintf( stderr, "invalid argument to --%s:\n" "unknown source distribution: " - "%s, must be one of (uniform, log10, volume, source)\n", + "%s, must be one of (uniform, distancesquared, log10, volume, source, sfr)\n", long_options[option_index].name, optarg ); exit( 1 ); } diff --git a/lalinspiral/src/InspiralInjectionParams.c b/lalinspiral/src/InspiralInjectionParams.c index 48c989831d309c702a9f2f3734875098f1e078be..e1fd1908a48576d7c995e5b800e22d6b6c95ea8b 100644 --- a/lalinspiral/src/InspiralInjectionParams.c +++ b/lalinspiral/src/InspiralInjectionParams.c @@ -92,6 +92,16 @@ SimInspiralTable* XLALRandomInspiralDistance( else if (dDist == uniformVolume ) { /* uniform volume distribution */ + REAL4 d3min = distMin * distMin * distMin; + REAL4 d3max = distMax * distMax * distMax; + REAL4 deltad3 = d3max - d3min ; + REAL4 d3; + d3 = d3min + deltad3 * XLALUniformDeviate( randParams ); + inj->distance = cbrt( d3 ); + } + else if (dDist == uniformDistanceSquared) + { + /* uniform distance^2 distribution */ REAL4 d2min = distMin * distMin ; REAL4 d2max = distMax * distMax ; REAL4 deltad2 = d2max - d2min ; diff --git a/lalinspiral/src/InspiralInjectionParams.h b/lalinspiral/src/InspiralInjectionParams.h index 4bfe645add360de68920e80afa30a2d0af15db61..aadc14eb1d2d5cc09b154148c93a9e38e2beef13 100644 --- a/lalinspiral/src/InspiralInjectionParams.h +++ b/lalinspiral/src/InspiralInjectionParams.h @@ -29,6 +29,7 @@ typedef enum unknownDistanceDist, distFromSourceFile, uniformDistance, + uniformDistanceSquared, uniformLogDistance, uniformVolume, sfr