GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
genie::RSHelicityAmplModelCC Class Reference

The Helicity Amplitudes, for all baryon resonances, for CC neutrino interactions on free nucleons, as computed in the Rein-Sehgal's paper. More...

#include <RSHelicityAmplModelCC.h>

Inheritance diagram for genie::RSHelicityAmplModelCC:
Inheritance graph
[legend]
Collaboration diagram for genie::RSHelicityAmplModelCC:
Collaboration graph
[legend]

Public Member Functions

 RSHelicityAmplModelCC ()
 
 RSHelicityAmplModelCC (string config)
 
virtual ~RSHelicityAmplModelCC ()
 
const RSHelicityAmplCompute (Resonance_t res, const FKR &fkr) const
 
- Public Member Functions inherited from genie::RSHelicityAmplModelI
virtual ~RSHelicityAmplModelI ()
 
- Public Member Functions inherited from genie::Algorithm
virtual ~Algorithm ()
 
virtual void Configure (const Registry &config)
 
virtual void Configure (string config)
 
virtual void FindConfig (void)
 
virtual const RegistryGetConfig (void) const
 
RegistryGetOwnedConfig (void)
 
virtual const AlgIdId (void) const
 Get algorithm ID. More...
 
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status. More...
 
virtual bool AllowReconfig (void) const
 
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm. More...
 
virtual void SetId (const AlgId &id)
 Set algorithm ID. More...
 
virtual void SetId (string name, string config)
 
const AlgorithmSubAlg (const RgKey &registry_key) const
 
void AdoptConfig (void)
 
void AdoptSubstructure (void)
 
virtual void Print (ostream &stream) const
 Print algorithm info. More...
 

Private Attributes

RSHelicityAmpl fAmpl
 

Additional Inherited Members

- Static Public Member Functions inherited from genie::Algorithm
static string BuildParamVectKey (const std::string &comm_name, unsigned int i)
 
static string BuildParamVectSizeKey (const std::string &comm_name)
 
static string BuildParamMatKey (const std::string &comm_name, unsigned int i, unsigned int j)
 
static string BuildParamMatRowSizeKey (const std::string &comm_name)
 
static string BuildParamMatColSizeKey (const std::string &comm_name)
 
- Protected Member Functions inherited from genie::RSHelicityAmplModelI
 RSHelicityAmplModelI ()
 
 RSHelicityAmplModelI (string name)
 
 RSHelicityAmplModelI (string name, string config)
 
- Protected Member Functions inherited from genie::Algorithm
 Algorithm ()
 
 Algorithm (string name)
 
 Algorithm (string name, string config)
 
void Initialize (void)
 
void DeleteConfig (void)
 
void DeleteSubstructure (void)
 
RegistryExtractLocalConfig (const Registry &in) const
 
RegistryExtractLowerConfig (const Registry &in, const string &alg_key) const
 Split an incoming configuration Registry into a block valid for the sub-algo identified by alg_key. More...
 
template<class T >
bool GetParam (const RgKey &name, T &p, bool is_top_call=true) const
 
template<class T >
bool GetParamDef (const RgKey &name, T &p, const T &def) const
 
template<class T >
int GetParamVect (const std::string &comm_name, std::vector< T > &v, bool is_top_call=true) const
 Handle to load vectors of parameters. More...
 
int GetParamVectKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
 
template<class T >
int GetParamMat (const std::string &comm_name, TMatrixT< T > &mat, bool is_top_call=true) const
 Handle to load matrix of parameters. More...
 
template<class T >
int GetParamMatSym (const std::string &comm_name, TMatrixTSym< T > &mat, bool is_top_call=true) const
 
int GetParamMatKeys (const std::string &comm_name, std::vector< RgKey > &k, bool is_top_call=true) const
 
int AddTopRegistry (Registry *rp, bool owns=true)
 add registry with top priority, also update ownership More...
 
int AddLowRegistry (Registry *rp, bool owns=true)
 add registry with lowest priority, also update ownership More...
 
int MergeTopRegistry (const Registry &r)
 
int AddTopRegisties (const vector< Registry * > &rs, bool owns=false)
 Add registries with top priority, also udated Ownerships. More...
 
- Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
 
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...) More...
 
AlgId fID
 algorithm name and configuration set More...
 
vector< Registry * > fConfVect
 
vector< bool > fOwnerships
 ownership for every registry in fConfVect More...
 
AlgStatus_t fStatus
 algorithm execution status More...
 
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool) More...
 

