Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
L
lalsuite
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 0
    • Merge Requests 0
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • NV KRISHNENDU
  • lalsuite
  • Wiki
  • Home

Last edited by NV KRISHNENDU Oct 15, 2020
Page history

Home

Guidelines

This is the home page for the review of the null test of binary black hole nature of compact binaries by measuring spin-induced quadrupole moment. Please keep clutter of the home page to a minimum and simply link to out pages.

Introduction

  • Spinning compact objects get deformed due to their own spins leading to quadrupole and higher multipole moments. These moments get encoded in the post-Newtonian gravitational waveforms through the spin terms at different PN orders. In the state of art PN spinning waveform, Spin-induced quadrupole appears at 2PN and 3PN in LALSimulation. If the compact object is a BH, the multipole moments should be given by no-hair conjecture. Hence by accurately measuring this effect, we can test whether the high mass compact binaries we have detected so far are indeed BHs and hence constrain the allowed parameter space for BH mimickers. Here is the Wiki page.

Code overview

  • Repository: Git repository with the modifications
  • Files:
    • LALSimulation: No files modified [parameters dQuadMon1 and dQuadMon2 already implemented and reviewed. See Documentation [here].]

    • LALInference:

      • LALInference.c
      • LALInference.h
      • LALInferenceInitCBC.c
      • LALInferenceTemplate.c
      • LALInferenceProposal.c
    • Post processing:

      • cbcBayesCompPos.py
      • cbcBayesPPAnalysis.py
      • bayespputils.py
    • To calculate the truncation frequency for the analysis: fisco.py

Installation instructions

This link can be followed for installation instructions of LALSuite.

Review committee

  • Review Chair: Anuradha Gupta
  • Reviewers:
    • Abhirup
    • Anuradha
  • Reviewees:
    • Krishnendu
    • Saleem
    • Anuradha Samajdar
    • Chandra
    • Arun

Review Goal

To check the readiness of this pipeline for the analysis of O3 events.

Review Statement

Here should be the final review statement written by the review chair and agreed upon by the review team.

review-statement

Detail of the modifications

  • Git hash of the branch to be reviewed: 99bcd866 (the patch file from master diff.patch)
Files modified Lines changed Short explanation Person Responsible Reviewer Response Addressing Issue (if any)
LALInference.c L2322 to L2327 Function to calculate dQuadMonS and dQuadMonA from dQaudMon1 and dQuadMon2 Abhirup & Anuradha G. Gupta: looks good.
Abhirup: looks good.
General clarifications:
1. Out of (dQuadMonS, dQuadMonA,dQaudMon1,dQuadMon2) only two are independent; what are the problems of sampling over just two and constructing the others in post-processing, rather than keeping all four as sampling parameters [Answer: there are certain combinations of these quantities that are easier to sample over to yield better constraints; provide options to either sample on (dQaudMon1,dQuadMon2) or (dQuadMonS, dQuadMonA) depending on user.]
2. And if all 4 parameters need to be kept in the code, is there a way of making it explicit to the user to choose at most 2 of the 4 parameters for sampling [Action Item: Error message along the lines of tidal parameters to make sure that sampling happens over at most 2 parameters].
new comments:
Gupta: the comment line before 'LALInferencedQuadMonSdQuadMonA' should be changed. It says we are computing \kappa_A and \kappa_S from \kappa_1 and \kapppa_2 but it is other way around.
99bcd866
Gupta: looks good.

