CRXS  1.0
Comic Ray Cross Section Tools
 All Classes Namespaces Functions Variables Pages
xs.h
1 #ifndef CRXS__XS_H
2 #define CRXS__XS_H
3 
4 #include "linAlg_tools.h"
5 
6 namespace CRXS {
7 
8  enum parametrization{
9  KORSMEIER_I = 1,
10  KORSMEIER_II = 2,
11  WINKLER = 3,
12  DI_MAURO_I = 4,
13  DI_MAURO_II = 5,
14  ANDERSON = 6,
15  WINKLER_SELF = 7,
16  DI_MAURO_SELF = 8,
17  APPROX_1_OVER_T= 9,
18  WINKLER_II = 10,
19  KORSMEIER_III = 11
20  };
21  enum product{
22  P_BAR = 1,
23  D_BAR = 2,
24  HE3_BAR = 3,
25  HE4_BAR = 4
26  };
27 
28  enum coalescence{
29  FIXED_P0 = 1,
30  ENERGY_DEP__VAN_DOETINCHEM = 2,
31  PT_DEP = 3
32  };
33 
34  class XS{
35 
36  public:
37 
38 
40 
54  static bool convert_LAB_to_CM( const double T_p_LAB, const double T_prod_LAB, const double eta_LAB, double &s, double &E_prod, double &pT_prod, double &x_F, int product=P_BAR );
55 
57 
69  static double inv_AA_pbar_CM( double s, double xF, double pT_pbar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization);
70 
72 
85  static double inv_AA_pbar_LAB( double Tn_proj_LAB, double T_pbar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization );
86 
87 
89 
102  static double dE_AA_pbar_LAB( double Tn_proj_LAB, double T_pbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II);
104  static double integrand__dE_AA_pbar_LAB (double eta_LAB, void* parameters );
105 
106 
107 
109 
134  static double dE_AA_pbar_LAB_incNbarAndHyperon(double Tn_proj_LAB, double T_pbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II);
135 
136 
137 
139 
151  static double inv_AA_p_CM( double s, double xF, double pT_p, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization);
152 
154 
167  static double inv_AA_p_LAB( double Tn_proj_LAB, double T_p_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization );
168 
169 
171 
184  static double dE_AA_p_LAB( double Tn_proj_LAB, double T_p_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=ANDERSON);
186  static double integrand__dE_AA_p_LAB (double eta_LAB, void* parameters );
187 
188 
189 
191 
206  static double p_coal__VonDoetinchen( double s );
207 
208 
210 
225  static double p_coal__pTdep( double pToverA, double p0_val=0.160 );
226 
227 
229 
291  static double inv_AA_Dbar_CM( double s, double xF_Dbar, double pT_Dbar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
292 
294 
308  static double inv_AA_Dbar_LAB( double Tn_proj_LAB, double Tn_Dbar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
310  static double integrand__dE_AA_Dbar_LAB (double eta_LAB, void* parameters );
311 
312 
314 
329  static double dEn_AA_Dbar_LAB( double Tn_proj_LAB, double Tn_Dbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160 );
330 
331 
333 
349  static double dEn_DbarA_Dbar_LAB( double Tn_Dbar_proj_LAB, double Tn_Dbar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON );
350 
351 
353 
392  static double inv_AA_He3bar_CM( double s, double xF_Hebar, double pT_Hebar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
393 
395 
409  static double inv_AA_He3bar_LAB( double Tn_proj_LAB, double Tn_Hebar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
411  static double integrand__dE_AA_He3bar_LAB (double eta_LAB, void* parameters );
412 
413 
415 
430  static double dEn_AA_He3bar_LAB( double Tn_proj_LAB, double Tn_Hebar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160 );
431 
432 
434 
450  static double dEn_He3barA_He3bar_LAB( double Tn_Hebar_proj_LAB, double Tn_Hebar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON );
451 
452 
454 
492  static double inv_AA_He4bar_CM( double s, double xF_Hebar, double pT_Hebar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
493 
495 
509  static double inv_AA_He4bar_LAB( double Tn_proj_LAB, double Tn_Hebar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160 );
511  static double integrand__dE_AA_He4bar_LAB (double eta_LAB, void* parameters );
512 
513 
515 
530  static double dEn_AA_He4bar_LAB( double Tn_proj_LAB, double Tn_Hebar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160 );
531 
532 
534 
550  static double dEn_He4barA_He4bar_LAB( double Tn_Hebar_proj_LAB, double Tn_Hebar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON );
552 
566  static void Set_SELF_C_parameters_diMauro(double* C);
567 
568 
570 
582  static void Set_SELF_C_parameters_Winkler(double* C);
583 
584 
586 
598  static void Set_SELF_D_parameters_diMauro(double* D);
599 
600 
602 
614  static void Set_SELF_D_parameters_Winkler(double* D);
615 
616 
617 
618  static bool fIsRestricted_pp;
619  static void SetRestricted_pp ( bool is_pp ){fIsRestricted_pp=is_pp;};
620 
621  static bool isInRestricted_CM ( double s, double xf, double pT );
622  static void SetRestrictedParameterSpace_CM ( double s, double xf, double pT );
623  static void RemoveRestrictedParameterSpace_CM ( );
624  static int fRestrictedParameterSpace_CM;
625  static double fRestrictedParameterSpace_CM__s [103];
626  static double fRestrictedParameterSpace_CM__xf [103];
627  static double fRestrictedParameterSpace_CM__pT [103];
628 
629 
630 
631  static bool isInRestricted_LAB ( double Tp, double Tpbar, double eta );
632  static void SetRestrictedParameterSpace_LAB ( double Tp, double Tpbar, double eta );
633  static void RemoveRestrictedParameterSpace_LAB ( );
634  static int fRestrictedParameterSpace_LAB;
635  static double fRestrictedParameterSpace_LAB__Tp [103];
636  static double fRestrictedParameterSpace_LAB__Tpbar[103];
637  static double fRestrictedParameterSpace_LAB__eta [103];
638 
639  // static double fRestrictedParameterSpace_LAB__Tp_Tpbar_eta[100][3];
640 
641 
642 
643  private:
644 
645 
646 
647 
648 
649  };
650 }
651 
652 #endif
653 
654 
655 
656 
static double integrand__dE_AA_Dbar_LAB(double eta_LAB, void *parameters)
Helper function for inv_AA_Dbar_LAB.
Definition: xs_Dbar.cxx:124
static double inv_AA_pbar_CM(double s, double xF, double pT_pbar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization)
Invariant antiproton production cross section for general projectile and target nucleus for different...
Definition: xs_pbar.cxx:15
static double dE_AA_pbar_LAB_incNbarAndHyperon(double Tn_proj_LAB, double T_pbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II)
Energy-differential antiproton production cross section including antineutrons and antihyperons for g...
Definition: xs_pbar.cxx:135
static double integrand__dE_AA_pbar_LAB(double eta_LAB, void *parameters)
Helper function for dE_AA_pbar_LAB.
Definition: xs_pbar.cxx:81
static double dEn_He3barA_He3bar_LAB(double Tn_Hebar_proj_LAB, double Tn_Hebar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON)
Energy-differential antihelion cross section for non-annihilating antihelion reactions on p...
Definition: xs_He3bar.cxx:183
static double dE_AA_pbar_LAB(double Tn_proj_LAB, double T_pbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II)
Energy-differential antiproton production cross section for general projectile and target nucleus for...
Definition: xs_pbar.cxx:96
static double inv_AA_Dbar_CM(double s, double xF_Dbar, double pT_Dbar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antideuteron production cross section for general projectile and target nucleus for differe...
Definition: xs_Dbar.cxx:36
static double inv_AA_p_LAB(double Tn_proj_LAB, double T_p_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization)
Invariant proton production cross section for general projectile and target nucleus for different XS ...
Definition: xs_p.cxx:27
static double dEn_AA_He4bar_LAB(double Tn_proj_LAB, double Tn_Hebar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160)
Energy-differential antihelion production cross section for general projectile and target nucleus for...
Definition: xs_He4bar.cxx:164
static double inv_AA_He3bar_LAB(double Tn_proj_LAB, double Tn_Hebar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antihelion production cross section for general projectile and target nucleus for different...
Definition: xs_He3bar.cxx:112
static double dEn_AA_He3bar_LAB(double Tn_proj_LAB, double Tn_Hebar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160)
Energy-differential antihelion production cross section for general projectile and target nucleus for...
Definition: xs_He3bar.cxx:147
static void Set_SELF_D_parameters_diMauro(double *D)
Function to set the parameter values of the di Mauro parametrization yourself.
Definition: xs.cxx:93
static void Set_SELF_D_parameters_Winkler(double *D)
Function to set the parameter values of the Winkler parametrization yourself.
Definition: xs.cxx:98
static double inv_AA_He4bar_CM(double s, double xF_Hebar, double pT_Hebar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antihelion production cross section for general projectile and target nucleus for different...
Definition: xs_He4bar.cxx:24
static double inv_AA_He3bar_CM(double s, double xF_Hebar, double pT_Hebar, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antihelion production cross section for general projectile and target nucleus for different...
Definition: xs_He3bar.cxx:24
static double dE_AA_p_LAB(double Tn_proj_LAB, double T_p_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=ANDERSON)
Energy-differential proton production cross section for general projectile and target nucleus for dif...
Definition: xs_p.cxx:50
static void Set_SELF_C_parameters_diMauro(double *C)
Function to set the parameter values of the di Mauro parametrization yourself.
Definition: xs.cxx:51
static double dEn_He4barA_He4bar_LAB(double Tn_Hebar_proj_LAB, double Tn_Hebar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON)
Energy-differential antihelion cross section for non-annihilating antihelion reactions on p...
Definition: xs_He4bar.cxx:200
static bool convert_LAB_to_CM(const double T_p_LAB, const double T_prod_LAB, const double eta_LAB, double &s, double &E_prod, double &pT_prod, double &x_F, int product=P_BAR)
Convert LAB frame kinetic variable to the CM frame. (The LAB frame is the ISM rest frame...
Definition: xs.cxx:12
static double inv_AA_p_CM(double s, double xF, double pT_p, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization)
Invariant proton production cross section for general projectile and target nucleus for different XS ...
Definition: xs_p.cxx:12
static double integrand__dE_AA_He4bar_LAB(double eta_LAB, void *parameters)
Helper function for inv_AA_Hebar_LAB.
Definition: xs_He4bar.cxx:137
static double integrand__dE_AA_He3bar_LAB(double eta_LAB, void *parameters)
Helper function for inv_AA_Hebar_LAB.
Definition: xs_He3bar.cxx:120
static double p_coal__pTdep(double pToverA, double p0_val=0.160)
Function for getting the coalescence momentum using a rescaling with PT.
Definition: xs_Dbar.cxx:24
static double inv_AA_Dbar_LAB(double Tn_proj_LAB, double Tn_Dbar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antideuteron production cross section for general projectile and target nucleus for differe...
Definition: xs_Dbar.cxx:115
static double inv_AA_pbar_LAB(double Tn_proj_LAB, double T_pbar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization)
Invariant antiproton production cross section for general projectile and target nucleus for different...
Definition: xs_pbar.cxx:68
static double p_coal__VonDoetinchen(double s)
Invariant antideuteron production cross section for general projectile and target nucleus for differe...
Definition: xs_Dbar.cxx:12
Definition: xs.h:34
static double dEn_DbarA_Dbar_LAB(double Tn_Dbar_proj_LAB, double Tn_Dbar_prod_LAB, int A_target=1, int N_target=0, int parametrization=ANDERSON)
Energy-differential antideuteron cross section for non-annihilating antideuteron reactions on p...
Definition: xs_Dbar.cxx:187
static double inv_AA_He4bar_LAB(double Tn_proj_LAB, double Tn_Hebar_LAB, double eta_LAB, int A_projectile, int N_projectile, int A_target, int N_target, int parametrization, int coalescence, double p0_val=0.160)
Invariant antihelion production cross section for general projectile and target nucleus for different...
Definition: xs_He4bar.cxx:129
static double integrand__dE_AA_p_LAB(double eta_LAB, void *parameters)
Helper function for dE_AA_p_LAB.
Definition: xs_p.cxx:33
static double dEn_AA_Dbar_LAB(double Tn_proj_LAB, double Tn_Dbar_LAB, int A_projectile=1, int N_projectile=0, int A_target=1, int N_target=0, int parametrization=KORSMEIER_II, int coalescence=ENERGY_DEP__VAN_DOETINCHEM, double p0_val=0.160)
Energy-differential antideuteron production cross section for general projectile and target nucleus f...
Definition: xs_Dbar.cxx:152
static void Set_SELF_C_parameters_Winkler(double *C)
Function to set the parameter values of the Winkler parametrization yourself.
Definition: xs.cxx:74