{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "TESHEP practical work : Measuring the D0 lifetime at the LHC" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Large Hadron Collider (LHC) is not only a tool with which to search for exotic new particles, but also a factory of particles whose existence is in no doubt but whose precise properties are not yet known well enough. One example are charmed hadrons, i.e. hadrons which contain a c quark, which were first discovered more than 30 years ago. Approximately one in every ten LHC interactions produces a charmed hadron, and the LHCb experiment at the LHC has already recorded over one billion signal events in various decay channels. In order to extract information from such large signal samples, it is necessary to achieve excellent control over backgrounds. This set of exercises is designed to teach you how to..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data sample used for this exercise consists of candidate $D^{0}$ mesons found in a sample of randomly collected LHC interactions during\n", "2010 datataking. The mesons have been preselected using loose criteria so that you begin the exercise with a visible signal. A $D^{0}$ meson consists\n", "of a charm anti-quark and an up quark. The mesons are fully reconstructed decaying in the mode $D^{0}\\to K^+ \\pi^-$, where the final state particles\n", "are a kaon ($K^+$) consisting of a strange anti-quark and an up quark, and a pion ($\\pi^-$) which consists of a down quark and an up anti-quark." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![lhcb_pic](http://mazurov.github.io/webfest2013/images/lhcb_velo.png \"LHCb picture\")\n", "\n", "Figure 1. The LHCb detector. The $\\textbf{Z}$ axis is the direction of the LHC beamline.\n", "\n", "Before discussing the data further, it is worth taking the time to familiarize yourselves with the LHCb detector, shown in Fig.1.\n", "It is a single-arm forward spectrometer covering the angular range between $0.7^\\circ$ and $15^\\circ$ relative to the beamline.\n", "In what follows ``transverse'' means transverse to the LHC beamline. The detector includes a high-precision tracking system consisting of a\n", "silicon-strip vertex detector surrounding the $pp$ interaction region, a large-area silicon-strip detector located upstream of a dipole\n", "magnet with a bending power of about $4{\\rm\\,Tm}$, and three stations of silicon-strip detectors and straw drift tubes placed\n", "downstream. The combined tracking system has a momentum resolution $\\Delta p/p$ that varies from 0.4% at 5$~$GeV$/c$ to 0.6% at 100$~$GeV$/c$,\n", "an impact parameter resolution of 20 $\\mu$m for tracks with high transverse momentum, and a decay time resolution\n", "of 50$~$fs. Charged hadrons are identified using two ring-imaging Cherenkov detectors.\n", "..." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Exercise 1 : fitting the mass distribution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The object of this exercise is to fit the distribution of the $\\textbf{D0_MM}$ variable and extract the signal yield and purity. If you plot this\n", "variable within the range (1816-1914)$~$MeV, you will see a peak (signal) on top of a flat distribution (background). The peak should be described\n", "by a Gaussian function, whose mean corresponds to the mass of the $D^0$ and whose width is determined by the experimental resolution of the LHCb\n", "detector. You should use the RooFit fitting framework for the following exercise." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot mass distribution of signal and background" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from ROOT import TFile, RooRealVar, RooDataSet, RooArgSet, RooGaussian, RooChebychev, RooArgList, RooAddPdf, RooFit\n", "import rootnotes" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "inputfile = TFile(\"TESHEP_Pedagogical_Data.root\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "inputchain = inputfile.Get(\"DecayTree\")\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "nameoffitvar = \"D0_MM\"\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "rangeoffit = (1816., 1914)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "backgroundrange = (1890., 1914.)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "nsigmasigbox = 2.\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "massvar = RooRealVar(\"D0_MM\", \"D0_MM\", rangeoffit[0], rangeoffit[1])\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "mydataset = RooDataSet(\"DecayTreeDataSet\",\"DecayTreeDataSet\",RooArgSet(massvar))\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "for entry in range(0,inputchain.GetEntries()) :\n", " inputchain.GetEntry(entry)\n", " if inputchain.__getattr__(nameoffitvar) > rangeoffit[1] or \\\n", " inputchain.__getattr__(nameoffitvar) < rangeoffit[0] :\n", " continue\n", " massvar.setVal(inputchain.__getattr__(nameoffitvar))\n", " mydataset.add(RooArgSet(massvar))\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "gausMean_B \t= RooRealVar(\"gausMean_B\",\"gausMean_B\",(rangeoffit[0]+rangeoffit[1])/2.,rangeoffit[0],rangeoffit[1])\n", "gausWidth_B \t= RooRealVar(\"gausWidth_B\",\"gausWidth_B\",15.,1.,50.)\n", "chebOne_B \t= RooRealVar(\"chebOne_B\",\"chebOne_B\",0.1,-5.,5.)\n", "gaussian_B \t= RooGaussian(\"gaussian_B\",\"gaussian_B\",massvar,gausMean_B,gausWidth_B)\n", "cheb_B \t= RooChebychev(\"cheb_B\",\"cheb_B\",massvar,RooArgList(chebOne_B))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "N_Sig_B = RooRealVar(\"N_Sig_B\",\"N_Sig_B\",10000,0,250000)\n", "N_Bkg_B = RooRealVar(\"N_Bkg_B\",\"N_Bkg_B\",10000,0,500000)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "totalpdf_B = RooAddPdf(\"totalpdf_B\",\"totalpdf_B\", RooArgList(gaussian_B,cheb_B), RooArgList(N_Sig_B,N_Bkg_B))\n", "totalpdf_B.fitTo(mydataset, RooFit.Extended())\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "canv_Dmass = rootnotes.default_canvas()\n", "frame_Dmass = massvar.frame()\n", "mydataset.plotOn(frame_Dmass,RooFit.Binning(100))\n", "totalpdf_B.plotOn(frame_Dmass)\n", "frame_Dmass.Draw()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "canv_Dmass" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\nQRUAAEAO/j8BQqfs15FHugAAAABJRU5ErkJggg==\n", "prompt_number": 41, "text": [ "" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "massvar.setRange(\"integralRangeAll\", rangeoffit[0], rangeoffit[1])\n", "massvar.setRange(\"integralRangeSignal\", \n", " gausMean_B.getVal() - nsigmasigbox * gausWidth_B.getVal(),\n", " gausMean_B.getVal() + nsigmasigbox * gausWidth_B.getVal())\n", "massvar.setRange(\"integralRangeBackground\", backgroundrange[0], backgroundrange[1])\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "integralall = cheb_B.createIntegral(RooArgSet(massvar), RooFit.NormSet(RooArgSet(massvar)), RooFit.Range(\"integralRangeAll\"))\n", "integralsignal = cheb_B.createIntegral(RooArgSet(massvar), RooFit.NormSet(RooArgSet(massvar)), RooFit.Range(\"integralRangeSignal\"))\n", "integralback = cheb_B.createIntegral(RooArgSet(massvar), RooFit.NormSet(RooArgSet(massvar)), RooFit.Range(\"integralRangeBackground\"))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "normalizedIntegralValue_S = integralsignal.getVal()/integralall.getVal()\n", "normalizedIntegralValue_B = integralback.getVal()/integralall.getVal()\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "print \"Signal range =\",\\\n", " gausMean_B.getVal() - nsigmasigbox * gausWidth_B.getVal(), \"-\",\\\n", " gausMean_B.getVal() + nsigmasigbox*gausWidth_B.getVal()\n", "print \"Background in signal range =\", normalizedIntegralValue_S * N_Bkg_B.getVal()\n", "print \"Background in background range =\",normalizedIntegralValue_B * N_Bkg_B.getVal()\n", "\n", "print \"Background scale factor =\", normalizedIntegralValue_S / normalizedIntegralValue_B" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Signal range = 1849.15867581 - 1879.81505391\n", "Background in signal range = 21579.3283653\n", "Background in background range = 16197.0885418\n", "Background scale factor = 1.33229674639\n" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }