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 <constantinos.andreopoulos \at cern.ch>
14  University of Liverpool & STFC Rutherford Appleton Laboratory
15 
16 \created May 03, 2004
17 
18 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
19  For the full text of the license visit http://copyright.genie-mc.org
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _RS_HELICITY_AMPL_H_
24 #define _RS_HELICITY_AMPL_H_
25 
26 #include <iostream>
27 
28 #include <TMath.h>
29 
32 
33 using std::ostream;
34 
35 namespace genie {
36 
37 class RSHelicityAmpl;
38 ostream & operator<< (ostream & stream, const RSHelicityAmpl & hamp);
39 
41 
42 friend class RSHelicityAmplModelCC;
47 
48 public:
49 
51  RSHelicityAmpl(const RSHelicityAmpl & hamp);
53 
54  //! return helicity amplitude
55  double AmpMinus1 (void) const { return fMinus1; } /* f(-1) */
56  double AmpPlus1 (void) const { return fPlus1; } /* f(+1) */
57  double AmpMinus3 (void) const { return fMinus3; } /* f(-3) */
58  double AmpPlus3 (void) const { return fPlus3; } /* f(+3) */
59  double Amp0Minus (void) const { return f0Minus; } /* f(0-) */
60  double Amp0Plus (void) const { return f0Plus; } /* f(0+) */
61 
62  //! return |helicity amplitude|^2
63  double Amp2Minus1 (void) const { return TMath::Power(fMinus1, 2.); } /* |f(-1)|^2 */
64  double Amp2Plus1 (void) const { return TMath::Power(fPlus1, 2.); } /* |f(+1)|^2 */
65  double Amp2Minus3 (void) const { return TMath::Power(fMinus3, 2.); } /* |f(-3)|^2 */
66  double Amp2Plus3 (void) const { return TMath::Power(fPlus3, 2.); } /* |f(+3)|^2 */
67  double Amp20Minus (void) const { return TMath::Power(f0Minus, 2.); } /* |f(0-)|^2 */
68  double Amp20Plus (void) const { return TMath::Power(f0Plus, 2.); } /* |f(0+)|^2 */
69 
70  friend ostream & operator<< (ostream & stream, const RSHelicityAmpl & hamp);
71 
72  void Print(ostream & stream) const;
73 
74 private:
75 
76  void Init(void);
77 
78  double fMinus1;
79  double fPlus1;
80  double fMinus3;
81  double fPlus3;
82  double f0Minus;
83  double f0Plus;
84 };
85 
86 } // genie namespace
87 
88 #endif // _RS_HELICITY_AMPL_H_
double AmpMinus3(void) const
The Helicity Amplitudes, for all baryon resonances, for CC neutrino interactions on free nucleons...
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
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