QwGeant4
QweakSimPrimaryGeneratorAction Class Reference

Deal with primary particle generation and inject it in the detector. More...

#include <QweakSimPrimaryGeneratorAction.hh>

Inherits G4VUserPrimaryGeneratorAction.

+ Collaboration diagram for QweakSimPrimaryGeneratorAction:

Public Member Functions

 QweakSimPrimaryGeneratorAction (QweakSimUserInformation *myUI, QweakSimEPEvent *myEPEvent)
 
virtual ~QweakSimPrimaryGeneratorAction ()
 
void SetBeamRasteringRegion (G4double X_min=-2.0 *mm, G4double X_max=2.0 *mm, G4double Y_min=-2.0 *mm, G4double Y_max=2.0 *mm)
 
void GeneratePrimaries (G4Event *anEvent)
 
void ResetNtupleEventCounter ()
 
void SetNtupleEventCounter (G4int cnt)
 
void SetPolarization (G4String polarization)
 
void SetBeamParticleType (G4String type="e-")
 
void SetScatteredParticleType (G4String type="e-")
 
void SetParticleType (G4ParticleDefinition *particle)
 
QweakSimUserInformationGetUserInfo () const
 

Private Attributes

G4ParticleDefinition * beamParticle
 
G4ParticleDefinition * scatteredParticle
 
G4ParticleGun * particleGun
 
QweakSimUserInformationmyUserInfo
 
QweakSimEPEventmyEvent
 
QweakSimPrimaryGeneratorActionMessengermyMessenger
 
G4String fPolarization
 
G4double fPositionX_min
 
G4double fPositionX_max
 
G4double fPositionY_min
 
G4double fPositionY_max
 

Detailed Description

Deal with primary particle generation and inject it in the detector.

The primary particle is taken from the root file ep_elastic.root which contains the vertex and kinematic of elastic scattered electrons.

Placeholder for a long explaination

Definition at line 61 of file QweakSimPrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

QweakSimPrimaryGeneratorAction::QweakSimPrimaryGeneratorAction ( QweakSimUserInformation myUI,
QweakSimEPEvent myEPEvent 
)

Definition at line 38 of file QweakSimPrimaryGeneratorAction.cc.

References fPolarization, fPositionX_max, fPositionX_min, fPositionY_max, fPositionY_min, myEvent, myMessenger, myUserInfo, particleGun, QweakSimEPEvent::SetBeamEnergy(), SetBeamParticleType(), and SetScatteredParticleType().

39 {
40  G4cout << "###### Calling QweakSimPrimaryGeneratorAction::QweakSimPrimaryGeneratorAction " << G4endl;
41 
42  fPositionX_min = -2.0*mm;
43  fPositionX_max = 2.0*mm;
44  fPositionY_min = -2.0*mm;
45  fPositionY_max = 2.0*mm;
46 
47  fPolarization = "L";
48 
49  myUserInfo = myUI;
50  myEvent = myEPEvent;
51 
52  // get my messenger
54 
55  // initialize my own event counter
56  // myEventCounter = 0;
57 
58  G4int n_particle = 1;
59  particleGun = new G4ParticleGun(n_particle);
60 
61  SetBeamParticleType("e-");
63 
65 
66  G4cout << "###### Leaving QweakSimPrimaryGeneratorAction::QweakSimPrimaryGeneratorAction " << G4endl;
67 }
QweakSimPrimaryGeneratorActionMessenger * myMessenger
void SetBeamEnergy(G4double energy=1.160 *GeV)

+ Here is the call graph for this function:

QweakSimPrimaryGeneratorAction::~QweakSimPrimaryGeneratorAction ( )
virtual

Definition at line 71 of file QweakSimPrimaryGeneratorAction.cc.

References particleGun.

72 {
73 
74  G4cout << "###### Calling/Leaving QweakSimPrimaryGeneratorAction::~QweakSimPrimaryGeneratorAction " << G4endl;
75 
76  if (particleGun) delete particleGun;
77 }

Member Function Documentation

void QweakSimPrimaryGeneratorAction::GeneratePrimaries ( G4Event *  anEvent)
QweakSimUserInformation* QweakSimPrimaryGeneratorAction::GetUserInfo ( ) const
inline

Definition at line 120 of file QweakSimPrimaryGeneratorAction.hh.

References myUserInfo.

Referenced by QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

120 { return myUserInfo; };

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::ResetNtupleEventCounter ( )

Definition at line 199 of file QweakSimPrimaryGeneratorAction.cc.

