23#ifndef _TRestAxionField
24#define _TRestAxionField
26#include "TRestAxionBufferGas.h"
27#include "TRestAxionMagneticField.h"
32 Bool_t fDebug =
false;
52 Int_t num_intervals, Int_t qawo_levels);
58 void SetMagneticField(Double_t b) {
fBmag = b; }
59 void SetCoherenceLength(Double_t l) {
fLcoh = l; }
60 void SetAxionEnergy(Double_t e) {
fEa = e; }
62 Double_t GetMagneticField()
const {
return fBmag; }
63 Double_t GetCoherenceLength()
const {
return fLcoh; }
64 Double_t GetAxionEnergy()
const {
return fEa; }
66 Double_t
BL(Double_t Bmag, Double_t Lcoh);
84 Double_t mg = 0, Double_t absLength = 0);
89 Double_t mg = 0, Double_t absLength = 0);
92 Double_t ma, Double_t mg = 0, Double_t absLength = 0);
95 Double_t accuracy = 1.e-1,
96 Int_t num_intervals = 100,
97 Int_t qawo_levels = 20);
101 auto* data =
reinterpret_cast<std::pair<TRestAxionMagneticField*, double>*
>(params);
104 double gamma = data->second;
112 Double_t maMax = 0.15,
113 Double_t rampDown = 5.0);
A metadata class to define the gas properties used in axion search calculations.
A basic class to define analytical axion-photon conversion calculations for axion helioscopes.
std::pair< Double_t, Double_t > GammaTransmissionFieldMapProbability(Double_t Ea, Double_t ma, Double_t accuracy=1.e-1, Int_t num_intervals=100, Int_t qawo_levels=20)
Performs the calculation of axion-photon conversion probability using directly equation (28) from J....
Double_t BL(Double_t Bmag, Double_t Lcoh)
Performs the calculation of (BL) factor in natural units.
Double_t AxionAbsorptionProbability(Double_t ma, Double_t mg=0, Double_t absLength=0)
Performs the calculation of axion-photon absorption probability using directly equation (18) from van...
void Initialize()
Initialization of TRestAxionField class.
static double Integrand(double x, void *params)
Integrand used for axion-photon probability integration.
void SetBufferGas(TRestAxionBufferGas *buffGas)
It assigns a gas buffer medium to the calculation.
void AssignBufferGas(TRestAxionBufferGas *buffGas)
It assigns a gas buffer medium to the calculation.
~TRestAxionField()
Default destructor.
void SetDebug(Bool_t v)
It enables/disables debug mode.
void AssignMagneticField(TRestAxionMagneticField *mField)
It assigns a magnetic field to the calculation.
Double_t BLHalfSquared(Double_t Bmag, Double_t Lcoh)
Performs the calculation of (BL/2)^2 factor in natural units.
Double_t fEa
The energy of the axion in keV.
std::vector< std::pair< Double_t, Double_t > > GetMassDensityScanning(std::string gasName="He", Double_t maMax=0.15, Double_t rampDown=5.0)
This method determines the proper densities to be used in an axion helioscope experiment in order to ...
std::pair< Double_t, Double_t > ComputeOffResonanceIntegral(Double_t q, Double_t Gamma, Double_t accuracy, Int_t num_intervals, Int_t qawo_levels)
Performs the calculation of axion-photon conversion probability using directly equation (28) from J....
Double_t GammaTransmissionProbability(Double_t Ea, Double_t ma, Double_t mg=0, Double_t absLength=0)
Performs the calculation of axion-photon conversion probability using directly equation (11) from van...
TRestAxionMagneticField * fMagneticField
A pointer to the magnetic field definition.
TRestAxionBufferGas * fBufferGas
A pointer to the buffer gas definition.
Double_t fBmag
The magnetic field in Teslas (used for constant field formulas)
Double_t fLcoh
The coherence lenght (in mm) where the magnetic field is defined (for constant field)
TRestAxionField()
Default constructor.
Double_t GammaTransmissionFWHM(Double_t step=0.00001)
Performs the calculation of the FWHM for the axion-photon conversion probability computed in TRestAxi...
std::pair< Double_t, Double_t > ComputeResonanceIntegral(Double_t Gamma, Double_t accuracy, Int_t num_intervals)
Performs the calculation of axion-photon conversion probability using directly equation (28) from J....
A class to load magnetic field maps and evaluate the field on those maps including interpolation.
Double_t GetTransversalComponentInParametricTrack(Double_t x)
It will return the transversal magnetic field component evaluated at a parametric distance x (given b...