00001 /* BDSIM code. 00002 Author: Stewart T. Boogert , Royal Holloway, Univ. of London. 00003 Last modified 16.04.2013 00004 Copyright (c) 2002 by BDSIM authors. ALL RIGHTS RESERVED. 00005 */ 00006 00007 #ifndef BDSExecOptions_h 00008 #define BDSExecOptions_h 00009 00010 #include <getopt.h> 00011 00012 #include "G4Types.hh" 00013 #include "BDSDebug.hh" 00014 #include "BDSOutput.hh" 00015 00016 class BDSExecOptions 00017 { 00018 public: 00019 00020 static BDSExecOptions* Instance(); 00021 ~BDSExecOptions(); 00022 00023 void Usage(); 00024 void Parse(int arcg, char **argv); 00025 void Print(); 00026 00027 G4String GetInputFilename() {return inputFilename;} 00028 void SetInputFilename(G4String s) {inputFilename = s;} 00029 G4String GetVisMacroFilename() {return visMacroFilename;} 00030 void SetVisMacroFilename(G4String s) {visMacroFilename = s;} 00031 G4String GetOutputFilename() {return outputFilename;} 00032 void SetOutputFilename(G4String s) {outputFilename = s;} 00033 BDSOutputFormat GetOutputFormat() {return outputFormat;} 00034 void SetOutputFormat(BDSOutputFormat f) {outputFormat = f;} 00035 G4bool GetOutline() {return outline;} 00036 void SetOutline(G4bool b) {outline = b;} 00037 G4String GetOutlineFilename() {return outlineFilename;} 00038 void SetOutlineFilename(G4String s) {outlineFilename = s;} 00039 G4String GetOutlineFormat() {return outlineFormat;} 00040 void SetOutlineFormat(G4String s) {outlineFormat = s;} 00041 00042 G4int GetGFlash() {return gflash;} 00043 void SetGFlash(G4bool b) {gflash = b;} 00044 G4double GetGFlashEMax() {return gflashemax;} 00045 void SetGFlashEMax(G4double d) {gflashemax = d;} 00046 G4double GetGFlashEMin() {return gflashemin;} 00047 void SetGFlashEMin(G4double d) {gflashemin = d;} 00048 00049 G4int GetNPTwiss() {return nptwiss;} 00050 void SetNPTwiss(G4int i) {nptwiss = i;} 00051 00052 G4bool GetVerbose() {return verbose;} 00053 G4bool GetVerboseEvent() {return verboseEvent;} 00054 G4bool GetVerboseStep() {return verboseStep;} 00055 G4int GetVerboseEventNumber() {return verboseEventNumber;} 00056 G4bool GetBatch() {return batch;} 00057 00058 G4int GetVerboseRunLevel() {return verboseRunLevel;} 00059 G4int GetVerboseEventLevel() {return verboseEventLevel;} 00060 G4int GetVerboseTrackingLevel() {return verboseTrackingLevel;} 00061 G4int GetVerboseSteppingLevel() {return verboseSteppingLevel;} 00062 00063 00064 protected : 00065 BDSExecOptions(); 00066 static BDSExecOptions* _instance; 00067 00068 00069 private : 00070 G4String inputFilename; 00071 G4String visMacroFilename; 00072 G4String outputFilename; 00073 BDSOutputFormat outputFormat; 00074 G4bool outline; 00075 G4String outlineFilename; 00076 G4String outlineFormat; 00077 00078 G4int gflash; 00079 G4double gflashemax; 00080 G4double gflashemin; 00081 00082 G4int nptwiss; 00083 00084 G4bool verbose; 00085 G4bool verboseEvent; 00086 G4bool verboseStep; 00087 G4int verboseEventNumber; 00088 G4bool batch; 00089 G4bool listMaterials; 00090 00091 G4int verboseRunLevel; 00092 G4int verboseEventLevel; 00093 G4int verboseTrackingLevel; 00094 G4int verboseSteppingLevel; 00095 00096 00097 }; 00098 00099 #endif