References myUserInfo, and QweakSimUserInformation::StorePrimaryEventNumber().

Referenced by QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

199  {
201 }

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::SetBeamParticleType ( G4String  type = "e-")
inline

Definition at line 91 of file QweakSimPrimaryGeneratorAction.hh.

References beamParticle.

Referenced by QweakSimPrimaryGeneratorAction(), and QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

91  {
92  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
93  G4ParticleDefinition* particle = particleTable->FindParticle(type);
94  if (particle) {
95  G4cout << "###### Setting beam particle type to " << type << G4endl;
96  beamParticle = particle;
97  }
98  }

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::SetBeamRasteringRegion ( G4double  X_min = -2.0*mm,
G4double  X_max = 2.0*mm,
G4double  Y_min = -2.0*mm,
G4double  Y_max = 2.0*mm 
)
inline

Definition at line 70 of file QweakSimPrimaryGeneratorAction.hh.

References fPositionX_max, fPositionX_min, fPositionY_max, and fPositionY_min.

Referenced by QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

73  {
74  if (X_max < X_min) X_max = X_min;
75  if (Y_max < Y_min) Y_max = Y_min;
76  fPositionX_min = X_min;
77  fPositionX_max = X_max;
78  fPositionY_min = Y_min;
79  fPositionY_max = Y_max;
80  }

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::SetNtupleEventCounter ( G4int  cnt)

Definition at line 205 of file QweakSimPrimaryGeneratorAction.cc.

References myUserInfo, and QweakSimUserInformation::StorePrimaryEventNumber().

Referenced by QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

205  {
207 }

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::SetParticleType ( G4ParticleDefinition *  particle)
inline

Definition at line 109 of file QweakSimPrimaryGeneratorAction.hh.

References particleGun.

109  {
110  if (particleGun && particle) {
111  //G4cout << "###### Setting particle type to " << particle->GetParticleName() << G4endl;
112  particleGun->SetParticleDefinition(particle);
113  }
114  else {
115  G4cerr << "###### ERROR: No particle specified, check code!" << G4endl;
116  }
117 
118  }
void QweakSimPrimaryGeneratorAction::SetPolarization ( G4String  polarization)
inline

Definition at line 87 of file QweakSimPrimaryGeneratorAction.hh.

References fPolarization.

Referenced by QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

87  {
88  fPolarization = polarization;
89  }

+ Here is the caller graph for this function:

void QweakSimPrimaryGeneratorAction::SetScatteredParticleType ( G4String  type = "e-")
inline

Definition at line 100 of file QweakSimPrimaryGeneratorAction.hh.

References scatteredParticle.

Referenced by QweakSimPrimaryGeneratorAction(), and QweakSimPrimaryGeneratorActionMessenger::SetNewValue().

100  {
101  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
102  G4ParticleDefinition* particle = particleTable->FindParticle(type);
103  if (particle) {
104  G4cout << "###### Setting scattered particle type to " << type << G4endl;
105  scatteredParticle = particle;
106  }
107  }

+ Here is the caller graph for this function:

Field Documentation

G4ParticleDefinition* QweakSimPrimaryGeneratorAction::beamParticle
private

Definition at line 120 of file QweakSimPrimaryGeneratorAction.hh.

Referenced by SetBeamParticleType().

G4String QweakSimPrimaryGeneratorAction::fPolarization
private
G4double QweakSimPrimaryGeneratorAction::fPositionX_max
private
G4double QweakSimPrimaryGeneratorAction::fPositionX_min
private
G4double QweakSimPrimaryGeneratorAction::fPositionY_max
private
G4double QweakSimPrimaryGeneratorAction::fPositionY_min
private
QweakSimEPEvent* QweakSimPrimaryGeneratorAction::myEvent
private

Definition at line 131 of file QweakSimPrimaryGeneratorAction.hh.

Referenced by QweakSimPrimaryGeneratorAction().

QweakSimPrimaryGeneratorActionMessenger* QweakSimPrimaryGeneratorAction::myMessenger
private

Definition at line 133 of file QweakSimPrimaryGeneratorAction.hh.

Referenced by QweakSimPrimaryGeneratorAction().

QweakSimUserInformation* QweakSimPrimaryGeneratorAction::myUserInfo
private
G4ParticleGun* QweakSimPrimaryGeneratorAction::particleGun
private
G4ParticleDefinition* QweakSimPrimaryGeneratorAction::scatteredParticle
private

Definition at line 125 of file QweakSimPrimaryGeneratorAction.hh.

Referenced by SetScatteredParticleType().


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