Usuario:


Estructura

Storyboard

>Modelo

ID:(1190, 0)



Estructura del programa main

Descripción

El programa main mas simple posible tiene la estructura:\ \ ```\ int main(int argc, char** argv){\ \ G4RunManager* runManager = new G4RunManager;\ \ MyGeometry* geom = new MyGeometry();\ runManager->SetUserInitialization(geom);\ \ MyPhysicsList* physics = new MyPhysicsList();\ runManager->SetUserInitialization(physics);\ \ MyPrimaryGeneratorAction* generator = new MyPrimaryGeneratorAction();\ runManager->SetUserAction(generator);\ \ runManager->Initialize();\ \ runManager->BeamOn(1);\ \ delete runManager;\ return 0;\ \ }\ ```\ \ en donde:\ \ > se inicializa el control\ > se crea la geometría\ > se crean las partículas\ > se crea el generador de partículas\ > se dispara una partícula\ > se cierra el programa\

ID:(9412, 0)



Creación de la geometría

Descripción

El mínimo para crear la geometría es un volumen, lo que se puede hacer mediante\ \ ```\ Class MyGeometry : public G4VUserDetectorConstruction{\ \ G4VPhysicalVolume* Construct();\ \ }\ ```\ \ lo que se hereda de G4VUserDetectorConstruction.\ \ El volumen incluirá todos los restantes volúmenes del modelo y se denomina el 'mundo' o 'world'.

ID:(9411, 0)



Creación de partículas

Descripción

La forma mas fácil para crear las partículas es usar la lista por defecto que trae Gean4 lo que se hace mediante\ \ ```\ G4VUserPhysicsList* physics = new FTFP_BERT();\ runManager->SetUserInitialization(physics);\ ```\ \ lo que se hereda de G4VUserPhysicsList.\ \ La otra alternativa es la creación a medida del usaurio que debe de incluir el cosntructor de particulas (ConstructParticle()), de procesos (ConstructProcess()) y los cortes (SetCuts()) mediante:\ \ ```\ class MyPhysics : public G4VUserPhysicsList{\ \ void ConstructParticle();\ void ConstructProcess();\ void SetCuts();\ \ }\ ```\

ID:(9413, 0)



Gun de partículas

Descripción

Para generar las partículas se crea un generador con\ \ ```\ class myGenerator : public G4VUserPrimaryGeneratorAction{\ \ void GeneratePrimaries(G4Event*);\ \ }\ ```\ \ que se hereda de G4VUserPrimaryGeneratorAction y debe implementar GeneratePrimaries(G4Event*).\ \ Las partículas pueden ser generadas por G4ParticleGun sobre el que se pueden definir los parámetros claves por ejemplo como:\ \ ```\ G4ParticleGun* myGun = new G4ParticleGun(int n_particle = 1);\ myGun->SetMomentumDirection(G4ThreeVector(1,0,0));\ myGun->SetKineticEnergy(50.*MeV);\ myGun->GeneratePrimaryVertex(G4Event* anEvent);\ ```\

ID:(9414, 0)