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 
25 #ifndef RestCore_TRestWimpUtils
26 #define RestCore_TRestWimpUtils
27 
29 namespace TRestWimpUtils {
30 
32 constexpr double GEV_PER_UMA = 0.93149432;
33 constexpr double HC_KEV_FM = 197327.053;
34 constexpr double LIGHT_SPEED = 300000.0; // km/s
35 constexpr double SECONDS_PER_DAY = 86400;
36 constexpr double N_AVOGADRO = 6.0221367E23;
37 constexpr double MBARN_PER_GEVM2 = 0.38937966;
38 constexpr double CM2_PER_MBARN = 1e-27;
39 constexpr double FERMI_CONSTANT = 1.16639e-5; // GeV-2
40 
42 const double GetRelativeNuclearCS(const double wimpMass, const double Anum);
43 const double GetReducedMass(const double wimpMass, const double Anum);
44 const double GetHelmFormFactor(const double recoilEnergy, const double Anum);
45 const double Bessel(const double x);
46 const double GetVMin(const double wimpMass, const double Anum, const double recoilEnergy);
47 const double GetVelocityDistribution(const double v, const double vLab, const double vRMS,
48  const double vEscape);
49 const double GetDifferentialCrossSection(const double wimpMass, const double crossSection,
50  const double velocity, const double recoilEnergy, const double Anum);
51 const 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);
54 const 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.