pablobuitron / masterthesis

This repository contains the code and documentation for my master's project in physics.
1 stars 0 forks source link

Inconvenientes con "Build and Install" de Geant4 #38

Open pablobuitron opened 1 year ago

pablobuitron commented 1 year ago

Este problema ya ha sido solucionado

Descprición:

En la máquina local, la instalación de Geant4 se queja de inconsistencias con las librearias relacionadas con ROOT a las que hace referencia.
Esto tiene que ver con incompatibilidad entre versiones nuevas de G4 y ROOT, lo que imposibilita compilar proyectos de G4 en particular, el proyecto wcd que encontramos en ARTI.

Solución:

La solución a este problema fue, siguiendo las mismas indicaciones que se encuentran en el repositorio de ARTI, instalar todas las versiones de G4 y ROOT que ahí señala, así como las dependencias requeridas.

En la máquina local habría que hacer una instalación adecuada del ROOT que indica ahí que es la versión ROOT v6.20.08. E instalar Geant v4.10.03.

Lo que hice yo fue, descargar un container de ROOT que tenga esta versión, esto me aseguraba que esté instalado y construido correctamente. Aquí, instalé la versión antigua de G4 y cloné ARTI.

Para hacer la instalación de G4 hay que seguir los pasos siguientes:

Todo esto ocurre en el container:

  1. Descargar el código source de la versión adecuada en algún path, siguiendo la notación que tiene la misma guía aquí, el path será /path/to.
  2. Después de descomprimir en /path/to, crear dos directorios:
    $ cd /path/to
    $ mkdir geant4-v10.3.0-build
    $ mkdir geant4-v10.3.0-install
  3. Hacer cd /path/to/geant4-v10.3.0-build, una vez en este directoorio, correr la línea: cmake -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_GDML=ON -DGEANT4_BUILD_MULTITHREADED=ON -DCMAKE_INSTALL_PREFIX=/path/to/geant4-v10.3.0-install /path/to/geant4-v10.3.0 Esta línea construye a G4 con todos los sets de datos requeridos por ARTI (y cualquier proyecto de G4 en general), además habilita la visualización (no interactiva), del proyecto de G4, aunque no es interactiva, se puede seguir mandando comandos desde la terminal para visualizar snapshots de lo que se vaya haciendo en el mundo de G4.
  4. Luego hay que hacer make -jN donde N son los procesadores disponibles. Ojo que este comando se corre en el mismo directorio /path/to/geant4-v10.3.0-build
  5. Finalmente, ahí mismo hacer make install. Una vez este proceso termine, G4 estará correctamente construido e instalado en el container.

Para compilar el proyecto de G4 wcd:

  1. Ir al directorio donde esté instalado ARTI con cd /ruta/a/arti
  2. Hacer mkdir wcd-build
  3. Hacer cd wcd-build
  4. Correr cmake -DGeant4_DIR=/path/to/geant4.10.3-install/lib/Geant4-10.3.0/ /ruta/a/arti/wcd

    Aquí, debería haber ciertos errores que los discutiremos más abajo (a menos que ya se haya implementado la solución en el repo de ARTI.)

  5. Hacer make -jN
  6. Correr el ejecutable creado con: ./wcd -m input.in > run.log

En el paso 4, el compilador se queja de ciertas referencias y declaraciones de tipos variables en el código del proyecto wcd. Esto se soluciona empleando la versión del proyecto que creé y que ya la subiré a este repositorio más adelante. Aquí soluciono los errores de tipos de variables en algunos archivos, por eso es mejor copiar directamente mi directorio a buscar el cambio de código en todo el proyecto archivo por archivo.

Otros posibles errores.

Al momento de compilar el proyecto de G4, es posible que geant4 no encuentre referencia a los distintos datasets necesarios para la compilación. Esto se puede solucionar, escribiendo en el archivo bashrc las variables de entorno apuntando a la ubicación de cada dataset. Esto es: $ nano ~/.bashrc, una vez aquí, escribir (hasta el final del archivo):

export LD_LIBRARY_PATH=/opt/geant4-v10.3.0-install/lib/
export G4ENSDFSTATEDATA=/opt/geant4-v10.3.0-build/data/G4ENSDFSTATE2.1
export G4LEDATA=/opt/geant4-v10.3.0-build/data/G4EMLOW6.50/
export G4LEVELGAMMADATA=/opt/geant4-v10.3.0-build/data/PhotonEvaporation4.3/
export G4NEUTRONHPDATA=/opt/geant4-v10.3.0-build/data/G4NDL4.5/
export G4REALSURFACEDATA=/opt/geant4-v10.3.0-build/data/RealSurface1.0/
export G4SAIDXSDATA=/opt/geant4-v10.3.0-build/data/G4SAIDDATA1.1/
export G4NEUTRONXSDATA=/opt/geant4-v10.3.0-build/data/G4NEUTRONXS1.4/

cambiar /opt/ por el respectivo path en el que esté instalado geant4