Extra spin two

Let us work out the transformation to get the massive spin-two degree of freedom of quadratic gravity explicitly.

Reading the package

Block[{Print},
<<xAct`xTras`;
];

Defining a manifold and metric perturbations

Pretty standard setup, no surprises. We directly define our metric perturbation rule in the form given in the exercise.

Block[{Print},
DefManifold[spacetime,4,{μ,ν,ρ,σ,α,β,γ,δ,κ,λ,τ,ω}];
DefMetric[-1,metric[-μ,-ν],CD,{";","𝒟"}];
DefMetricPerturbation[metric,pert,ϵ,PrintAs->"h"];
DefTensor[hpert[-μ,-ν],spacetime,Symmetric[{-μ,-ν}],PrintAs->ColorString["𝒽",Lighter@Blue]];
DefTensor[f[-μ,-ν],spacetime,Symmetric[{-μ,-ν}]];

DefConstantSymbol[βcoupl,PrintAs->"β"];
DefNiceConstantSymbol[c,1];
DefConstantSymbol[pertparam,PrintAs->"E"];

metricpertrule={pert[LI[1],X__]:>c1 f[X],pert[LI[n_/;n>1],__]:>0};
];

Perturbing

Define the action:

Ssuperweird=(Sqrt[-Detmetric[]])(RicciScalarCD[]+(RicciCD[μ,ν]-(1/2)RicciScalarCD[]metric[μ,ν])f[-μ,-ν]-(1/(4βcoupl))(f[μ,ν]f[-μ,-ν]-f[μ,-μ]f[ν,-ν]));

Do a second order perturbation (the exercise creator said we need up to second order in (Subscript[f, μν])). We expand the perturbation, set perturbations of f to zero, insert our rule and set the metric perturbation parameter to one.

Ssuperweirdpert=CollectTensors[(((Perturbed[Ssuperweird,2])/(Sqrt[-Detmetric[]]))//ExpandPerturbation)/.Perturbation[f[__],___]:>0/.metricpertrule/.ϵ->1]

This now also has higher order terms. Let’s get rid of them and collect in powers of f:

Ssuperweirdpertquad=Collect[Ssuperweirdpert/.f[X__]:>pertparam f[X],pertparam,CollectTensors]/.(pertparam^(n_/;n>2)):>0

Now, are there dangerous terms? Yes: terms that are linear in both f and curvature lead to kinetic mixing -- that is, we have off-diagonal kinetic terms. We don’t want those, so let’s pick c1=1. We then take the quadratic term, do a variational derivative and multiply f again to get all covariant derivatives act on the same f:

Coefficient[Ssuperweirdpertquad/.c1->1,pertparam,2];
(1/2)f[-α,-β]VarD[f[-α,-β],CD][%,1]//CollectTensors//SortCovDs//CollectTensors

Can you spot the ghost?