/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 17.10.0 ] */ /* [wxMaxima: title start ] piKaon.wxm π(+, m, p1) + K(+, M, p2) --> π(+, m, p3) + K(+, M, p4) Pi Kaon Elastic QED Scattering [wxMaxima: title end ] */ /* [wxMaxima: comment start ] piKaon.wxm, Dec. 19, 2018 Edwin (Ted) Woollett, Maxima by Example Ch. 12, Dirac Algebra and Quantum Electrodynamics, ver. 3, "Dirac3" http://web.csulb.edu/~woollett/ We use Heaviside-Lorentz electromagnetic units, e^2 = 4πα In general, we follow the conventions in Peskin & Schroeder: Quantum Field Theory. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] We ignore the finite size and quark content (and potential strong interaction effects in small impact parameter collisions) in this example of scalar QED, and only take into account the first order electromagnetic interactions of these spinless bosons. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] First load the dirac3 package by loading dirac3.mac: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(dirac3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Note from the last two printouts, that invar_flag = true and stu_flag = false (our defaults). The fact that invar_flag = true means that the symbolic trace function tr will automatically make use of the list invarR (produced by the function set_invarR) which defines the replacements for D(pa,pb) in terms of the Mandelstam variables s, t, u. (After the package loads, invarR has the default value [].) The fact that stu_flag = false means that the function noncov will not automatically replace the Mandelstam variables s, t, u, by s_th, t_th, and u_th. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Dirac3 package functions used here are set_invarR, ev_Ds, pullfac, comp_def, noncov, noncov_ratio, VP, sub_stu, and div_tb. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Center of Momentum Cross Section Without Using Mandelstam Variables [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Dirac3 package functions used in this section are comp_def, noncov, noncov_ratio, and div_tb. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] The fastest approach is to express the reduced amplitude in terms of D(pa,pb)'s, define 4-momentum components using comp_def, and then use noncov_ratio on the result. D(pa, pb) is a symbolic representation of the 4-vector dot product of 4-momenta pa and pb. D(pb, pa) = D(pa, pb) since we have declared D symmetric in our package. We define Mr as the "reduced amplitude" for the scattering process, where Mfi is the amplitude: Mfi = -e^2 Mr [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr : D(p1+p3,p2+p4)/D(p1 - p3, p1 - p3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] We next define 4-momentum components in the CM frame, using our function comp_def, with p representing the magnitude of 3-momentum, Epi the pion particle energy, EK the kaon particle energy, with the initial particles approaching along the z-axis, the final particles confined to the z-x plane, and th representing the cms scattering angle th of the final pion relative to the direction of the incident pion (the positive z-axis). comp_def ( pa(Ea, pax, pay, paz), ....) is the syntax used here. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ assume ( p > 0, th >= 0, th <= %pi )$ comp_def ( p1( Epi, 0, 0, p), p2( EK, 0, 0, -p), p3 (Epi, p*sin(th), 0, p*cos(th)), p4 (EK, -p*sin(th), 0, -p*cos(th)) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ noncov_ratio (Mr); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] We use here the package function div_tb(expr, fac), divide top and bottom of expr by fac. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr_th : div_tb(%, 2*p^2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The above is the "reduced amplitude" Mr for arbitrary energies. For high energy collisions in CM frame, neglect masses, and particle energies are the same as the 3-momentum magnitude p --> E, and Mr becomes: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr_th_HE : Mr_th, Epi = E, EK = E, p = E; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Now for the differential scattering cross section dsigdo in the CMS. We have absorbed e^4 into the constant A, with e^2 = 4πα. In general 2 --> 2 scattering, A = α^2 * (pf/pi) /(4*s) in cms where s = E(cms)^2. Let p be the magnitude of the 3-momentum of the initial electron and initial Kaon and pf be the magnitude of the final electron and final Kaon in CMS. Conservation of energy implies sqrt(m^2 + p^2) + sqrt(M^2 + p^2) = sqrt(m^2 + pf^2) + sqrt(M^2 + pf^2) This implies pf = p, so pf = pi and A = α^2/( 4 s). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A : alpha^2/(4*s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] s is the Mandelstam variable (p1 + p2)^2 = E(cms)^2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ s_th : noncov (D(p1 + p2, p1 + p2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ s_th_HE : s_th, Epi = E, EK = E; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] For arbitrary energies (note Mr_th is real): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ dsigdo : A * Mr_th^2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] and in the high energy limit: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ dsigdo_HE : A * Mr_th_HE^2; /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Cross Section Using Mandelstam Variables [wxMaxima: section end ] */ /* [wxMaxima: subsect start ] Use set_invarR to construct list invarR; Use ev_Ds( expr ) to replace 4-momentum dot products with Mandelstam variables s, t, and u. [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Use our set_invarR function to express all invariant dot products of 4-momenta in terms of the Mandelstam variables s, t, and u, as well as the π mass m and the kaon mass M. The use of the function set_invarR in this way populates a list called invarR, which is later used by other package functions to transform expressions. Recall conservation of 4-momentum: p1^μ + p2^μ = p3^μ + p4^μ and our definitions of the Mandelstam variables for this process: s = (p1 + p2)^2 = (p3 + p4)^2, t = (p1 - p3)^2 = (p2 - p4)^2, u = (p1- p4)^2 = (p2 - p3)^2 s, t, and u are not all independent since the sum s + t + u = sum of mass-square, or here: s + t + u = 2 m^2 + 2 M^2. The following dot product replacement rules come from the definitions of s, t, and u, as well as our chosen symbols for particle masses. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ set_invarR (D(p1,p1) = m^2, D(p1,p2) = (s - m^2 - M^2)/2, D(p1,p3) = (2*m^2 - t)/2, D(p1,p4) = (m^2 + M^2 - u)/2, D(p2,p2) = M^2, D(p2,p3) = (M^2 + m^2 - u)/2, D(p2,p4) = (2*M^2 - t)/2, D(p3,p3) = m^2, D(p3,p4) = (s - m^2 - M^2)/2, D(p4,p4) = M^2)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ invarR; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Use of ev_Ds (expr) function to replace D(pa,pb) symbols with expressions in terms of the Mandelstam variables s, t, and u, once the list invarR has been populated using the function set_invarR. Also use of pullfac(expr,fac) to pull a factor (fac) out of expression expr. We define Mr as the "reduced amplitude" for the scattering process, where Mfi is the amplitude: Mfi = -e^2 Mr In lowest order there is one photon exchange diagram contributing. We could immediately replace D (p1 - p3, p1 - p3) with t, but let's leave the denominator unevaluated to show how ev_Ds( expr) uses the list invarR to replace all 4-momentum dot products in terms of s, t, and u. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr : D(p1+p3,p2+p4)/D(p1 - p3, p1 - p3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Mr : ev_Ds (Mr); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Mr : pullfac(Mr,1/t); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] If we had used ratsimp(Mr) instead of pullfac(Mr,1/t), we would have ended up with -(u - s)/t. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] We now want to evaluate the (reduced) amplitude in terms of CM frame parameters. Our package has a function sub_stu(expr) which replaces, in expr, the symbol s by s_th, replaces the symbol t by t_th, and replaces the symbol u by u_th. We can use fundef to see the function definition: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ fundef(sub_stu); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Note: trigsimp(%%) in this context means evaluate trigsimp of the previous expression in this function definition. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] If you have previously bound values to the three symbols s_th, t_th, and u_th, the expression produced by sub_stu will reflect those bindings. We have already used comp_def ("components-define") to define arrays which hold the components of the 4-momentum vectors in the CM frame above. We can then use either noncov or VP to evaluate the Mandelstam variables in terms of the CM frame parameters p, Epi, EK, and the scattering angle th, as we show below. [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] Define s_th, t_th, and u_th using VP or noncov [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] In order to use sub_stu(expr) to substitute values of s_th, t_th, and u_th (Mandelstam variables in terms of frame dependent parameters) for s, t, and u, it is easiest to use our function VP (pa,pb) (Vector Product) for evaluation of the vector products of 4-momenta. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Returning to the task of giving values to the symbols s_th, t_th, and u_th: From the definitions of the Mandelstam varibles: We defined s_th above using noncov: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ s_th; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ VP (p1+p2,p1+p2), factor; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ t_th : VP (p1-p3,p1-p3), factor; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ u_th : VP (p1-p4,p1-p4); /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] Use sub_stu (expr) to replace s, t, u by s_th, t_th, u_th [wxMaxima: subsect end ] */ /* [wxMaxima: input start ] */ Mr; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Mr_th : sub_stu(Mr), ratsimp; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] ratsimp was used to define a common denominator and achieve a rational expression. As we did above we use here the package function div_tb(expr,fac),(divide top and bottom by the same thing) which returns the result of dividing both the numerator and denominator (top and bottom) of expr by fac. You might think this ratio would work here: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ (num(Mr_th/p^2) / denom(Mr_th/p^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The function div_tb (expr, fac) is more complicated on purpose: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ fundef (div_tb); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] so here goes: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr_th : div_tb (Mr_th, p^2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The above is the "reduced amplitude" Mr for arbitrary energies, and is the same expression we derived earlier without using Mandelstam variables. For high energy collisions in CM frame, neglect masses, and particle energies are the same as the 3-momentum magnitude p, and Mr becomes: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ subst([Epi=p,EK=p],Mr_th); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] We can also use the interactive substitution method: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mr_th_HE : Mr_th, Epi = p, EK = p; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Now for the differential scattering cross section dsigdo in the CMS. We have already defined the prefactor A: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] We can replace s by s_th, E(cms)^2: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ s_th; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] For arbitrary energies (note Mr_th is real): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ dsigdo : A * Mr_th^2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] and in the high energy limit: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ dsigdo_HE : A * Mr_th_HE^2; /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$