Skip to content
Snippets Groups Projects
Commit 02c1d0ce authored by Chad Lantz's avatar Chad Lantz
Browse files

Set the run manager to automatically complete all events in ASCII input file if selected

parent 0d74e061
No related branches found
No related tags found
No related merge requests found
......@@ -50,8 +50,9 @@ class ASCIIPrimaryGenerator : public G4VPrimaryGenerator
ASCIIPrimaryGenerator();
~ASCIIPrimaryGenerator();
virtual void SetInputFile(G4String _name);
virtual void GetNextEvent( );
virtual void SetInputFile(G4String _name);
virtual void GetNextEvent( );
inline G4int GetnEvents(){return fnEvents;}
public:
virtual void GeneratePrimaryVertex(G4Event*);
......@@ -61,7 +62,7 @@ class ASCIIPrimaryGenerator : public G4VPrimaryGenerator
std::vector< G4ThreeVector >* fMomentumVec;
std::vector< G4double >* fEnergyVec;
G4int fEventNo;
G4int fnEvents;
G4int fnEvents = 0;
std::ifstream fInputFile;
};
......
......@@ -46,8 +46,9 @@ class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
virtual ~PrimaryGeneratorAction();
public:
virtual void GeneratePrimaries(G4Event*);
virtual void SetInputFile(G4String _name);
virtual void GeneratePrimaries(G4Event*);
virtual void SetInputFile(G4String _name);
inline G4int GetnEvents(){return fASCIIParticleGun->GetnEvents();}
private:
G4GeneralParticleSource* fParticleGun;
......
......@@ -45,6 +45,7 @@
#include "DetectorConstruction.hh"
#include "ActionInitialization.hh"
#include "PrimaryGeneratorAction.hh"
#include "G4VisExecutive.hh"
#include "G4UIExecutive.hh"
......@@ -124,9 +125,9 @@ int main(int argc,char** argv)
// Set mandatory initialization classes
//
// Detector construction
runManager-> SetUserInitialization(new DetectorConstruction());
runManager->SetUserInitialization(new DetectorConstruction());
// Physics list
runManager-> SetUserInitialization(new PhysicsList());
runManager->SetUserInitialization(new PhysicsList());
// User action initialization
runManager->SetUserInitialization(new ActionInitialization(output));
......@@ -148,6 +149,11 @@ int main(int argc,char** argv)
// Batch mode
G4String command = "/control/execute ";
UImanager->ApplyCommand(command+macro);
PrimaryGeneratorAction* pga = (PrimaryGeneratorAction*)runManager->GetUserPrimaryGeneratorAction();
G4int nEvents = pga->GetnEvents();
if( nEvents > 0){
runManager->BeamOn(nEvents);
}
}
else // Define UI session for interactive mode
{
......
......@@ -31,6 +31,6 @@
##############################################################
##############################################################
# number of events
/run/beamOn 10
#/run/beamOn 1
##############################################################
##############################################################
......@@ -34,6 +34,7 @@
#include "ASCIIPrimaryGenerator.hh"
#include "G4Event.hh"
#include "G4RunManager.hh"
#include "G4ParticleTable.hh"
#include "G4ParticleDefinition.hh"
#include "G4PrimaryParticle.hh"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment