JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
RooSpin.cc
Go to the documentation of this file.
1 #include "RooSpin.h"
2 
3 using namespace std;
4 using namespace MELAStreamHelpers;
5 
6 
7 void AnaMelaHelpers::multiplyComplexNumbers(std::vector<Double_t> const& reals, std::vector<Double_t> const& imags, Double_t& resRe, Double_t& resIm){
8  resRe=0; resIm=0;
9  const unsigned int nreals = reals.size();
10  const unsigned int nimags = imags.size();
11  const unsigned int nloops = pow(2, min(nreals, nimags));
12  const unsigned int nterms = max(nreals, nimags);
13 
14  for (unsigned int ic=0; ic<nloops; ic++){
15  Double_t termval=1;
16  unsigned int nimagsused=0;
17  bool doSkip=false;
18  for (unsigned int it=0; it<nterms; it++){
19  unsigned int code = (nreals>=nimags ? 0 : 1);
20  if (it<nloops) code = (ic >> it);
21  if (code%2==1){
22  nimagsused++;
23  termval*=imags.at(it);
24  }
25  else termval*=reals.at(it);
26  if (termval==0.){ doSkip=true; break; }
27  }
28  if (doSkip) continue;
29  if (nimagsused%4==0) resRe += termval;
30  else if (nimagsused%4==1) resIm += termval;
31  else if (nimagsused%4==2) resRe -= termval;
32  else resIm -= termval;
33  }
34 }
35 
36 RooSpin::RooSpin() : RooAbsPdf(),
37 verbosity(TVar::ERROR)
38 {}
39 
41  const char* name, const char* title,
42  modelMeasurables const& _measurables,
43  modelParameters const& _parameters,
44  RooSpin::VdecayType _Vdecay1, RooSpin::VdecayType _Vdecay2,
45  TVar::VerbosityLevel verbosity_
46 ) : RooAbsPdf(name, title),
47 
48 h1("h1", "h1", this),
49 h2("h2", "h2", this),
50 Phi("Phi", "Phi", this),
51 m1("m1", "m1", this),
52 m2("m2", "m2", this),
53 m12("m12", "m12", this),
54 hs("hs", "hs", this),
55 Phi1("Phi1", "Phi1", this),
56 Y("Y", "Y", this),
57 
58 mX("mX", "mX", this, (RooAbsReal&)*(_parameters.mX)),
59 gamX("gamX", "gamX", this, (RooAbsReal&)*(_parameters.gamX)),
60 mW("mW", "mW", this, (RooAbsReal&)*(_parameters.mW)),
61 gamW("gamW", "gamW", this, (RooAbsReal&)*(_parameters.gamW)),
62 mZ("mZ", "mZ", this, (RooAbsReal&)*(_parameters.mZ)),
63 gamZ("gamZ", "gamZ", this, (RooAbsReal&)*(_parameters.gamZ)),
64 mWprime("mWprime", "mWprime", this, (RooAbsReal&)*(_parameters.mWprime)),
65 gamWprime("gamWprime", "gamWprime", this, (RooAbsReal&)*(_parameters.gamWprime)),
66 mZprime("mZprime", "mZprime", this, (RooAbsReal&)*(_parameters.mZprime)),
67 gamZprime("gamZprime", "gamZprime", this, (RooAbsReal&)*(_parameters.gamZprime)),
68 Sin2ThetaW("Sin2ThetaW", "Sin2ThetaW", this, (RooAbsReal&)*(_parameters.Sin2ThetaW)),
69 vev("vev", "vev", this, (RooAbsReal&)*(_parameters.vev)),
70 gVprimeff_decay1_left("gVprimeff_decay1_left", "gVprimeff_decay1_left", this, (RooAbsReal&)*(_parameters.gVprimeff_decay1_left)),
71 gVprimeff_decay1_right("gVprimeff_decay1_right", "gVprimeff_decay1_right", this, (RooAbsReal&)*(_parameters.gVprimeff_decay1_right)),
72 gVprimeff_decay2_left("gVprimeff_decay2_left", "gVprimeff_decay2_left", this, (RooAbsReal&)*(_parameters.gVprimeff_decay2_left)),
73 gVprimeff_decay2_right("gVprimeff_decay2_right", "gVprimeff_decay2_right", this, (RooAbsReal&)*(_parameters.gVprimeff_decay2_right)),
74 
75 
76 Vdecay1(_Vdecay1), Vdecay2(_Vdecay2),
77 intCodeStart(1),
78 
79 verbosity(verbosity_)
80 {
81  setProxies(_measurables);
82 }
83 
84 RooSpin::RooSpin(const RooSpin& other, const char* name) :
85  RooAbsPdf(other, name),
86 
87  h1("h1", this, other.h1),
88  h2("h2", this, other.h2),
89  Phi("Phi", this, other.Phi),
90  m1("m1", this, other.m1),
91  m2("m2", this, other.m2),
92  m12("m12", this, other.m12),
93  hs("hs", this, other.hs),
94  Phi1("Phi1", this, other.Phi1),
95  Y("Y", this, other.Y),
96 
97  mX("mX", this, other.mX),
98  gamX("gamX", this, other.gamX),
99  mW("mW", this, other.mW),
100  gamW("gamW", this, other.gamW),
101  mZ("mZ", this, other.mZ),
102  gamZ("gamZ", this, other.gamZ),
103  mWprime("mWprime", this, other.mWprime),
104  gamWprime("gamWprime", this, other.gamWprime),
105  mZprime("mZprime", this, other.mZprime),
106  gamZprime("gamZprime", this, other.gamZprime),
107  Sin2ThetaW("Sin2ThetaW", this, other.Sin2ThetaW),
108  vev("vev", this, other.vev),
109  gVprimeff_decay1_left("gVprimeff_decay1_left", this, other.gVprimeff_decay1_left),
110  gVprimeff_decay1_right("gVprimeff_decay1_right", this, other.gVprimeff_decay1_right),
111  gVprimeff_decay2_left("gVprimeff_decay2_left", this, other.gVprimeff_decay2_left),
112  gVprimeff_decay2_right("gVprimeff_decay2_right", this, other.gVprimeff_decay2_right),
113 
114  Vdecay1(other.Vdecay1), Vdecay2(other.Vdecay2),
115  intCodeStart(other.intCodeStart),
116 
117  verbosity(other.verbosity)
118 {}
119 
120 void RooSpin::alwaysIntegrate(Int_t code){
121  intCodeStart=1;
122  if (code%prime_h1==0)intCodeStart *= prime_h1;
123  if (code%prime_h2==0)intCodeStart *= prime_h2;
124  if (code%prime_hs==0)intCodeStart *= prime_hs;
125  if (code%prime_Phi==0)intCodeStart *= prime_Phi;
126  if (code%prime_Phi1==0)intCodeStart *= prime_Phi1;
127  if (code%prime_m1==0)intCodeStart *= prime_m1;
128  if (code%prime_m2==0)intCodeStart *= prime_m2;
129  if (code%prime_m12==0)intCodeStart *= prime_m12;
130  if (code%prime_Y==0)intCodeStart *= prime_Y;
131 }
132 
133 void RooSpin::calculatePropagator(Double_t& propRe, Double_t& propIm, Double_t mass, Int_t propType)const{
134  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculatePropagator: Calling propagator with type " << propType << " and mass " << mass << endl;
135  // prop = -i / ((m**2-mV**2) + i*mV*GaV) = - ( mV*GaV + i*(m**2-mV**2) ) / ((m**2-mV**2)**2 + (mV*GaV)**2)
136  if (propType==0){ // Photon
137  propRe = 0.;
138  propIm = (mass!=0. ? -1./pow(mass, 2) : 0.);
139  propIm *= pow(GeVunit, -2);
140  }
141  else if (propType==1){ // Massive vector boson
142  Double_t mV, gamV;
143  getMVGamV(&mV, &gamV);
144  if (gamV>0){
145  Double_t denominator = pow(mV*gamV, 2)+pow(pow(mass, 2)-pow(mV, 2), 2);
146  propRe = -mV*gamV/denominator;
147  propIm = -(pow(mass, 2)-pow(mV, 2))/denominator;
148  propRe *= pow(GeVunit, -2);
149  propIm *= pow(GeVunit, -2);
150  }
151  else{
152  propRe = (mass==mV ? 1. : 0.);
153  propIm = 0.;
154  }
155  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculatePropagator: mV / gamV = " << mV << " / " << gamV << endl;
156  }
157  else if (propType==2){ // Higgs prop = i / ((m**2-mX**2) + i*mX*GaX) = - ( mX*GaX + i*(m**2-mX**2) ) / ((m**2-mX**2)**2 + (mX*GaX)**2)
158  if (gamX>0.){
159  Double_t denominator = pow(mX*gamX, 2)+pow(pow(mass, 2)-pow(mX, 2), 2);
160  propRe = mX*gamX/denominator;
161  propIm = (pow(mass, 2)-pow(mX, 2))/denominator;
162  propRe *= pow(GeVunit, -2);
163  propIm *= pow(GeVunit, -2);
164  }
165  else{
166  propRe = (mass==mX ? 1. : 0.);
167  propIm = 0.;
168  }
169  }
170  else if (propType==3){ // Massive vector boson Vprime
171  Double_t mV, gamV;
172  getMVprimeGamVprime(&mV, &gamV);
173  if (gamV>=0. && mV>=0.){
174  Double_t denominator = pow(mV*gamV, 2)+pow(pow(mass, 2)-pow(mV, 2), 2);
175  propRe = -mV*gamV/denominator;
176  propIm = -(pow(mass, 2)-pow(mV, 2))/denominator;
177  propRe *= pow(GeVunit, -2);
178  propIm *= pow(GeVunit, -2);
179  }
180  else if (mV<0.){
181  getMVGamV(&mV, &gamV);
182  calculatePropagator(propRe, propIm, mV, 0);
183  }
184  else{
185  propRe = 0;
186  propIm = 0;
187  }
188  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculatePropagator: mV / gamV = " << mV << " / " << gamV << endl;
189  }
190  else{
191  propRe = 1.;
192  propIm = 0.;
193  }
194  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculatePropagator: Final propagator = " << propRe << ", " << propIm << endl;
195 }
196 void RooSpin::calculateVffGVGA(Double_t& gV, Double_t& gA, RooSpin::VdecayType Vdecay, bool isGamma)const{
197  const Double_t atomicT3 = 0.5;
198  const Double_t atomicCharge = 1.;
199 
200  const Double_t gW = 2.*mW/vev;
201  const Double_t overallFactorZ = gW*0.5/sqrt(1.-Sin2ThetaW); // i*g/(2*cos(thetaW))
202  const Double_t overallFactorGamma = -gW*sqrt(Sin2ThetaW); // -i*e*Qf
203  const Double_t overallFactorW = gW*0.5/sqrt(2.); // i*g/(2*sqrt(2))
204 
205  const Double_t Q_up = 2.*atomicCharge/3.;
206  const Double_t Q_dn = -atomicCharge/3.;
207  const Double_t Q_l = -atomicCharge;
208  const Double_t Q_nu = 0;
209 
210  // gV = T3 - 2*Qf*sintW**2
211  const Double_t gV_up = atomicT3 - 2.*Q_up*Sin2ThetaW; // ~0.19
212  const Double_t gV_dn = -atomicT3 - 2.*Q_dn*Sin2ThetaW; // ~-0.35
213  const Double_t gV_l = -atomicT3 - 2.*Q_l*Sin2ThetaW;
214  const Double_t gV_nu = atomicT3 - 2.*Q_nu*Sin2ThetaW;
215 
216  // gA = T3
217  const Double_t gA_up = atomicT3;
218  const Double_t gA_dn = -atomicT3;
219  const Double_t gA_l = -atomicT3;
220  const Double_t gA_nu = atomicT3;
221 
222  if (Vdecay==RooSpin::kVdecayType_Zud){
223  if (!isGamma){
224  double yy_up = pow(gV_up, 2) + pow(gA_up, 2);
225  double yy_dn = pow(gV_dn, 2) + pow(gA_dn, 2);
226  double xx_up = gV_up*gA_up;
227  double xx_dn = gV_dn*gA_dn;
228  double yy = (2.*yy_up+3.*yy_dn)/5.;
229  double xx = (2.*xx_up+3.*xx_dn)/5.;
230  double discriminant = pow(yy, 2)-4.*pow(xx, 2);
231  gV = (yy+sqrt(fabs(discriminant)))/2.;
232  gA = pow(xx, 2)/gV;
233  gV = -overallFactorZ*sqrt(gV); // ~-0.28
234  gA = -overallFactorZ*sqrt(gA); // ~-0.5
235  }
236  else{
237  gV = overallFactorGamma*sqrt((2.*pow(Q_up, 2) + 3.*pow(Q_dn, 2))/5.);
238  gA = 0;
239  }
240  }
241  else if (Vdecay==RooSpin::kVdecayType_Zdd){
242  if (!isGamma){
243  gV = overallFactorZ*gV_dn;
244  gA = overallFactorZ*gA_dn;
245  }
246  else{
247  gV = overallFactorGamma*Q_dn;
248  gA = 0;
249  }
250  }
251  else if (Vdecay==RooSpin::kVdecayType_Zuu){
252  if (!isGamma){
253  gV = overallFactorZ*gV_up;
254  gA = overallFactorZ*gA_up;
255  }
256  else{
257  gV = overallFactorGamma*Q_up;
258  gA = 0;
259  }
260  }
261  else if (Vdecay==RooSpin::kVdecayType_Znn){
262  if (!isGamma){
263  gV = overallFactorZ*gV_nu;
264  gA = overallFactorZ*gA_nu;
265  }
266  else{
267  gV = overallFactorGamma*Q_nu;
268  gA = 0;
269  }
270  }
271  else if (Vdecay==RooSpin::kVdecayType_Zll){
272  if (!isGamma){
273  gV = overallFactorZ*gV_l;
274  gA = overallFactorZ*gA_l;
275  }
276  else{
277  gV = overallFactorGamma*Q_l;
278  gA = 0;
279  }
280  }
281  else if (Vdecay==RooSpin::kVdecayType_Wany){
282  if (!isGamma){
283  gV = overallFactorW;
284  gA = overallFactorW;
285  }
286  else{
287  gV = 0;
288  gA = 0;
289  }
290  }
291  else{
292  gV = 1;
293  gA = 0;
294  }
295  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculateVffGVGA( " << gV << " , " << gA << " , " << Vdecay << " , " << isGamma << " )" << endl;
296 }
297 void RooSpin::calculateVffR1R2(Double_t& R1Val, Double_t& R2Val, bool isGammaV1, bool isGammaV2)const{
298  R1Val=0; R2Val=0;
299  Double_t gV1=0, gV2=0, gA1=0, gA2=0;
300  calculateVffGVGA(gV1, gA1, Vdecay1, isGammaV1);
301  if (gV1!=0. || gA1!=0.) R1Val = 2.*gV1*gA1/(pow(gV1, 2) + pow(gA1, 2));
302  calculateVffGVGA(gV2, gA2, Vdecay2, isGammaV2);
303  if (gV2!=0. || gA2!=0.) R2Val = 2.*gV2*gA2/(pow(gV2, 2) + pow(gA2, 2));
304 }
305 void RooSpin::getMVGamV(Double_t* mV, Double_t* gamV)const{
307  if (mV!=0) (*mV)=mW;
308  if (gamV!=0) (*gamV)=gamW;
309  }
311  if (mV!=0) (*mV)=mZ;
312  if (gamV!=0) (*gamV)=gamZ;
313  }
314  else{
315  if (mV!=0) (*mV)=0;
316  if (gamV!=0) (*gamV)=0;
317  }
318 }
319 
320 void RooSpin::calculateVprimeffGVGA(Double_t& gV, Double_t& gA, int whichVprime/*1 or 2*/) const{
321  const Double_t gW = 2.*mW/vev;
322  const Double_t overallFactor = gW*0.5/sqrt(1.-Sin2ThetaW);
323 
324  Double_t gL=0, gR=0;
325  switch (whichVprime){
326  case 1:
329  break;
330  case 2:
333  break;
334  default:
335  break;
336  };
337 
338  gV=(gL+gR)/2.*overallFactor;
339  gA=(gL-gR)/2.*overallFactor;
340 
341  if (verbosity>=TVar::DEBUG) MELAout << "RooSpin::calculateVprimeffGVGA( " << gV << " , " << gA << " , " << whichVprime << " )" << endl;
342 }
343 void RooSpin::calculateVprimeffR1R2(Double_t& R1Val, Double_t& R2Val) const{
344  R1Val=0; R2Val=0;
345  Double_t gV1=0, gV2=0, gA1=0, gA2=0;
346  calculateVprimeffGVGA(gV1, gA1, 1);
347  if (gV1!=0. || gA1!=0.) R1Val = 2.*gV1*gA1/(pow(gV1, 2) + pow(gA1, 2));
348  calculateVprimeffGVGA(gV2, gA2, 2);
349  if (gV2!=0. || gA2!=0.) R2Val = 2.*gV2*gA2/(pow(gV2, 2) + pow(gA2, 2));
350 }
351 void RooSpin::getMVprimeGamVprime(Double_t* mV, Double_t* gamV)const{
353  if (mV!=0) (*mV)=mWprime;
354  if (gamV!=0) (*gamV)=gamWprime;
355  }
357  if (mV!=0) (*mV)=mZprime;
358  if (gamV!=0) (*gamV)=gamZprime;
359  }
360  else{
361  if (mV!=0) (*mV)=0;
362  if (gamV!=0) (*gamV)=0;
363  }
364 }
365 
366 Double_t RooSpin::calculateAmplitudeScale(int VGammaVpmode1, int VGammaVpmode2)const{
367  Double_t gV1=0, gV2=0, gA1=0, gA2=0;
368  if (VGammaVpmode1<2) calculateVffGVGA(gV1, gA1, Vdecay1, (VGammaVpmode1==1));
369  else calculateVprimeffR1R2(gV1, gA1);
370  if (VGammaVpmode2<2) calculateVffGVGA(gV2, gA2, Vdecay2, (VGammaVpmode2==1));
371  else calculateVprimeffR1R2(gV2, gA2);
372  Double_t ampScale = sqrt((pow(gV1, 2) + pow(gA1, 2))*(pow(gV2, 2) + pow(gA2, 2)));
373  return ampScale;
374 }
375 
376 void RooSpin::setVerbosity(TVar::VerbosityLevel verbosity_){ this->verbosity=verbosity_; }
377 
379  setProxy(h1, (RooAbsReal*) _measurables.h1);
380  setProxy(h2, (RooAbsReal*) _measurables.h2);
381  setProxy(Phi, (RooAbsReal*) _measurables.Phi);
382  setProxy(m1, (RooAbsReal*) _measurables.m1);
383  setProxy(m2, (RooAbsReal*) _measurables.m2);
384  setProxy(m12, (RooAbsReal*) _measurables.m12);
385  setProxy(hs, (RooAbsReal*) _measurables.hs);
386  setProxy(Phi1, (RooAbsReal*) _measurables.Phi1);
387  setProxy(Y, (RooAbsReal*) _measurables.Y);
388 }
389 void RooSpin::setProxy(RooRealProxy& proxy, RooAbsReal* objectPtr){
390  if (objectPtr!=0) proxy.setArg((RooAbsReal&) *objectPtr);
391 }
392 Bool_t RooSpin::checkFundamentalType(const RooRealProxy& proxy)const{
393  RooAbsArg* arg = proxy.absArg();
394  return (dynamic_cast<RooRealVar*>(arg)!=0);
395 }
396 
398  MELAout << "mX: " << mX << endl;
399  MELAout << "gamX: " << gamX << endl;
400  MELAout << "mW: " << mW << endl;
401  MELAout << "gamW: " << gamW << endl;
402  MELAout << "mZ: " << mZ << endl;
403  MELAout << "gamZ: " << gamZ << endl;
404  MELAout << "mWprime: " << mWprime << endl;
405  MELAout << "gamWprime: " << gamWprime << endl;
406  MELAout << "mZprime: " << mZprime << endl;
407  MELAout << "gamZprime: " << gamZprime << endl;
408  MELAout << "Sin2ThetaW: " << Sin2ThetaW << endl;
409  MELAout << "vev: " << vev << endl;
410  MELAout << "gVprimeff_decay1_left: " << gVprimeff_decay1_left << endl;
411  MELAout << "gVprimeff_decay1_right: " << gVprimeff_decay1_right << endl;
412  MELAout << "gVprimeff_decay2_left: " << gVprimeff_decay2_left << endl;
413  MELAout << "gVprimeff_decay2_right: " << gVprimeff_decay2_right << endl;
414 }
TVar::ERROR
@ ERROR
Definition: TVar.hh:49
anonymous_namespace{test_JVBF.c}::gamZ
const float gamZ
Definition: test_JVBF.c:34
RooSpin::modelMeasurables::h2
RooAbsReal * h2
Definition: RooSpin.h:52
RooSpin::calculateAmplitudeScale
virtual Double_t calculateAmplitudeScale(int VGammaVpmode1=0, int VGammaVpmode2=0) const
Definition: RooSpin.cc:366
RooSpin::vev
RooRealProxy vev
Definition: RooSpin.h:129
modparameters::vev
real(8), public vev
Definition: mod_Parameters.F90:249
RooSpin::printParameters
virtual void printParameters() const
Definition: RooSpin.cc:397
RooSpin::kVdecayType_Zll
@ kVdecayType_Zll
Definition: RooSpin.h:31
RooSpin::setVerbosity
void setVerbosity(TVar::VerbosityLevel verbosity_)
Definition: RooSpin.cc:376
RooSpin::modelMeasurables::Y
RooAbsReal * Y
Definition: RooSpin.h:59
RooSpin::Phi
RooRealProxy Phi
Definition: RooSpin.h:110
TVar::VerbosityLevel
VerbosityLevel
Definition: TVar.hh:47
RooSpin::prime_m2
@ prime_m2
Definition: RooSpin.h:45
RooSpin::setProxy
virtual void setProxy(RooRealProxy &proxy, RooAbsReal *objectPtr)
Definition: RooSpin.cc:389
RooSpin::modelMeasurables::Phi1
RooAbsReal * Phi1
Definition: RooSpin.h:55
RooSpin::calculateVffGVGA
virtual void calculateVffGVGA(Double_t &gV, Double_t &gA, RooSpin::VdecayType Vdecay, bool isGamma=false) const
Definition: RooSpin.cc:196
RooSpin::kVdecayType_Zdd
@ kVdecayType_Zdd
Definition: RooSpin.h:34
RooSpin::kVdecayType_Zuu
@ kVdecayType_Zuu
Definition: RooSpin.h:33
RooSpin::m12
RooRealProxy m12
Definition: RooSpin.h:113
RooSpin::prime_h1
@ prime_h1
Definition: RooSpin.h:39
RooSpin::prime_Phi
@ prime_Phi
Definition: RooSpin.h:42
RooSpin::modelMeasurables::m12
RooAbsReal * m12
Definition: RooSpin.h:58
RooSpin::calculatePropagator
virtual void calculatePropagator(Double_t &propRe, Double_t &propIm, Double_t mass, Int_t propType=1) const
Definition: RooSpin.cc:133
RooSpin::getMVprimeGamVprime
virtual void getMVprimeGamVprime(Double_t *mV=0, Double_t *gamV=0) const
Definition: RooSpin.cc:351
RooSpin::Sin2ThetaW
RooRealProxy Sin2ThetaW
Definition: RooSpin.h:128
RooSpin::modelMeasurables::m1
RooAbsReal * m1
Definition: RooSpin.h:56
TVar
Definition: TVar.hh:28
RooSpin::prime_m12
@ prime_m12
Definition: RooSpin.h:46
RooSpin::prime_Phi1
@ prime_Phi1
Definition: RooSpin.h:43
RooSpin::m1
RooRealProxy m1
Definition: RooSpin.h:111
RooSpin::mX
RooRealProxy mX
Definition: RooSpin.h:118
RooSpin::mZ
RooRealProxy mZ
Definition: RooSpin.h:122
AnaMelaHelpers::multiplyComplexNumbers
void multiplyComplexNumbers(std::vector< Double_t > const &reals, std::vector< Double_t > const &imags, Double_t &resRe, Double_t &resIm)
Definition: RooSpin.cc:7
RooSpin::calculateVprimeffR1R2
virtual void calculateVprimeffR1R2(Double_t &R1Val, Double_t &R2Val) const
Definition: RooSpin.cc:343
MELAStreamHelpers::MELAout
MELAOutputStreamer MELAout
RooSpin::checkFundamentalType
virtual Bool_t checkFundamentalType(const RooRealProxy &proxy) const
Definition: RooSpin.cc:392
RooSpin::gVprimeff_decay2_right
RooRealProxy gVprimeff_decay2_right
Definition: RooSpin.h:133
RooSpin::verbosity
TVar::VerbosityLevel verbosity
Definition: RooSpin.h:139
RooSpin::calculateVprimeffGVGA
virtual void calculateVprimeffGVGA(Double_t &gV, Double_t &gA, int whichVprime) const
Definition: RooSpin.cc:320
RooSpin::gamZ
RooRealProxy gamZ
Definition: RooSpin.h:123
RooSpin::Y
RooRealProxy Y
Definition: RooSpin.h:116
RooSpin::Vdecay2
RooSpin::VdecayType Vdecay2
Definition: RooSpin.h:136
RooSpin::intCodeStart
Int_t intCodeStart
Definition: RooSpin.h:138
RooSpin::kVdecayType_GammaOnshell
@ kVdecayType_GammaOnshell
Definition: RooSpin.h:30
RooSpin::mWprime
RooRealProxy mWprime
Definition: RooSpin.h:124
RooSpin::modelMeasurables::Phi
RooAbsReal * Phi
Definition: RooSpin.h:54
RooSpin::prime_h2
@ prime_h2
Definition: RooSpin.h:40
RooSpin
Definition: RooSpin.h:25
RooSpin.h
RooSpin::RooSpin
RooSpin()
Definition: RooSpin.cc:36
RooSpin::modelMeasurables::m2
RooAbsReal * m2
Definition: RooSpin.h:57
RooSpin::mZprime
RooRealProxy mZprime
Definition: RooSpin.h:126
RooSpin::modelMeasurables::h1
RooAbsReal * h1
Definition: RooSpin.h:51
RooSpin::m2
RooRealProxy m2
Definition: RooSpin.h:112
RooSpin::h2
RooRealProxy h2
Definition: RooSpin.h:109
RooSpin::gVprimeff_decay1_right
RooRealProxy gVprimeff_decay1_right
Definition: RooSpin.h:131
RooSpin::gamWprime
RooRealProxy gamWprime
Definition: RooSpin.h:125
RooSpin::kVdecayType_Znn
@ kVdecayType_Znn
Definition: RooSpin.h:32
RooSpin::gamW
RooRealProxy gamW
Definition: RooSpin.h:121
RooSpin::kVdecayType_Zud
@ kVdecayType_Zud
Definition: RooSpin.h:35
RooSpin::mW
RooRealProxy mW
Definition: RooSpin.h:120
RooSpin::hs
RooRealProxy hs
Definition: RooSpin.h:114
MELAStreamHelpers
Definition: MELAStreamHelpers.hh:7
RooSpin::gVprimeff_decay1_left
RooRealProxy gVprimeff_decay1_left
Definition: RooSpin.h:130
RooSpin::GeVunit
static constexpr Double_t GeVunit
Definition: RooSpin.h:141
RooSpin::getMVGamV
virtual void getMVGamV(Double_t *mV=0, Double_t *gamV=0) const
Definition: RooSpin.cc:305
RooSpin::gVprimeff_decay2_left
RooRealProxy gVprimeff_decay2_left
Definition: RooSpin.h:132
TVar::DEBUG
@ DEBUG
Definition: TVar.hh:51
RooSpin::setProxies
virtual void setProxies(modelMeasurables _measurables)
Definition: RooSpin.cc:378
RooSpin::alwaysIntegrate
virtual void alwaysIntegrate(Int_t code=1)
Definition: RooSpin.cc:120
RooSpin::prime_Y
@ prime_Y
Definition: RooSpin.h:47
RooSpin::Vdecay1
RooSpin::VdecayType Vdecay1
Definition: RooSpin.h:135
RooSpin::kVdecayType_Wany
@ kVdecayType_Wany
Definition: RooSpin.h:29
RooSpin::modelMeasurables
Definition: RooSpin.h:50
RooSpin::h1
RooRealProxy h1
Definition: RooSpin.h:108
RooSpin::prime_m1
@ prime_m1
Definition: RooSpin.h:44
RooSpin::modelParameters
Definition: RooSpin.h:61
RooSpin::modelMeasurables::hs
RooAbsReal * hs
Definition: RooSpin.h:53
RooSpin::gamZprime
RooRealProxy gamZprime
Definition: RooSpin.h:127
RooSpin::calculateVffR1R2
virtual void calculateVffR1R2(Double_t &R1Val, Double_t &R2Val, bool isGammaV1=false, bool isGammaV2=false) const
Definition: RooSpin.cc:297
RooSpin::VdecayType
VdecayType
Definition: RooSpin.h:28
RooSpin::gamX
RooRealProxy gamX
Definition: RooSpin.h:119
RooSpin::prime_hs
@ prime_hs
Definition: RooSpin.h:41
RooSpin::Phi1
RooRealProxy Phi1
Definition: RooSpin.h:115