REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
Loading...
Searching...
No Matches
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
25#ifndef RestCore_TRestWimpUtils
26#define RestCore_TRestWimpUtils
27
29namespace TRestWimpUtils {
30
32constexpr double GEV_PER_UMA = 0.93149432;
33constexpr double HC_KEV_FM = 197327.053;
34constexpr double LIGHT_SPEED = 300000.0; // km/s
35constexpr double SECONDS_PER_DAY = 86400;
36constexpr double N_AVOGADRO = 6.0221367E23;
37constexpr double MBARN_PER_GEVM2 = 0.38937966;
38constexpr double CM2_PER_MBARN = 1e-27;
39constexpr double FERMI_CONSTANT = 1.16639e-5; // GeV-2
40
42const double GetRelativeNuclearCS(const double wimpMass, const double Anum);
43const double GetReducedMass(const double wimpMass, const double Anum);
44const double GetHelmFormFactor(const double recoilEnergy, const double Anum);
45const double Bessel(const double x);
46const double GetVMin(const double wimpMass, const double Anum, const double recoilEnergy);
47const double GetVelocityDistribution(const double v, const double vLab, const double vRMS,
48 const double vEscape);
49const double GetDifferentialCrossSection(const double wimpMass, const double crossSection,
50 const double velocity, const double recoilEnergy, const double Anum);
51const double GetRecoilRate(const double wimpMass, const double crossSection, const double recoilEnergy,
52 const double Anum, const double vLab, const double vRMS, const double vEscape,
53 const double wimpDensity, const double abundance);
54const double GetQuenchingFactor(const double recoilEnergy, const double Anum, const double Znum);
55
56} // namespace TRestWimpUtils
57
58#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.