Detailed Description

The Helicity Amplitudes, for all baryon resonances, for CC neutrino interactions on free nucleons, as computed in the Rein-Sehgal's paper.

      Concrete implementation of the RSHelicityAmplModelI interface.
Author
Costas Andreopoulos <c.andreopoulos cern.ch> University of Liverpool
Created:
May 03, 2004
License:
Copyright (c) 2003-2024, The GENIE Collaboration For the full text of the license visit http://copyright.genie-mc.org

Definition at line 28 of file RSHelicityAmplModelCC.h.

Constructor & Destructor Documentation

RSHelicityAmplModelCC::RSHelicityAmplModelCC ( )

Definition at line 20 of file RSHelicityAmplModelCC.cxx.

20  :
21 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC")
22 {
23 
24 }
RSHelicityAmplModelCC::RSHelicityAmplModelCC ( string  config)

Definition at line 26 of file RSHelicityAmplModelCC.cxx.

26  :
27 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC", config)
28 {
29 
30 }
RSHelicityAmplModelCC::~RSHelicityAmplModelCC ( )
virtual

Definition at line 32 of file RSHelicityAmplModelCC.cxx.

33 {
34 
35 }

Member Function Documentation

const RSHelicityAmpl & RSHelicityAmplModelCC::Compute ( Resonance_t  res,
const FKR fkr 
) const
virtual

Implements genie::RSHelicityAmplModelI.

Definition at line 38 of file RSHelicityAmplModelCC.cxx.

References a, genie::FKR::B, genie::units::b, genie::FKR::C, genie::RSHelicityAmpl::f0Minus, genie::RSHelicityAmpl::f0Plus, fAmpl, genie::RSHelicityAmpl::fMinus1, genie::RSHelicityAmpl::fMinus3, genie::RSHelicityAmpl::fPlus1, genie::RSHelicityAmpl::fPlus3, genie::constants::k1_Sqrt15, genie::constants::k1_Sqrt2, genie::constants::k1_Sqrt3, genie::constants::k1_Sqrt30, genie::constants::k1_Sqrt35, genie::constants::k1_Sqrt5, genie::constants::k1_Sqrt6, genie::constants::k1_Sqrt7, genie::constants::k2_Sqrt15, genie::constants::k2_Sqrt35, genie::constants::k3_Sqrt10, genie::constants::k3_Sqrt2, genie::constants::k3_Sqrt5, genie::kD13_1520, genie::kD13_1700, genie::kD15_1675, genie::kD33_1700, genie::kF15_1680, genie::kF17_1970, genie::kF35_1905, genie::kF37_1950, genie::kP11_1440, genie::kP11_1710, genie::kP13_1720, genie::kP31_1910, genie::kP33_1232, genie::kP33_1600, genie::kP33_1920, genie::kS11_1535, genie::kS11_1650, genie::kS31_1620, genie::constants::kSqrt18_35, genie::constants::kSqrt18_5, genie::constants::kSqrt2, genie::constants::kSqrt24_35, genie::constants::kSqrt27_10, genie::constants::kSqrt2_15, genie::constants::kSqrt2_3, genie::constants::kSqrt2_7, genie::constants::kSqrt3, genie::constants::kSqrt3_10, genie::constants::kSqrt3_2, genie::constants::kSqrt3_35, genie::constants::kSqrt3_4, genie::constants::kSqrt3_5, genie::constants::kSqrt5_2, genie::constants::kSqrt5_3, genie::constants::kSqrt6, genie::constants::kSqrt6_35, genie::constants::kSqrt6_5, genie::constants::kSqrt9_10, genie::FKR::Lamda, LOG, pWARN, genie::FKR::Rminus, genie::FKR::Rplus, genie::FKR::S, genie::FKR::Tminus, and genie::FKR::Tplus.

