/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/CCCrossSec.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/CCCrossSec.hh Source File
Ratpac-two
CCCrossSec.hh
1 
22 #ifndef __RAT_CCCrossSec__
23 #define __RAT_CCCrossSec__
24 
25 // G4 headers
26 #include <globals.hh>
27 // RAT headers
28 #include <RAT/GLG4StringUtil.hh>
29 #include <RAT/LinearInterp.hh>
30 // ROOT headers
31 #include <TGraph.h>
32 
33 #include <vector>
34 
35 namespace RAT {
36 
37 // Forward declarations within the namespace
38 class CCCrossSecMessenger;
39 
40 class CCCrossSec {
41  public:
42  enum NuEType { nue, nuebar, numu, numubar };
43 
44  CCCrossSec(const char *flavor = "nue");
45 
46  ~CCCrossSec();
47 
48  // Set's the defaults for the calculation
49  void Defaults();
50 
57  double Sigma(const double Enu) const;
58 
65  std::vector<double> CalcAllowedElectronKE(const double Enu) const;
66 
73  std::vector<double> CalcAllowedNuclearEx(const double Enu) const;
74 
81  std::vector<double> GetAllowedTransitionTypes(const double Enu) const;
82 
90  std::vector<double> CalcdSigmadTNorms(const double Enu) const;
91 
100  double CrossSecNorm() const { return 1e-42; };
101 
102  private:
103  NuEType fReaction;
104  std::string fReactionStr;
105 
106  // Some constants
107  static const double fGf;
108  static const double fhbarc;
109  static const double fhbarc2;
110  static const double falpha;
111 
117  static double fsinthetaW2;
118 
119  double fMe;
120 
121  std::vector<double> fLevels; // Energy of level transitions (mass change + excitation energy)
122  std::vector<double> fLevelTypes; // Type of transition (F = 0, GT = 1)
123  std::vector<double> fNorms; // E_e indepedent normalization factors for each transition
124 
125  CCCrossSecMessenger *fMessenger;
126 };
127 
128 } // namespace RAT
129 
130 #endif
Messenger class to control cross section options.
Definition: CCCrossSecMessenger.hh:34
Calculates neutrino-nucleus charged current interaction on Lithium-7. (based on ES generator).
Definition: CCCrossSec.hh:40
std::vector< double > GetAllowedTransitionTypes(const double Enu) const
Return a vector with the allowed transition types for each level for an incoming neutrino with energy...
Definition: CCCrossSec.cc:173
std::vector< double > CalcdSigmadTNorms(const double Enu) const
Return a vector with the scaled differential cross section normalizations for each level for an incom...
Definition: CCCrossSec.cc:185
std::vector< double > CalcAllowedElectronKE(const double Enu) const
Return a vector with the allowed electron KE for each level for an incoming neutrino with energy Enu.
Definition: CCCrossSec.cc:144
double Sigma(const double Enu) const
Calculate the total cross section for the neutrino energy Enu.
Definition: CCCrossSec.cc:89
std::vector< double > CalcAllowedNuclearEx(const double Enu) const
Return a vector with the nuclear excitation for each level for an incoming neutrino with energy Enu.
Definition: CCCrossSec.cc:158
double CrossSecNorm() const
Definition: CCCrossSec.hh:100
Definition: CCCrossSecMessenger.hh:29