Вы находитесь на странице: 1из 18

INTRODUCCIN:

Los grandes experimentos en todas las ramas de la ciencia y la ingeniera estn


revolucionando la forma en que se manejan los grandes volmenes de datos que estos grandes
experimentos generan. En Fsica se encuentran la gran mayora de los as llamados grandes
experimentos, por ejemplo en el CERN se encuentra operando el Gran Colisionador de
Hadrones LHC, que tiene los cuatro ms grandes experimentos de la historia de la humanidad,
de mayor a menor ATLAS, CMS, ALICE, LHCb el quinto gran experimento se puede ubicar
en Fermilab
El estudiante puede leer ms sobre estos experimentos en las referencias dadas al pie
de pgina. CERN para poder analizar toda esta gran cantidad de datos ( 30 Petabytes/year)
producida en todos los detectores de los experimentos que estn sobre el LHC, CERN ha
creado un sistema de almacenamiento de datos y computacin distribuida llamada la grid4. La
grid centraliza el almacenamiento de todos sus datos en un nodo central llamado Tier-0, y
distribuye por capas de nodos rplicas de datos en varios Tier-1, Tier-2. El paradigma cambia
debido a que los programas van hacia los datos y no los datos hacia todos los usuarios (que
conllevara mltiples copias de una gran cantidad de datos), al final de que cada programa
hecho por el usuario corre sobre los datos, el usuario puede recuperar las grficas, plots,
videos de sus anlisis realizados mediante el programa escrito por lo general en C/C++.
CERN en el pasado ya haba inventado el internet. El internet y la grid se reconocen como los
dos ms grandes quiebres de la tecnologa informtica.

OBJETIVOS

Instalar el programa LINUX y aprender sobre el manejo de l.

Aprender sobre el manejo del lenguaje C++ para la realizacin de programacin de


grficas.
Realizar a travs del programa LINUX graficas con mayor probabilidad de exactitud.
Aprender a realizar graficas teniendo en cuenta su error por medio del programa
LINUX.

MARCO TERICO

Procedimiento para Instalar el Software en Disco Duro2.1

Instrucciones para instalar en Linux (Sabor Debian) Primero descargamos las libreras
que son prerrequisitos para instalar el sistema. En una Terminal ejecutar el siguiente comando
para instalar las libreras prerrequisitos
sudo apt-get install git dpkg-dev make g++ gcc binutils \
libx11-dev libxpm-dev libxft-dev libxext-dev gfortran \
libssl-dev libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev \
libmysqlclient-dev libfftw3-dev cfitsio-dev graphviz-dev \
libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev \
libkrb5-dev libgsl0-dev libqt4-dev

Preparamos la estructura de folders y archivos que queremos, descargamos el


