\documentclass[a4paper, 11pt]{article}

\input{preamble.tex}
\addbibresource{references.bib}

\rhead{Adrià Vilanova Martínez i Diana Tur Otero}
\lhead{Pràctica 1a}
\fancyfoot[C]{\thepage}

\setlength{\droptitle}{-4em}
\title{Pràctica 1a. Determinació de la semivida d'un radionúclid.}
\author{Adrià Vilanova Martínez i Diana Tur Otero}
\date{Divendres 10 de març de 2023}

\begin{document}

{
  \parskip = 0pt
  \maketitle
}

\section{Objectiu}
Determinar el temps de semivida del \ch{^{137m}Ba} i comparar-lo amb un valor trobat a la literatura.

\section{Metodologia}
En desexcitar-se a l'estat fonamental, el \ch{^{137m}Ba} emet un fotó gamma, que detectem mitjançant un detector d'escintil·lacions. Així doncs, realitzant mesures d'aquesta radiació emesa en funció del temps i fent un ajust de les dades obtingudes a la llei de desintegració radioactiva
\begin{equation}
    N(t) = N_0 \exp( -t/\tau )
    \label{eq:llei_desintegracio}
\end{equation}
–on $N$ és el nombre d'àtoms excitats– es pot obtenir el valor de la vida mitjana $\tau$.\footnote{Realment, nosaltres no mesurem tots els fotons emesos per les desintegracions gamma, només els que es dirigeixen cap el detector. Tot i així, com la direcció cap on surten és uniforme (no n'hi ha cap privilegiada), el que sí sabem és que el valor d'impulsos que mesurarem, $I$, serà proporcional a $N$ i, per tant, $\frac{N(t)}{N_0} = \frac{I(t)}{I_0}$.}

La semivida $T_{1/2}$ és el temps en què la meitat dels àtoms han decaigut a l'estat fonamental, així que la seva expressió en funció dels paràmetres trobats a l'ajust és:
\begin{equation}
    \frac{N_0}{2} = N_0 \exp\left( \frac{-T_{1/2}}{\tau} \right) \implies \log\left( \frac{1}{2} \right) = \frac{- T_{1/2}}{\tau} \implies T_{1/2} = \tau \log(2).
    \label{eq:semivida}
\end{equation}

