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 <costas.andreopoulos \at stfc.ac.uk>
9  University of Liverpool & STFC Rutherford Appleton Lab
10 
11 \created May 06, 2004
12 
13 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15  or see $GENIE/LICENSE
16 */
17 //____________________________________________________________________________
18 
19 #ifndef _KINEMATIC_PHASE_SPACE_ENUM_H_
20 #define _KINEMATIC_PHASE_SPACE_ENUM_H_
21 
22 #include <cassert>
23 #include <string>
24 
25 using std::string;
26 
27 namespace genie {
28 
29 typedef enum EKinePhaseSpace {
30  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
69 
71 
73 {
74 public:
75  //__________________________________________________________________________
76  static string AsString(KinePhaseSpace_t kps)
77  {
78  switch (kps) {
79 
80  case(kPSNull) :
81  return "** Undefined kinematic phase space **"; break;
82 
83  case(kPSfE) : return "<|E>"; break;
84  case(kPSxfE) : return "<{x}|E>"; break;
85  case(kPSlogxfE) : return "<{logx}|E>"; break;
86  case(kPSxfEy) : return "<{x}|E,y>"; break;
87  case(kPSlogxfEy) : return "<{logx}|E,y>"; break;
88  case(kPSyfE) : return "<{y}|E>"; break;
89  case(kPSlogyfE) : return "<{logy}|E>"; break;
90  case(kPSyfEx) : return "<{y}|E,x>"; break;
91  case(kPSlogyfEx) : return "<{logy}|E,x>"; break;
92  case(kPSlogxlogyfE) : return "<{logx,logy}|E>"; break;
93  case(kPSxyfE) : return "<{x,y}|E>"; break;
94  case(kPSQ2fE) : return "<{Q2}|E>"; break;
95  case(kPSQD2fE) : return "<{QD2}|E>"; break;
96  case(kPSlogQ2fE) : return "<{logQ2}|E>"; break;
97  case(kPSQ2fEW) : return "<{Q2}|E,W>"; break;
98  case(kPSlogQ2fEW) : return "<{logQ2}|E,W>"; break;
99  case(kPSq2fE) : return "<{q2}|E>"; break;
100  case(kPSq2fEW) : return "<{q2}|E,W>"; break;
101  case(kPSWfE) : return "<{W}|E>"; break;
102  case(kPSWfEQ2) : return "<{W}|E,Q2>"; break;
103  case(kPSWfEq2) : return "<{W}|E,q2>"; break;
104  case(kPSWQ2fE) : return "<{W,Q2}|E>"; break;
105  case(kPSWQD2fE) : return "<{W,QD2}|E>"; break;
106  case(kPSW2Q2fE) : return "<{W2,Q2}|E>"; break;
107  case(kPSWlogQ2fE) : return "<{W,logQ2}|E>"; break;
108  case(kPSW2logQ2fE) : return "<{W2,logQ2}|E>"; break;
109  case(kPSWq2fE) : return "<{W,q2}|E>"; break;
110  case(kPSW2q2fE) : return "<{W2,q2}|E>"; break;
111  case(kPSxytfE) : return "<{x,y,t}|E>"; break;
112  case(kPSQ2yfE) : return "<{Q2,y}|E>"; break;
113  case(kPSlogQ2logyfE): return "<{Q2,y}|E>"; break;
114  case(kPSTlctl) : return "<{Tl,cos(theta_l)}|E>"; break;
115  case(kPSElOlOpifE) : return "<{El,Omega_l,Omega_pi}|E>"; break;
116  case(kPSElOlTpifE) : return "<{El,Omega_l,Theta_pi}|E>"; break;
117  case(kPSTkTlctl) : return "<{Tk,Tl,cos(theta_l)}|E>"; break;
118  case(kPSQ2vfE) : return "<{Q2,v}|E>"; break;
119  // TODO: update this string when the appropriate kinematic variables are known
120  case(kPSQELEvGen) : return "<QELEvGen>"; break;
121  }
122  return "** Undefined kinematic phase space **";
123  }
124  //__________________________________________________________________________
125 };
126 
127 } // genie namespace
128 
129 #endif // _KINEMATIC_PHASE_SPACE_ENUM_H_
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
enum genie::EKinePhaseSpace KinePhaseSpace_t
static string AsString(KinePhaseSpace_t kps)
Enumeration of kinematical phase spaces.
enum BeamMode string