REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
TRestWimpUtils.h
1/*************************************************************************
2 * This file is part of the REST software framework. *
3 * *
4 * Copyright (C) 2016 GIFNA/TREX (University of Zaragoza) *
5 * For more information see http://gifna.unizar.es/trex *
6 * *
7 * REST is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * REST is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have a copy of the GNU General Public License along with *
18 * REST in $REST_PATH/LICENSE. *
19 * If not, see http://www.gnu.org/licenses/. *
20 * For the list of contributors see $REST_PATH/CREDITS. *
21 *************************************************************************/
22
23#include <iostream>
24#include <map>
25
26#ifndef RestCore_TRestWimpUtils
27#define RestCore_TRestWimpUtils
28
30namespace TRestWimpUtils {
31
33constexpr double GEV_PER_UMA = 0.93149432;
34constexpr double HC_KEV_FM = 197327.053;
35constexpr double LIGHT_SPEED = 299792.458; // km/s
36constexpr double SECONDS_PER_DAY = 86400;
37constexpr double N_AVOGADRO = 6.0221367E23;
38constexpr double MBARN_PER_GEVM2 = 0.38937966;
39constexpr double CM2_PER_MBARN = 1e-27;
40constexpr double FERMI_CONSTANT = 1.16639e-5; // GeV-2
41
43const double GetRelativeNuclearCS(const double wimpMass, const double Anum);
44const double GetReducedMass(const double wimpMass, const double Anum);
45const double GetHelmFormFactor(const double recoilEnergy, const double Anum);
46const double Bessel(const double x);
47const double GetVMin(const double wimpMass, const double Anum, const double recoilEnergy);
48const double GetVelocityDistribution(const double v, const double vLab, const double vRMS,
49 const double vEscape);
50const double GetDifferentialCrossSectionNoHelmFormFactor(const double wimpMass, const double crossSection,
51 const double velocity, const double Anum);
52const double GetDifferentialCrossSection(const double wimpMass, const double crossSection,
53 const double velocity, const double recoilEnergy, const double Anum);
54const double GetRecoilRate(const double wimpMass, const double crossSection, const double recoilEnergy,
55 const double Anum, const double vLab, const double vRMS, const double vEscape,
56 const double wimpDensity, const double abundance);
57const double GetQuenchingFactor(const double recoilEnergy, const double Anum, const double Znum);
58std::map<std::string, int> ParseChemicalCompound(const std::string& compound);
59} // namespace TRestWimpUtils
60
61#endif
constexpr double GEV_PER_UMA
Physics constants.
This namespace define utilities (functions) to calculate different WIMP parameters.
const double GetRelativeNuclearCS(const double wimpMass, const double Anum)
Generic functions for different calculations.