310 words
2 minutes
Instalacion Root y Geant4 en Entorno Conda
Instalacion Root y Geant4 en Entorno Conda
Requisitos
- Ubuntu 20.04 o superior
- Conexión a Internet
- Terminal (Ctrl + Alt + T)
Paso 1: Instalar Anaconda en Ubuntu
1.1 Descargar Anaconda (versión estable)
cd ~/Downloadswget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh1.2 Ejecutar el instalador
bash Anaconda3-2024.02-1-Linux-x86_64.shPresiona Enter para aceptar la licencia, y responde yes cuando pregunte si quieres modificar .bashrc.
1.3 Activar conda
Después de la instalación:
source ~/.bashrcVerifica:
conda --versionPaso 2: Crear un entorno para ROOT y Geant4
2.1 Establecer prioridad de canales
conda config --set channel_priority strict2.2 Crear el entorno
conda create -n geant-root-env -c conda-forge root2.3 Activarlo
conda activate geant-root-envPaso 3: Instalar Geant4 desde Conda
Con el entorno activo:
conda install -c conda-forge geant4Verificar que funciona
Ver ROOT
rootDebe mostrar la bienvenida de ROOT. Sal con .q o Ctrl+D.
Ver Geant4
geant4-config --versionDebe mostrar 11.3.2 u otra versión reciente.
Paso 4: Probar visualización en Geant4
4.1 Código de ejemplo (main.cc)
Crea un archivo main.cc con el siguiente contenido:
#include "G4RunManager.hh"#include "G4UImanager.hh"#include "G4NistManager.hh"#include "G4Box.hh"#include "G4LogicalVolume.hh"#include "G4PVPlacement.hh"#include "G4SystemOfUnits.hh"#include "G4VUserDetectorConstruction.hh"#include "FTFP_BERT.hh"#include "G4UIExecutive.hh"#include "G4VisExecutive.hh"
class MyDetectorConstruction : public G4VUserDetectorConstruction {public: G4VPhysicalVolume* Construct() override { G4NistManager* nist = G4NistManager::Instance(); G4Material* air = nist->FindOrBuildMaterial("G4_AIR");
G4Box* solidWorld = new G4Box("World", 1.*m, 1.*m, 1.*m); G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, air, "World"); return new G4PVPlacement(nullptr, {}, logicWorld, "World", nullptr, false, 0, true); }};
int main(int argc, char** argv) { G4UIExecutive* ui = new G4UIExecutive(argc, argv); auto runManager = new G4RunManager(); runManager->SetUserInitialization(new MyDetectorConstruction()); runManager->SetUserInitialization(new FTFP_BERT()); G4VisManager* visManager = new G4VisExecutive(); visManager->Initialize(); runManager->Initialize();
G4UImanager* UImanager = G4UImanager::GetUIpointer(); UImanager->ApplyCommand("/vis/open OGL"); UImanager->ApplyCommand("/vis/drawVolume"); UImanager->ApplyCommand("/vis/viewer/setViewpointThetaPhi 90 0"); UImanager->ApplyCommand("/vis/scene/add/axes 0 0 0 1 m");
ui->SessionStart();
delete ui; delete visManager; delete runManager; return 0;}4.2 Compilar
g++ main.cc -o testG4 $(geant4-config --cflags --libs) -std=c++174.3 Ejecutar
./testG4Deberías ver una ventana 3D con el volumen del mundo.
Extras útiles
Exportar tu entorno Conda a un .yml:
conda env export > geant-root-env.ymlY puedes recrearlo así:
conda env create -f geant-root-env.ymlPróximos pasos sugeridos
- Añadir partículas con
G4ParticleGun - Guardar datos con ROOT (
TTree,TFile) - Explorar
pyrootyjupyter notebook - Compilar Geant4 de forma externa si necesitas personalización avanzada
Instalacion Root y Geant4 en Entorno Conda
https://jangelmm.github.io/posts/informatica/programacion/geant4/1-instalacion-y-configuracion-de-geant4/instalacion-root-geant/