Problem 123 - Changing position in G4PrimaryVertex
Summary: Changing position in G4PrimaryVertex
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: event (show other problems)
Version: 2.0
Hardware: All All
: P2 enhancement
Assignee: Makoto.Asai
URL:
Depends on:
Blocks:
 
Reported: 2000-07-07 01:45 CEST by V.Hejny
Modified: 2000-07-28 21:32 CEST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description V.Hejny 2000-07-07 01:45:18 CEST
In the current implementation there is no SetPosition() member function.
In our detector setup various target positions and beam angles (with respect
to the detector) are used. Therefore this position offset and the rotation
of the primary events have to be added in the generator itself.
To allow a modular design of code and to have the ability to use standard
primary generators without changes, it would be very helpful to have this
additional function. The changes in position and direction then could be
done later on.
Comment 1 Makoto.Asai 2000-07-07 09:04:59 CEST
It already exists with the name SetParticlePosition() in
G4ParticleGun.

 I guess you want to have more than one primary particles
starting at a point different to each other. Please note
that G4PrimaryParticle does not have position information
but G4PrimaryVertex which has primary particles has it.
In other words, a primary vertex has primary particles
which share the same vertex position. Thus it completely
violates the concept of G4PrimaryVertex to have SetPosition()
method. Please note that G4Event object can have one or
MORE G4PrimaryVertex objects.

 I advise you to make your own primary generator class which
generates many vertices and sets them to the given G4Event
object. But in case you want to utilize G4ParticleGun, do the
following.

void MyGeneratorAction::GeneratePrimaries(G4Event* anEvent)
{
  for(int i=0;i<numberOfPrimaries;i++)
  {
    particleGun->SetPrimaryParticlePosition(randomizedPosition);
    ..... any other set method invokation here .....
    particleGun->GeneratePrimaryVertex(anEvent);
  }
}

 Anyway, this report does not contain any problem in Geant4 code.
Comment 2 Makoto.Asai 2000-07-28 21:32:59 CEST
Fixes are in the most recent reference tag of geant4-02-00-ref-01.