RSHelicityAmplModelCC.cxx
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*
3  Copyright (c) 2003-2019, The GENIE Collaboration
4  For the full text of the license visit http://copyright.genie-mc.org
5  or see $GENIE/LICENSE
6 
7  Author: Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
8  University of Liverpool & STFC Rutherford Appleton Lab
9 
10  For the class documentation see the corresponding header file.
11 
12  Important revisions after version 2.0.0 :
13  @ Oct 05, 2009 - CA
14  Compute() now returns a `const RSHelicityAmpl &' and avoids creating a new
15  RSHelicityAmpl at each call.
16 */
17 //____________________________________________________________________________
18 
23 
24 using namespace genie;
25 using namespace genie::constants;
26 
27 //____________________________________________________________________________
29 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC")
30 {
31 
32 }
33 //____________________________________________________________________________
35 RSHelicityAmplModelI("genie::RSHelicityAmplModelCC", config)
36 {
37 
38 }
39 //____________________________________________________________________________
41 {
42 
43 }
44 //____________________________________________________________________________
45 const RSHelicityAmpl &
47  Resonance_t res, const FKR & fkr) const
48 {
49  switch(res) {
50 
51  case (kP33_1232) :
52  {
53  fAmpl.fMinus1 = kSqrt2 * fkr.Rminus;
54  fAmpl.fPlus1 = -kSqrt2 * fkr.Rplus;
55  fAmpl.fMinus3 = kSqrt6 * fkr.Rminus;
56  fAmpl.fPlus3 = -kSqrt6 * fkr.Rplus;
57  fAmpl.f0Minus = -2*kSqrt2 * fkr.C;
59  break;
60  }
61  case (kS11_1535) :
62  {
63  double c = 4./kSqrt6;
64  double d = 2.*kSqrt3;
65  double a = kSqrt6 * fkr.Lamda * fkr.S;
66  double b = 2 * kSqrt2_3 * (fkr.Lamda * fkr.C - 3.* fkr.B);
67 
68  fAmpl.fMinus1 = d * fkr.Tminus + c * fkr.Lamda * fkr.Rminus;
69  fAmpl.fPlus1 = -d * fkr.Tplus - c * fkr.Lamda * fkr.Rplus;
70  fAmpl.fMinus3 = 0;
71  fAmpl.fPlus3 = 0;
72  fAmpl.f0Minus = -a+b;
73  fAmpl.f0Plus = a+b;
74  break;
75  }
76  case (kD13_1520) :
77  {
78  double c = 4./kSqrt3;
79  double d = 6./kSqrt2;
80  double a = 2.* kSqrt3 * fkr.Lamda * fkr.S;
81  double b = (4./kSqrt3)* fkr.Lamda * fkr.C;
82 
83  fAmpl.fMinus1 = kSqrt6 * fkr.Tminus - c * fkr.Lamda * fkr.Rminus;
84  fAmpl.fPlus1 = kSqrt6 * fkr.Tplus - c * fkr.Lamda * fkr.Rplus;
85  fAmpl.fMinus3 = d * fkr.Tminus;
86  fAmpl.fPlus3 = d * fkr.Tplus;
87  fAmpl.f0Minus = -a+b;
88  fAmpl.f0Plus = -a-b;
89  break;
90  }
91  case (kS11_1650) :
92  {
93  fAmpl.fMinus1 = k1_Sqrt6 * fkr.Lamda * fkr.Rminus;
94  fAmpl.fPlus1 = -k1_Sqrt6 * fkr.Lamda * fkr.Rplus;
95  fAmpl.fMinus3 = 0;
96  fAmpl.fPlus3 = 0;
97  fAmpl.f0Minus = -kSqrt2_3 * (fkr.Lamda * fkr.C - 3.* fkr.B);
99  break;
100  }
101  case (kD13_1700) :
102  {
103  double LRm = fkr.Lamda * fkr.Rminus;
104  double LRp = fkr.Lamda * fkr.Rplus;
105 
106  fAmpl.fMinus1 = k1_Sqrt30 * LRm;
107  fAmpl.fPlus1 = k1_Sqrt30 * LRp;
108  fAmpl.fMinus3 = k3_Sqrt10 * LRm;
109  fAmpl.fPlus3 = k3_Sqrt10 * LRp;
110  fAmpl.f0Minus = kSqrt2_15 * fkr.Lamda * fkr.C;
111  fAmpl.f0Plus = -1. * fAmpl.f0Minus;
112  break;
113  }
114  case (kD15_1675) :
115  {
116  double LRm = fkr.Lamda * fkr.Rminus;
117  double LRp = fkr.Lamda * fkr.Rplus;
118 
119  fAmpl.fMinus1 = -kSqrt3_10 * LRm;
120  fAmpl.fPlus1 = kSqrt3_10 * LRp;
121  fAmpl.fMinus3 = -kSqrt3_5 * LRm;
122  fAmpl.fPlus3 = kSqrt3_5 * LRp;
123  fAmpl.f0Minus = kSqrt6_5 * fkr.Lamda * fkr.C;
125  break;
126  }
127  case (kS31_1620) :
128  {
129  double a = kSqrt3_2 * fkr.Lamda * fkr.S;
130  double b = k1_Sqrt6 * (fkr.Lamda * fkr.C - 3.* fkr.B);
131 
132  fAmpl.fMinus1 = -kSqrt3 * fkr.Tminus + k1_Sqrt6 * fkr.Lamda * fkr.Rminus;
133  fAmpl.fPlus1 = kSqrt3 * fkr.Tplus - k1_Sqrt6 * fkr.Lamda * fkr.Rplus;
134  fAmpl.fMinus3 = 0;
135  fAmpl.fPlus3 = 0;
136  fAmpl.f0Minus = a+b;
137  fAmpl.f0Plus = -a+b;
138  break;
139  }
140  case (kD33_1700) :
141  {
142  double a = kSqrt3 * fkr.Lamda * fkr.S;
143  double b = k1_Sqrt3 * fkr.Lamda * fkr.C;
144 
145  fAmpl.fMinus1 = -kSqrt3_2 * fkr.Tminus - k1_Sqrt3 * fkr.Lamda * fkr.Rminus;
146  fAmpl.fPlus1 = -kSqrt3_2 * fkr.Tplus - k1_Sqrt3 * fkr.Lamda * fkr.Rplus;
147  fAmpl.fMinus3 = -k3_Sqrt2 * fkr.Tminus;
148  fAmpl.fPlus3 = -k3_Sqrt2 * fkr.Tplus;
149  fAmpl.f0Minus = a + b;
150  fAmpl.f0Plus = a - b;
151  break;
152  }
153  case (kP11_1440) :
154  {
155  double L2 = TMath::Power(fkr.Lamda, 2);
156  double c = 5.*kSqrt3/6.;
157  double a = kSqrt3_4 * L2 * fkr.S;
158  double b = c * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
159 
160  fAmpl.fMinus1 = -c * L2 * fkr.Rminus;
161  fAmpl.fPlus1 = -c * L2 * fkr.Rplus;
162  fAmpl.fMinus3 = 0;
163  fAmpl.fPlus3 = 0;
164  fAmpl.f0Minus = -a+b;
165  fAmpl.f0Plus = -a-b;
166  break;
167  }
168  case (kP33_1600) :
169  {
170  double L2 = TMath::Power(fkr.Lamda, 2);
171  double L2Rm = L2 * fkr.Rminus;
172  double L2Rp = L2 * fkr.Rplus;
173 
174  fAmpl.fMinus1 = -k1_Sqrt6 * L2Rm;
175  fAmpl.fPlus1 = k1_Sqrt6 * L2Rp;
176  fAmpl.fMinus3 = -k1_Sqrt2 * L2Rm;
177  fAmpl.fPlus3 = k1_Sqrt2 * L2Rp;
178  fAmpl.f0Minus = kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
180  break;
181  }
182  case (kP13_1720) :
183  {
184  double L2 = TMath::Power(fkr.Lamda, 2);
185  double L2Rm = L2 * fkr.Rminus;
186  double L2Rp = L2 * fkr.Rplus;
187  double LTm = fkr.Lamda * fkr.Tminus;
188  double LTp = fkr.Lamda * fkr.Tplus;
189  double a = kSqrt3_5 * L2 * fkr.S;
190  double b = kSqrt5_3 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
191 
192  fAmpl.fMinus1 = -kSqrt27_10 * LTm - kSqrt5_3 * L2Rm;
193  fAmpl.fPlus1 = kSqrt27_10 * LTp + kSqrt5_3 * L2Rp;
194  fAmpl.fMinus3 = k3_Sqrt10 * LTm;
195  fAmpl.fPlus3 = -k3_Sqrt10 * LTp;
196  fAmpl.f0Minus = a-b;
197  fAmpl.f0Plus = -a-b;
198  break;
199  }
200  case (kF15_1680) :
201  {
202  double L2 = TMath::Power(fkr.Lamda, 2);
203  double LTm = fkr.Lamda * fkr.Tminus;
204  double LTp = fkr.Lamda * fkr.Tplus;
205  double a = kSqrt9_10 * L2 * fkr.S;
206  double b = kSqrt5_2 * L2 * fkr.C;
207 
208  fAmpl.fMinus1 = -k3_Sqrt5 * LTm + kSqrt5_2 * L2 * fkr.Rminus;
209  fAmpl.fPlus1 = -k3_Sqrt5 * LTp + kSqrt5_2 * L2 * fkr.Rplus;
210  fAmpl.fMinus3 = -kSqrt18_5 * LTm;
211  fAmpl.fPlus3 = -kSqrt18_5 * LTp;
212  fAmpl.f0Minus = a - b;
213  fAmpl.f0Plus = a + b;
214  break;
215  }
216  case (kP31_1910) :
217  {
218  double L2 = TMath::Power(fkr.Lamda, 2);
219 
220  fAmpl.fMinus1 = k1_Sqrt15 * L2 * fkr.Rminus;
221  fAmpl.fPlus1 = k1_Sqrt15 * L2 * fkr.Rplus;
222  fAmpl.fMinus3 = 0;
223  fAmpl.fPlus3 = 0;
224  fAmpl.f0Minus = k2_Sqrt15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
225  fAmpl.f0Plus = -1.* fAmpl.f0Minus;
226  break;
227  }
228  case (kP33_1920) :
229  {
230  double L2 = TMath::Power(fkr.Lamda, 2);
231  double L2Rm = L2 * fkr.Rminus;
232  double L2Rp = L2 * fkr.Rplus;
233 
234  fAmpl.fMinus1 = -k1_Sqrt15 * L2Rm;
235  fAmpl.fPlus1 = k1_Sqrt15 * L2Rp;
236  fAmpl.fMinus3 = k1_Sqrt5 * L2Rm;
237  fAmpl.fPlus3 = -k1_Sqrt5 * L2Rp;
238  fAmpl.f0Minus = k2_Sqrt15 * (L2 * fkr.C - 5 * fkr.Lamda * fkr.B);
240  break;
241  }
242  case (kF35_1905) :
243  {
244  double L2 = TMath::Power(fkr.Lamda, 2);
245  double L2Rm = L2 * fkr.Rminus;
246  double L2Rp = L2 * fkr.Rplus;
247 
248  fAmpl.fMinus1 = -k1_Sqrt35 * L2Rm;
249  fAmpl.fPlus1 = -k1_Sqrt35 * L2Rp;
250  fAmpl.fMinus3 = -kSqrt18_35 * L2Rm;
251  fAmpl.fPlus3 = -kSqrt18_35 * L2Rp;
252  fAmpl.f0Minus = -k2_Sqrt35 * L2 * fkr.C;
253  fAmpl.f0Plus = -1.* fAmpl.f0Minus;
254  break;
255  }
256  case (kF37_1950) :
257  {
258  double L2 = TMath::Power(fkr.Lamda, 2);
259  double L2Rm = L2 * fkr.Rminus;
260  double L2Rp = L2 * fkr.Rplus;
261 
262  fAmpl.fMinus1 = kSqrt6_35 * L2Rm;
263  fAmpl.fPlus1 = -kSqrt6_35 * L2Rp;
264  fAmpl.fMinus3 = kSqrt2_7 * L2Rm;
265  fAmpl.fPlus3 = -kSqrt2_7 * L2Rp;
266  fAmpl.f0Minus = -kSqrt24_35 * L2 * fkr.C;
268  break;
269  }
270  case (kP11_1710) :
271  {
272  double L2 = TMath::Power(fkr.Lamda, 2);
273  double a = kSqrt3_2 * L2 * fkr.S;
274  double b = kSqrt2_3 * (L2 * fkr.C - 2 * fkr.Lamda * fkr.B);
275 
276  fAmpl.fMinus1 = kSqrt2_3 * L2 * fkr.Rminus;
277  fAmpl.fPlus1 = kSqrt2_3 * L2 * fkr.Rplus;
278  fAmpl.fMinus3 = 0;
279  fAmpl.fPlus3 = 0;
280  fAmpl.f0Minus = a - b;
281  fAmpl.f0Plus = a + b;
282  break;
283  }
284  case (kF17_1970) :
285  {
286  double L2 = TMath::Power(fkr.Lamda, 2);
287  double L2Rm = L2 * fkr.Rminus;
288  double L2Rp = L2 * fkr.Rplus;
289 
290  fAmpl.fMinus1 = -kSqrt3_35 * L2Rm;
291  fAmpl.fPlus1 = kSqrt3_35 * L2Rp;
292  fAmpl.fMinus3 = -k1_Sqrt7 * L2Rm;
293  fAmpl.fPlus3 = k1_Sqrt7 * L2Rp;
294  fAmpl.f0Minus = kSqrt6_35 * L2 * fkr.C;
296  break;
297  }
298  default:
299  {
300  LOG("RSHAmpl", pWARN) << "*** UNRECOGNIZED RESONANCE!";
301  fAmpl.fMinus1 = 0.;
302  fAmpl.fPlus1 = 0.;
303  fAmpl.fMinus3 = 0.;
304  fAmpl.fPlus3 = 0.;
305  fAmpl.f0Minus = 0.;
306  fAmpl.f0Plus = 0.;
307  break;
308  }
309 
310  }//switch
311 
312  return fAmpl;
313 }
314 //____________________________________________________________________________
315 
316 
static const double k3_Sqrt10
Definition: Constants.h:154
static const double kSqrt3
Definition: Constants.h:117
static const double kSqrt5_3
Definition: Constants.h:173
Basic constants.
static const double kSqrt2
Definition: Constants.h:116
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
double Rminus
Definition: FKR.h:51
static const double kSqrt2_15
Definition: Constants.h:161
static const double kSqrt6
Definition: Constants.h:120
Simple struct-like class holding the Feynmann-Kislinger-Ravndall (FKR) baryon excitation model parame...
Definition: FKR.h:32
static const double k1_Sqrt5
Definition: Constants.h:138
static const double kSqrt3_4
Definition: Constants.h:163
double Lamda
Definition: FKR.h:38
Definition: config.py:1
static const double k1_Sqrt3
Definition: Constants.h:137
static const double k1_Sqrt6
Definition: Constants.h:139
enum genie::EResonance Resonance_t
static const double kSqrt9_10
Definition: Constants.h:178
const RSHelicityAmpl & Compute(Resonance_t res, const FKR &fkr) const
static const double k3_Sqrt2
Definition: Constants.h:152
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:97
static const double kSqrt24_35
Definition: Constants.h:183
const double a
static const double kSqrt2_7
Definition: Constants.h:160
static const double kSqrt3_35
Definition: Constants.h:169
static const double k1_Sqrt35
Definition: Constants.h:145
Float_t d
Definition: plot.C:236
static const double kSqrt3_10
Definition: Constants.h:166
Pure abstract base class. Defines the RSHelicityAmplModelI interface.
static const double kSqrt3_5
Definition: Constants.h:164
static const double kSqrt3_2
Definition: Constants.h:162
#define pWARN
Definition: Messenger.h:61
static const double k1_Sqrt15
Definition: Constants.h:142
static const double kSqrt5_2
Definition: Constants.h:172
double C
Definition: FKR.h:45
double Tplus
Definition: FKR.h:48
double B
Definition: FKR.h:44
static const double k3_Sqrt5
Definition: Constants.h:153
double Rplus
Definition: FKR.h:50
static const double kSqrt18_5
Definition: Constants.h:180
static const double kSqrt27_10
Definition: Constants.h:184
double Tminus
Definition: FKR.h:49
static const double kSqrt2_3
Definition: Constants.h:157
const hit & b
Definition: hits.cxx:21
static const double k2_Sqrt15
Definition: Constants.h:150
static const double k2_Sqrt35
Definition: Constants.h:151
static const double kSqrt6_5
Definition: Constants.h:176
static const double k1_Sqrt2
Definition: Constants.h:136
static const double k1_Sqrt30
Definition: Constants.h:144
double S
Definition: FKR.h:41
static const double k1_Sqrt7
Definition: Constants.h:140
static const double kSqrt6_35
Definition: Constants.h:177
static const double kSqrt18_35
Definition: Constants.h:182