{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<CENTER><h1>Análisis del decaimiento del Boson de Higgs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Asto Rojas, Omar Moises**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "El  Boson de Higgs fue observado por ATLAS y CMS en 2012, es es la portador del campo de Higgs; que está presente en todo y se encarga de proveer de masa a todas las partículas. En el presente notebook se tratará de reconstruir la masa del Higgs analizando el canal  *H* $\\rightarrow$ *yy*, a través de diferentes cortes que tienen justificación física.\n",
    "### Producción del Boson de Higgs\n",
    "El Modelo Estándar establece la producción de Higgs en el LHC de la siguiente manera:\n",
    "- **Producción dominante**: Donde están el proceso de fisión de gluones *gg* $\\rightarrow$ *H*.  \n",
    "- **Produciones secundarias**: Donde podemos encontrar:  \n",
    "    -Proceso de fusión vector-boson: *qq'* $\\rightarrow$ *qq'H*.  \n",
    "    -Asociado a la producción del boson Z.  \n",
    "    -Asociado a la producción del boson W.  \n",
    "    -Asociado a la producción de un par de quarks tops.  \n",
    "    -Asociado a la producción de b-quarks.  \n",
    "    -Asociado a la producción de un solo quark top.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Todos los procesos de producción nombrados se pueden observar en la siguiente imagen:\n",
    "![alt text](1.jpg \"Title\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Decaimiento del Higgs\n",
    "De acuerdo con el Modelo Estándar, el Higgs puede decaer en un par de fermiones o de bosones.    \n",
    "La masa del boson de Higgs no es predicha por el Modelo Estándar, pero una vez medida la producción de secciones eficacez y tasas de decaimientos puede ser medida de forma precisa.  \n",
    "![alt text](2.jpg \"Title\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "En la imagen mostrada, se puede observar el cambio de los modos de desintegración en función de la masa del Higgs."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "En el presente, la masa del Higgs ha sido medida en 125 $GeV$; para dicha masa, se puede observar que los procesos prominentes son:  \n",
    "![alt text](3.jpg \"Title\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Análisis de los datos simulados para el proceso H $\\rightarrow$ yy, a 13 TeV"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Para el análisis, se necesita de las siguientes bibliotecas:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <iostream>\n",
    "#include <string>\n",
    "#include <stdio.h>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Creamos un elemento en donde podamos incluir varios archivos:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "TString path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/samples/2020/GamGam/\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Añadimos diferentes carpetas a Bkg:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "TChain* Bkg = new TChain(\"mini\");\n",
    "\n",
    "Bkg->AddFile(path + \"MC/mc_341081.ttH125_gamgam.GamGam.root\");\n",
    "Bkg->AddFile(path + \"MC/mc_343981.ggH125_gamgam.GamGam.root\");\n",
    "Bkg->AddFile(path + \"MC/mc_345041.VBFH125_gamgam.GamGam.root\");\n",
    "Bkg->AddFile(path + \"MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root\");\n",
    "Bkg->AddFile(path + \"MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Definimos las siguientes variables que van a ser útiles para el análisis:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "UInt_t  Photon_n = -1;  //number of preselected photons\n",
    "\n",
    "vector<float>   *Photon_pt;  //transverse momentum of the photon\n",
    "vector<float>   *Photon_eta = 0;  //pseudorapidity of the photon\n",
    "vector<float>   *Photon_phi = 0;  //azimuthal angle of the photon\n",
    "vector<float>   *Photon_E   = 0;  //energy of the photon\n",
    "vector<bool>    *Photon_isTightID = 0;\n",
    "\n",
    "Bool_t          TrigP = 0;\n",
    "vector<float>   *Photon_ptcone30 = 0;\n",
    "vector<float>   *Photon_etcone20 = 0;"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Después de declarar las variables, tenemos que encontrar los valores de dichas variables en el dataset definido:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Las variables utilizadas son:  \n",
    "- Photon_pt :Momento transversal del fotón.  \n",
    "- Photon_n: número de fotones preseleccionados.  \n",
    "- Photon_eta: pseudorapidez del fotón.   \n",
    "- Photon_phi: Ángulo azimutal del fotón.  \n",
    "- Photon_E: Energía del fotón.  \n",
    "- Photon_isTightID: Boleano que me indica si el fotón satisface los criterios de reconstrucción.  \n",
    "- rigP: booleano que me indica si los eventos pasaron un trigger de dos fotones.  \n",
    "- Photon_ptcone30: suma escalar del P_t del fotón alrededor de un cono de R = 0.3.  \n",
    "- Photon_etcone20: suma escalar del E_p del fotón alrededor de un cono de R = 0.2.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Bkg->SetBranchAddress(\"photon_pt\",        &Photon_pt); \n",
    "Bkg->SetBranchAddress(\"photon_n\",         &Photon_n);  \n",
    "\n",
    "Bkg->SetBranchAddress(\"photon_eta\",       &Photon_eta); \n",
    "Bkg->SetBranchAddress(\"photon_phi\",       &Photon_phi); \n",
    "Bkg->SetBranchAddress(\"photon_E\",         &Photon_E); \n",
    "Bkg->SetBranchAddress(\"photon_isTightID\", &Photon_isTightID); \n",
    "\n",
    "Bkg->SetBranchAddress(\"trigP\",            &TrigP); \n",
    "Bkg->SetBranchAddress(\"photon_ptcone30\",  &Photon_ptcone30); \n",
    "Bkg->SetBranchAddress(\"photon_etcone20\",  &Photon_etcone20); "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ahora, creamos un histograma específico:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "//Invariant mass histograms definition\n",
    "TH1F *Bh_M_Hyy = new TH1F(\"Bh_M_Hyy\",\"Diphoton invariant-mass ; M_{#gamma#gamma} [GeV] ; Events / bin\", 30, 105, 160);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Bh_M_Hyy->SetMarkerSize(2.0);\n",
    "Bh_M_Hyy->SetLineColor(kBlue);\n",
    "Bh_M_Hyy->SetFillColor(kBlue-10);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "En la siguiente línea, podemos decir cuanta data queremos utilizar y preguntar algunas cosas sobre el análisis:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total # events = 2473335. Events to run = 2473335 corresponding to 100% of total events!\r\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "TClass::Init:0: RuntimeWarning: no dictionary for class ROOT::TIOFeatures is available\n"
     ]
    }
   ],
   "source": [
    "int nentries, nbytes, i;\n",
    "nentries = (Int_t)Bkg->GetEntries();\n",
    "\n",
    "// IMPORTANT: fraction events we want to run\n",
    "fraction_events = 1;\n",
    "events_to_run = nentries*fraction_events;\n",
    "\n",
    "std::cout << \"Total # events = \"  << nentries\n",
    "          << \". Events to run = \" << events_to_run\n",
    "          << \" corresponding to \" << fraction_events*100\n",
    "          << \"% of total events!\" << std::endl;"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A continuación, se da paso al loop en los datos del dataset, en donde se incluyen algunos cortes:\n",
    "- Solo se contará exactamente dos fotones (TrigP).\n",
    "- Cada fotón tendrá 25 GeV.\n",
    "- Los otros cortes están señalados en el código."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "* Analysed a total of: 2473335 in this sample.\r\n"
     ]
    }
   ],
   "source": [
    "for (i=0; i < nentries; i++)\n",
    "{\n",
    "    nbytes =  Bkg->GetEntry(i);\n",
    "    \n",
    "    //# Cut: Diphoton trigger is satisfied\n",
    "    if(TrigP)\n",
    "    {\n",
    "        int goodphoton_index[5]; // give the vector a size good enough to avoid segmentation faults due to events with more than 2 photons.\n",
    "        int goodphoton_n = 0;    // the total number of good photon\n",
    "        int photon_index = 0;\n",
    "        \n",
    "        for(unsigned int j=0; j<Photon_n; j++)\n",
    "        {\n",
    "            // photons are tight\n",
    "            if(Photon_isTightID->at(j))\n",
    "            {\n",
    "                //# Cut: two photons with 25 GeV and excluding the transition region between the barrel and endcap calorimeters\n",
    "                if(Photon_pt->at(j) >25000. && TMath::Abs(Photon_eta->at(j))<2.37 && \n",
    "                   (TMath::Abs(Photon_eta->at(j)) < 1.37 || TMath::Abs(Photon_eta->at(j)) > 1.52))\n",
    "                {\n",
    "                    goodphoton_n = goodphoton_n + 1;  // count\n",
    "                    goodphoton_index[photon_index] = j;\n",
    "                    photon_index++;\n",
    "                }\n",
    "            }\n",
    "        }\n",
    "\n",
    "        //# Cut: Exactly two photons   \n",
    "        if(goodphoton_n==2)\n",
    "        {\n",
    "            int goodphoton1_index = goodphoton_index[0];\n",
    "            int goodphoton2_index = goodphoton_index[1];\n",
    "            // isolated photons\n",
    "            if(((Photon_ptcone30->at(goodphoton1_index)/Photon_pt->at(goodphoton1_index)) < 0.065) && ((Photon_etcone20->at(goodphoton1_index) / Photon_pt->at(goodphoton1_index)) < 0.065 ))\n",
    "            {\n",
    "                if(((Photon_ptcone30->at(goodphoton2_index)/Photon_pt->at(goodphoton2_index)) < 0.065) && ((Photon_etcone20->at(goodphoton2_index) / Photon_pt->at(goodphoton2_index)) < 0.065 ))\n",
    "                {\n",
    "                    // TLorentzVector definitions\n",
    "                    TLorentzVector Photon_1  = TLorentzVector();\n",
    "                    TLorentzVector Photon_2  = TLorentzVector();\n",
    "                    \n",
    "                    Photon_1.SetPtEtaPhiE(Photon_pt->at(goodphoton1_index), Photon_eta->at(goodphoton1_index), Photon_phi->at(goodphoton1_index),Photon_E->at(goodphoton1_index));\n",
    "                    Photon_2.SetPtEtaPhiE(Photon_pt->at(goodphoton2_index), Photon_eta->at(goodphoton2_index), Photon_phi->at(goodphoton2_index),Photon_E->at(goodphoton2_index));\n",
    "                    \n",
    "                    float dPhi_yy = fabs(Photon_phi->at(goodphoton1_index) - Photon_phi->at(goodphoton2_index));\n",
    "                    dPhi_yy       = dPhi_yy < TMath::Pi() ? dPhi_yy : 2*TMath::Pi() - dPhi_yy;\n",
    "                    float m_yy    = sqrt( 2 * Photon_1.Pt() * Photon_2.Pt() * \n",
    "                                      (cosh( Photon_1.Eta() - Photon_2.Eta()) - cos(dPhi_yy)));\n",
    "                    \n",
    "                    //Calculation of the Invariant Mass using TLorentz vectors\n",
    "                    TLorentzVector Photon_12 = Photon_1 + Photon_2;\n",
    "                    float mass_inv_GeV = Photon_12.M()/1000.;\n",
    "                    \n",
    "                    Bh_M_Hyy->Fill(mass_inv_GeV);\n",
    "                }\n",
    "            }\n",
    "        }\n",
    "    } // end TrigPhoton request\n",
    "}\n",
    "\n",
    "std::cout << \"* Analysed a total of: \" << nentries << \" in this sample.\" << std::endl;"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ahora, todos los resultados obtenidos se tienen que visualizar. Para esto, se crea un canvas en donde se va a dibujar el histograma:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TCanvas *cz1 = new TCanvas(\"cz1\",\"cz1\",10,10,900,600);\n",
    "TText tz1; tz1.SetTextFont(42); tz1.SetTextAlign(21);\n",
    "Bh_M_Hyy->Draw();\n",
    "cz1->Draw();"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ROOT Prompt",
   "language": "c++",
   "name": "root"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}