cdigo fuente de ROOT version5.34.34en nuestro $HOME y luego descomprimimos y
copiamos los contenidos delfolder root en el folder actual. Por ltimo se remueve el folder
vacio root.
cd $HOME mkdir -p ROOT/
5.34.34 cd ROOT/
5.34.34 wget
https://root.cern.ch/download/root_v5.34.34.source.tar.gz tar xvvfz
root_v5.34.34.source.tar.gz cp -r root/* . rmdir root
Instalamos ROOT con gcc para una arquitectura de 64 bits mediante los siguientes
comandos: /configure linuxx8664gcc --all make -j4 En la ultima lnea de cdigo el nmero 4
hace referencia al nmero de cores presentes en tu latptop o desktop. Configuramos las
variables de ambiente de la Terminal agregando la siguiente lnea al final del archivo

$HOME/.bash_profile source $HOME/ROOT/5.34.34/bin/thisroot.sh Validar los cambios en


las variables de ambiente source $HOME/.bash_profile 2.2 Instrucciones para instalar en
Windows 1. Ir a la pgina web https://root.cern.ch/content/release-53434 y descargar el
archivo ejecutable root_v5.34.34.win32.vc10.exe, luego instalar como se instala todo en
windows. Despus de tener instalado root versin 5.34.34, vamos a alguna de las carpetas
dentro de C:\root_v5.34.34\tutorials\ , por ejemplo la carpeta fit\ y dentro de ella hay varios
archivos tipo root terminados en .C. Dar clic derecho, abrir con otro programa, buscamos el
ejecutable C:\root_v5.34.34\bin\root.exe, dar aplicar y dar aceptar. Fijarse que ahora todos los
archivos de root se pueden correr haciendo simplemente doble clic sobre cada uno de ellos.
Nota: Para editar los archivos de root (de cdigo de C++) usted debe usar un editor de texto
que NO corrija lo que usted escribe, por ejemplo, Microsoft Office Word corrige de
minsculas a maysculas o pone tildes a voluntad, esto no nos gusta. Pueden usar alguno de
los siguientes editores de texto:

Wordpad
Notepad++
Vim
Gedit

TEMAS DE CONSULTA

1) Paradigma de la Programacin Orientada a Objetos OOP

La Programacin Orientada a Objetos (POO u OOP por sus siglas en ingls), es un


paradigma de programacin.

Paradigma: Teora cuyo ncleo central [...] suministra la base y modelo para resolver
problemas [...] (Definicin de la Real Academia Espaola, vigsimo tercera edicin)
Cmo tal, nos ensea un mtodo -probado y estudiado- el cual se basa en las interacciones de
objetos (todo lo descrito en el ttulo anterior, Pensar en objetos) para resolver las necesidades
de un sistema informtico. Bsicamente, este paradigma se compone de 6 elementos y 7
caractersticas que veremos a continuacin.

Elementos y Caractersticas de la POO

Los elementos de la POO, pueden entenderse como los materiales que necesitamos
para disear y programar un sistema, mientras que las caractersticas, podran asumirse como
las herramientas de las cules disponemos para construir el sistema con esos materiales.
Entre los elementos principales de la POO, podremos encontrar a:
Clases: Las clases son los modelos sobre los cules se construirn nuestros objetos.
Podemos tomar como ejemplo de clases, el grfico que hicimos en la pgina 8 de este
documento.
En Python, una clase se define con la instruccin class seguida de un nombre genrico
para el objeto.

class Objeto:
pass
class Antena:
pass
class Pelo:
pass

class Ojo:
pass

Propiedades
Las propiedades, como hemos visto antes, son las caractersticas intrnsecas del objeto. stas,
se representan a modo de variables, solo que tcnicamente, pasan a denominarse propiedades:
class Antena():
color = ""
longitud = ""
class Pelo():
color = ""
textura = ""
class Ojo():
forma = ""
color = ""
tamanio = ""
class Objeto():
color = ""
tamanio = ""
aspecto = ""
antenas = Antena() # propiedad compuesta por el objeto objeto Antena
ojos = Ojo()

# propiedad compuesta por el objeto objeto Ojo

pelos = Pelo()

# propiedad compuesta por el objeto objeto Pelo

2) Regresin lineal

El modelo de pronstico de regresin lineal permite hallar el valor esperado de una


variable aleatoria a cuando b toma un valor especfico. La aplicacin de este mtodo implica
un supuesto de linealidad cuando la demanda presenta un comportamiento creciente o
decreciente, por tal razn, se hace indispensable que previo a la seleccin de este mtodo
exista un anlisis de regresin que determine la intensidad de las relaciones entre las variables
que componen el modelo.
Cundo utilizar un pronstico de regresin lineal?
El pronstico de regresin lineal simple es un modelo ptimo para patrones de demanda
con tendencia (creciente o decreciente), es decir, patrones que presenten una relacin de
linealidad entre la demanda y el tiempo.

Existen medidas de la intensidad de la relacin que presentan las variables que son
fundamentales para determinar en qu momento es conveniente utilizar regresin lineal.

Anlisis de regresin

El objetivo de un anlisis de regresin es determinar la relacin que existe entre una


variable dependiente y una o ms variables independientes. Para poder realizar esta relacin,
se debe postular una relacin funcional entre las variables. Cuando se trata de una variable
independiente, la forma funcional que ms se utiliza en la prctica es la relacin lineal. El
anlisis de regresin entonces determina la intensidad entre las variables a travs de
coeficientes de correlacin y determinacin.
Coeficiente de correlacin [r]
El coeficiente de correlacin, comnmente identificado como r o R , es una medida de
asociacin entre las variables aleatorias X y Y, cuyo valor vara entre -1 y +1.

El clculo del coeficiente de correlacin se efecta de la siguiente manera:

Dnde t hace referencia a la variable tiempo y x a la variable demanda.

3)

Curso extra-rpido de C++

Aprender c++ fcil y de forma amena es posible. El problema es que muchas personas que
intentan formarse de manera autnoma a menudo terminan aburrindose. Por qu sucede
esto? Analicemos un poco el por qu siendo un lenguaje sencillo sin embargo estructurarlo
termina siendo complejo para la mayora de estudiantes. Para finalizar te mostraremos unos
pequeos consejos para que consigas t tambin aprender c++ fcil
C ++ el idioma de bajo nivel y grandes resultados
Cplus fue creado con la intencin de conseguir un lenguaje que ampliara las posibilidades de
C pero que incorporara la programacin de objetos.
Es un lenguaje de los denominados de bajo nivel, aunque ello no significa que sea inferior,
en realidad este concepto define un idioma que te obliga a hacer las cosas a ti mismo. Con los
lenguajes de alto nivel existen entornos de programacin que automatizan muchas de las
tareas del programador, y aunque esto puede ser muy cmodo tambin existe el riesgo de que
te limite a copiar cdigo y poco ms. En cambio, con un lenguaje como c++ llegas a
comprender y razonar, digamos que te ensucias las manos pero tambin logras el control
sobre el hardware, aprendiendo a conocer lo que ocurre en la CPU.
Es por este motivo por el que parece que es imposible aprender c++ facil? Quizs para el
programador novel acostumbrado a otras maneras de programar. Pero el problema es que a
veces se juzga un lenguaje de programacin por el entorno y las apariencias, y con cplus no
tienes una gran interface sino que se codifica con una pantalla de msDos.
Pero a pesar de estas restricciones tcnicas, capacitarte en un lenguaje como Cplus de consola
te permitir posteriormente entender casi todos los otros lenguajes de programacin. Es la
mejor manera de conseguir una formacin que realmente te ensee a codificar y que te
proporcione la capacidad de entender lo que haces en programacin y por qu lo haces.

Adems los estudiantes que se animan a hacer un curso de un lenguaje de bajo nivel como c +
+ despus son mucho ms adaptables y comprenden mejor los conceptos de la programacin
de cualquier otro lenguaje.
S, es cierto, vas a tener que esforzarte para aprender, pero las dificultades de cplus quedan
compensadas por la satisfaccin de poder crear cdigo rpido y de extremado rendimiento y
porque aunque ahora no lo termines de ver necesario despus comprobars que estudiando c+
+ fcil le vas a sacar provecho a tu esfuerzo.
Hay programas muy conocidos escritos en C plus. La mayora de programas de Adobe, como
por ejemplo Photoshop, Premiere, o Illustrator, el navegador Mozzilla, algunas aplicaciones
de Google Por algo ser!
Consejos para aprender C++ fcil
A no ser que seas un superdotado desengate: Si piensas aprender C++ fcil solamente a
travs de libros te va a costar lo tuyo.
Mentalzate: El idioma puede que sea complejo, pero estudiarlo no tiene porqu serlo. Antes
de elegir el centro donde estudiar cplus habla con el profesor de informtica y asegrate de
poder hacer todas las prcticas que necesites para una buena formacin en c++ fcil.
Si aun as decides intentar aprender por tu cuenta, te recomendamos investigar sobre el origen
de c++, hacerte con una dosis extra de paciencia, instalarte un buen compilador/IDE y tener
en cuenta que los tutoriales y compiladores que utilices estn actualizados para evitar errores.
No es aconsejable que ejecutes programas que tengan #include junto a WINDOWS. h
encerrado en etiquetas, ya que se utilizan muchas veces para incluir nodos maliciosos y
suelen generar fallos.

DATOS

Elegir los datos de algunas de las siguientes pginas web


1. http://www.multidark.org/
2. http://pdg.lbl.gov/2015/AtomicNuclearProperties/index.html
3. http://icecube.wisc.edu/science/data
4. http://catalog.data.gov/dataset
5. Desminado Humanitario
6. Victimas de Minas Antipersona
7. http://www.nature.com/subjects/protein-databases
8. https://ned.ipac.caltech.edu/
9. http://simbad.u-strasbg.fr/simbad/

ANALISIS DE LOS DATOS

Lo ms importante que hay que saber sobre trabajar con root, es que los archivos deben
llamarse
igual que la funcin que va dentro del archivo, por ejemplo, el archivo script.C debe llevar
por
Dentro la siguiente estructura
void script()
{
// Aqui (dentro de los corchetes)
// va lo que realiza la funcion void llamada script
}

Para correr dicho programa damos clic en windows, luego escribimos cmd y damos enter. En
la terminal de DOS nos dirigimos al lugar en donde esta ubicado el archivo script.C y
ejecutamos root script.C.

ANLISIS DE RESULTADOS

1. Elegir un proyecto de anlisis de datos entre las opciones dadas en la seccin anterior.
VICTIMAS DE MINAS ANTIPERSONA (MILITARES)

Tabla de datos y clculo del error.

X: Ao
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006

Clculo del error en Y:

Y: Militares victimas de minas.


11
10
30
12
12
15
15
3
4
13
21
29
84
125
139
199
168

Error en Y
1,56515775
1,60219479
0,86145405
1,52812071
1,52812071
1,4170096
1,4170096
1,86145405
1,82441701
1,49108368
1,19478738
0,89849108
1,13854595
2,65706447
3,17558299
5,39780521
4,24965706

e y=

|x ix|
n

n=n de terminos=27

xi

x = i=1
n

2. Hacer una grfica en 2D mostrando las barras de errores de los variables de datos
mostrados.

3. Hacer un Ajuste Lineal.

4. Hacer un Ajuste polinmico de orden 5.

5. Hacer un Ajuste a una Gaussiana.

CONCLUSIONES

Con el programa LINUX aprendimos hacer graficas de diferentes tipos, gracias a su


inmensidad de funciones que tiene.

Entendimos el lenguaje C++ que sirve para dar instrucciones a programa para realizar
lo que le programamos.
LINUX nos da a entender la eficiencia al entregar datos con sus respectivos mrgenes
de errores.

BIBLIOGRAFA

Fernando Quionez
https://www.dropbox.com/sh/fatnk33awccgeln/AADP5_6CrZxEvlaHOLhiJzF4a/LAB
FITS.pdf?dl=0.
R. Brun and F. Rademakers. ROOT: An Object Oriented Data Analysis Framework.
Nucl.Instrum. Meth. A 389 81-86, 1997.
Bjarne Stroustrup. The C++ Programming Language, Addison-Wesley Longman
Publishing Co., Inc. 3rd Edition. Boston, MA, USA, 2000.
Pgina web con los tutoriales necesarios para realizar la prctica de laboratorio.
https://root.cern.ch/root/html/tutorials/
Pgina web con comandos de DOS. https://es.wikipedia.org/wiki/MS-DOS
Pgina web de comandos bsicos de linux.

https://www.debian.org/doc/manuals/refcard/refcard.es.pdf
Olive et al. (Particle Data Group), Chin. Phys. C 38 090001, 2014.
Luca Lista, Statistical Methods for Data Analysis in Particle Physics, Springer, 2016.
G.D. Cowan, Statistical Data Analysis, Oxford University Press, 1998.
L. Lyons, Statistics for Nuclear and Particle Physicists, Cambridge University Press,

1986.
R.J. Barlow, Statistics: A Guide to the Use of Statistical Methods in the Physical
Sciences, Wiley, 1989.
F. James, Statistical Methods in Experimental Physics, 2nd ed., World Scientific,
2006.
S. Brandt, Data Analysis 3rd ed., Springer, 1999.
G. Cowan A Survey of Unfolding Methods for Particle Physics, in Proc. Conf. on
Advanced Statistical Techniques in Particle Physics, M.R. Whalley and L. Lyons
(eds.), IPPP/02/39.
A.N. Kolmogorov, Grundbegriffe der Wahrscheinlichkeitsrechnung, Springer, 1933;
Foundations of the Theory of Probability, 2nd ed., Chelsea, 1956.
Stuart, J.K. Ord, and S. Arnold, Kendalls Advanced Theory of Statistics, Vol. 2A:
Classical Inference and the Linear Model 6th Ed., Oxford Univ. Press (1999), and
earlier editions by Kendall and Stuart.
C.M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.
T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning, 2nd ed.,
Springer, 2009.
R. Duda, P. Hart, D. Stork, Pattern Classification, 2nd ed., Wiley, 2001.

Web, Statistical Pattern Recognition, 2nd ed., Wiley, 2002.


G. Cowan, Topics in Statistical Data Analysis for HEP, in LHC Physics, T. Binoth, C.
Buttar, P.J. Clark, E.W.N. Glover (eds.), Taylor and Francis, 2012 (see also
arXiv::1012.3589).
Links to the Proceedings of the PHYSTAT conference series (Durham 2002, Stanford
2003, Oxford 2005, and Geneva 2007) can be found at phystat.org.
Hocker et al., TMVA Users Guide, physics/0703039 (2007); software available from
tmva.sf.net.

Вам также может понравиться