Benützer:

Struktur

Storyboard

>Modell

ID:(1190, 0)


Struktur des Hauptprogramms

Beschreibung

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

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

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

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)