#!/bin/bash

# Generate a random inspiral signal at GPS time TIME
USAGE="Usage: $0 GPSTIME"
USAGE2="    where GPSTIME is the desired time of the start of the injection"

if [ $# -ne 1 ]
then
    echo $USAGE
    echo $USAGE2
    exit 1
fi

STARTTIME=$1

if [ -n $SNR ]
then
echo "Using your requested SNR of $SNR"
fi

OUTFILE=CBC_BLINDINJ_HIMASS_${STARTTIME}.xml
echo "Generating high-mass injection, parameters in $OUTFILE"

R=$RANDOM

SNRMIN=8.5
SNRMAX=9.5
INSPINJCOM="lalapps_inspinj --seed $R --taper-injection start --gps-start-time $STARTTIME --gps-end-time $[$STARTTIME+1] --m-distr totalMass --min-mass1 2.0 --min-mass2 2.0 --max-mass1 100 --max-mass2 100 --max-mtotal 200 --min-mtotal 2.0 --d-distr uniform --i-distr uniform --min-distance 10000 --max-distance 50000 --waveform EOBNRpseudoFourPN --l-distr random --f-lower 30 --time-step 1 --disable-spin -o ${OUTFILE}"

# Run the inspinj command
echo $INSPINJCOM
eval $INSPINJCOM

# Generate the SNR from the specified ranges
SNR=${SNR:-`echo "$SNRMIN + (${SNRMAX}-${SNRMIN})*${RANDOM}/32768" | bc -l`}
#echo "Target SNR = ${SNR}"
# Run coinj to generate the waveforms
COINJCOM="lalapps_coinj --input $OUTFILE --response-type etmy --frames --SNR ${SNR}"
echo $COINJCOM
eval $COINJCOM

echo "Generated waveforms"
MASS1=`lwtprint -t sim_inspiral -c mass1 $OUTFILE`
MASS2=`lwtprint -t sim_inspiral -c mass2 $OUTFILE`
DIST=`lwtprint -t sim_inspiral -c distance $OUTFILE`
RA=`lwtprint -t sim_inspiral -c longitude $OUTFILE`
DEC=`lwtprint -t sim_inspiral -c latitude $OUTFILE`
GCEND=`lwtprint -t sim_inspiral -c geocent_end_time $OUTFILE`
GCENDNS=`echo "$(lwtprint -t sim_inspiral -c geocent_end_time_ns ${OUTFILE} ) * 0.000000001" | bc -l`
HEND=`lwtprint -t sim_inspiral -c h_end_time $OUTFILE`
HENDNS=`echo "$(lwtprint -t sim_inspiral -c h_end_time_ns ${OUTFILE} ) * 0.000000001" | bc -l`
LEND=`lwtprint -t sim_inspiral -c l_end_time $OUTFILE`
LENDNS=`echo "$(lwtprint -t sim_inspiral -c l_end_time_ns ${OUTFILE} ) * 0.000000001" | bc -l`
VEND=`lwtprint -t sim_inspiral -c v_end_time $OUTFILE`
VENDNS=`echo "$(lwtprint -t sim_inspiral -c v_end_time_ns ${OUTFILE} ) * 0.000000001" | bc -l`

echo ""
echo "Mass 1 = $MASS1 Msun"
echo "Mass 2 = $MASS2 Msun"
echo "Distance = $DIST Mpc"
echo "Right Ascension = $RA rads"
echo "Declination = $DEC rads"
echo "tC at Geocentre = ${GCEND}.${GCENDNS#.}"
echo "tC at Hanford = ${HEND}.${HENDNS#.}"
echo "tC at Livingston = ${LEND}.${LENDNS#.}"
echo "tC at Virgo = ${VEND}.${VENDNS#.}"
echo "Network SNR = $SNR"
