44{
45 coutDir = new G4UIdirectory("/control/cout/");
46 coutDir->SetGuidance("Control cout/cerr for local thread.");
47
48 coutFileNameCmd = new G4UIcommand("/control/cout/setCoutFile", this);
49 coutFileNameCmd->SetGuidance("Send G4cout stream to a file dedicated to a thread. ");
50 coutFileNameCmd->SetGuidance("To have a display output, use special keyword \"**Screen**\".");
51 coutFileNameCmd->SetGuidance("If append flag is true output is appended to file,");
52 coutFileNameCmd->SetGuidance("otherwise file output is overwritten.");
54 auto*
pp =
new G4UIparameter(
"fileName",
's',
true);
55 pp->SetDefaultValue(
"**Screen**");
56 coutFileNameCmd->SetParameter(pp);
57 pp =
new G4UIparameter(
"append",
'b',
true);
58 pp->SetDefaultValue(1);
59 coutFileNameCmd->SetParameter(pp);
60
61 cerrFileNameCmd = new G4UIcommand("/control/cout/setCerrFile", this);
62 cerrFileNameCmd->SetGuidance("Send G4cerr stream to a file dedicated to a thread. ");
63 cerrFileNameCmd->SetGuidance("To have a display output, use special keyword \"**Screen**\".");
64 cerrFileNameCmd->SetGuidance("If append flag is true output is appended to file,");
65 cerrFileNameCmd->SetGuidance("otherwise file output is overwritten.");
67 pp =
new G4UIparameter(
"fileName",
's',
true);
68 pp->SetDefaultValue(
"**Screen**");
69 cerrFileNameCmd->SetParameter(pp);
70 pp =
new G4UIparameter(
"append",
'b',
true);
71 pp->SetDefaultValue(1);
72 cerrFileNameCmd->SetParameter(pp);
73
74 bufferCoutCmd = new G4UIcmdWithABool("/control/cout/useBuffer", this);
75 bufferCoutCmd->SetGuidance("Send cout and/or cerr stream to a buffer.");
76 bufferCoutCmd->SetGuidance("The buffered text will be printed at the end of the job");
77 bufferCoutCmd->SetGuidance(
78 "for each thread at a time, so that output of each thread is grouped.");
79 bufferCoutCmd->SetGuidance("This command has no effect if output goes to a file.");
80 bufferCoutCmd->SetParameterName("flag", true);
81 bufferCoutCmd->SetDefaultValue(true);
83
84 prefixCmd = new G4UIcmdWithAString("/control/cout/prefixString", this);
85 prefixCmd->SetGuidance("Set the prefix string for each cout/cerr line from a thread.");
86 prefixCmd->SetParameterName("prefix", true);
87 prefixCmd->SetDefaultValue("G4WT");
89
90 ignoreCmd = new G4UIcmdWithAnInteger("/control/cout/ignoreThreadsExcept", this);
91 ignoreCmd->SetGuidance("Omit cout from threads except the specified one.");
92 ignoreCmd->SetGuidance(
93 "This command takes effect only if cout destination "
94 "is screen without buffering.");
95 ignoreCmd->SetGuidance("If specified thread ID is greater than the number of threads,");
96 ignoreCmd->SetGuidance("no cout is displayed from worker threads. -1 to reset.");
97 ignoreCmd->SetGuidance("This command does not affect to cerr.");
98 ignoreCmd->SetParameterName("threadID", true);
99 ignoreCmd->SetDefaultValue(0);
101
102 ignoreInitCmd = new G4UIcmdWithABool("/control/cout/ignoreInitializationCout", this);
103 ignoreInitCmd->SetGuidance(
104 "Omit cout from threads during initialization, as "
105 "they should be identical to the master thread.");
106 ignoreInitCmd->SetGuidance(
107 "This command takes effect only if cout "
108 "destination is screen without buffering.");
109 ignoreInitCmd->SetGuidance("This command does not affect to cerr.");
110 ignoreInitCmd->SetParameterName("IgnoreInit", true);
111 ignoreInitCmd->SetDefaultValue(true);
113}