ROOT Isidro González Caballero ( gonzalezisidro@uniovi.es )gonzalezisidro@uniovi.es Técnicas...

Post on 21-Apr-2015

12 views 5 download

Transcript of ROOT Isidro González Caballero ( gonzalezisidro@uniovi.es )gonzalezisidro@uniovi.es Técnicas...

ROOT

Isidro González Caballero( gonzalezisidro@uniovi.es )

Técnicas Experimentales en Física de Partículas

Curso 2010 - 20114

2

http://root.cern.ch

3

ROOT en breve

ROOT es un entorno Orientado a Objetos programado en C++ para el desarrollo de aplicaciones que manejen grandes volúmenes de datos.

Proporciona, entre otras cosas:– Un sistema eficiente de almacenamiento y acceso a datos diseñado para soportar

conjuntos de datos estructurados hasta los PB. – Un sistema de consulta (query) para extraer los datos de los ficheros– Un intérprete de C++ (CINT)– Algoritmos de análisis estadístico avanzados (histogramas multidimensionales,

ajustes, minimización, etc.…)– Herramientas de visualización científica con gráficos 2D y 3D– Un avanzado Interfaz de Usuario Gráfico

El usuario interacciona con ROOT a través del interfaz de usuario gráfico, la línea comando o scripts

Los comandos de línea o de los scripts son C++, gracias al interprete integrado de C++, CINT.

– Soporta compilación dinámica de los scripts y cargado dinámico Es un proyecto de fuente abierta (Open Source), licenciado bajo LGPL

4

Framework y conjunto de librerías

Clases de usuario

– Cada usuario puede definir nuevas clases interactivamente

– Utilizando todos las “maravillas” del C++

– …incluyendo la posibilidad de heredar de las clases de ROOT

Enlace dinámico

– El código interpretado puede llamar al código de

compilado

– El código compilado puede llamar al código

interpretado

– Se puede compilar y enlazar dinámicamente las

Macros

Modo normal defuncionamiento

Interesante para GUIsy visualizadores de

sucesos

Compilador de macosroot > .x file.C++

5

Areas de utilización de ROOT

Almacenamiento de datos:Localmente o distribuidos

Análisis de datos & visualización

Framew

ork general

6

El interprete: CINT

CINT se utiliza en ROOT:– Como interprete de líneas comando– Como intérprete de scripts– Para generar diccionarios de clase– Signals/Slots en los GUI– …

El lenguaje de línea comando, script y programación es el mismo

Permite compilar fácilmente los scripts grandes para mejorar el rendimiento

7

¿Compilar o interpretar?

Compilar Pros:

– Ejecución más rápida– El compilador soporta

todo el C++

Cons:– Compilar lleva tiempo– El compilador es más

estricto con la estructura del lenguaje

Interpretar Pros

– Ideal para probar rápidamente si algo funcionaEdita Ejecuta Comprueba Edita…

– En programas simples puede ser más conveniente

Cons:– Ejecución más lenta,

sobre todo en programas grandes

8

Ejecutando código

Para ejecutar la función mycode() que está en el fichero mycode.C:root [0] .x mycode.C

Equivalentemente: Leer el fichero y ejecutar la función:root [1] .L mycode.Croot [2] mycode()

Para conocer todos los comandos de CINT:root [3] .h

9

Ejecutando código

Macro: Fichero interpretado por CINT (.x)

Ejecutar con .x mymacro.C(42)

Para compilar .x mymacro.C+(42)

int mymacro(int value) { int ret = 42; ret += value; return ret;}

10

Ejemplos gráficos

ROOT tiene varias clases para representar funciones matemáticas.– La más sencilla es TF1 (todas las funciones en ROOT empiezan con “T”)

Buscar la descripción en la página web de ROOT para TF1: http://root.cern.ch/root/html/TF1.html

Hay un constructor (entre otros) que toma cuatro argumentosTF1 TF1(const char* name, const char* formula, Double_t xmin = 0,Double_t xmax = 1)

Crear la función sin(x)/x en el intervalo 0 < x < 10:

Los argumentos del constructor son: El nombre (f1), la expresión de la función (sin(x)/x) y los límites inferior y superior del intervalo (0,10)

Truco: Utiliza el tabulador para completar el comando o averiguar la lista de sus argumentos. Ejemplo:

root [] TF1 f1("f1","sin(x)/x",0,10);root [] f1.Draw();

root [] f1.<TAB>

11

Histogramas - Intro

Echar un vistazo a la macro hrandom.C Creamos dos histogramas:

1. Un solo valor constante

2. Una distribución aleatoria plana en el intervalo (0,1)

Buscar la domumentación de:

– TH1F– TRandom– THistPainter (opciones de Draw())

– (TCanvas)– …

12

Histogramas - Interactividad

Ir al menu View Editor

Pinchar en el histograma– Podemos modificar un montón de

parámetros Pinchar en el eje

– Renombrarlo …

13

Histogramas - Ejercicio

Hacer una macro que llene un histograma con una distribución aleatoria de forma gaussiana– Media=1– Varianza=1.5– Intervalo (-5,5)

14

Histogramas – Las 2 dimensiones

Echar un vistazo a la macro hrandom2.C

Fijarse en:– TH1F TH2F– Damos nombre a los

ejes directamente en el código

– Elejimos el tipo de histograma que queremos pintar de entre todos los posibles en el código

