flavour
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Juca.h
Go to the documentation of this file.
1 #ifndef JUCA_H
2 #define JUCA_H
3 
4 #include "widthcalc.h"
5 
6 #include "TH2F.h"
7 #include "TProfile2D.h"
8 #include "TCanvas.h"
9 #include <iostream>
10 #include <Eigen/Eigenvalues>
11 
12 using namespace std;
13 using namespace Eigen;
14 
15 class Juca: public Model{
16 public:
17 
18 Juca():Mu("Mu"), Md("Md"), Mc("Mc"), Ms("Ms"), Mt("Mt"), Mb("Mb"), lambda("lambda"), A("A"),rho("rho"),eta("eta"){
19 
20  add("",lambda,new gauss2obs(0.22535,0.00065));
21  add("",A,new gauss2obs(0.811, 0.017));
22  add("",rho,new gauss2obs(0.131, 0.02));
23  add("",eta,new gauss2obs(0.345, 0.014));
24  add("",Mu,new gauss2obs(1.27e-3, 0.46e-3));
25  add("",Md,new gauss2obs(2.9e-3, 1.22e-3));
26  add("",Ms,new gauss2obs(55e-3, 16e-3));
27  add("",Mc,new gauss2obs(0.619, 0.084));
28  add("",Mb,new gauss2obs(2.89, 0.09));
29  add("",Mt,new gauss2obs(171.7, 3.0));
30 }
31 
32 ~Juca(){}
33 
34 
35 
36 void add(const char * s, ex pred, observable * ob){
37  ex p=collect_common_factors(expand(pred.subs(replacements)));
38  push_back(prediction(ob,p));
39  }
40 
42  parameters p;
43 
44  //buu
45  p.push_back(freeparameter(-5,0,r));
46  //auu
47  p.push_back(freeparameter(-5,0,r));
48  //add
49  p.push_back(freeparameter(-5,0,r));
50  //bdd
51  p.push_back(freeparameter(-5,0,r));
52  //eu
53  p.push_back(freeparameter(-2,2,r));
54  //gu
55  p.push_back(freeparameter(-2,2,r));
56  //ed
57  p.push_back(freeparameter(-2,2,r));
58  //gd
59  p.push_back(freeparameter(-2,2,r));
60  //nu
61  p.push_back(freeparameter(-2,3,r));
62  //nd
63  p.push_back(freeparameter(-2,3,r));
64  //cuu
65  //p.push_back(freeparameter(-5,0,r));
66  //cdd
67  p.push_back(freeparameter(-5,0,r));
68  //hu
69  //p.push_back(freeparameter(-2,2,r));
70  //hd
71  p.push_back(freeparameter(-2,2,r));
72 
73  return p;
74 }
75 
76 
77 lst getlist(const parameters & p) const{
78 
79 
80  double buu = pow(10.0,p[0].value), auu = pow(10.0,p[1].value);
81  double add = pow(10.0,p[2].value), bdd = pow(10.0,p[3].value);
82  double eu =p[4].value, gu = p[5].value;
83  double ed = p[6].value, gd = p[7].value;
84  //double cuu = pow(10.0,p[10].value);
85  double cdd = pow(10.0,p[10].value);
86  //double hu =p[12].value;
87  double hd= p[11].value;
88 
89 complex<double> bu = buu*exp(complex<double>(0,gu*M_PI_2)), au = auu*exp(complex<double>(0,eu*M_PI_2));
90 complex<double> ad = add*exp(complex<double>(0,ed*M_PI_2)), bd = bdd*exp(complex<double>(0,gd*M_PI_2));
91 //complex<double> cu = cuu*exp(complex<double>(0,hu*M_PI_2));
92 complex<double> cu = bu;
93 complex<double> cd = cdd*exp(complex<double>(0,hd*M_PI_2));
94 //complex<double> cd = bd;
95 
96 //Matrix3cd X = Matrix3cd::Random(3,3);
97 Matrix3cd mu,md;
98 mu<<1,1.0,1.0+au+bu,1.0,1.0,1.0+bu,1.0+bu+au,1.0+bu,1.0+cu;
99 md<<1,1.0,1.0+ad+bd,1.0,1.0,1.0+bd,1.0+bd+ad,1.0+bd,1.0+cd;
100  mu=mu*pow(10.0,p[8].value);
101  md=md*pow(10.0,p[9].value);
102 
103 Matrix3cd Hu = mu*mu.adjoint(), Hd = md*md.adjoint();
104 SelfAdjointEigenSolver<Matrix3cd> usolver(Hu), dsolver(Hd);
105 Vector3d Du=usolver.eigenvalues();//.asDiagonal();
106 Vector3d Dd=dsolver.eigenvalues();//.asDiagonal();
107 Matrix3cd VLd=dsolver.eigenvectors().adjoint();
108 Matrix3cd VLu=usolver.eigenvectors().adjoint();
109 Matrix3cd Vckm=VLu*VLd.adjoint();
110 double lambda0=sqrt(norm(Vckm(0,1))/(norm(Vckm(0,0))+norm(Vckm(0,1))));
111 double A0=abs(Vckm(1,2))/abs(Vckm(0,1))/lambda0;
112 complex<double> rhoeta=-Vckm(0,0)*conj(Vckm(0,2))/Vckm(1,0)/conj(Vckm(1,2));
113 double rho0=real(rhoeta), eta0=imag(rhoeta);
114 
115  return lst(lambda==lambda0,A==A0,rho==rho0,eta==eta0,Mu==sqrt(abs(Du[0])),Md==sqrt(abs(Dd[0])),Mc==sqrt(abs(Du[1])),Ms==sqrt(abs(Dd[1])),Mt==sqrt(abs(Du[2])),Mb==sqrt(abs(Dd[2])));
116 }
117 
118 const possymbol Mu, Md, Mc, Ms, Mt, Mb, lambda, A;
119 const realsymbol rho, eta;
120 
122 };
123 
124 
125 
126 #endif
const possymbol Mu
Definition: Juca.h:118
A base class representing an experimental measure.
Definition: model.h:35
lst replacements
Definition: Juca.h:121
const realsymbol rho
Definition: Juca.h:119
Definition: multivector.h:4
Definition: Juca.h:15
lst getlist(const parameters &p) const
Definition: Juca.h:77
parameters generateparameters() const
Definition: Juca.h:41
~Juca()
Definition: Juca.h:32
void add(const char *s, ex pred, observable *ob)
Definition: Juca.h:36
vector of parameters
Definition: model.h:177
Abstract class for a model.
Definition: model.h:361
A parameter which will be fitted in the simulation.
Definition: model.h:124
the same as gaussobs but with a different initializer, such that the uncertainty sigma is absolute ...
Definition: model.h:100
Juca()
Definition: Juca.h:18
theoretical expression for an experimental measure
Definition: model.h:344