2. qu´e es? ...qu´e no es?
▲ GEometry ANd Tracking, Geometr´ıa y seguimiento, es un software que
permite estudiar el paso de la radiaci´on por la materia utilizando algoritmos
de MonteCarlo.
▲ No es un programa, sino un conjunto de librerias escritas en C++, con
ciertas facilidades para manipular datos, crear gr´aficos, etc (toolkit) que
permiten escribir uno mismo los programas.
3. ventajas/desventajas
▲ Se puede usar para cualquier simulaci´on que requiera Montecarlo, Sin
embargo, es especialmente indicado para simular haces de part´ıculas
interactuando con la materia, como es nuestro caso.
▲ Su instalaci´on completa (con todos los m´odulos) es complicada ya que
requiere el numerosas librerias, y no figura en ning´un repositorio. Esto
significa que uno mismo debe compatibilizar las dependencias.
▲ Viene con una interfaz gr´afica integrada, que puede activarse o no.
▲ Est´a dise˜nado para usarse bajo el paradigma de programaci´on orientada a
objetos, esto es una complicaci´on en su aprendizaje, pero es una ventaja
despu´es.
▲ Al ser un codigo abierto, y no un programa, se puede incorporar cualquier
otro codigo (escrito en C/C++) que nos sirva para efectuar tareas espec´ıficas.
4. estructura de programaci´on
podemos distinguir dos capas principales: una capa de usuario donde se
desarrolla la aplicaci´on y una segunda capa m´as interna de los m´etodos propios
de Geant4, estos m´etodos comienzan con el prefijo G4. Dentro de esas capas se
distinguen tres bloques principales: Construcci´on, F´ısica y Acci´on.
G4RunManager
G4Event
G4ParticleGun
G4Randomize
G4BosonConstruction
G4IonConstruction
G4SystemOfUnits
G4Box
G4Tubs
G4LogicalVolume
G4VisAttributes
G4QuadrupoleMagField
PhysicsList PrimaryGeneratorActionDetectorConstruction
main()
CAPAG4CAPADEUSUARIO
APLICACION
FISICACONSTRUCCION
PRINCIPAL
ACCION
5. main()
El objeto principal es de la clase G4RunManager y es la unica obligatoria en
Geant4, todas las otras clases son instanciadas a partir de ´esta:
G4RunManager* runManager = new G4RunManager;
runManager ->SetUserInitialization (new Construction);
runManager ->SetUserInitialization (new PhysicsList );
runManager ->SetUserAction(new GeneratorAction);
runManager ->initialize ();
tambi´en se puede inicializar un gestor de comandos:
G4UImanager * UI = G4UImanager :: GetUIpointer();
UI -> ApplyCommand("/run /verbose 1");
el m´etodo BeamOn inicia la corrida, es decir ”enciende” el haz
int numberOfEvent = 3;
runManager ->BeamOn ( numberOfEvent);
6. construcci´on
Define la geometr´ıa del sistema, en GEANT4 se suele usar el t´ermino detector.
solidWorld = new G4Box ("World ", X , Y, Z);
logicWorld = new G4LogicalVolume(solidWorld ,
Material ,
"World");
physiWorld = new G4PVPlacement(0,
G4ThreeVector(x,y,z),
logicWorld ,
"World ",
0,
false ,
0);
son todos par´ametros geom´etricos, salvo Material que representa un material.
7. sustancias
Se pueden definir elementos y sustancias especificando sus componentes
G4Material * H2O =
new G4Material ("Water", density = 1.000* g/cm3 , ncomponents =2)
;
H2O ->AddElement (H, natoms =2);
H2O ->AddElement (O, natoms =1);
H2O -> GetIonisation() ->SetMeanExcitationEnergy (78.0* eV);
como se aprecia, se pueden usar unidades, previamente definiendo las variables
con el tipo G4double
G4double density ;
8. f´ısica
Define los fen´omenos involucrados en la simulaci´on.
Se pueden definir part´ıculas y el tipo de procesos que van a desencadenar.
}else if ( particleName == "e-"){
ph ->RegisterProcess(new G4eMultipleScattering , particle );
ph ->RegisterProcess(new G4eIonisation , particle );
ph ->RegisterProcess(new G4eBremsstrahlung , particle );
}
eso me define un haz de electrones, unidimensional.
9. acci´on
Define los eventos que activan los procesos fisicos de la aplicaci´on.
G4ParticleDefinition * particle
= particleTable -> FindParticle(particleName="e-");
particleGun1 -> SetParticleDefinition (particle );
particleGun1 -> SetParticleMomentumDirection (G4ThreeVector
(0. ,0. ,1.) );
particleGun1 -> SetParticleEnergy(particleEnergy*MeV );
esto dispara el haz unidimensional.
10. haz
Es posible definir varios ca˜nones, formando un haz realista, y darle la forma
deseada.
particleGun1 = new G4ParticleGun(n_particle );
particleGun2 = new G4ParticleGun(n_particle );
particleGun3 = new G4ParticleGun(n_particle );
particleGun4 = new G4ParticleGun(n_particle );
particleGun5 = new G4ParticleGun(n_particle );
particleGun6 = new G4ParticleGun(n_particle );
particleGun7 = new G4ParticleGun(n_particle );
particleGun8 = new G4ParticleGun(n_particle );
G4double particleEnergy= 100.* MeV ;
11. absorbedor de agua
-------------------- End of Run ----------------------
mean Energy in Absorber : 5.6 GeV +- 0 eV
mean Energy in Gap : 1.16722 e-14 eV +- 0 eV
mean trackLength in Absorber : 3.28114 m +- 0 fm
mean trackLength in Gap : 80 m +- 0 fm
----------------------------------------------------
12. campos
▲ Geant4 permite el uso de campos el´ectricos y magn´eticos, de cualquier forma
e intensidad.
▲ En particular, podemos usar campos Magn´eticos uniformes y cuadrupolares,
pero tambi´en podemos definir los nuestros propios.
14. steerer, haz de He3 y protones
G4ParticleDefinition * particle =
particleTable ->FindParticle(particleName="He3
");
G4ParticleDefinition * particle2 =
particleTable ->FindParticle(particleName2="
proton ");
En este haz el campo separa los iones seg´un:
Bρ =
√
2mE
Z|e|
15. cuadrupolo
G4RotationMatrix* Rot = new G4RotationMatrix;
QuadmagField = new G4QuadrupoleMagField (pGradient ,
G4ThreeVector(0.,0., trip_Z ), Rot );
16. alcance
▲ Geant4 se puede usar
para simular cualquier
sistema de haces por
complejo que sea, la
´unica limitaci´on es el
poder de calculo de
maquina.
▲ Ejemplos: El LHC y
terapia con iones de
12
C [Satoru et Al.
(2012)].
▲ El tiempo de calculo,
depende de la cantidad
de elementos y del
tama˜no del sistema.
17. l´ınea AMS/TANDAR
Sin lugar a dudas la herramienta es id´onea para resolver todos los problemas de
inter´es relativos al TANDAR (enfoque, cuadupolos, etc).
En la l´ınea AMS, hay que tener en cuenta las siguientes particularidades:
▲ La l´ınea consta de 2 cuadrupolos tripletes y 2 steerers.
▲ Su largo de es de aprox. 20 m.
▲ El haz compuesto no esta formado por haces paralelos, sino que al provenir
de un enfoque previo, tiene una divergencia.
▲ eventualmente habr´a un filtro de Wien.
Todas las cuales pueden ser perfectamente tratados con G4.