Example: receiving, filtering, processing 160-byte binary GCN notices (UNDER CONSTRUCTION) [public]
Below are 3 sets of 3 notices each.
The first set is the output of the "socket_demo" program (a demo program for people who want to connect using the 160-byte binary scoekt connection method).
The 2nd set is the full-format emails (produced from the LVC VOEvent input).
And 3rd is the VOEvent XML from LVC's 'curly' machine (the raw input into GCN).
And then there is the portion of the socket.c code that made the output given in Section 1
(ie the code that extracted the pieces of information from the 40 4-byte slots in the 160-byte binary packet).
And then there is the 'od' dumping of the 3 binary packet files (in 4-byte decimal; mostly so I could confirm
via the type_number and the trig_id_number that I did in fact get the right bianry packets for the upload/attachments.
And then there are the 3 160-byte binary packets (as attachments).
1) Socket_demo logfile output (printf() statements of the variousl 'slots' in the 160-byte packet):
PKT INFO:Received: LT Tue Jul 21 11:36:06 2015
Type= 150 SN= 8LVC PREMINARY
Hop_cnt= 0
PKT_SOD= 123.45 [sec] delta=56042.55 [sec]
TRIG_NUM=M169450
TRIG_TJD=15452
TRIG_SOD=71323.00 [sec] delta=-15157.00 [sec]
TRIG_SUBSEC=424627 [microsec]
spare=0
spare=0
FAR=3.773e-14 [Hz]
EVT_TYPE=0x00010604
group=1 = CBC
search=6 =
MockDataChallenge
pipeline=4 = GSTLAL
FLUENCE=undefined
CENTRAL_FREQ=undefined
DURATION=undefined
ETA=0.249 (ratio)
CHIRP_MASS=1.1409 [M_solar]
MAX_DIST=102.71 [Mpc]
TRIG_ID=0x00000002
MISC=0x01300003
letter=3 = M
LIGO-Handford Observatory contributed to this candidate event.
LIGO-Livingston Observatory contributed to this candidate event.
This is an M-series trigger (M is for Mock Data Challenge).
PKT INFO:Received: LT Tue Jul 21 11:36:19 2015
Type= 151 SN= 8 LVC INITIAL
Hop_cnt= 0
PKT_SOD= 123.45 [sec] delta=56055.55 [sec]
TRIG_NUM=M169450
TRIG_SOD=71323.00 [sec] delta=-15144.00 [sec]
TRIG_SUBSEC=424627 [microsec]
spare7=0
spare8=0
FAR=3.773e-14 [Hz]
EVT_TYPE=0x00010604
group=1 = CBC
search=6 =
MockDataChallenge
pipeline=4 = GSTLAL
FLUENCE=undefined
CENTRAL_FREQ=undefined
DURATION=undefined
ETA=0.249 (ratio)
CHIRP_MASS=1.1409 [M_solar]
MAX_DIST=102.71 [Mpc]
TRIG_ID=0x00000002
MISC=0x02300003
letter=3 = M
spare20=0
spare21=0
spare22=0
spare23=0
spare24=0
spare25=0
spare26=0
spare27=0
spare28=0
URL=M169450/files/bayestar.fits.gz
LIGO-Handford Observatory contributed to this candidate event.
LIGO-Livingston Observatory contributed to this candidate event.
This is a CBC trigger, so only the
ChirpMass, Eta, &
MaxDistance fields are valid.
This is an M-series trigger (M is for Mock Data Challenge).
PKT INFO:Received: LT Tue Jul 21 11:36:31 2015
Type= 152 SN= 14 LVC UPDATE
Hop_cnt= 0
PKT_SOD= 123.45 [sec] delta=56067.55 [sec]
TRIG_NUM=M169450
TRIG_SOD=71323.00 [sec] delta=-15132.00 [sec]
TRIG_SUBSEC=424627 [microsec]
spare7=0
spare8=0
FAR=3.773e-14 [Hz]
EVT_TYPE=0x00010604
group=1 = CBC
search=6 =
MockDataChallenge
pipeline=4 = GSTLAL
FLUENCE=undefined
CENTRAL_FREQ=undefined
DURATION=undefined
ETA=0.249 (ratio)
CHIRP_MASS=1.1409 [M_solar]
MAX_DIST=102.71 [Mpc]
TRIG_ID=0x00000002
MISC=0x03300003
letter=3 = M
spare20=0
spare21=0
spare22=0
spare23=0
spare24=0
spare25=0
spare26=0
spare27=0
spare28=0
URL=M169450/files/lalinference_nest.fits.gz
LIGO-Handford Observatory contributed to this candidate event.
LIGO-Livingston Observatory contributed to this candidate event.
This is a CBC trigger, so only the
ChirpMass, Eta, &
MaxDistance fields are valid.
This is an M-series trigger (M is for Mock Data Challenge).
2) The GCN Full-format Email method messages:
TITLE:GCN/LVC NOTICE
NOTICE_DATE:Tue 21 Jul 15 15:36:06 UT
NOTICE_TYPE:TEST LVC Preliminary
TRIGGER_NUM:M169450
TRIGGER_DATE:15452 TJD; 256 DOY; 2010/09/13 (yy/mm/dd)
TRIGGER_TIME:71323.424627 SOD {19:48:43.424627} UT
GROUP_TYPE:1 = CBC
SEARCH_TYPE:6 =
MockDataChallenge
PIPELINE_TYPE:4 = GSTLAL
FAR:3.773e-14 [Hz]
CHIRP_MASS:1.1409 [M_solar]
ETA:0.249
MAX_DIST:102.71 [Mpc]
TRIGGER_ID:0x2
MISC:0x1300003
COMMENTS:LVC Trigger Alert.
COMMENTS:LIGO-Handford Observatory contributed to this candidate event.
COMMENTS:LIGO-Livingston Observatory contributed to this candidate event.
COMMENTS:This is an M-series trigger (M is for Mock Data Challenge).
TITLE:GCN/LVC NOTICE
NOTICE_DATE:Tue 21 Jul 15 15:36:19 UT
NOTICE_TYPE:TEST LVC Initial Skymap
TRIGGER_NUM:M169450
TRIGGER_DATE:15452 TJD; 256 DOY; 2010/09/13 (yy/mm/dd)
TRIGGER_TIME:71323.424627 SOD {19:48:43.424627} UT
GROUP_TYPE:1 = CBC
SEARCH_TYPE:6 =
MockDataChallenge
PIPELINE_TYPE:4 = GSTLAL
FAR:3.773e-14 [Hz]
CHIRP_MASS:1.1409 [M_solar]
ETA:0.249
MAX_DIST:102.71 [Mpc]
TRIGGER_ID:0x2
MISC:0x2300003
SKYMAP_URL:https://gracedb.ligo.org/api/events/M169450/files/bayestar.fits.gz
SKYMAP_BASIC_URL:
https://gracedb.ligo.org/apibasic/events/M169450/files/bayestar.fits.gz
EVENT_URL:https://gracedb.ligo.org/events/M169450
COMMENTS:LVC Initial Skymap -- a location probability map.
COMMENTS:LIGO-Handford Observatory contributed to this candidate event.
COMMENTS:LIGO-Livingston Observatory contributed to this candidate event.
COMMENTS:This is a CBC trigger, so only the
ChirpMass, Eta, &
MaxDistance fields are valid.
COMMENTS:This is an M-series trigger (M is for Mock Data Challenge).
TITLE:GCN/LVC NOTICE
NOTICE_DATE:Tue 21 Jul 15 15:36:30 UT
NOTICE_TYPE:TEST LVC Update Skymap
TRIGGER_NUM:M169450
TRIGGER_DATE:15452 TJD; 256 DOY; 2010/09/13 (yy/mm/dd)
TRIGGER_TIME:71323.424627 SOD {19:48:43.424627} UT
GROUP_TYPE:1 = CBC
SEARCH_TYPE:6 =
MockDataChallenge
PIPELINE_TYPE:4 = GSTLAL
FAR:3.773e-14 [Hz]
CHIRP_MASS:1.1409 [M_solar]
ETA:0.249
MAX_DIST:102.71 [Mpc]
TRIGGER_ID:0x2
MISC:0x3300003
SKYMAP_URL:https://gracedb.ligo.org/api/events/M169450/files/lalinference_nest.fits.gz
SKYMAP_BASIC_URL:
https://gracedb.ligo.org/apibasic/events/M169450/files/lalinference_nest.fits.gz
EVENT_URL:https://gracedb.ligo.org/events/M169450
COMMENTS:LVC Updated Skymap -- a location probability map.
COMMENTS:LIGO-Handford Observatory contributed to this candidate event.
COMMENTS:LIGO-Livingston Observatory contributed to this candidate event.
COMMENTS:This is a CBC trigger, so only the
ChirpMass, Eta, &
MaxDistance fields are valid.
COMMENTS:This is an M-series trigger (M is for Mock Data Challenge).
3) Original VOEvent inputs to GCN:
<?xml version="1.0" ?>
<voe:VOEvent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:voe="http://www.ivoa.net/xml/VOEvent/v2.0"
xsi:schemaLocation="http://www.ivoa.net/xml/VOEvent/v2.0
http://www.ivoa.net/xml/VOEvent/VOEvent-v2.0.xsd"
version="2.0" role="test" ivorn="ivo://gwnet/gcn_sender#M169450-1-Preliminary">
<Who>
<Date>2015-07-21T15:36:05</Date>
<Author>
<contactName>LIGO Scientific Collaboration and Virgo Collaboration</contactName>
</Author>
</Who>
<What>
<Param name="internal" dataType="string" value="0">
<Description>Indicates that this event should be distributed to LSC/Virgo members only</Description>
</Param>
<Param name="Pkt_Ser_Num" dataType="string" value="1"/>
<Param name="GraceID" dataType="string" value="M169450" ucd="meta.id">
<Description>Identifier in
GraceDB</Description>
</Param>
<Param name="AlertType" dataType="string" value="Preliminary" ucd="meta.version" unit="">
<Description>VOEvent alert type</Description>
</Param>
<Param name="EventPage" dataType="string" value="https://gracedb.ligo.org/events/M169450" ucd="meta.ref.url">
<Description>Web page for evolving status of this candidate event</Description>
</Param>
<Param name="Instruments" dataType="string" value="H1,L1" ucd="meta.code">
<Description>List of instruments used in analysis to identify this event</Description>
</Param>
<Param name="FAR" dataType="float" value="3.77232633462e-14" ucd="arith.rate;stat.falsealarm" unit="Hz">
<Description>False alarm rate for GW candidates with this strength or greater</Description>
</Param>
<Param name="Group" dataType="string" value="CBC" ucd="meta.code" unit="">
<Description>Data analysis working group</Description>
</Param>
<Param name="Pipeline" dataType="string" value="gstlal" ucd="meta.code" unit="">
<Description>Low-latency data analysis pipeline</Description>
</Param>
<Param name="Search" dataType="string" value="MDC" ucd="meta.code" unit="">
<Description>Specific low-latency search</Description>
</Param>
<Param name="ChirpMass" dataType="float" value="1.14097547531" ucd="phys.mass" unit="solar mass">
<Description>Estimated CBC chirp mass</Description>
</Param>
<Param name="Eta" dataType="float" value="0.249547853462" ucd="phys.mass;arith.factor" unit="">
<Description>Estimated ratio of reduced mass to total mass</Description>
</Param>
<Param name="MaxDistance" dataType="float" value="102.71414" ucd="pos.distance" unit="Mpc">
<Description>Estimated maximum distance for CBC event</Description>
</Param>
</What>
<WhereWhen>
<ObsDataLocation>
<ObservatoryLocation id="LIGO Virgo"/>
<ObservationLocation>
<AstroCoordSystem id="UTC-FK5-GEO"/>
<AstroCoords coord_system_id="UTC-FK5-GEO">
<Time>
<TimeInstant>
<ISOTime>2010-09-13T19:48:43.424627</ISOTime>
</TimeInstant>
</Time>
</AstroCoords>
</ObservationLocation>
</ObsDataLocation>
</WhereWhen>
<How>
<Description>Candidate gravitational wave event identified by low-latency analysis</Description>
<Description>H1: LIGO Hanford 4 km gravitational wave detector</Description>
<Description>L1: LIGO Livingston 4 km gravitational wave detector</Description>
</How>
<Description>Report of a candidate gravitational wave event</Description>
</voe:VOEvent>
<?xml version="1.0" ?>
<voe:VOEvent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:voe="http://www.ivoa.net/xml/VOEvent/v2.0"
xsi:schemaLocation="http://www.ivoa.net/xml/VOEvent/v2.0
http://www.ivoa.net/xml/VOEvent/VOEvent-v2.0.xsd"
version="2.0" role="test" ivorn="ivo://gwnet/gcn_sender#M169450-2-Initial">
<Who>
<Date>2015-07-21T15:36:17</Date>
<Author>
<contactName>LIGO Scientific Collaboration and Virgo Collaboration</contactName>
</Author>
</Who>
<What>
<Param name="internal" dataType="string" value="0">
<Description>Indicates that this event should be distributed to LSC/Virgo members only</Description>
</Param>
<Param name="Pkt_Ser_Num" dataType="string" value="2"/>
<Param name="GraceID" dataType="string" value="M169450" ucd="meta.id">
<Description>Identifier in
GraceDB</Description>
</Param>
<Param name="AlertType" dataType="string" value="Initial" ucd="meta.version" unit="">
<Description>VOEvent alert type</Description>
</Param>
<Param name="EventPage" dataType="string" value="https://gracedb.ligo.org/events/M169450" ucd="meta.ref.url">
<Description>Web page for evolving status of this candidate event</Description>
</Param>
<Param name="Instruments" dataType="string" value="H1,L1" ucd="meta.code">
<Description>List of instruments used in analysis to identify this event</Description>
</Param>
<Param name="FAR" dataType="float" value="3.77232633462e-14" ucd="arith.rate;stat.falsealarm" unit="Hz">
<Description>False alarm rate for GW candidates with this strength or greater</Description>
</Param>
<Param name="Group" dataType="string" value="CBC" ucd="meta.code" unit="">
<Description>Data analysis working group</Description>
</Param>
<Param name="Pipeline" dataType="string" value="gstlal" ucd="meta.code" unit="">
<Description>Low-latency data analysis pipeline</Description>
</Param>
<Param name="Search" dataType="string" value="MDC" ucd="meta.code" unit="">
<Description>Specific low-latency search</Description>
</Param>
<Param name="ChirpMass" dataType="float" value="1.14097547531" ucd="phys.mass" unit="solar mass">
<Description>Estimated CBC chirp mass</Description>
</Param>
<Param name="Eta" dataType="float" value="0.249547853462" ucd="phys.mass;arith.factor" unit="">
<Description>Estimated ratio of reduced mass to total mass</Description>
</Param>
<Param name="MaxDistance" dataType="float" value="102.71414" ucd="pos.distance" unit="Mpc">
<Description>Estimated maximum distance for CBC event</Description>
</Param>
<Group type="GW_SKYMAP" name="BAYESTAR">
<Param name="skymap_fits_shib" dataType="string" value="https://gracedb.ligo.org/events/M169450/files/bayestar.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS Shibboleth protected</Description>
</Param>
<Param name="skymap_fits_x509" dataType="string" value="https://gracedb.ligo.org/api/events/M169450/files/bayestar.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS X509 protected</Description>
</Param>
<Param name="skymap_fits_basic" dataType="string" value="https://gracedb.ligo.org/apibasic/events/M169450/files/bayestar.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS basic auth protected</Description>
</Param>
<Param name="skymap_png_shib" dataType="string" value="https://gracedb.ligo.org/events/M169450/files/bayestar.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image Shibboleth protected</Description>
</Param>
<Param name="skymap_png_x509" dataType="string" value="https://gracedb.ligo.org/api/events/M169450/files/bayestar.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image X509 protected</Description>
</Param>
<Param name="skymap_png_basic" dataType="string" value="https://gracedb.ligo.org/apibasic/events/M169450/files/bayestar.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image basic auth protected</Description>
</Param>
</Group>
</What>
<WhereWhen>
<ObsDataLocation>
<ObservatoryLocation id="LIGO Virgo"/>
<ObservationLocation>
<AstroCoordSystem id="UTC-FK5-GEO"/>
<AstroCoords coord_system_id="UTC-FK5-GEO">
<Time>
<TimeInstant>
<ISOTime>2010-09-13T19:48:43.424627</ISOTime>
</TimeInstant>
</Time>
</AstroCoords>
</ObservationLocation>
</ObsDataLocation>
</WhereWhen>
<How>
<Description>Candidate gravitational wave event identified by low-latency analysis</Description>
<Description>H1: LIGO Hanford 4 km gravitational wave detector</Description>
<Description>L1: LIGO Livingston 4 km gravitational wave detector</Description>
</How>
<Citations>
<EventIVORN cite="supersedes">ivo://gwnet/gcn_sender#M169450-1-Preliminary</EventIVORN>
<Description>Initial localization is now available</Description>
</Citations>
<Description>Report of a candidate gravitational wave event</Description>
</voe:VOEvent>
<?xml version="1.0" ?>
<voe:VOEvent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:voe="http://www.ivoa.net/xml/VOEvent/v2.0"
xsi:schemaLocation="http://www.ivoa.net/xml/VOEvent/v2.0
http://www.ivoa.net/xml/VOEvent/VOEvent-v2.0.xsd"
version="2.0" role="test" ivorn="ivo://gwnet/gcn_sender#M169450-3-Update">
<Who>
<Date>2015-07-21T15:36:28</Date>
<Author>
<contactName>LIGO Scientific Collaboration and Virgo Collaboration</contactName>
</Author>
</Who>
<What>
<Param name="internal" dataType="string" value="0">
<Description>Indicates that this event should be distributed to LSC/Virgo members only</Description>
</Param>
<Param name="Pkt_Ser_Num" dataType="string" value="3"/>
<Param name="GraceID" dataType="string" value="M169450" ucd="meta.id">
<Description>Identifier in
GraceDB</Description>
</Param>
<Param name="AlertType" dataType="string" value="Update" ucd="meta.version" unit="">
<Description>VOEvent alert type</Description>
</Param>
<Param name="EventPage" dataType="string" value="https://gracedb.ligo.org/events/M169450" ucd="meta.ref.url">
<Description>Web page for evolving status of this candidate event</Description>
</Param>
<Param name="Instruments" dataType="string" value="H1,L1" ucd="meta.code">
<Description>List of instruments used in analysis to identify this event</Description>
</Param>
<Param name="FAR" dataType="float" value="3.77232633462e-14" ucd="arith.rate;stat.falsealarm" unit="Hz">
<Description>False alarm rate for GW candidates with this strength or greater</Description>
</Param>
<Param name="Group" dataType="string" value="CBC" ucd="meta.code" unit="">
<Description>Data analysis working group</Description>
</Param>
<Param name="Pipeline" dataType="string" value="gstlal" ucd="meta.code" unit="">
<Description>Low-latency data analysis pipeline</Description>
</Param>
<Param name="Search" dataType="string" value="MDC" ucd="meta.code" unit="">
<Description>Specific low-latency search</Description>
</Param>
<Param name="ChirpMass" dataType="float" value="1.14097547531" ucd="phys.mass" unit="solar mass">
<Description>Estimated CBC chirp mass</Description>
</Param>
<Param name="Eta" dataType="float" value="0.249547853462" ucd="phys.mass;arith.factor" unit="">
<Description>Estimated ratio of reduced mass to total mass</Description>
</Param>
<Param name="MaxDistance" dataType="float" value="102.71414" ucd="pos.distance" unit="Mpc">
<Description>Estimated maximum distance for CBC event</Description>
</Param>
<Group type="GW_SKYMAP" name="LALINFERENCE_NEST">
<Param name="skymap_fits_shib" dataType="string" value="https://gracedb.ligo.org/events/M169450/files/lalinference_nest.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS Shibboleth protected</Description>
</Param>
<Param name="skymap_fits_x509" dataType="string" value="https://gracedb.ligo.org/api/events/M169450/files/lalinference_nest.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS X509 protected</Description>
</Param>
<Param name="skymap_fits_basic" dataType="string" value="https://gracedb.ligo.org/apibasic/events/M169450/files/lalinference_nest.fits.gz" ucd="meta.ref.url" unit="">
<Description>Sky Map FITS basic auth protected</Description>
</Param>
<Param name="skymap_png_shib" dataType="string" value="https://gracedb.ligo.org/events/M169450/files/lalinference_nest.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image Shibboleth protected</Description>
</Param>
<Param name="skymap_png_x509" dataType="string" value="https://gracedb.ligo.org/api/events/M169450/files/lalinference_nest.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image X509 protected</Description>
</Param>
<Param name="skymap_png_basic" dataType="string" value="https://gracedb.ligo.org/apibasic/events/M169450/files/lalinference_nest.png" ucd="meta.ref.url" unit="">
<Description>Sky Map image basic auth protected</Description>
</Param>
</Group>
</What>
<WhereWhen>
<ObsDataLocation>
<ObservatoryLocation id="LIGO Virgo"/>
<ObservationLocation>
<AstroCoordSystem id="UTC-FK5-GEO"/>
<AstroCoords coord_system_id="UTC-FK5-GEO">
<Time>
<TimeInstant>
<ISOTime>2010-09-13T19:48:43.424627</ISOTime>
</TimeInstant>
</Time>
</AstroCoords>
</ObservationLocation>
</ObsDataLocation>
</WhereWhen>
<How>
<Description>Candidate gravitational wave event identified by low-latency analysis</Description>
<Description>H1: LIGO Hanford 4 km gravitational wave detector</Description>
<Description>L1: LIGO Livingston 4 km gravitational wave detector</Description>
</How>
<Citations>
<EventIVORN cite="supersedes">ivo://gwnet/gcn_sender#M169450-2-Initial</EventIVORN>
<EventIVORN cite="supersedes">ivo://gwnet/gcn_sender#M169450-1-Preliminary</EventIVORN>
<Description>Updated localization is now available</Description>
</Citations>
<Description>Report of a candidate gravitational wave event</Description>
</voe:VOEvent>
Here are the two routines witin socket_demo.c that made the logfile output listed above (section 1):
/*---------------------------------------------------------------------------*/
static char *lvc_gt[3] = {"illegal value", "CBC", "Burst"}; // Group
static char *lvc_st[7] = {"illegal value", "AllSky", "LowMass", "HighMass", "GRB", "Supernova", "MockDataChallenge"}; // Search
static char *lvc_pt[15] = {"illegal value", "MTBAOnline", "CWB", "CWB2G", "GSTLAL", "GSTLAL_Spiir", "HardwareInjection", "X", "Q", "Omega", "Ringdown", "LIB", "Fermi", "Swift", "SNEWS"}; // Pipeline
static char *lvc_lt[7] = {"0", "G", "T", "M", "Y", "H", "E"}; // Letter
/*---------------------------------------------------------------------------*/
void
pr_lvc_prelim(lbuf,s)/* PRint the contents of a LVC PRELIMINARY packets */
long*lbuf; // Ptr to the newly arrived packet to print out
FILE*s;// Stream to print it to
{
int indx;
int lvc_group, lvc_search, lvc_pipeline, lvc_letter;
lvc_group= (lbuf[12]>>16) & 0xFF;if((lvc_group < 0) || (lvc_group > 2)) lvc_group = 0;
lvc_search = (lbuf[12]>>8) & 0xFF;if((lvc_search < 0) || (lvc_search > 6)) lvc_search = 0;
lvc_pipeline = lbuf[12] & 0xFF;if((lvc_pipeline < 0) || (lvc_pipeline > 14)) lvc_pipeline = 0;
lvc_letter = (lbuf[19]>>20) & 0xF;if((lvc_letter < 0) || (lvc_letter > 6)) lvc_letter = 0;
fprintf(s,"PKT INFO:Received: LT %s",ctime((time_t *)&tloc));
fprintf(s," Type= %ld SN= %ldLVC PREMINARY\n",lbuf[PKT_TYPE],lbuf[PKT_SERNUM]);
fprintf(s," Hop_cnt= %ld\n", lbuf[PKT_HOP_CNT]);
fprintf(s," PKT_SOD= %.2f [sec] delta=%.2f [sec]\n", lbuf[PKT_SOD]/100.0, here_sod - lbuf[PKT_SOD]/100.0);
fprintf(s," TRIG_NUM=%s%ld\n", lvc_lt[lvc_letter], lbuf[BURST_TRIG]);
fprintf(s," TRIG_TJD=%ld\n", lbuf[BURST_TJD]);
fprintf(s," TRIG_SOD=%.2f [sec] delta=%.2f [sec]\n", lbuf[BURST_SOD]/100.0, here_sod - lbuf[BURST_SOD]/100.0);
fprintf(s," TRIG_SUBSEC=%d [microsec]\n", lbuf[13]);
fprintf(s," spare7=%d\n", lbuf[7]);
fprintf(s," spare8=%d\n", lbuf[8]);
fprintf(s," FAR=%.3e [Hz]\n", pow((double)10.0,(double)lbuf[11]/10000.0));
fprintf(s," EVT_TYPE=0x%08x\n", lbuf[12]);
fprintf(s,"group=%d = %s\n", lvc_group, lvc_gt[lvc_group]);
fprintf(s,"search=%d = %s\n", lvc_search, lvc_st[lvc_search]);
fprintf(s,"pipeline=%d = %s\n", lvc_pipeline, lvc_pt[lvc_pipeline]);
if(lvc_group == 2)// "burst"
{
fprintf(s," FLUENCE=%.2e [J/m^2]\n", pow((double)10.0,(double)lbuf[9]/10000.0));
fprintf(s," CENTRAL_FREQ=%.2f [Hz]\n", lbuf[10]/100.0);
fprintf(s," DURATION=%.2f [sec]\n", lbuf[14]/100.0);
}
else
{
fprintf(s," FLUENCE=undefined\n");
fprintf(s," CENTRAL_FREQ=undefined\n");
fprintf(s," DURATION=undefined\n");
}
if(lvc_group == 1)// CBC
{
fprintf(s," ETA=%.3f (ratio)\n", lbuf[15]/1000.0);
fprintf(s," CHIRP_MASS=%.4f [M_solar]\n", lbuf[16]/10000.0);
fprintf(s," MAX_DIST=%.2f [Mpc]\n", lbuf[17]/100.0);
}
else
{
fprintf(s," CHIRP_MASS=undefined\n");
fprintf(s," ETA=undefined\n");
fprintf(s," MAX_DIST=undefined\n");
}
fprintf(s," TRIG_ID=0x%08x\n", lbuf[18]);
fprintf(s," MISC=0x%08x\n", lbuf[19]);
fprintf(s,"letter=%d = %s\n", lvc_letter, lvc_lt[lvc_letter]);
fprintf(s,"lvc_sernum=%d = %s\n", (lbuf[19]>>24)&0xFF);
if(lbuf[MISC] & GWDET_LIGO_H)
fprintf(s," LIGO-Handford Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_LIGO_L)
fprintf(s," LIGO-Livingston Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_GEO600)
fprintf(s," GEO 600 Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_KAGRA)
fprintf(s," KAGRA Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_LIGO_INDIA)
fprintf(s," LIGO-India Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_SPARE1)
fprintf(s," SPARE1 Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_SPARE2)
fprintf(s," SPARE2 Observatory contributed to this candidate event.\n");
if(((lbuf[19]>>20) & 0xF) == LETTERCODE_G)// LETTERCODE_G = 1
fprintf(s," This is an G-series trigger (G is for xyzxyzxyz).\n");
if(((lbuf[19]>>20) & 0xF) == LETTERCODE_M)// LETTERCODE_M = 3
fprintf(s," This is an M-series trigger (M is for Mock Data Challenge).\n");
if(lbuf[TRIGGER_ID] & 0x020)
fprintf(s," NOTE: This is a RETRACTION. The trigger is no longer considered to be astrophysical in origin.\n");
}
/*---------------------------------------------------------------------------*/
void
pr_lvc_init_update(lbuf,s)/* PRint the contents of a LVC INITIAL & UPDATE packets */
long*lbuf; // Ptr to the newly arrived packet to print out
FILE*s;// Stream to print it to
{
int indx;
int lvc_group, lvc_search, lvc_pipeline, lvc_letter;
lvc_group= (lbuf[12]>>16) & 0xFF;if((lvc_group < 0) || (lvc_group > 2)) lvc_group = 0;
lvc_search = (lbuf[12]>>8) & 0xFF;if((lvc_search < 0) || (lvc_search > 6)) lvc_search = 0;
lvc_pipeline = lbuf[12] & 0xFF;if((lvc_pipeline < 0) || (lvc_pipeline > 14)) lvc_pipeline = 0;
lvc_letter = (lbuf[19]>>20) & 0xF;if((lvc_letter < 0) || (lvc_letter > 6)) lvc_letter = 0;
fprintf(s,"PKT INFO:Received: LT %s",ctime((time_t *)&tloc));
if(lbuf[PKT_TYPE] == TYPE_LVC_INITIAL)
fprintf(s," Type= %ld SN= %ldLVC INITIAL\n",lbuf[PKT_TYPE],lbuf[PKT_SERNUM]);
else if(lbuf[PKT_TYPE] == TYPE_LVC_UPDATE)
fprintf(s," Type= %ld SN= %ldLVC UPDATE\n",lbuf[PKT_TYPE],lbuf[PKT_SERNUM]);
else
printf("not possible\n"); //!!!!!!!!!!!!!!!!!!!
fprintf(s," Hop_cnt= %ld\n", lbuf[PKT_HOP_CNT]);
fprintf(s," PKT_SOD= %.2f [sec] delta=%.2f [sec]\n", lbuf[PKT_SOD]/100.0, here_sod - lbuf[PKT_SOD]/100.0);
fprintf(s," TRIG_NUM=%s%ld\n", lvc_lt[lvc_letter], lbuf[BURST_TRIG]);
fprintf(s," TRIG_SOD=%.2f [sec] delta=%.2f [sec]\n", lbuf[BURST_SOD]/100.0, here_sod - lbuf[BURST_SOD]/100.0);
fprintf(s," TRIG_SUBSEC=%d [microsec]\n", lbuf[13]);
fprintf(s," spare7=%d\n", lbuf[7]);
fprintf(s," spare8=%d\n", lbuf[8]);
fprintf(s," FAR=%.3e [Hz]\n", pow((double)10.0,(double)lbuf[11]/10000.0));
fprintf(s," EVT_TYPE=0x%08x\n", lbuf[12]);
fprintf(s,"group=%d = %s\n", lvc_group, lvc_gt[lvc_group]);
fprintf(s,"search=%d = %s\n", lvc_search, lvc_st[lvc_search]);
fprintf(s,"pipeline=%d = %s\n", lvc_pipeline, lvc_pt[lvc_pipeline]);
if(lvc_group == 2)// "burst"
{
fprintf(s," FLUENCE=%.2e [J/m^2]\n", pow((double)10.0,(double)lbuf[9]/10000.0));
fprintf(s," CENTRAL_FREQ=%.2f [Hz]\n", lbuf[10]/100.0);
fprintf(s," DURATION=%.2f [sec]\n", lbuf[14]/100.0);
}
else
{
fprintf(s," FLUENCE=undefined\n");
fprintf(s," CENTRAL_FREQ=undefined\n");
fprintf(s," DURATION=undefined\n");
}
if(lvc_group == 1)// CBC
{
fprintf(s," ETA=%.3f (ratio)\n", lbuf[15]/1000.0);
fprintf(s," CHIRP_MASS=%.4f [M_solar]\n", lbuf[16]/10000.0);
fprintf(s," MAX_DIST=%.2f [Mpc]\n", lbuf[17]/100.0);
}
else
{
fprintf(s," CHIRP_MASS=undefined\n");
fprintf(s," ETA=undefined\n");
fprintf(s," MAX_DIST=undefined\n");
}
fprintf(s," TRIG_ID=0x%08x\n", lbuf[18]);
fprintf(s," MISC=0x%08x\n", lbuf[19]);
fprintf(s,"letter=%d = %s\n", lvc_letter, lvc_lt[lvc_letter]);
fprintf(s,"lvc_sernum=%d = %s\n", (lbuf[19]>>24)&0xFF);
fprintf(s," spare20=%d\n", lbuf[20]);
fprintf(s," spare21=%d\n", lbuf[21]);
fprintf(s," spare22=%d\n", lbuf[22]);
fprintf(s," spare23=%d\n", lbuf[23]);
fprintf(s," spare24=%d\n", lbuf[24]);
fprintf(s," spare25=%d\n", lbuf[25]);
fprintf(s," spare26=%d\n", lbuf[26]);
fprintf(s," spare27=%d\n", lbuf[27]);
fprintf(s," spare28=%d\n", lbuf[28]);
fprintf(s," URL=%s\n", (char *)(&lbuf[29])); // This gets combined with the 3 base/fixed portions of the full URL
//fprintf(s,"SKYMAP_URL=https://gracedb.ligo.org/api/events/%s\n",(char *)(&lbuf[29]));
//fprintf(s,"SKYMAP_BASIC_URL=https://gracedb.ligo.org/apibasic/events/%s\n",(char *)(&lbuf[29]));
//char url_temp[64],*pchar;
//strcpy(url_temp,(char *)(&lbuf[29]));
//pchar = strchr(url_temp,(int)'/');
//if(pchar) *pchar = 0;
//fprintf(s,"EVENT_URL=https://gracedb.ligo.org/events/%s\n",url_temp);
if(lbuf[MISC] & GWDET_LIGO_H)
fprintf(s," LIGO-Handford Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_LIGO_L)
fprintf(s," LIGO-Livingston Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_GEO600)
fprintf(s," GEO 600 Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_KAGRA)
fprintf(s," KAGRA Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_LIGO_INDIA)
fprintf(s," LIGO-India Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_SPARE1)
fprintf(s," SPARE1 Observatory contributed to this candidate event.\n");
if(lbuf[MISC] & GWDET_SPARE2)
fprintf(s," SPARE2 Observatory contributed to this candidate event.\n");
if(((lbuf[12]>>16) & 0xFF) == 1)
fprintf(s," This is a CBC trigger, so only the
ChirpMass, Eta, &
MaxDistance fields are valid.\n");
else if(((lbuf[12]>>16) & 0xFF) == 2)
fprintf(s," This is a Burst trigger, so only the
CentralFreq, Duration, & Fluence fields are valid.\n");
else
fprintf(s," This is neither a CBC nor Burst trigger, so the
ChirpMass, Eta,
MaxDistance,
CentralFreq, Duration, & Fluence fields are NOT valid.\n");
if(((lbuf[19]>>20) & 0xF) == LETTERCODE_G)// LETTERCODE_G = 1
fprintf(s," This is an G-series trigger (G is for xyzxyzxyz).\n");
if(((lbuf[19]>>20) & 0xF) == LETTERCODE_M) // LETTERCODE_M = 3
fprintf(s," This is an M-series trigger (M is for Mock Data Challenge).\n");
if(lbuf[TRIGGER_ID] & 0x020)
fprintf(s," NOTE: This is a RETRACTION. The trigger is no longer considered to be astrophysical in origin.\n");
}
[vxw@capella2 ~/data]$ od -t d4 L150721_56166.27
00000001508012345
00000201694501545271323000
00000400 -2147483648-100-134233
000006067076424627-100249
00001001140910271219922947
00001200000
*
00001600 1886680168 791624307 1667330663
0000200 778200165 1869048172 1735552814 1702257967
0000220 796095598 95985287731593480
0000240
[vxw@capella2 ~/data]$ od -t d4 L150721_56178.28
00000001518012345
00000201694501545271323000
00000400 -2147483648-100-134233
000006067076424627-100249
00001001140910271236700163
00001200000
*
00001600 959852877 791688500 1701603686
0000200 1633824627 1953719673 1714319969 779318377
000022031335000
0000240
[vxw@capella2 ~/data]$ od -t d4 L150721_56189.29
000000015214012345
00000201694501545271323000
00000400 -2147483648-100-134233
000006067076424627-100249
00001001140910271253477379
00001200000
*
00001600 959852877 791688500 1701603686
0000200 1634479987 1718511980 1852142181 1851745635
0000220 779383653 193700899880218060
0000240