Geant4  10.02.p03
G4BlinePrimaryGeneratorAction Class Reference

#include <G4BlinePrimaryGeneratorAction.hh>

Inheritance diagram for G4BlinePrimaryGeneratorAction:
Collaboration diagram for G4BlinePrimaryGeneratorAction:

Public Member Functions

 G4BlinePrimaryGeneratorAction ()
 
virtual ~G4BlinePrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *anEvent)
 
void SetUserPrimaryAction (G4VUserPrimaryGeneratorAction *anAction)
 
- Public Member Functions inherited from G4VUserPrimaryGeneratorAction
 G4VUserPrimaryGeneratorAction ()
 
virtual ~G4VUserPrimaryGeneratorAction ()
 

Private Attributes

G4VUserPrimaryGeneratorActionfUserPrimaryAction
 
G4bool fFirstPartOfBline
 
G4ThreeVector fBlineStartPosition
 
G4double fT0
 

Detailed Description

Definition at line 60 of file G4BlinePrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ G4BlinePrimaryGeneratorAction()

G4BlinePrimaryGeneratorAction::G4BlinePrimaryGeneratorAction ( )

Definition at line 51 of file G4BlinePrimaryGeneratorAction.cc.

52 {
54  fFirstPartOfBline = true;
55 }
G4VUserPrimaryGeneratorAction * fUserPrimaryAction

◆ ~G4BlinePrimaryGeneratorAction()

G4BlinePrimaryGeneratorAction::~G4BlinePrimaryGeneratorAction ( )
virtual

Definition at line 59 of file G4BlinePrimaryGeneratorAction.cc.

60 {
61 }

Member Function Documentation

◆ GeneratePrimaries()

void G4BlinePrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 65 of file G4BlinePrimaryGeneratorAction.cc.

66 {
67  if (!fUserPrimaryAction)
68  {
69  G4Exception("G4BlinePrimaryGeneratorAction::GeneratePrimaries()",
70  "NullPointer", JustWarning,
71  "Primary generator action not defined !");
72  return;
73  }
74 
75  // For the first part of a bline the start position and time are defined
76  // by using the USER primary action while for the second part the previous
77  // values are taken.
78 
80  {
81  // set the position and time defined by using the USER primary action
82 
83  G4Event* tmpEvent = new G4Event();
86  fT0 = tmpEvent->GetPrimaryVertex()->GetT0();
87  delete tmpEvent;
88  }
89  fFirstPartOfBline = false;
90 
91  G4PrimaryVertex* primary_vertex =
93 
94  // Define the particle to be tracked as Charged Geantino
95 
97 
98  G4double mass = pdef->GetPDGMass();
99  G4double energy = 10000.*MeV + mass;
100  G4double pmom = std::sqrt(energy*energy-mass*mass);
101 
102  // The momentum direction and energy do not have an effect in tracing of
103  // bline but still need to be defined.
104 
105  G4double px = 0.;
106  G4double py = 0.;
107  G4double pz = pmom;
108 
109  G4PrimaryParticle* particle = new G4PrimaryParticle(pdef,px,py,pz);
110  particle->SetMass( mass );
111  particle->SetCharge(pdef->GetPDGCharge());
112  primary_vertex->SetPrimary( particle );
113 
114  anEvent->AddPrimaryVertex( primary_vertex );
115 }
static const double MeV
Definition: G4SIunits.hh:211
G4double GetT0() const
G4VUserPrimaryGeneratorAction * fUserPrimaryAction
G4ThreeVector GetPosition() const
void AddPrimaryVertex(G4PrimaryVertex *aPrimaryVertex)
Definition: G4Event.hh:154
static G4ChargedGeantino * ChargedGeantino()
double energy
Definition: plottest35.C:25
void SetMass(G4double mas)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4PrimaryVertex * GetPrimaryVertex(G4int i=0) const
Definition: G4Event.hh:167
virtual void GeneratePrimaries(G4Event *anEvent)=0
void SetCharge(G4double chg)
void SetPrimary(G4PrimaryParticle *pp)
double G4double
Definition: G4Types.hh:76
G4double GetPDGCharge() const
Here is the call graph for this function:

◆ SetUserPrimaryAction()

void G4BlinePrimaryGeneratorAction::SetUserPrimaryAction ( G4VUserPrimaryGeneratorAction anAction)
inline

Definition at line 68 of file G4BlinePrimaryGeneratorAction.hh.

69  { fUserPrimaryAction=anAction; }
G4VUserPrimaryGeneratorAction * fUserPrimaryAction
Here is the caller graph for this function:

Member Data Documentation

◆ fBlineStartPosition

G4ThreeVector G4BlinePrimaryGeneratorAction::fBlineStartPosition
private

Definition at line 75 of file G4BlinePrimaryGeneratorAction.hh.

◆ fFirstPartOfBline

G4bool G4BlinePrimaryGeneratorAction::fFirstPartOfBline
private

Definition at line 74 of file G4BlinePrimaryGeneratorAction.hh.

◆ fT0

G4double G4BlinePrimaryGeneratorAction::fT0
private

Definition at line 76 of file G4BlinePrimaryGeneratorAction.hh.

◆ fUserPrimaryAction

G4VUserPrimaryGeneratorAction* G4BlinePrimaryGeneratorAction::fUserPrimaryAction
private

Definition at line 73 of file G4BlinePrimaryGeneratorAction.hh.


The documentation for this class was generated from the following files: