file src/AntiprotonLikelihoods.cpp

[No description available] More…

Namespaces

Name
Gambit
TODO: see if we can use this one:
Gambit::DarkBit

Detailed Description

Author:

Date:

  • 2022 June
  • Oct 2023

Likelihood for 7-year antiproton data from AMS-02


Authors (add name and date if you modify):


Source code

//   GAMBIT: Global and Modular BSM Inference Tool
//   *********************************************
///  \file
///
///  Likelihood for 7-year antiproton data from AMS-02
///
///  *********************************************
///
///  Authors (add name and date if you modify):
///
///  \author Sowmiya Balan
///          (sowmiya.balan@kit.edu)
///  \date 2022 June
///
///  \author Torsten Bringmann
///         (torsten.bringmann@fys.uio.no)
///  \date Oct 2023
///
///  *********************************************

#include <iostream>
#include <fstream>
#include "gambit/Elements/gambit_module_headers.hpp"
#include "gambit/DarkBit/DarkBit_rollcall.hpp"
#include "gambit/Utils/util_functions.hpp"

#include <boost/multi_array.hpp>

namespace Gambit
{
  namespace DarkBit
  {
    void lnL_pbarAMS02 (map_str_dbl& result)
    {
      using namespace Pipes::lnL_pbarAMS02;
      LocalMaxwellianHalo LocalHaloParameters = *Dep::LocalHalo;
      double rho0_resc = LocalHaloParameters.rho0/0.43;
      double suppression = *Dep::ID_suppression;
      std::string DM_ID = Dep::WIMP_properties->name;
      std::string DMbar_ID = Dep::WIMP_properties->conjugate;
      double DM_mass = Dep::WIMP_properties->mass;
      TH_Process process = Dep::TH_ProcessCatalog->getProcess(DM_ID, DMbar_ID);
      map_str_dbl input;
      double sv=0;
      std::vector<std::string> fs;
      std::string finalStates;
      double rate=0;
      for (std::vector<TH_Channel>::iterator it = process.channelList.begin(); it!=process.channelList.end();it++)
      {
        fs = it->finalStateIDs;
        finalStates = fs[0] + " " + fs[1];
        rate = it->genRate->bind("v")->eval(0.);
        rate = rate * suppression * rho0_resc * rho0_resc;
        input.insert({finalStates, rate});
        sv += rate;
      }
      result = BEreq::drn_pbar_logLikes(DM_mass, input, sv);
    }

    void lnL_pbarAMS02_uncorr (double& result)
    {
      using namespace Pipes::lnL_pbarAMS02_uncorr;
      map_str_dbl del_chi2 = *Dep::pbar_logLikes;
      result = -1./2*del_chi2["uncorrelated"];
    }

    void lnL_pbarAMS02_corr (double& result)
    {
      using namespace Pipes::lnL_pbarAMS02_corr;
      map_str_dbl del_chi2 = *Dep::pbar_logLikes;
      result = -1./2*del_chi2["correlated"];
    }
  }
}

Updated on 2024-07-18 at 13:53:34 +0000