114 cout<<
"Generating M2.dat"<<endl;
116 realsymbol mu(
"mu"), nu(
"nu"), alpha(
"alpha"), beta(
"beta"), rho(
"rho"), zeta(
"zeta");
117 realsymbol q1(
"q1"), q2(
"q2"), q3(
"q3"), q4(
"q4");
118 realsymbol h1(
"h1"), h2(
"h2"), h3(
"h3"), h4(
"h4");
120 varidx imu(mu,4,0), inu(nu,4,0), irho(rho,4,0);
121 varidx ialpha(alpha,4,0), ibeta(beta,4,0), izeta(zeta,4,0);
123 varidx jmu(mu,4,1), jnu(nu,4,1), jrho(rho,4,1);
127 ex q2mu=indexed(q2,imu);
128 ex q3mu=indexed(q3,imu);
129 ex q4mu=indexed(q4,imu);
130 ex q1mu=q2mu+q3mu+q4mu;
134 ex vq1=dirac_slash(q2,4)+dirac_slash(q3,4)+dirac_slash(q4,4)+mq1*dirac_ONE(), vq2=dirac_slash(q2,4)+mq2*dirac_ONE();
135 ex vq3=dirac_slash(q3,4)+mq3*dirac_ONE(), vq4=dirac_slash(q4,4)-mq4*dirac_ONE();
137 ex s4=m2q1+m2q2+m2q3+m2q4-
s2-
s3;
139 sp.add(q2, q3, (s4-m2q2-m2q3)/2);
140 sp.add(q4, q3, (
s2-m2q4-m2q3)/2);
141 sp.add(q2, q4, (s3-m2q2-m2q4)/2);
143 sp.add(q2, q2, m2q2);
144 sp.add(q3, q3, m2q3);
145 sp.add(q4, q4, m2q4);
157 v[0][0][0]=dirac_gammaL(); v[0][0][1]=dirac_gammaR();
158 v[0][1][0]=dirac_gammaR(); v[0][1][1]=dirac_gammaL();
159 v[1][0][0]=dirac_gamma(jmu)*dirac_gammaL(); v[1][0][1]=dirac_gamma(jmu)*dirac_gammaL();
160 v[1][1][0]=dirac_gamma(jmu)*dirac_gammaR(); v[1][1][1]=dirac_gamma(jmu)*dirac_gammaR();
163 for(
uint i=0;i<2;i++)
164 for(
uint j=0;j<2;j++)
165 for(
uint k=0;k<2;k++)
166 for(
uint l=0;l<2;l++)
167 for(
uint m=0;m<2;m++)
168 for(
uint n=0;n<2;n++){
170 ex vim=v[i][m][0].subs(mu==nu);
171 ex vjl=v[j][l][1].subs(mu==alpha);
172 ex vjn=v[j][n][1].subs(mu==beta);
174 traces[i][j][k][l][m][n][0]=dirac_trace(vq2*vik*vq1*vjl)*dirac_trace(vq3*vim*vq4*vjn);
175 traces[i][j][k][l][m][n][1]=-dirac_trace(vq2*vik*vq1*vjl*vq3*vim*vq4*vjn);
178 vector<ex> prop(2,0);
180 prop[1]=lorentz_g(imu,inu);
183 for(
uint i=0;i<2;i++)
184 for(
uint j=0;j<2;j++){
185 prop2[i][j]=prop[i]*prop[j].subs(lst(mu==alpha,nu==beta));
189 for(
uint i=0;i<2;i++)
190 for(
uint j=0;j<2;j++)
191 for(
uint k=0;k<2;k++)
192 for(
uint l=0;l<2;l++)
193 for(
uint m=0;m<2;m++)
194 for(
uint n=0;n<2;n++)
195 for(
uint o=0;o<2;o++)
198 M2[i][j][k][l][m][n][o]=(traces[i][j][k][l][m][n][o]*prop2[i][j]).simplify_indexed(sp);
A vector of vectors of vectors of... (N times) of class T objects.