RSHelicityAmplModelCC.cxx
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*
3  Copyright (c) 2003-2020, The GENIE Collaboration
4  For the full text of the license visit http://copyright.genie-mc.org
5 
6  Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
7  University of Liverpool & STFC Rutherford Appleton Laboratory
8 */
9 //____________________________________________________________________________
10 
15 
16 using namespace genie;
17 using namespace genie::constants;
18 
19 //____________________________________________________________________________
21 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC")
22 {
23 
24 }
25 //____________________________________________________________________________
27 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC", config)
28 {
29 
30 }
31 //____________________________________________________________________________
33 {
34 
35 }
36 //____________________________________________________________________________
37 const RSHelicityAmpl &
39  Resonance_t res, const FKR & fkr) const
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 }
306 //____________________________________________________________________________
static const double k3_Sqrt10
Definition: Constants.h:153
static const double kSqrt3
Definition: Constants.h:116
static const double kSqrt5_3
Definition: Constants.h:172
Basic constants.
static const double kSqrt2
Definition: Constants.h:115
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
double Rminus
Definition: FKR.h:50
static const double kSqrt2_15
Definition: Constants.h:160
static const double kSqrt6
Definition: Constants.h:119
Simple struct-like class holding the Feynmann-Kislinger-Ravndall (FKR) baryon excitation model parame...
Definition: FKR.h:31
static const double k1_Sqrt5
Definition: Constants.h:137
static const double kSqrt3_4
Definition: Constants.h:162
double Lamda
Definition: FKR.h:37
static const double k1_Sqrt3
Definition: Constants.h:136
static const double k1_Sqrt6
Definition: Constants.h:138
enum genie::EResonance Resonance_t
static const double kSqrt9_10
Definition: Constants.h:177
const RSHelicityAmpl & Compute(Resonance_t res, const FKR &fkr) const
static const double k3_Sqrt2
Definition: Constants.h:151
A class holding the Rein-Sehgal&#39;s helicity amplitudes.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
static const double kSqrt24_35
Definition: Constants.h:182
static Config * config
Definition: config.cpp:1054
const double a
static const double kSqrt2_7
Definition: Constants.h:159
static const double kSqrt3_35
Definition: Constants.h:168
static const double k1_Sqrt35
Definition: Constants.h:144
static const double kSqrt3_10
Definition: Constants.h:165
Pure abstract base class. Defines the RSHelicityAmplModelI interface.
static const double kSqrt3_5
Definition: Constants.h:163
static const double kSqrt3_2
Definition: Constants.h:161
#define pWARN
Definition: Messenger.h:60
static const double k1_Sqrt15
Definition: Constants.h:141
static const double kSqrt5_2
Definition: Constants.h:171
double C
Definition: FKR.h:44
double Tplus
Definition: FKR.h:47
double B
Definition: FKR.h:43
static const double k3_Sqrt5
Definition: Constants.h:152
double Rplus
Definition: FKR.h:49
static const double kSqrt18_5
Definition: Constants.h:179
static const double kSqrt27_10
Definition: Constants.h:183
double Tminus
Definition: FKR.h:48
static const double kSqrt2_3
Definition: Constants.h:156
static bool * b
Definition: config.cpp:1043
static const double k2_Sqrt15
Definition: Constants.h:149
static const double k2_Sqrt35
Definition: Constants.h:150
static const double kSqrt6_5
Definition: Constants.h:175
static const double k1_Sqrt2
Definition: Constants.h:135
static const double k1_Sqrt30
Definition: Constants.h:143
double S
Definition: FKR.h:40
static const double k1_Sqrt7
Definition: Constants.h:139
static const double kSqrt6_35
Definition: Constants.h:176
static const double kSqrt18_35
Definition: Constants.h:181