Message: Re: Randomising primary particle based on a different code Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

More Re: Randomising primary particle based on a different code 

Forum: Particles
Re: Question Randomising primary particle based on a different code (Dipanwita Banerjee)
Re: None Re: Randomising primary particle based on a different code (michel maire)
Date: 16 Jan, 2014
From: Gumplinger Peter <Gumplinger Peter>

> > But I
> > would like the distribution of my primary particles based on a C++
> > program I wrote. The anti-protons will have a free fall based on random
> > velocities and will thus have a random distribution on the target. I am
> > attaching a file showing this distribution. How can I incorporate this
> > distribution in my PrimaryGeneratorAction. Is there a way to add my C++
> > code that generates this distribution into the Geant4 code?

You write a PrimaryGeneratorAction that utilizes G4ParticleGun:

fParticleGun = new G4ParticleGun();

(G4ParticleGun* fParticleGun is a member of your PrimaryGeneratorAction)

Sets:

fParticleGun -> SetParticleDefinition(particle);

where particle is:

G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();

G4ParticleDefinition* particle = particleTable -> FindParticle("anti_proton");

You then add your C++ code as a method of PrimaryGeneratorAction. You modify your code such that when the position has been calculated, you call:

fParticleGun -> SetParticlePosition(G4ThreeVector( x , y , z ) );

with the direction, you do:

fParticleGun -> SetParticleMomentumDirection( G4ThreeVector(momentumX,momentumY,momentumZ) );

with the energy (from your velocity magnitude):

fParticleGun -> SetParticleEnergy ( kineticEnergy );

You call your new method from GeneratePrimaries(G4Event* anEvent)

Many of the Geant4 examples in our distribution do just that and a little reading of the G4 Manual will help!

 Add Message Add Message
to: "Re: Randomising primary particle based on a different code"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]