40 {
41  switch(res) {
42 
43  case (kP33_1232) :
44  {
45  fAmpl.fMinus1 = kSqrt2 * fkr.Rminus;
46  fAmpl.fPlus1 = -kSqrt2 * fkr.Rplus;
47  fAmpl.fMinus3 = kSqrt6 * fkr.Rminus;
48  fAmpl.fPlus3 = -kSqrt6 * fkr.Rplus;
49  fAmpl.f0Minus = -2*kSqrt2 * fkr.C;
51  break;
52  }
53  case (kS11_1535) :
54  {
55  double c = 4./kSqrt6;
56  double d = 2.*kSqrt3;
57  double a = kSqrt6 * fkr.Lamda * fkr.S;
58  double b = 2 * kSqrt2_3 * (fkr.Lamda * fkr.C - 3.* fkr.B);
59 
60  fAmpl.fMinus1 = d * fkr.Tminus + c * fkr.Lamda * fkr.Rminus;
61  fAmpl.fPlus1 = -d * fkr.Tplus - c * fkr.Lamda * fkr.Rplus;
62  fAmpl.fMinus3 = 0;
63  fAmpl.fPlus3 = 0;
64  fAmpl.f0Minus = -a+b;
65  fAmpl.f0Plus = a+b;
66  break;
67  }
68  case (kD13_1520) :
69  {
70  double c = 4./kSqrt3;
71  double d = 6./kSqrt2;
72  double a = 2.* kSqrt3 * fkr.Lamda * fkr.S;
73  double b = (4./kSqrt3)* fkr.Lamda * fkr.C;
74 
75  fAmpl.fMinus1 = kSqrt6 * fkr.Tminus - c * fkr.Lamda * fkr.Rminus;
76  fAmpl.fPlus1 = kSqrt6 * fkr.Tplus - c * fkr.Lamda * fkr.Rplus;
77  fAmpl.fMinus3 = d * fkr.Tminus;
78  fAmpl.fPlus3 = d * fkr.Tplus;
79  fAmpl.f0Minus = -a+b;
80  fAmpl.f0Plus = -a-b;
81  break;
82  }
83  case (kS11_1650) :
84  {
85  fAmpl.fMinus1 = k1_Sqrt6 * fkr.Lamda * fkr.Rminus;
86  fAmpl.fPlus1 = -k1_Sqrt6 * fkr.Lamda * fkr.Rplus;
87  fAmpl.fMinus3 = 0;
88  fAmpl.fPlus3 = 0;
89  fAmpl.f0Minus = -kSqrt2_3 * (fkr.Lamda * fkr.C - 3.* fkr.B);
91  break;
92  }
93  case (kD13_1700) :
94  {
95  double LRm = fkr.Lamda * fkr.Rminus;
96  double LRp = fkr.Lamda * fkr.Rplus;
97 
98  fAmpl.fMinus1 = k1_Sqrt30 * LRm;
99  fAmpl.fPlus1 = k1_Sqrt30 * LRp;
100  fAmpl.fMinus3 = k3_Sqrt10 * LRm;
101  fAmpl.fPlus3 = k3_Sqrt10 * LRp;
102  fAmpl.f0Minus = kSqrt2_15 * fkr.Lamda * fkr.C;
103  fAmpl.f0Plus = -1. * fAmpl.f0Minus;
104  break;
105  }
106  case (kD15_1675) :
107  {
108  double LRm = fkr.Lamda * fkr.Rminus;
109  double LRp = fkr.Lamda * fkr.Rplus;
110 
111  fAmpl.fMinus1 = -kSqrt3_10 * LRm;
112  fAmpl.fPlus1 = kSqrt3_10 * LRp;
113  fAmpl.fMinus3 = -kSqrt3_5 * LRm;
114  fAmpl.fPlus3 = kSqrt3_5 * LRp;
115  fAmpl.f0Minus = kSqrt6_5 * fkr.Lamda * fkr.C;
117  break;
118  }
119  case (kS31_1620) :
120  {
121  double a = kSqrt3_2 * fkr.Lamda * fkr.S;
122  double b = k1_Sqrt6 * (fkr.Lamda * fkr.C - 3.* fkr.B);
123 
124  fAmpl.fMinus1 = -kSqrt3 * fkr.Tminus + k1_Sqrt6 * fkr.Lamda * fkr.Rminus;
125  fAmpl.fPlus1 = kSqrt3 * fkr.Tplus - k1_Sqrt6 * fkr.Lamda * fkr.Rplus;
126  fAmpl.fMinus3 = 0;
127  fAmpl.fPlus3 = 0;
128  fAmpl.f0Minus = a+b;
129  fAmpl.f0Plus = -a+b;
130  break;
131  }
132  case (kD33_1700) :
133  {
134  double a = kSqrt3 * fkr.Lamda * fkr.S;
135  double b = k1_Sqrt3 * fkr.Lamda * fkr.C;
136 
137  fAmpl.fMinus1 = -kSqrt3_2 * fkr.Tminus - k1_Sqrt3 * fkr.Lamda * fkr.Rminus;
138  fAmpl.fPlus1 = -kSqrt3_2 * fkr.Tplus - k1_Sqrt3 * fkr.Lamda * fkr.Rplus;
139  fAmpl.fMinus3 = -k3_Sqrt2 * fkr.Tminus;
140  fAmpl.fPlus3 = -k3_Sqrt2 * fkr.Tplus;
141  fAmpl.f0Minus = a + b;
142  fAmpl.f0Plus = a - b;
143  break;
144  }
145  case (kP11_1440) :
146  {
147  double L2 = TMath::Power(fkr.Lamda, 2);
148  double c = 5.*kSqrt3/6.;
149  double a = kSqrt3_4 * L2 * fkr.S;
150  double b = c * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
151 
152  fAmpl.fMinus1 = -c * L2 * fkr.Rminus;
153  fAmpl.fPlus1 = -c * L2 * fkr.Rplus;
154  fAmpl.fMinus3 = 0;
155  fAmpl.fPlus3 = 0;
156  fAmpl.f0Minus = -a+b;
157  fAmpl.f0Plus = -a-b;
158  break;
159  }
160  case (kP33_1600) :
161  {
162  double L2 = TMath::Power(fkr.Lamda, 2);
163  double L2Rm = L2 * fkr.Rminus;
164  double L2Rp = L2 * fkr.Rplus;
165 
166  fAmpl.fMinus1 = -k1_Sqrt6 * L2Rm;
167  fAmpl.fPlus1 = k1_Sqrt6 * L2Rp;
168  fAmpl.fMinus3 = -k1_Sqrt2 * L2Rm;
169  fAmpl.fPlus3 = k1_Sqrt2 * L2Rp;
170  fAmpl.f0Minus = kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
172  break;
173  }
174  case (kP13_1720) :
175  {
176  double L2 = TMath::Power(fkr.Lamda, 2);
177  double L2Rm = L2 * fkr.Rminus;
178  double L2Rp = L2 * fkr.Rplus;
179  double LTm = fkr.Lamda * fkr.Tminus;
180  double LTp = fkr.Lamda * fkr.Tplus;
181  double a = kSqrt3_5 * L2 * fkr.S;
182  double b = kSqrt5_3 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
183 
184  fAmpl.fMinus1 = -kSqrt27_10 * LTm - kSqrt5_3 * L2Rm;
185  fAmpl.fPlus1 = kSqrt27_10 * LTp + kSqrt5_3 * L2Rp;
186  fAmpl.fMinus3 = k3_Sqrt10 * LTm;
187  fAmpl.fPlus3 = -k3_Sqrt10 * LTp;
188  fAmpl.f0Minus = a-b;
189  fAmpl.f0Plus = -a-b;
190  break;
191  }
192  case (kF15_1680) :
193  {
194  double L2 = TMath::Power(fkr.Lamda, 2);
195  double LTm = fkr.Lamda * fkr.Tminus;
196  double LTp = fkr.Lamda * fkr.Tplus;
197  double a = kSqrt9_10 * L2 * fkr.S;
198  double b = kSqrt5_2 * L2 * fkr.C;
199 
200  fAmpl.fMinus1 = -k3_Sqrt5 * LTm + kSqrt5_2 * L2 * fkr.Rminus;
201  fAmpl.fPlus1 = -k3_Sqrt5 * LTp + kSqrt5_2 * L2 * fkr.Rplus;
202  fAmpl.fMinus3 = -kSqrt18_5 * LTm;
203  fAmpl.fPlus3 = -kSqrt18_5 * LTp;
204  fAmpl.f0Minus = a - b;
205  fAmpl.f0Plus = a + b;
206  break;
207  }
208  case (kP31_1910) :
209  {
210  double L2 = TMath::Power(fkr.Lamda, 2);
211 
212  fAmpl.fMinus1 = k1_Sqrt15 * L2 * fkr.Rminus;
213  fAmpl.fPlus1 = k1_Sqrt15 * L2 * fkr.Rplus;
214  fAmpl.fMinus3 = 0;
215  fAmpl.fPlus3 = 0;
216  fAmpl.f0Minus = k2_Sqrt15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
217  fAmpl.f0Plus = -1.* fAmpl.f0Minus;
218  break;
219  }
220  case (kP33_1920) :
221  {
222  double L2 = TMath::Power(fkr.Lamda, 2);
223  double L2Rm = L2 * fkr.Rminus;
224  double L2Rp = L2 * fkr.Rplus;
225 
226  fAmpl.fMinus1 = -k1_Sqrt15 * L2Rm;
227  fAmpl.fPlus1 = k1_Sqrt15 * L2Rp;
228  fAmpl.fMinus3 = k1_Sqrt5 * L2Rm;
229  fAmpl.fPlus3 = -k1_Sqrt5 * L2Rp;
230  fAmpl.f0Minus = k2_Sqrt15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
232  break;
233  }
234  case (kF35_1905) :
235  {
236  double L2 = TMath::Power(fkr.Lamda, 2);
237  double L2Rm = L2 * fkr.Rminus;
238  double L2Rp = L2 * fkr.Rplus;
239 
240  fAmpl.fMinus1 = -k1_Sqrt35 * L2Rm;
241  fAmpl.fPlus1 = -k1_Sqrt35 * L2Rp;
242  fAmpl.fMinus3 = -kSqrt18_35 * L2Rm;
243  fAmpl.fPlus3 = -kSqrt18_35 * L2Rp;
244  fAmpl.f0Minus = -k2_Sqrt35 * L2 * fkr.C;
245  fAmpl.f0Plus = -1.* fAmpl.f0Minus;
246  break;
247  }
248  case (kF37_1950) :
249  {
250  double L2 = TMath::Power(fkr.Lamda, 2);
251  double L2Rm = L2 * fkr.Rminus;
252  double L2Rp = L2 * fkr.Rplus;
253 
254  fAmpl.fMinus1 = kSqrt6_35 * L2Rm;
255  fAmpl.fPlus1 = -kSqrt6_35 * L2Rp;
256  fAmpl.fMinus3 = kSqrt2_7 * L2Rm;
257  fAmpl.fPlus3 = -kSqrt2_7 * L2Rp;
258  fAmpl.f0Minus = -kSqrt24_35 * L2 * fkr.C;
260  break;
261  }
262  case (kP11_1710) :
263  {
264  double L2 = TMath::Power(fkr.Lamda, 2);
265  double a = kSqrt3_2 * L2 * fkr.S;
266  double b = kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
267 
268  fAmpl.fMinus1 = kSqrt2_3 * L2 * fkr.Rminus;
269  fAmpl.fPlus1 = kSqrt2_3 * L2 * fkr.Rplus;
270  fAmpl.fMinus3 = 0;
271  fAmpl.fPlus3 = 0;
272  fAmpl.f0Minus = a - b;
273  fAmpl.f0Plus = a + b;
274  break;
275  }
276  case (kF17_1970) :
277  {
278  double L2 = TMath::Power(fkr.Lamda, 2);
279  double L2Rm = L2 * fkr.Rminus;
280  double L2Rp = L2 * fkr.Rplus;
281 
282  fAmpl.fMinus1 = -kSqrt3_35 * L2Rm;
283  fAmpl.fPlus1 = kSqrt3_35 * L2Rp;
284  fAmpl.fMinus3 = -k1_Sqrt7 * L2Rm;
285  fAmpl.fPlus3 = k1_Sqrt7 * L2Rp;
286  fAmpl.f0Minus = kSqrt6_35 * L2 * fkr.C;
288  break;
289  }
290  default:
291  {
292  LOG("RSHAmpl", pWARN) << "*** UNRECOGNIZED RESONANCE!";
293  fAmpl.fMinus1 = 0.;
294  fAmpl.fPlus1 = 0.;
295  fAmpl.fMinus3 = 0.;
296  fAmpl.fPlus3 = 0.;
297  fAmpl.f0Minus = 0.;
298  fAmpl.f0Plus = 0.;
299  break;
300  }
301 
302  }//switch
303 
304  return fAmpl;
305 }
double Rminus
Definition: FKR.h:50
double Lamda
Definition: FKR.h:37
static constexpr double b
Definition: Units.h:78
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
const double a
#define pWARN
Definition: Messenger.h:60
double C
Definition: FKR.h:44
double Tplus
Definition: FKR.h:47
double B
Definition: FKR.h:43
double Rplus
Definition: FKR.h:49
double Tminus
Definition: FKR.h:48
double S
Definition: FKR.h:40

Member Data Documentation

RSHelicityAmpl genie::RSHelicityAmplModelCC::fAmpl
mutableprivate

Definition at line 39 of file RSHelicityAmplModelCC.h.

Referenced by Compute().


The documentation for this class was generated from the following files: