KinePhaseSpace.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::KinePhaseSpace
5 
6 \brief Enumeration of kinematical phase spaces
7 
8 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
9  University of Liverpool & STFC Rutherford Appleton Laboratory
10 
11 \created May 06, 2004
12 
13 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15 */
16 //____________________________________________________________________________
17 
18 #ifndef _KINEMATIC_PHASE_SPACE_ENUM_H_
19 #define _KINEMATIC_PHASE_SPACE_ENUM_H_
20 
21 #include <cassert>
22 #include <string>
23 
24 using std::string;
25 
26 namespace genie {
27 
28 typedef enum EKinePhaseSpace {
29  kPSNull = 0,
67  kPSQELEvGen,// Phase space used by genie::QELEventGenerator for sampling kinematic variables
68  // TODO: rename this value when the correct variables are identified
71  kPSDMELEvGen, // Equivalent to kPSQELEvGen for Dark Matter scattering
73  kPSEDNufE // Used for Dark Neutrinos, two body final state
75 
77 {
78 public:
79  //__________________________________________________________________________
80  static string AsString(KinePhaseSpace_t kps)
81  {
82  switch (kps) {
83 
84  case(kPSNull) :
85  return "** Undefined kinematic phase space **"; break;
86 
87  case(kPSfE) : return "<|E>"; break;
88  case(kPSxfE) : return "<{x}|E>"; break;
89  case(kPSlogxfE) : return "<{logx}|E>"; break;
90  case(kPSxfEy) : return "<{x}|E,y>"; break;
91  case(kPSlogxfEy) : return "<{logx}|E,y>"; break;
92  case(kPSyfE) : return "<{y}|E>"; break;
93  case(kPSlogyfE) : return "<{logy}|E>"; break;
94  case(kPSyfEx) : return "<{y}|E,x>"; break;
95  case(kPSlogyfEx) : return "<{logy}|E,x>"; break;
96  case(kPSlogxlogyfE) : return "<{logx,logy}|E>"; break;
97  case(kPSxyfE) : return "<{x,y}|E>"; break;
98  case(kPSxQ2fE) : return "<{x,Q2}|E>"; break;
99  case(kPSQ2fE) : return "<{Q2}|E>"; break;
100  case(kPSQD2fE) : return "<{QD2}|E>"; break;
101  case(kPSlogQ2fE) : return "<{logQ2}|E>"; break;
102  case(kPSQ2fEW) : return "<{Q2}|E,W>"; break;
103  case(kPSlogQ2fEW) : return "<{logQ2}|E,W>"; break;
104  case(kPSq2fE) : return "<{q2}|E>"; break;
105  case(kPSq2fEW) : return "<{q2}|E,W>"; break;
106  case(kPSWfE) : return "<{W}|E>"; break;
107  case(kPSWfEQ2) : return "<{W}|E,Q2>"; break;
108  case(kPSWfEq2) : return "<{W}|E,q2>"; break;
109  case(kPSWQ2fE) : return "<{W,Q2}|E>"; break;
110  case(kPSWQD2fE) : return "<{W,QD2}|E>"; break;
111  case(kPSW2Q2fE) : return "<{W2,Q2}|E>"; break;
112  case(kPSWlogQ2fE) : return "<{W,logQ2}|E>"; break;
113  case(kPSW2logQ2fE) : return "<{W2,logQ2}|E>"; break;
114  case(kPSWq2fE) : return "<{W,q2}|E>"; break;
115  case(kPSW2q2fE) : return "<{W2,q2}|E>"; break;
116  case(kPSxytfE) : return "<{x,y,t}|E>"; break;
117  case(kPSQ2yfE) : return "<{Q2,y}|E>"; break;
118  case(kPSlogQ2logyfE): return "<{Q2,y}|E>"; break;
119  case(kPSTlctl) : return "<{Tl,cos(theta_l)}|E>"; break;
120  case(kPSElOlOpifE) : return "<{El,Omega_l,Omega_pi}|E>"; break;
121  case(kPSEgTlOgfE) : return "<{Egamma,Theta_l,Omega_gamma}|E>"; break;
122  case(kPSElOlTpifE) : return "<{El,Omega_l,Theta_pi}|E>"; break;
123  case(kPSTkTlctl) : return "<{Tk,Tl,cos(theta_l)}|E>"; break;
124  case(kPSQ2vfE) : return "<{Q2,v}|E>"; break;
125  // TODO: update this string when the appropriate kinematic variables are known
126  case(kPSQELEvGen) : return "<QELEvGen>"; break;
127  case(kPSDMELEvGen) : return "<DMELEvGen>"; break;
128  case(kPSTAfE) : return "<{TA}|E>"; break;
129  case(kPSlog10xlog10Q2fE) : return "<{log10x,log10Q2}|E>"; break;
130  case(kPSEDNufE) : return "<{EDNu}|E>"; break;
131  }
132  return "** Undefined kinematic phase space **";
133  }
134  //__________________________________________________________________________
135 };
136 
137 } // genie namespace
138 
139 #endif // _KINEMATIC_PHASE_SPACE_ENUM_H_
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
std::string string
Definition: nybbler.cc:12
enum genie::EKinePhaseSpace KinePhaseSpace_t
static string AsString(KinePhaseSpace_t kps)
Enumeration of kinematical phase spaces.