KPhaseSpace.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::KPhaseSpace
5 
6 \brief Kinematical phase space
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_H_
20 #define _KINEMATIC_PHASE_SPACE_H_
21 
22 #include <cassert>
23 
24 #include <TObject.h>
25 
27 //#include "Interaction/KPhaseSpaceCut.h"
28 #include "Framework/Utils/Range1.h"
29 
30 namespace genie {
31 
32 class Interaction;
33 
34 class KPhaseSpace : public TObject {
35 
36 public:
37  KPhaseSpace (void);
38  KPhaseSpace (const Interaction * in);
39  ~KPhaseSpace (void);
40 
41  void UseInteraction(const Interaction * in);
42 
43  //! Energy threshold
44  double Threshold(void) const;
45 
46  //! Checks whether the interaction is above the energy threshold
47  bool IsAboveThreshold(void) const;
48 
49  //! Check whether the current kinematics is in the allowed phase space
50  bool IsAllowed (void) const;
51 
52  //! Return the kinematical variable limits
53  Range1D_t Limits (KineVar_t kvar) const;
54  double Minimum (KineVar_t kvar) const;
55  double Maximum (KineVar_t kvar) const;
56 
57  Range1D_t WLim (void) const; ///< W limits
58  Range1D_t Q2Lim_W (void) const; ///< Q2 limits @ fixed W
59  Range1D_t q2Lim_W (void) const; ///< q2 limits @ fixed W
60  Range1D_t Q2Lim (void) const; ///< Q2 limits
61  Range1D_t q2Lim (void) const; ///< q2 limits
62  Range1D_t XLim (void) const; ///< x limits
63  Range1D_t YLim (void) const; ///< y limits
64  Range1D_t YLim_X (void) const; ///< y limits @ fixed x
65  Range1D_t YLim (double xsi) const; ///< y limits (COH)
66  Range1D_t YLim_X (double xsi) const; ///< y limits @ fixed x (COH)
67  Range1D_t TLim (void) const; ///< t limits
68 
69  static double GetTMaxDFR();
70 
71 private:
72  void Init(void);
73 
75 
76 ClassDef(KPhaseSpace,2)
77 };
78 
79 } // genie namespace
80 #endif // _KINE_PHASE_SPACE_H_
81 
Range1D_t YLim_X(void) const
y limits @ fixed x
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
A simple [min,max] interval for doubles.
Definition: Range1.h:43
double Threshold(void) const
Energy threshold.
Definition: KPhaseSpace.cxx:81
Range1D_t q2Lim(void) const
q2 limits
Range1D_t YLim(void) const
y limits
Range1D_t Q2Lim_W(void) const
Q2 limits @ fixed W.
Range1D_t Q2Lim(void) const
Q2 limits.
Range1D_t Limits(KineVar_t kvar) const
Return the kinematical variable limits.
static double GetTMaxDFR()
Definition: KPhaseSpace.cxx:58
Summary information for an interaction.
Definition: Interaction.h:56
const Interaction * fInteraction
Definition: KPhaseSpace.h:74
Kinematical phase space.
Definition: KPhaseSpace.h:34
double Minimum(KineVar_t kvar) const
enum genie::EKineVar KineVar_t
double Maximum(KineVar_t kvar) const
void UseInteraction(const Interaction *in)
Definition: KPhaseSpace.cxx:76
ifstream in
Definition: comparison.C:7
bool IsAllowed(void) const
Check whether the current kinematics is in the allowed phase space.
bool IsAboveThreshold(void) const
Checks whether the interaction is above the energy threshold.
Range1D_t XLim(void) const
x limits
Range1D_t TLim(void) const
t limits
Range1D_t q2Lim_W(void) const
q2 limits @ fixed W
Range1D_t WLim(void) const
W limits.