tomeichlersmith / hps

0 stars 0 forks source link

Calculating chi2 Width #18

Closed tomeichlersmith closed 1 year ago

tomeichlersmith commented 1 year ago

Eq(33) from Dark Sectors at the Fermilab SeqQuest Experiment is

$$ \Gamma(\chi_2\to\chi1\ell^+\ell^-) \approx \frac{4\epsilon^2\alpha{em}\alpha_D\Delta^5m1^5}{15\pi m{A'}^4} $$

I could use this but it explicitly states that this width is in the limit that $m_{A'} \gg m1$, $\Delta \ll 1$, and $m\ell \approx 0$. The first and last requirements seem appropriate, especially since they use $m_{A'}=3m_1$ in their own sensitivity plots, but the middle requirement is tough. The maximum $\Delta$ they have is $0.1$ but HPS needs $\Delta$ near its cosmological maximum of $\sim 0.6$ to have any sort of acceptance.

I think for now, I can use this equation as an approximate value for $\Gamma$ but we may need to return to it if there is a large dependence on the decay width.

tomeichlersmith commented 1 year ago

From the HPS 2016 Search paper I can also pull the truth signal vertex distribution.

$$ S{truth}(z, m{A'}, \epsilon) = \frac{1}{\gamma c \tau}\exp\left(-\frac{z_{targ}-z}{\gamma c \tau}\right) $$

where $\gamma$ is the relativistic factor that is set to the mean across all relevant masses.[^1] $c\tau$ is the lifetime and can be related to the width via $c\tau = \hbar c /\Gamma$ so we then have

$$ S{truth}(z, m{A'}, \epsilon) = \frac{\Gamma}{\gamma \hbar c}\exp\left(-\frac{\Gamma}{\gamma \hbar c}(z_{targ}-z)\right) $$

[^1]: They use $\gamma = E/m{A'}$ and use $E = 0.965E{beam}$ where the $E$ is averaged over all masses. This may need to be better studied.

tomeichlersmith commented 1 year ago

The Vertex Z efficiency distribution (post-selection divided by pre-selection, what ROOT calls TEfficiency) is then integrated from $z{cut}$ to $z{max}$ while weighting each bin by $S{truth}$. $z{max}$ is simply the end of reasonable acceptance and is a stand-in for integrating to $\infty$, assuming the distribution is uniformly zero above $z_{max}$.

tomeichlersmith commented 1 year ago
# h_total is some hist.Hist with the vertex Z distribution before any cuts were made
# h_selected is the same hist.Hist but only filled after all cuts were made
h_efficiency = h_selected / h_total
# select the bins after the z_cut
#    (complex index values indicate using real-coordinates rather than bin indices for hist)
integrand = h_efficiency[complex(0, z_cut):]
# pull out distribution sample points
eff_z, z, dz = integrand.values(), integrand.axes[0].centers, integrand.axes[0].widths
# calculate truth signal distribution
#  gamma_c_tau is calculated earlier from epsilon, mchi, map, and delta
S_truth = (1/gamma_c_tau)*np.exp(-(z_target - z)/gamma_c_tau)
# sum over the efficiencies weighted by the signal truth
total_signal_eff = (S_truth*eff_z*dz).sum()
tomeichlersmith commented 1 year ago

The width $\Gamma$ needs to be calculated from MadGraph but after that, using the reweighting procedure outlined above works well.