Benützer:


Struktur

Storyboard

>Modell

ID:(1190, 0)



Struktur des Hauptprogramms

Beschreibung

>Top


Das einfachste Hauptprogramm main hat die Struktur:

```

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;

}

```

wo:

> Steuerung ist initialisiert

> Geometrie wird erstellt

> Die Partikel werden erzeugt

> Der Partikelgenerator wird erstellt

> Ein Teilchen wird gefeuert

> Das Programm wird abgeschlossen

ID:(9412, 0)



Erstellung von Geometrie

Beschreibung

>Top


Das Minimum, um die Geometrie zu erstellen, ist ein Volumen, das erzeugt werden kann durch

```

Class MyGeometry : public G4VUserDetectorConstruction{

G4VPhysicalVolume* Construct();

}

```

was von G4VUserDetectorConstruction geerbt wird.

Der Volumen wird alle anderen Volumen des Modells enthalten und heißt 'Welt' oder 'world'.

ID:(9411, 0)



Erzeugung von Partikeln

Beschreibung

>Top


Die einfachste Methode zum Erstellen der Partikel besteht darin, die Standardliste zu verwenden, die Gean4 mitbringt

```

G4VUserPhysicsList* physics = new FTFP_BERT();

runManager->SetUserInitialization(physics);

```

was wird von G4VUserPhysicsList geerbt.

Die andere Alternative ist die Erstellung durch den Benutzers, der Partikelkonstruktor (ConstructParticle ()), Prozesse (ConstructProcess ()) und Schnitte (SetCuts ()) enthalten muss durch:

```

class MyPhysics : public G4VUserPhysicsList{

void ConstructParticle();

void ConstructProcess();

void SetCuts();

}

```

ID:(9413, 0)



Schuss von Partikeln

Beschreibung

>Top


Um die Teilchen zu erzeugen, wird ein Generator mit erzeugt

```

class myGenerator : public G4VUserPrimaryGeneratorAction{

void GeneratePrimaries(G4Event*);

}

```

was von G4VUserPrimaryGeneratorAction vererbt wird und muss GeneratePrimaries(G4Event*) umsetzen.

Die Partikel können von G4ParticleGun erzeugt werden, auf dem Schlüsselparameter definiert werden können:

```

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)