Warning, file /geant4/examples/extended/optical/wls/wls.cc was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #include "FTFP_BERT.hh"
0033 #include "WLSActionInitialization.hh"
0034 #include "WLSDetectorConstruction.hh"
0035
0036 #include "G4EmStandardPhysics_option4.hh"
0037 #include "G4OpticalPhysics.hh"
0038 #include "G4RunManagerFactory.hh"
0039 #include "G4Types.hh"
0040 #include "G4UIExecutive.hh"
0041 #include "G4UImanager.hh"
0042 #include "G4VisExecutive.hh"
0043
0044
0045
0046 int main(int argc, char** argv)
0047 {
0048
0049 G4UIExecutive* ui = nullptr;
0050 if (argc == 1) {
0051 ui = new G4UIExecutive(argc, argv);
0052 }
0053
0054 auto runManager = G4RunManagerFactory::CreateRunManager();
0055 G4int seed = 123;
0056 if (argc > 2) seed = atoi(argv[argc - 1]);
0057
0058
0059
0060 G4Random::setTheSeed(seed);
0061
0062
0063 auto detector = new WLSDetectorConstruction();
0064 runManager->SetUserInitialization(detector);
0065
0066
0067 G4VModularPhysicsList* physicsList = new FTFP_BERT;
0068 physicsList->ReplacePhysics(new G4EmStandardPhysics_option4());
0069 auto opticalPhysics = new G4OpticalPhysics();
0070
0071 auto opticalParams = G4OpticalParameters::Instance();
0072 opticalParams->SetBoundaryInvokeSD(true);
0073
0074 physicsList->RegisterPhysics(opticalPhysics);
0075 runManager->SetUserInitialization(physicsList);
0076
0077
0078 runManager->SetUserInitialization(new WLSActionInitialization(detector));
0079
0080
0081 G4VisManager* visManager = new G4VisExecutive;
0082 visManager->Initialize();
0083
0084
0085 G4UImanager* UImanager = G4UImanager::GetUIpointer();
0086
0087 if (ui) {
0088
0089 if (ui->IsGUI()) UImanager->ApplyCommand("/control/execute gui.mac");
0090 ui->SessionStart();
0091 delete ui;
0092 }
0093 else {
0094 G4String command = "/control/execute ";
0095 G4String fileName = argv[1];
0096 UImanager->ApplyCommand(command + fileName);
0097 }
0098
0099
0100 delete visManager;
0101 delete runManager;
0102 return 0;
0103 }
0104
0105