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.
RooSpinOne_7D.cc
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * *
4  * This code was autogenerated by RooClassFactory *
5  *****************************************************************************/
6 
7  // Your description goes here...
8 
9 #include "RooSpinOne_7D.h"
10 #include "Riostream.h"
11 #include "RooAbsReal.h"
12 #include "RooAbsCategory.h"
13 #include <math.h>
14 #include "TMath.h"
15 
16 using namespace TMath;
17 
18 // ClassImp(RooSpinOne_7D)
19 
21  const char *name, const char *title,
22  RooAbsReal& _mzz,
23  RooAbsReal& _m1,
24  RooAbsReal& _m2,
25  RooAbsReal& _h1,
26  RooAbsReal& _h2,
27  RooAbsReal& _hs,
28  RooAbsReal& _Phi,
29  RooAbsReal& _Phi1,
30  RooAbsReal& _g1Val,
31  RooAbsReal& _g2Val,
32  RooAbsReal& _R1Val,
33  RooAbsReal& _R2Val,
34  RooAbsReal& _aParam,
35  RooAbsReal& _mZ,
36  RooAbsReal& _gamZ) :
37  RooAbsPdf(name, title),
38  mzz("mzz", "mzz", this, _mzz),
39  m1("m1", "m1", this, _m1),
40  m2("m2", "m2", this, _m2),
41  h1("h1", "h1", this, _h1),
42  h2("h2", "h2", this, _h2),
43  hs("hs", "hs", this, _hs),
44  Phi("Phi", "Phi", this, _Phi),
45  Phi1("Phi1", "Phi1", this, _Phi1),
46  g1Val("g1Val", "g1Val", this, _g1Val),
47  g2Val("g2Val", "g2Val", this, _g2Val),
48  R1Val("R1Val", "R1Val", this, _R1Val),
49  R2Val("R2Val", "R2Val", this, _R2Val),
50  aParam("aParam", "aParam", this, _aParam),
51  mZ("mZ", "mZ", this, _mZ),
52  gamZ("gamZ", "gamZ", this, _gamZ),
53  ZZ4fOrdering(true)
54 {}
55 
56 
57 RooSpinOne_7D::RooSpinOne_7D(const RooSpinOne_7D& other, const char* name) :
58 RooAbsPdf(other, name),
59 mzz("mzz", this, other.mzz),
60 m1("m1", this, other.m1),
61 m2("m2", this, other.m2),
62 h1("h1", this, other.h1),
63 h2("h2", this, other.h2),
64 hs("hs", this, other.hs),
65 Phi("Phi", this, other.Phi),
66 Phi1("Phi1", this, other.Phi1),
67 g1Val("g1Val", this, other.g1Val),
68 g2Val("g2Val", this, other.g2Val),
69 R1Val("R1Val", this, other.R1Val),
70 R2Val("R2Val", this, other.R2Val),
71 aParam("aParam", this, other.aParam),
72 mZ("mZ", this, other.mZ),
73 gamZ("gamZ", this, other.gamZ),
74 ZZ4fOrdering(other.ZZ4fOrdering)
75 {}
76 
77 
78 Double_t RooSpinOne_7D::evaluate() const
79 {
80 
81 
82  bool isZZ = true;
83  if ( mZ < 90.) isZZ = false;
84  if ( isZZ ) {
85  if( (m1+m2) > mzz || m2>m1 ) return 1e-9;
86  } else {
87  if( (m1+m2) > mzz ) return 1e-9;
88  }
89  double nanval = sqrt((1 - TMath::Power(m1 - m2,2)/TMath::Power(mzz,2))*(1 - TMath::Power(m1 + m2,2)/TMath::Power(mzz,2)));
90  if (nanval != nanval) return 1e-9;
91 
92  //-----------------------------------------------------------------------
93  // propagator
94  //-----------------------------------------------------------------------
95 
96  Double_t betaValSquared = (1.-(pow(m1-m2,2)/pow(mzz,2)))*(1.-(pow(m1+m2,2)/pow(mzz,2)));
97  Double_t betaVal = sqrt(betaValSquared);
98 
99  Double_t term1Coeff = (pow(m1,3))/( (pow(m1,2)-pow(mZ,2))*(pow(m1,2)-pow(mZ,2))+pow(mZ,2)*pow(gamZ,2) );
100  Double_t term2Coeff = (pow(m2,3))/( (pow(m2,2)-pow(mZ,2))*(pow(m2,2)-pow(mZ,2))+pow(mZ,2)*pow(gamZ,2) );
101 
102  //-----------------------------------------------------------------------
103  // Helicity Amplitudes
104  //-----------------------------------------------------------------------
105 
106  // calculating the angular parameters from the coupling constants
107  // See http://www.pha.jhu.edu/~gritsan/FORM/result_spin1.txt
108  Double_t x = (mzz*mzz-m1*m1-m2*m2)/(2.0*m1*m2);
109 
110  Double_t hs_ = -hs;
111 
112  Double_t f00Real = TMath::Power(mzz,-1)*g1Val*( sqrt(x*x-1) )*(m1*m1-m2*m2);
113  Double_t f00Imag = 0.;
114 
115  Double_t fppReal = 0.;
116  Double_t fppImag = TMath::Power(mzz,-1)*g2Val*(m1*m1-m2*m2);
117 
118  Double_t fmmReal = 0.;
119  Double_t fmmImag = -1. * fppImag;
120 
121 
122  Double_t fp0Real = m1*g1Val * ( sqrt(x*x-1) );
123  Double_t fp0Imag = Power(mzz,-2.)*Power(m2,3)*g2Val * ( - 1./2. )
124  + Power(mzz,-2.)*m1*m1*m2*g2Val * ( 1 + 2*(x*x-1) )
125  + Power(mzz,-2.)*Power(m1,4)*Power(m2,-1)*g2Val * ( - 1./2. )
126  + m2*g2Val * ( - 1./2. )
127  + m1*m1*Power(m2,-1)*g2Val * ( 1./2. );
128 
129 
130  Double_t f0pReal = m2*g1Val * ( - sqrt(x*x-1) );
131  Double_t f0pImag = Power(mzz,-2.)*Power(m1,-1)*Power(m2,4)*g2Val * ( 1./2. )
132  + Power(mzz,-2.)*m1*Power(m2,2)*g2Val * ( - 1 - 2*(x*x-1) )
133  + Power(mzz,-2.)*Power(m1,3)*g2Val * ( 1./2. )
134  + Power(m1,-1)*Power(m2,2)*g2Val * ( - 1./2. )
135  + m1*g2Val * ( 1./2. );
136 
137  Double_t f0mReal = m2*g1Val * ( - sqrt(x*x-1) );
138  Double_t f0mImag = Power(mzz,-2.)*Power(m1,-1)*Power(m2,4)*g2Val * ( - 1./2. )
139  + Power(mzz,-2.)*m1*Power(m2,2)*g2Val * ( 1 + 2*(x*x-1) )
140  + Power(mzz,-2.)*Power(m1,3)*g2Val * ( - 1./2. )
141  + Power(m1,-1)*Power(m2,2)*g2Val * ( 1./2. )
142  + m1*g2Val * ( - 1./2. );
143 
144  Double_t fm0Real = m1*g1Val * ( sqrt(x*x-1) );
145  Double_t fm0Imag = Power(mzz,-2.)*Power(m2,3)*g2Val * ( 1./2. )
146  + Power(mzz,-2.)*m1*m1*m2*g2Val * ( - 1 - 2*(x*x-1) )
147  + Power(mzz,-2.)*Power(m1,4)*Power(m2,-1)*g2Val * ( 1./2. )
148  + m2*g2Val * ( 1./2. )
149  + m1*m1*Power(m2,-1)*g2Val * ( - 1./2. );
150 
151  Double_t f00 = f00Imag*f00Imag + f00Real*f00Real;
152  Double_t fpp = fppImag*fppImag + fppReal*fppReal;
153  Double_t fmm = fmmImag*fmmImag + fmmReal*fmmReal;
154  Double_t fp0 = fp0Imag*fp0Imag + fp0Real*fp0Real;
155  Double_t f0p = f0pImag*f0pImag + f0pReal*f0pReal;
156  Double_t fm0 = fm0Imag*fm0Imag + fm0Real*fm0Real;
157  Double_t f0m = f0mImag*f0mImag + f0mReal*f0mReal;
158 
159  Double_t phi00=atan2(f00Imag,f00Real);
160  Double_t phipp=atan2(fppImag,fppReal)-phi00;
161  Double_t phimm=atan2(fmmImag,fmmReal)-phi00;
162  Double_t phip0=atan2(fp0Imag,fp0Real)-phi00;
163  Double_t phi0p=atan2(f0pImag,f0pReal)-phi00;
164  Double_t phim0=atan2(fm0Imag,fm0Real)-phi00;
165  Double_t phi0m=atan2(f0mImag,f0mReal)-phi00;
166 
167  Double_t value=0;
168 
169  value += -(f00*(-1 + TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*(-1 + TMath::Power(hs_,2)))/8.;
170  value += -(fmm*(-1 + TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) - 2*h1*R1Val)*(1 + TMath::Power(h2,2) - 2*h2*R2Val))/32.;
171  value += -(fpp*(-1 + TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) + 2*h1*R1Val)*(1 + TMath::Power(h2,2) + 2*h2*R2Val))/32.;
172 
173  value += -(fp0*(-1 + TMath::Power(h2,2))*(1 + TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) + 2*h1*R1Val))/32.;
174  value += -(f0m*(-1 + TMath::Power(h1,2))*(1 + TMath::Power(hs_,2))*(1 + TMath::Power(h2,2) - 2*h2*R2Val))/32.;
175  value += -(f0p*(-1 + TMath::Power(h1,2))*(1 + TMath::Power(hs_,2))*(1 + TMath::Power(h2,2) + 2*h2*R2Val))/32.;
176  value += -(fm0*(-1 + TMath::Power(h2,2))*(1 + TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) - 2*h1*R1Val))/32.; // fix
177 
178  value += -(Sqrt(f00)*Sqrt(fmm)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*(-1 + TMath::Power(hs_,2))*(h1 - R1Val)*(h2 - R2Val)*Cos(Phi - phimm))/8.;
179  value += -(Sqrt(f00)*Sqrt(fpp)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*(-1 + TMath::Power(hs_,2))*(h1 + R1Val)*(h2 + R2Val)*Cos(Phi + phipp))/8.;
180  value += (Sqrt(f00)*Sqrt(fp0)*Sqrt(1 - TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 + R1Val)*Cos(Phi1 - phip0))/8.;
181  value += -(Sqrt(f00)*Sqrt(f0m)*(-1 + TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h2 - R2Val)*Cos(Phi - phi0m + Phi1))/8.;
182  value += -(Sqrt(f00)*Sqrt(f0p)*(-1 + TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h2 + R2Val)*Cos(Phi + phi0p + Phi1))/8.;
183  value += (Sqrt(f00)*Sqrt(fm0)*Sqrt(1 - TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 - R1Val)*Cos(Phi1 + phim0))/8.; // fix
184 
185  value += -(Sqrt(fmm)*Sqrt(fpp)*(-1 + TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*(-1 + TMath::Power(hs_,2))*Cos(2*Phi - phimm + phipp))/16.;
186  value += -(Sqrt(fmm)*Sqrt(fp0)*(-1 + TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h2 - R2Val)*Cos(Phi - Phi1 - phimm + phip0))/16.;
187  value += (Sqrt(f0m)*Sqrt(fmm)*Sqrt(1 - TMath::Power(h1,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 - R1Val)*(1 + TMath::Power(h2,2) - 2*h2*R2Val)*Cos(phi0m - Phi1 - phimm))/16.;
188  value += (Sqrt(f0p)*Sqrt(fmm)*Sqrt(1 - TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 - R1Val)*Cos(2*Phi + phi0p + Phi1 - phimm))/16.; // fix
189  value += -(Sqrt(fm0)*Sqrt(fmm)*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) - 2*h1*R1Val)*(h2 - R2Val)*Cos(Phi + Phi1 + phim0 - phimm))/16.;
190  value += -(Sqrt(fp0)*Sqrt(fpp)*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(1 + TMath::Power(h1,2) + 2*h1*R1Val)*(h2 + R2Val)*Cos(Phi + Phi1 - phip0 + phipp))/16.;
191  value += (Sqrt(f0m)*Sqrt(fpp)*Sqrt(1 - TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 + R1Val)*Cos(2*Phi - phi0m + Phi1 + phipp))/16.;
192  value += (Sqrt(f0p)*Sqrt(fpp)*Sqrt(1 - TMath::Power(h1,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h1 + R1Val)*(1 + TMath::Power(h2,2) + 2*h2*R2Val)*Cos(phi0p + Phi1 - phipp))/16.;
193  value += -(Sqrt(fm0)*Sqrt(fpp)*(-1 + TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*hs_*Sqrt(1 - TMath::Power(hs_,2))*(h2 + R2Val)*Cos(Phi - Phi1 - phim0 + phipp))/16.;
194 
195  value += -(Sqrt(f0m)*Sqrt(fp0)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*
196  (1 + TMath::Power(hs_,2))*(h1 + R1Val)*(h2 - R2Val)*Cos(Phi - phi0m + phip0))/16.;
197  value += -(Sqrt(f0p)*Sqrt(fp0)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*
198  (-1 + TMath::Power(hs_,2))*(h1 + R1Val)*(h2 + R2Val)*
199  Cos(Phi + phi0p + 2*Phi1 - phip0))/16.;
200  value += -(Sqrt(fm0)*Sqrt(fp0)*(-1 + TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*
201  (-1 + TMath::Power(hs_,2))*Cos(2*Phi1 + phim0 - phip0))/16.;
202  value += -(Sqrt(f0m)*Sqrt(f0p)*(-1 + TMath::Power(h1,2))*(-1 + TMath::Power(h2,2))*
203  (-1 + TMath::Power(hs_,2))*Cos(2*Phi - phi0m + phi0p + 2*Phi1))/16.;
204  value += -(Sqrt(f0m)*Sqrt(fm0)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*
205  (-1 + TMath::Power(hs_,2))*(h1 - R1Val)*(h2 - R2Val)*
206  Cos(Phi - phi0m + 2*Phi1 + phim0))/16.;
207  value += -(Sqrt(f0p)*Sqrt(fm0)*Sqrt(1 - TMath::Power(h1,2))*Sqrt(1 - TMath::Power(h2,2))*
208  (1 + TMath::Power(hs_,2))*(h1 - R1Val)*(h2 + R2Val)*Cos(Phi + phi0p - phim0))/16.;
209 
210  return value*term1Coeff*term2Coeff*betaVal;
211 
212 }
213 
214 Int_t RooSpinOne_7D::getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* /*rangeName*/) const{
215  if (matchArgs(allVars, analVars, RooArgSet(*hs.absArg(), *h1.absArg(), *h2.absArg(), *Phi.absArg(), *Phi1.absArg()))) return 6;
216  if (matchArgs(allVars, analVars, hs, h1, h2, Phi)) return 5;
217  if (matchArgs(allVars, analVars, hs, h1, h2, Phi1)) return 4;
218  if (matchArgs(allVars, analVars, hs, h1, Phi, Phi1)) return 3;
219  if (matchArgs(allVars, analVars, hs, h2, Phi, Phi1)) return 2;
220  if (matchArgs(allVars, analVars, h1, h2, Phi, Phi1)) return 1;
221  return 0;
222 }
223 
224 Double_t RooSpinOne_7D::analyticalIntegral(Int_t code, const char* rangeName) const{
225  bool isZZ = true;
226  if (mZ < 90.) isZZ = false;
227  if (isZZ) {
228  if ((m1+m2) > mzz || m2>m1) return 1e-9;
229  }
230  else {
231  if ((m1+m2) > mzz) return 1e-9;
232  }
233  double nanval = sqrt((1 - TMath::Power(m1 - m2, 2)/TMath::Power(mzz, 2))*(1 - TMath::Power(m1 + m2, 2)/TMath::Power(mzz, 2)));
234  if (nanval != nanval) return 1e-9;
235 
236  //-----------------------------------------------------------------------
237  // propagator
238  //-----------------------------------------------------------------------
239 
240  Double_t betaValSquared = (1.-(pow(m1-m2, 2)/pow(mzz, 2)))*(1.-(pow(m1+m2, 2)/pow(mzz, 2)));
241  Double_t betaVal = sqrt(betaValSquared);
242 
243  Double_t term1Coeff = (pow(m1, 3))/((pow(m1, 2)-pow(mZ, 2))*(pow(m1, 2)-pow(mZ, 2))+pow(mZ, 2)*pow(gamZ, 2));
244  Double_t term2Coeff = (pow(m2, 3))/((pow(m2, 2)-pow(mZ, 2))*(pow(m2, 2)-pow(mZ, 2))+pow(mZ, 2)*pow(gamZ, 2));
245 
246  //-----------------------------------------------------------------------
247  // Helicity Amplitudes
248  //-----------------------------------------------------------------------
249  // calculating the angular parameters from the coupling constants
250  // See http://www.pha.jhu.edu/~gritsan/FORM/result_spin1.txt
251 
252  Double_t x = (mzz*mzz-m1*m1-m2*m2)/(2.0*m1*m2);
253 
254  Double_t hs_ = -hs;
255 
256  Double_t f00Real = TMath::Power(mzz, -1)*g1Val*(sqrt(x*x-1))*(m1*m1-m2*m2);
257  Double_t f00Imag = 0.;
258 
259  Double_t fppReal = 0.;
260  Double_t fppImag = TMath::Power(mzz, -1)*g2Val*(m1*m1-m2*m2);
261 
262  Double_t fmmReal = 0.;
263  Double_t fmmImag = -1. * fppImag;
264 
265 
266  Double_t fp0Real = m1*g1Val * (sqrt(x*x-1));
267  Double_t fp0Imag = Power(mzz, -2.)*Power(m2, 3)*g2Val * (-1./2.)
268  + Power(mzz, -2.)*m1*m1*m2*g2Val * (1 + 2*(x*x-1))
269  + Power(mzz, -2.)*Power(m1, 4)*Power(m2, -1)*g2Val * (-1./2.)
270  + m2*g2Val * (-1./2.)
271  + m1*m1*Power(m2, -1)*g2Val * (1./2.);
272 
273 
274  Double_t f0pReal = m2*g1Val * (-sqrt(x*x-1));
275  Double_t f0pImag = Power(mzz, -2.)*Power(m1, -1)*Power(m2, 4)*g2Val * (1./2.)
276  + Power(mzz, -2.)*m1*Power(m2, 2)*g2Val * (-1 - 2*(x*x-1))
277  + Power(mzz, -2.)*Power(m1, 3)*g2Val * (1./2.)
278  + Power(m1, -1)*Power(m2, 2)*g2Val * (-1./2.)
279  + m1*g2Val * (1./2.);
280 
281  Double_t f0mReal = m2*g1Val * (-sqrt(x*x-1));
282  Double_t f0mImag = Power(mzz, -2.)*Power(m1, -1)*Power(m2, 4)*g2Val * (-1./2.)
283  + Power(mzz, -2.)*m1*Power(m2, 2)*g2Val * (1 + 2*(x*x-1))
284  + Power(mzz, -2.)*Power(m1, 3)*g2Val * (-1./2.)
285  + Power(m1, -1)*Power(m2, 2)*g2Val * (1./2.)
286  + m1*g2Val * (-1./2.);
287 
288  Double_t fm0Real = m1*g1Val * (sqrt(x*x-1));
289  Double_t fm0Imag = Power(mzz, -2.)*Power(m2, 3)*g2Val * (1./2.)
290  + Power(mzz, -2.)*m1*m1*m2*g2Val * (-1 - 2*(x*x-1))
291  + Power(mzz, -2.)*Power(m1, 4)*Power(m2, -1)*g2Val * (1./2.)
292  + m2*g2Val * (1./2.)
293  + m1*m1*Power(m2, -1)*g2Val * (-1./2.);
294 
295  Double_t f00 = f00Imag*f00Imag + f00Real*f00Real;
296  Double_t fpp = fppImag*fppImag + fppReal*fppReal;
297  Double_t fmm = fmmImag*fmmImag + fmmReal*fmmReal;
298  Double_t fp0 = fp0Imag*fp0Imag + fp0Real*fp0Real;
299  Double_t f0p = f0pImag*f0pImag + f0pReal*f0pReal;
300  Double_t fm0 = fm0Imag*fm0Imag + fm0Real*fm0Real;
301  Double_t f0m = f0mImag*f0mImag + f0mReal*f0mReal;
302 
303  Double_t phi00=atan2(f00Imag, f00Real);
304  Double_t phipp=atan2(fppImag, fppReal)-phi00;
305  Double_t phimm=atan2(fmmImag, fmmReal)-phi00;
306  Double_t phip0=atan2(fp0Imag, fp0Real)-phi00;
307  Double_t phi0p=atan2(f0pImag, f0pReal)-phi00;
308  Double_t phim0=atan2(fm0Imag, fm0Real)-phi00;
309  Double_t phi0m=atan2(f0mImag, f0mReal)-phi00;
310 
311  Double_t integral=0;
312 
313  switch (code)
314  {
315  // Integrate out all angles
316  case 6:
317  {
318  integral = 0.;
319  integral+=
320  (32.*f00*TMath::Power(Pi(), 2))/27.;
321  integral+=
322  (32.*fpp*TMath::Power(Pi(), 2))/27.;
323  integral+=
324  (32.*fmm*TMath::Power(Pi(), 2))/27.;
325  integral+=
326  (32.*fp0*TMath::Power(Pi(), 2))/27.;
327  integral+=
328  (32.*f0m*TMath::Power(Pi(), 2))/27.;
329  integral+=
330  (32.*f0p*TMath::Power(Pi(), 2))/27.;
331  integral+=
332  (32.*fm0*TMath::Power(Pi(), 2))/27.;
333  return term1Coeff*term2Coeff*betaVal*integral;
334 
335  }
336 
337  // projections onto Phi1, integrate all other angles
338  case 5:
339  {
340  integral = 0.;
341  integral +=
342  (16*f00*Pi())/27.;
343  integral +=
344  (16*fpp*Pi())/27.;
345  integral +=
346  (16*fmm*Pi())/27.;
347  integral +=
348  (16*fp0*Pi())/27.;
349  integral +=
350  (16*f0m*Pi())/27.;
351  integral +=
352  (16*f0p*Pi())/27.;
353  integral +=
354  (16*fm0*Pi())/27.;
355  integral +=
356  (8*Sqrt(fm0)*Sqrt(fp0)*Pi()*Cos(2.*Phi1 + phim0 - phip0))/27.;
357  return term1Coeff*term2Coeff*betaVal*integral;
358 
359  }
360  // projection to Phi, integrate all other angles
361  case 4:
362  {
363  integral = 0.;
364  integral +=
365  (16*f00*Pi())/27.;
366  integral +=
367  (16*fmm*Pi())/27.;
368  integral +=
369  (16*fpp*Pi())/27.;
370  integral +=
371  (16*fp0*Pi())/27.;
372  integral +=
373  (16*f0m*Pi())/27.;
374  integral +=
375  (16*f0p*Pi())/27.;
376  integral +=
377  (16*fm0*Pi())/27.;
378  integral +=
379  (Sqrt(f00)*Sqrt(fmm)*TMath::Power(TMath::Pi(), 3)*R1Val*R2Val*Cos(Phi - phimm))/12.;
380  integral +=
381  (Sqrt(f00)*Sqrt(fpp)*TMath::Power(TMath::Pi(), 3)*R1Val*R2Val*Cos(Phi + phipp))/12.;
382  integral +=
383  (8*Sqrt(fmm)*Sqrt(fpp)*TMath::Pi()*Cos(2*Phi - phimm + phipp))/27.;
384  integral +=
385  (Sqrt(f0m)*Sqrt(fp0)*TMath::Power(Pi(), 3)*R1Val*R2Val*
386  Cos(Phi - phi0m + phip0))/12.;
387  integral +=
388  (Sqrt(f0p)*Sqrt(fm0)*TMath::Power(Pi(), 3)*R1Val*R2Val*
389  Cos(Phi + phi0p - phim0))/12.;
390  return term1Coeff*term2Coeff*betaVal*integral;
391  }
392 
393  // projections to h2, integrate over all others
394  case 3:
395  {
396  integral = 0.;
397  integral +=
398  (-8*f00*(-1 + TMath::Power(h2, 2))*TMath::Power(TMath::Pi(), 2))/9.;
399  integral +=
400  (4*fmm*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h2, 2) - 2*h2*R2Val))/9.;
401  integral +=
402  (4*fpp*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h2, 2) + 2*h2*R2Val))/9.;
403  integral +=
404  (-8*fp0*(-1 + TMath::Power(h2, 2))*TMath::Power(TMath::Pi(), 2))/9.;
405  integral +=
406  (4*f0m*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h2, 2) - 2*h2*R2Val))/9.;
407  integral +=
408  (4*f0p*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h2, 2) + 2*h2*R2Val))/9.;
409  integral +=
410  (-8*fm0*(-1 + TMath::Power(h2, 2))*TMath::Power(TMath::Pi(), 2))/9.;
411  return term1Coeff*term2Coeff*betaVal*integral;
412  }
413  // projections to h1, integrate all others
414  case 2:
415  {
416  integral=0.;
417  integral +=
418  (-8*f00*(-1 + TMath::Power(h1, 2))*TMath::Power(TMath::Pi(), 2))/9.;
419  integral +=
420  (4*fmm*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h1, 2) - 2*h1*R1Val))/9.;
421  integral +=
422  (4*fpp*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h1, 2) + 2*h1*R1Val))/9.;
423  integral +=
424  (4*fp0*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h1, 2) + 2*h1*R1Val))/9.;
425  integral +=
426  (-8*f0m*(-1 + TMath::Power(h1, 2))*TMath::Power(TMath::Pi(), 2))/9.;
427  integral +=
428  (-8*f0p*(-1 + TMath::Power(h1, 2))*TMath::Power(TMath::Pi(), 2))/9.;
429  integral +=
430  (4*fm0*TMath::Power(TMath::Pi(), 2)*(1 + TMath::Power(h1, 2) - 2*h1*R1Val))/9.;
431  return term1Coeff*term2Coeff*betaVal*integral;
432  }
433 
434  // projections to hs, integrate all others
435  case 1:
436  {
437  integral = 0.;
438  integral +=
439  (-8*f00*(-1 + TMath::Power(hs_, 2))*TMath::Power(TMath::Pi(), 2))/9.;
440  integral +=
441  (-8*fmm*(-1 + TMath::Power(hs_, 2))*TMath::Power(TMath::Pi(), 2))/9.;
442  integral +=
443  (-8*fpp*(-1 + TMath::Power(hs_, 2))*TMath::Power(TMath::Pi(), 2))/9.;
444  integral +=
445  (4.*fp0*TMath::Power(Pi(), 2)*(1. + TMath::Power(hs_, 2)))/9.;
446  integral +=
447  (4.*f0m*TMath::Power(Pi(), 2)*(1. + TMath::Power(hs_, 2)))/9.;
448  integral +=
449  (4.*f0p*TMath::Power(Pi(), 2)*(1. + TMath::Power(hs_, 2)))/9.;
450  integral +=
451  (4.*fm0*TMath::Power(Pi(), 2)*(1. + TMath::Power(hs_, 2)))/9.;
452  return term1Coeff*term2Coeff*betaVal*integral;
453 
454  }
455  }
456  assert(0);
457  return 0;
458 }
459 
anonymous_namespace{test_JVBF.c}::gamZ
const float gamZ
Definition: test_JVBF.c:34
value
pymela::gHIGGS_KAPPA value("gHIGGS_KAPPA_TILDE", pymela::gHIGGS_KAPPA_TILDE) .value("SIZE_HQQ"
RooSpinOne_7D::m2
RooRealProxy m2
Definition: RooSpinOne_7D.h:49
RooSpinOne_7D::ZZ4fOrdering
Bool_t ZZ4fOrdering
Definition: RooSpinOne_7D.h:63
RooSpinOne_7D::h2
RooRealProxy h2
Definition: RooSpinOne_7D.h:51
RooSpinOne_7D::g2Val
RooRealProxy g2Val
Definition: RooSpinOne_7D.h:56
RooSpinOne_7D::gamZ
RooRealProxy gamZ
Definition: RooSpinOne_7D.h:61
RooSpinOne_7D::setZZ4fOrdering
void setZZ4fOrdering(Bool_t flag=true)
Definition: RooSpinOne_7D.cc:460
RooSpinOne_7D
Definition: RooSpinOne_7D.h:18
RooSpinOne_7D::R2Val
RooRealProxy R2Val
Definition: RooSpinOne_7D.h:58
RooSpinOne_7D::R1Val
RooRealProxy R1Val
Definition: RooSpinOne_7D.h:57
RooSpinOne_7D::analyticalIntegral
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Definition: RooSpinOne_7D.cc:224
RooSpinOne_7D::h1
RooRealProxy h1
Definition: RooSpinOne_7D.h:50
RooSpinOne_7D::mzz
RooRealProxy mzz
Definition: RooSpinOne_7D.h:47
RooSpinOne_7D::m1
RooRealProxy m1
Definition: RooSpinOne_7D.h:48
RooSpinOne_7D::hs
RooRealProxy hs
Definition: RooSpinOne_7D.h:52
RooSpinOne_7D::Phi
RooRealProxy Phi
Definition: RooSpinOne_7D.h:53
RooSpinOne_7D::getAnalyticalIntegral
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Definition: RooSpinOne_7D.cc:214
RooSpinOne_7D::g1Val
RooRealProxy g1Val
Definition: RooSpinOne_7D.h:55
RooSpinOne_7D.h
RooSpinOne_7D::mZ
RooRealProxy mZ
Definition: RooSpinOne_7D.h:60
RooSpinOne_7D::Phi1
RooRealProxy Phi1
Definition: RooSpinOne_7D.h:54
RooSpinOne_7D::evaluate
Double_t evaluate() const
Definition: RooSpinOne_7D.cc:78
RooSpinOne_7D::RooSpinOne_7D
RooSpinOne_7D()
Definition: RooSpinOne_7D.h:20