Krishnendu:
1. These comments are addressed. The current structure provides options to either sample on (dQaudMon1,dQuadMon2) or (dQuadMonS, dQuadMonA). If more than two parameters are passed, the run will not proceed further and exist with an error message.
LALInference.h L882 to L883 Declaring above function LALInferencedQuadMonSdQuadMonA in header file Abhirup & Anuradha G. Gupta: looks good.
Abhirup: looks good.
No further changes made
LALInferenceTemplate.c L74 to L76 Adding extra params for sampling Abhirup & Anuradha G. Gupta: looks good.
Abhirup: looks good.
This is removed now as the spin-induced parameters are not part of testing-GR params
LALInferenceTemplate.c L358 to L408 L857 to L905 L1461 to L1512 Following ways of sampling are introduced.
1. If one parameter is passed among the four dQuadMon parameters, one would be able to sample on dQuadMon1, dQuadMon2, dQuadMonS or dQuadMonA individually.
2. For the two parameter case, either dQuadMon1 and dQuadMon2 or dQuadMonS and dQuadMonA can be sampled. If any other combination is passed, sampling will be done on dQuadMon1 and dQuadMon2 (dafault option) with a warning message.
3. If more than two prameters are passed, the run exists.
Abhirup & Anuradha G. Gupta:Same set of lines in three palces? Also, in your implimentation you assumed \kappa_a to be zero. That means you assumed both the stars to have same \kappa. How this assumption biases the results, especially on real data?
Abhirup:
The three sets of lines are for definitions inside 3 separate functions: LALInferenceROQWrapperForXLALSimInspiralChooseFDWaveformSequence, LALInferenceTemplateXLALSimInspiralChooseWaveform and LALInferenceTemplateXLALSimInspiralChooseWaveformPhaseInterpolated.
Wouldn't it be easier to allow sampling over dQuadMonA and if required fix it to injection or any other value from the config.ini using --pin-params = [dQuadMonA] or --fix-dQuadMonA [ACTION ITEM: Create a more generalised framework where any (and at most) two parameters can be sampled over; there will be an error if more than two parameters are specified to be sampled over; parameters can be held fixed from the config.ini if required]
Krishnendu:
1. This has been implimented.
2. We also did test runs for this for a high mass system and the run directory is here: LHO /home/nv.krishnendu/review_test_runs/Modified_template/. The corresponding .err and .out files contain error messages if there any. Right now, we are also printing the values of these parameters and these may be removed when we merge to the review branch.
new comments
Gupta: looks good.
The earlier functions (at three places) re-defined as the sampling parameter choices are revised now. The new line numbers are L358 to L378, L831 to L851 and L1415 to L1435
LALInferenceInitCBC.c L2172 to L2175 L2210 to L2250 Sampling options and warning (error) messages added inside the function LALInferenceInitNonGRParams Abhirup & Anuradha G. Gupta: L2172-L2179: Is prior till 20 large enough? L2214-L2218: looks good.
Abhirup:
1. the current prior range excludes the space for boson stars
2. tmpVal = 0, is at the default prior boundary
Perhaps making the prior more symmetric around zero addresses point 1 and keeps the starting value close to the middle of the prior.
Krishnnendu:
1. The prior range has been increased to [-200, 200], but tmpVal = 0 is kept as it is.
new comments
Gupta: looks good.
99bcd866
Gupta:
1. Why this line is showing up in your commit?
2. I am not sure if this statement is necessary.
The spin-induced parameters are removed from LALInferenceInitNonGRParams( and changed the following lines.
These params are added in LALInferenceModel *LALInferenceInitCBCModel(LALInferenceRunState *state) at L793, the prior ranges are fixed at line L880, following tidal parameter lines from L1410 to L1425 is changed.
As from the current changes, for the one parameter case any of the four parameters cane be sampled (one has to fix the other parameter using fix-parameters).
For the two parameter case, either {dQuadMon1, dQuadMon2} or {dQuadMonS, dQuadMonA}.
If one passes more than two parameters, the run will end with a exist message
LALInferenceProposal.c L98 added to the list of intrinsic params Abhirup & Anuradha G. Gupta: minor issue, "dQuadMonS" can be put before "dQuadMonA"
99bcd866
Gupta: looks good.
cbcBayesCompPos.py L59 and L71 paramNameLatexMap (convert parameter names to Latex), we define dQuadMon parameter as \delta\kappa
added to clTableParams (this is to add to the table of confidence levels)
Abhirup & Anuradha G. Gupta: Just \kappa_s is defined here, why not \kappa_1, \kappa_2, \kappa_a as in bayespputils.py?
Abhirup: Same question as Anuradha.
Krishnnendu:
1. All the four parameters are added.
new comments
Gupta: looks good.
--------
cbcBayesPPAnalysis.py L88 Added all four parameters to the list of posterior_name_to_latex_name Abhirup & Anuradha G. Gupta: \kappa_1 and \kappa_2 are also defined here but not \kappa_a. Is this because \kappa_a is always zero in your implimentation? But \kappa_a is defined in bayespputils.py, why? Also, there is a typo, dquadmon2-->dquadmon1.
Abhirup: Following up on Anuradha's comment, it would be good to keep the implementation as generalised as possible, which means, adding all four parameters in the post-processing codes, wherever possible.
Krishnnendu:
1. All the four dQuadMon parameters are added and typos are fixed.
new comments
Gupta: looks good.
--------
bayespputils.py L148 and L484 Created a list spin_induced_quad_terms and added this to strongFieldParams
Created corresponding plot labels inside plot_label(param)
Abhirup & Anuradha G. Gupta: looks good.
Abhirup: looks good.
new comments
Gupta: fix the typo: in spin_induced_quad_terms 'dquadmona' appears twice.
99bcd866
Gupta: Why 'param in eosParams' showing up in your commit?
--------
cbcBayesPostProc.py L1167 Using the spin-induced quadrupole moment parameters defined in lalinference.bayespputils Abhirup & Anuradha G. Gupta: looks good.
Abhirup:
--------

A detailed summary of revisions made to the review branch:

  • Commit-5: git hash: 8f92f486. This was mainly to solve a convention issue and the changes were made to lalsimulation/lib/LALSimIMRPhenomP.c. Brief description of the problem is here. That is if we use PhenomPv2/PhenomPv3/PhenomPv3HM/PhenomPXHM for sampling the SIQM parameter corresponds to the low mass BH(dQuadMon2) will be better constrained compared to the SIQM parameter corresponds to the heavier mass BH(dQuadMon1). If we look into more details, the PhenomP waveforms internally assume m2>m1 and forcefully flip the mass parameters if it is not the case as done here For masses and spins, there is no confusion and at the stage of lalinference samples, we get samples with m1>m2. So, the m2>m1 assumption is only valid inside this code, and everywhere else these parameters are consistently flipped back. In our case, the initial values are fixed to the default BH values in this code and the lines here are not swapping anything. The only case where the flipping happened is in the case of PhenomPv2_NRTidal waveforms where the dQuadMon1-dQuadMon2 parameters are also redefined as 'LookUpparams'.
  • Commit-4: git hash: 2ecaaf92. Modifications to lalsimulation/lib/LALSimInspiralTestGRParams.c to fix a bug which was affecting the MCMC sampling. This is done for all the TGR parameters. Please see details here:ADD/ASK
  • Commit-3: git hash: 08e05a52. Separated the dQuadMon params from the testing GR params. Sampling options now allowd are; for the one parameter case any of the four parameters cane be sampled (one has to fix the other parameter using fix-parameters).
    For the two parameter case, either {dQuadMon1, dQuadMon2} or {dQuadMonS, dQuadMonA}.
    If one passes more than two parameters, the run will end with a exist message. Default prior on these parameters will be [-200, 200].
  • Commit-2: git hash: 95cc718a. Very generic sampling options are introduced.
    1. If one parameter is passed among the four dQuadMon parameters, one would be able to sample on dQuadMon1, dQuadMon2, dQuadMonS or dQuadMonA individually.
    2. For the two parameter case, either dQuadMon1 and dQuadMon2 or dQuadMonS and dQuadMonA can be sampled. If any other combination is passed, sampling will be done on dQuadMon1 and dQuadMon2 (dafault option) with a warning message. Mainly lalinference/src/LALInferenceInitCBC.c and lalinference/src/LALInferenceTemplate.c are changed.
  • Commit-1: git hash: 5157eea6. This is the first commit. Main changes suggested by the reviewers to fix the sampling parameters choice related confusion and to fix the typoes in the plotting script.

Details of the injection studies

Detailed documentation of the analysis:

  • We provide the detailed documentation of the analysis in this page.

Tasks/tests to be accomplished

Mark complete with :heavy_check_mark: and incomplete with :x:

Test Issue(s) short explanation Person Responsible Outcome
link-to-test-1 link Issues here what is this about? @person-gitlab-username ✅

Review Telecons

  • 14/05/2019
  • 17/04/2019
  • 10/04/2019
  • 20/03/2019
  • 21/02/2019
  • 14/02/2019
  • 07/02/2019
  • 31/01/2019
  • 24/01/2019
  • 10/01/2019
  • 16/12/2019
  • 29/11/2019
  • 22/11/2019
  • 15/11/2019
  • 08/11/2019
  • 01/11/2019
  • 25/10/2019
  • 18/10/2019
  • 11/10/2019
  • 19/09/2019
  • 16/08/2019
  • 26/07/2019
  • 21/06/2019
  • 07/06/2019
  • 24/05/2019

Useful links

  • Notes of Code changes
  • Quick guide for real event analysis
Clone repository

Home

[Analysis]

  • Detailed Documentation of the analysis
  • Injection studies
  • Population Inference
  • Constrain BH mimicker parameter space

Review

  • Code Review
  • Results Review
  • Sysmtematics Study
  • Review Statement

O3a-analysis

  • Review Report

O3b-analysis

Post O3 Plans

[Telecons]

  • May-15-2020
  • April-17-2020
  • April-10-2020
  • March-20-2020
  • Feb-21-2020
  • Feb-14-2020
  • Feb-07-2020
  • Jan-31-2020
  • Jan-24-2020
  • Jan-10-2020
  • Dec-16-2019
  • Nov-29-2019
  • Nov-22-2019
  • Nov-15-2019
  • Nov-08-2019
  • Nov-01-2019
  • Oct-25-2019
  • Oct-18-2019
  • Oct-11-2019
  • Sep-19-2019
  • Aug-16-2019
  • July-26-2019
  • June-07-2019
  • June-21-2019
  • May-24-2019