Al llarg de l'experiment, degut al fet que aquest no està aïllat de la resta de l'Univers, el detector d'escintil·lacions rep radiació de fons que s'afegeix als fotons que volem detectar. Així doncs, abans de començar-lo hem mesurat el nivell del fons (com a una mitjana d'impulsos per segon) durant $\qty{5}{\minute}$ per tal de restar-lo de les mesures obtingudes a l'experiment. Hem utilitzat una opció del software de mesura \textit{measure} que ja ho resta automàticament per no haver-ho de fer durant el postprocessat de les dades.

A més, per tal d'obtenir la mostra de \ch{^{137m}Ba} hem utilitzat un minigenerador, que és un recipient amb \ch{^{137}Cs}, que decau a \ch{^{137m}Ba} amb un temps de semivida de l'ordre de 30 anys. Fent passar pel minigenerador (molt poc a poc) una dissolució d'\ch{HCl}, a la sortida obtenim la dissolució amb àtoms de bari, ja que el bari és dissol amb l'àcid clorhídric però el cesi no.

\section{Figures i valors obtinguts}
D'acord amb el que hem explicat a la secció anterior, primer hem mesurat el fons durant $\qty{300}{\second}$. Això ens ha donat el següent valor mitjà d'impulsos per segon:
\[ I_\text{fons} = \qty{19.333}{\#\per\second}. \]

Posteriorment, tal com suggereix el guió de la pràctica, hem pres més mesures del fons amb l'opció activada de restar el valor mitjà del fons que hem obtingut anteriorment. Això ho hem fet en intervals de \qty{10}{\second} durant \qty{5}{\minute}. Els valors obtinguts es poden veure a la taula \ref{table:fons} i representats a la figura \ref{fig:fons}.

\begin{figure}
    \centering
    \includegraphics[trim=0 0.45cm 0 1.5cm]{grafiques/fons_fluctuacio.tex}
    \caption{Impulsos per segon rebuts sense cap font en cada finestra de 10 segons havent restat la mitjana d'impulsos per segon mesurada del fons. La mitjana està representada per la línia verda del mig i la desviació estàndard per les línies vermelles.}
    \label{fig:fons}
\end{figure}

Aquesta darrera mesura ens permet calcular la incertesa deguda a la fluctuació del fons aproximant-la com la desviació estàndard dels valors obtinguts:
\[ (\delta I)_\text{fluct. fons} = \qty{0.9}{\#\per\second}. \]

La mitjana doncs és $\qty{0.2(9)}{\#\per\second}$, que és compatible amb el valor de 0 que idealment hauríem de veure.

\begin{figure}
    \centering
    \includegraphics[trim=0 0.45cm 0 1.5cm]{grafiques/bari.tex}
    \caption{Nombre de desintegracions gamma detectades per segon en cada finestra de 10 segons.}
    \label{fig:bari}
\end{figure}

Finalment, després d'aquesta calibratge, hem munyit el bari i hem fet la mesura amb la mostra de bari. Els valors mesurats es poden veure a la taula \ref{table:bari} i a la figura \ref{fig:bari}.

Ajustant l'equació $I = I_0 \exp(- t/\tau)$ a les mesures tal com hem explicat anteriorment obtenim els següents paràmetres:
\[
    \begin{cases}
        I_0 = \qty{45.8(12)}{\#\per\second}, \\
        \tau = \qty{220(10)}{\second}.
    \end{cases}
\]

Per tant, utilitzant (\ref{eq:semivida}), el temps de semivida del \ch{^{137m}Ba} és:
\[ T_{1/2} = \tau \log(2) = \qty{153(7)}{\second} = \qty{2.54(12)}{\minute}. \]

A \cite{nubase} s'ha mesurat el temps de semivida com $\qty{2.552(1)}{\minute}$, que és un valor compatible amb el nostre resultat.

Alternativament a l'ajust exponencial que hem realitzat mitjançant el mètode de mínims quadrats, també podem obtenir el valor del temps de semivida fent una regressió lineal si fem la següent transformació de l'equació (\ref{eq:llei_desintegracio}):
\[
    I(t) = I_0 \exp\left( \frac{-t}{\tau} \right) \implies \log(I(t)) = \log(I_0) - \frac{1}{\tau} t.
\]

\begin{figure}
    \centering
    \includegraphics[trim=0 0.45cm 0 1.5cm]{grafiques/bari_linealitzat.tex}
    \caption{Regressió lineal amb les mesures de les desintegracions gamma del bari.}
    \label{fig:bari_linealitzat}
\end{figure}

D'aquesta manera, fent la regressió de $t \sim \log(I)$ obtindrem que la pendent de la recta ajustada és la nostra estimació de $-1/\tau$. La constant de decaïment és $\lambda \equiv 1/\tau$, així que la pendent és directament $-\lambda$.

En fer la regressió lineal (veure la figura \ref{fig:bari_linealitzat}), obtenim els següents paràmetres:
\[
    \begin{cases}
        \log(I_0) = 3.85 \pm 0.04, \\
        \lambda = \qty{0.0048(2)}{\per\second}.
    \end{cases}
\]

\clearpage

\section{Taules de dades}
\begin{multicols}{2}
    \begin{center}
      \pgfplotstabletypeset[
        columns={t, ImpulsesPerSecond},
        columns/t/.style={read comma as period, column name={$t \pm 0.1$ (s)}, fixed, fixed zerofill, precision=1},
        columns/ImpulsesPerSecond/.style={read comma as period, column name={$I \pm 0.01$ (\#/s)}, fixed, fixed zerofill, precision=2}
      ]{dades/fons_a.txt}
      \captionof{table}{Mesures del fons en impulsos per segon havent restat el valor mitjà del fons.}
      \label{table:fons}
    \end{center}

    \begin{center}
      \pgfplotstabletypeset[
        columns={t, ImpulsesPerSecond},
        columns/t/.style={read comma as period, column name={$t \pm 0.1$ (s)}, fixed, fixed zerofill, precision=1},
        columns/ImpulsesPerSecond/.style={read comma as period, column name={$I \pm 0.01$ (\#/s)}, fixed, fixed zerofill, precision=2}
      ]{dades/bari_a.txt}
      \captionof{table}{Mesures del impulsos per segon rebuts de la font de bari.}
      \label{table:bari}
    \end{center}
\end{multicols}

\printbibliography

\end{document}
