35 #ifndef QweakSimPrimaryGeneratorAction_h
36 #define QweakSimPrimaryGeneratorAction_h
42 #include "G4ThreeVector.hh"
43 #include "G4ParticleGun.hh"
44 #include "G4ParticleTable.hh"
45 #include "G4VUserPrimaryGeneratorAction.hh"
71 G4double X_max = 2.0*mm,
72 G4double Y_min = -2.0*mm,
73 G4double Y_max = 2.0*mm) {
74 if (X_max < X_min) X_max = X_min;
75 if (Y_max < Y_min) Y_max = Y_min;
92 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
93 G4ParticleDefinition* particle = particleTable->FindParticle(type);
95 G4cout <<
"###### Setting beam particle type to " << type << G4endl;
101 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
102 G4ParticleDefinition* particle = particleTable->FindParticle(type);
104 G4cout <<
"###### Setting scattered particle type to " << type << G4endl;
115 G4cerr <<
"###### ERROR: No particle specified, check code!" << G4endl;
QweakSimUserInformation * GetUserInfo() const
void SetScatteredParticleType(G4String type="e-")
void SetParticleType(G4ParticleDefinition *particle)
Deal with primary particle generation and inject it in the detector.
QweakSimUserInformation * myUserInfo
void SetBeamParticleType(G4String type="e-")
G4ParticleDefinition * beamParticle
void GeneratePrimaries(G4Event *anEvent)
QweakSimEPEvent * myEvent
virtual ~QweakSimPrimaryGeneratorAction()
QweakSimPrimaryGeneratorActionMessenger * myMessenger
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)
G4ParticleDefinition * scatteredParticle
void SetNtupleEventCounter(G4int cnt)
void ResetNtupleEventCounter()
G4ParticleGun * particleGun
Scans the input file for ...
void SetPolarization(G4String polarization)
QweakSimPrimaryGeneratorAction(QweakSimUserInformation *myUI, QweakSimEPEvent *myEPEvent)