– Damos título al histograma al crearlo

15

Ajustes

Echar un vistazo a la macro printHisto.C

Ejecutarlo sobre el fichero de datos gauss.txt

Histograma 1D con forma gaussiana?– Vamos a intentar ajustarlo– Click derecho y Menu FitPanel– Elegimos la función que queremos

ajustar

16

Ajustes

Los parámetros del ajuste salen en el texto

Con el botón derecho sobre el resumén del histograma se pueden añadir también ahí (SetOptFit)

– Media: 1.0– Sigma: 2.0

Podemos ajustar solo en un intervalo

17

Ajustes - Ejercicio

Mirar que forma tienen los datos en el fichero de datos gauss2.txt

Ajustar adecuadamente…

18

Estructuras de datos en ROOT: TTrees

Los TTree’s han sido diseñados para soportar colecciones muy largas de objetos.

Permiten acceso directo y aleatorio a cualquier entrada del árbol (aunque el acceso secuencial va mejor)

Los TTree’s tienen ramas (branches) y hojas (leaves). Se puede leer un subconjunto de las ramas.

Hay métodos de alto nivel como TTree::Draw que iteran sobre las entradas con expresiones de selección.

Se pueden ver los TTree’s usando TBrowser

Se pueden analizar los TTree’s usando TTreeViewer

19

Contenido de un TTree

0123456789101112131415161718

T.Fill()

T.GetEntry(6)

T

Memory

20

Estructura de un TTree

Cada fichero de datos es una colección de N sucesos

Cada suceso tiene estructura de árbol con varias ramas– Cada rama puede contener un valor (ej. Número de

sucesos)…– … o una colección de valores (momento transverso

de los jets)

La estructura de cada suceso puede ser muy compleja (RECO, PAT) o plana (Flat Trees)

21

TBrowser

Usamos la herramienta TBrowser para ver el contenido de los ficherosroot [] TBrowser t

22

TBrowser

23

TBrowser

24

TTreeViewer

root[] TFile f("staff.root")root[] T->StartViewer()

Drag and drop

1

2

3

25

Producción del bosón de Higgs SM en el LHC

Proceso dominante: gluon fusion Factor 10 de supresión: Vector Boson

Fusion (VBF) ttH: importante cerca del límite de LEP? W(Z)H: debido al enorme fondo, no para

descubrir

26

todas las colisiones no interesan

100 Hz: se registran tal vez interesen (0.0005%)

sólo < 1 Higgs por cada 100 000 000 000 interacciones-pp

“inteligentes“ estrategias de selección

pro

du

cció

n e

n e

l L

HC

t

trigger: leptones, fotones,ETMISS, ….

Secciones eficaces para los procesos del fondo

27

Además

Además:– Underlying Event: varios “partones“ en

interacciones de p– Pile-up: Hasta 23 interacciones-pp solapadas por

colisión

Por tanto:– 1600 partículas cargadas por cada colision en el

detector– efectos del pile-up: tiempo de lectura > t entre

colisiones

28

Desintegraciones del bosón de Higgs en el SM

50 100 200 100010-3

10-2

10-1

100

bb cc tt gg WW ZZ

Bra

nchi

ng r

atio (Higgs

)

mH (GeV)

bb

WW

ZZ

tt

ccgg

HDECAY: Djouadi, Spira et al.

excl

ud

ed b

y L

EP

excluded by

electroweak fit

incl. direct searches

para M<135 GeV: H bb, dominante

para M>135 GeV: H WW, ZZ dominante

pequeño: H también importante

29

Búsqueda del bosón de Higgs: HWW

Nos centraremos en:– Región de masa: MH~160

GeV– Canal HWW– Con 2 muones en el

estado final– Los neutrinos no se

detectan Energía faltante en el plano transverso

30

Fondos

Procesos que pueden dar signaturas similares

– WW Signatura idéntica. Irreducible

– W + Jets Sección eficaz altísima

– Pares de quarks top: ttbar BR[tbW] ~99%

– Otros Dibosones: WZ, ZZ– Z + jets Sección eficaz

alta, pero no tendría en principio energía faltante

– tW

31

Muestras

Sobre todas las muestras se ha hecho una preselección– µ HLT– Tracks isolation– Calotowers isolationh– Skimming 2 leptones: PT > 20,20 |η|<2.4

Tskim N

NN L

32

Ejercicio

Maximizar la relación entre señal (Higgs) y el fondo (suma de fondos) usando:– Jet veto Número de jets– MET Energía transversa faltante– ΔΦµµ Ángulo entre los dos muones

– mµµ Masa invariante de los dos muones

– PTµmax Momento transverso del muon más energético

– PTµmin Momento transverso del muon menos energético

33

Ejercicio II: Datos

Proceso WW W+jets tt WZ ZZ Z+jets tW

NLO[pb] 4.51 31314 16.52 18.2 5.9 3048 10.6

skim(%) 18.4 4.48×10-4 21 2.83 5.47 22.4 2.61

MH NLO[pb] skim(%)

130 GeV 0.20093 22.0

160 GeV 0.38509 38.5

190 GeV 0.21622 46.2

Señales(HWW 2l 2n)

Fondos

La variable Channel nos permite escoger los sucesos según el tipo de los leptones:•Channel == 0 2 muones•Channel == 1 2 electrones•Channel==2 1 muon y 1 electrón

L = 36.1 pb-1