RSHelicityAmpl.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::RSHelicityAmpl
5 
6 \brief A class holding the Rein-Sehgal's helicity amplitudes.
7 
8  This class is using the \b Strategy Pattern. \n
9  It can accept requests to calculate itself, for a given interaction,
10  that it then delegates to the algorithmic object, implementing the
11  RSHelicityAmplModelI interface, that it finds attached to itself.
12 
13 \author Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
14  University of Liverpool & STFC Rutherford Appleton Lab
15 
16 \created May 03, 2004
17 
18 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
19  For the full text of the license visit http://copyright.genie-mc.org
20  or see $GENIE/LICENSE
21 */
22 //____________________________________________________________________________
23 
24 #ifndef _RS_HELICITY_AMPL_H_
25 #define _RS_HELICITY_AMPL_H_
26 
27 #include <iostream>
28 
29 #include <TMath.h>
30 
33 
34 using std::ostream;
35 
36 namespace genie {
37 
38 class RSHelicityAmpl;
39 ostream & operator<< (ostream & stream, const RSHelicityAmpl & hamp);
40 
42 
43 friend class RSHelicityAmplModelCC;
48 
49 public:
50 
52  RSHelicityAmpl(const RSHelicityAmpl & hamp);
54 
55  //! return helicity amplitude
56  double AmpMinus1 (void) const { return fMinus1; } /* f(-1) */
57  double AmpPlus1 (void) const { return fPlus1; } /* f(+1) */
58  double AmpMinus3 (void) const { return fMinus3; } /* f(-3) */
59  double AmpPlus3 (void) const { return fPlus3; } /* f(+3) */
60  double Amp0Minus (void) const { return f0Minus; } /* f(0-) */
61  double Amp0Plus (void) const { return f0Plus; } /* f(0+) */
62 
63  //! return |helicity amplitude|^2
64  double Amp2Minus1 (void) const { return TMath::Power(fMinus1, 2.); } /* |f(-1)|^2 */
65  double Amp2Plus1 (void) const { return TMath::Power(fPlus1, 2.); } /* |f(+1)|^2 */
66  double Amp2Minus3 (void) const { return TMath::Power(fMinus3, 2.); } /* |f(-3)|^2 */
67  double Amp2Plus3 (void) const { return TMath::Power(fPlus3, 2.); } /* |f(+3)|^2 */
68  double Amp20Minus (void) const { return TMath::Power(f0Minus, 2.); } /* |f(0-)|^2 */
69  double Amp20Plus (void) const { return TMath::Power(f0Plus, 2.); } /* |f(0+)|^2 */
70 
71  friend ostream & operator<< (ostream & stream, const RSHelicityAmpl & hamp);
72 
73  void Print(ostream & stream) const;
74 
75 private:
76 
77  void Init(void);
78 
79  double fMinus1;
80  double fPlus1;
81  double fMinus3;
82  double fPlus3;
83  double f0Minus;
84  double f0Plus;
85 };
86 
87 } // genie namespace
88 
89 #endif // _RS_HELICITY_AMPL_H_
90 
91 
double AmpMinus3(void) const
The Helicity Amplitudes, for all baryon resonances, for CC neutrino interactions on free nucleons...
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
friend ostream & operator<<(ostream &stream, const RSHelicityAmpl &hamp)
double Amp2Plus3(void) const
double Amp2Minus3(void) const
The Helicity Amplitudes, for all baryon resonances, for NC neutrino interactions on free neutrons...
double AmpPlus3(void) const
double Amp2Plus1(void) const
double Amp2Minus1(void) const
return |helicity amplitude|^2
double Amp0Plus(void) const
The Helicity Amplitudes, for all baryon resonances, for NC neutrino interactions on free protons...
A class holding the Rein-Sehgal&#39;s helicity amplitudes.
void Print(ostream &stream) const
double AmpMinus1(void) const
return helicity amplitude
The Helicity Amplitudes, for all baryon resonances, for Electro- Magnetic (EM) interactions on free n...
double Amp0Minus(void) const
double Amp20Minus(void) const
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
double AmpPlus1(void) const
The Helicity Amplitudes, for all baryon resonances, for Electro- Magnetic (EM) interactions on free p...
double Amp20Plus(void) const