source: trunk/source/digits_hits/utils/src/G4ScoreQuantityMessengerQCmd.cc@ 952

Last change on this file since 952 was 850, checked in by garnier, 17 years ago

geant4.8.2 beta

File size: 15.3 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id: G4ScoreQuantityMessengerQCmd.cc,v 1.6 2007/11/07 04:12:07 akimura Exp $
28// GEANT4 tag $Name: HEAD $
29//
30// ---------------------------------------------------------------------
31
32#include "G4ScoreQuantityMessenger.hh"
33#include "G4ScoringManager.hh"
34#include "G4VScoringMesh.hh"
35
36#include "G4PSCellCharge3D.hh"
37#include "G4PSCellFlux3D.hh"
38#include "G4PSPassageCellFlux3D.hh"
39#include "G4PSEnergyDeposit3D.hh"
40#include "G4PSDoseDeposit3D.hh"
41#include "G4PSNofStep3D.hh"
42#include "G4PSNofSecondary3D.hh"
43//
44#include "G4PSTrackLength3D.hh"
45#include "G4PSPassageCellCurrent3D.hh"
46#include "G4PSPassageTrackLength3D.hh"
47#include "G4PSFlatSurfaceCurrent3D.hh"
48#include "G4PSFlatSurfaceFlux3D.hh"
49#include "G4PSSphereSurfaceCurrent3D.hh"
50#include "G4PSSphereSurfaceFlux3D.hh"
51#include "G4PSCylinderSurfaceCurrent3D.hh"
52#include "G4PSCylinderSurfaceFlux3D.hh"
53#include "G4PSNofCollision3D.hh"
54#include "G4PSPopulation3D.hh"
55#include "G4PSTrackCounter3D.hh"
56#include "G4PSTermination3D.hh"
57
58#include "G4SDChargedFilter.hh"
59#include "G4SDNeutralFilter.hh"
60#include "G4SDKineticEnergyFilter.hh"
61#include "G4SDParticleFilter.hh"
62#include "G4SDParticleWithEnergyFilter.hh"
63
64#include "G4UIdirectory.hh"
65#include "G4UIcmdWithoutParameter.hh"
66#include "G4UIcmdWithAnInteger.hh"
67#include "G4UIcmdWithAString.hh"
68#include "G4UIcmdWithABool.hh"
69#include "G4UIcmdWithADoubleAndUnit.hh"
70#include "G4UIcmdWith3VectorAndUnit.hh"
71#include "G4UIcommand.hh"
72#include "G4Tokenizer.hh"
73#include "G4UnitsTable.hh"
74
75void G4ScoreQuantityMessenger::QuantityCommands()
76{
77 G4UIparameter* param;
78
79 //
80 // Quantity commands
81 quantityDir = new G4UIdirectory("/score/quantity/");
82 quantityDir->SetGuidance("Scoring quantity of the mesh.");
83 //
84 qTouchCmd= new G4UIcmdWithAString("/score/quantity/touch",this);
85 qTouchCmd->SetGuidance("Assign previously defined quantity to the current quantity.");
86 qTouchCmd->SetParameterName("qname",false);
87 //
88 qeDepCmd = new G4UIcmdWithAString("/score/quantity/energyDeposit",this);
89 qeDepCmd->SetGuidance("Energy deposit scorer.");
90 qeDepCmd->SetParameterName("qname",false);
91 //
92 qCellChgCmd = new G4UIcmdWithAString("/score/quantity/cellCharge",this);
93 qCellChgCmd->SetGuidance("Cell charge scorer.");
94 qCellChgCmd->SetParameterName("qname",false);
95 //
96 qCellFluxCmd = new G4UIcmdWithAString("/score/quantity/cellFlux",this);
97 qCellFluxCmd->SetGuidance("Cell flux scorer.");
98 qCellFluxCmd->SetParameterName("qname",false);
99 //
100 qPassCellFluxCmd = new G4UIcmdWithAString("/score/quantity/passageCellFlux",this);
101 qPassCellFluxCmd->SetGuidance("Passage cell flux scorer");
102 qPassCellFluxCmd->SetParameterName("qname",false);
103 //
104 qdoseDepCmd = new G4UIcmdWithAString("/score/quantity/doseDeposit",this);
105 qdoseDepCmd->SetGuidance("Dose deposit scorer.");
106 qdoseDepCmd->SetParameterName("qname",false);
107 //
108 qnOfStepCmd = new G4UIcmdWithAString("/score/quantity/nOfStep",this);
109 qnOfStepCmd->SetGuidance("Number of step scorer.");
110 qnOfStepCmd->SetParameterName("qname",false);
111 //
112 qnOfSecondaryCmd = new G4UIcmdWithAString("/score/quantity/nOfSecondary",this);
113 qnOfSecondaryCmd->SetGuidance("Number of secondary scorer.");
114 qnOfSecondaryCmd->SetParameterName("qname",false);
115 //
116 qTrackLengthCmd = new G4UIcommand("/score/quantity/trackLength",this);
117 qTrackLengthCmd->SetGuidance("Track length scorer.");
118 qTrackLengthCmd->
119 SetGuidance("[usage] /score/quantiy/trackLength qname wflag kflag vflag ");
120 qTrackLengthCmd->SetGuidance(" qname :(String) scorer name");
121 qTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted");
122 qTrackLengthCmd->SetGuidance(" kflag :(Bool) multiply kinetic energy");
123 qTrackLengthCmd->SetGuidance(" vflag :(Bool) divide by velocity");
124 param = new G4UIparameter("qname",'s',false);
125 qTrackLengthCmd->SetParameter(param);
126 param = new G4UIparameter("wflag",'b',true);
127 param->SetDefaultValue("false");
128 qTrackLengthCmd->SetParameter(param);
129 param = new G4UIparameter("kflag",'b',true);
130 param->SetDefaultValue("false");
131 qTrackLengthCmd->SetParameter(param);
132 param = new G4UIparameter("vflag",'b',true);
133 param->SetDefaultValue("false");
134 qTrackLengthCmd->SetParameter(param);
135 //
136 qPassCellCurrCmd = new G4UIcommand("/score/quantity/passageCellCurrent",this);
137 qPassCellCurrCmd->SetGuidance("Passage cell current scorer.");
138 qPassCellCurrCmd->
139 SetGuidance("[usage] /score/quantiy/passageCellCurrent qname wflag");
140 qPassCellCurrCmd->SetGuidance(" qname :(String) scorer name");
141 qPassCellCurrCmd->SetGuidance(" wflag :(Bool) weighted");
142 param = new G4UIparameter("qname",'s',false);
143 qPassCellCurrCmd->SetParameter(param);
144 param = new G4UIparameter("wflag",'b',true);
145 param->SetDefaultValue("true");
146 qPassCellCurrCmd->SetParameter(param);
147 //
148 qPassTrackLengthCmd = new G4UIcommand("/score/quantity/passageTrackLength",this);
149 qPassTrackLengthCmd->SetGuidance("Passage track length scorer.");
150 qPassTrackLengthCmd->
151 SetGuidance("[usage] /score/quantiy/passageTrackLength qname wflag");
152 qPassTrackLengthCmd->SetGuidance(" qname :(String) scorer name");
153 qPassTrackLengthCmd->SetGuidance(" wflag :(Bool) weighted");
154 param = new G4UIparameter("qname",'s',false);
155 qPassTrackLengthCmd->SetParameter(param);
156 param = new G4UIparameter("wflag",'b',true);
157 param->SetDefaultValue("true");
158 qPassTrackLengthCmd->SetParameter(param);
159 //
160 qFlatSurfCurrCmd = new G4UIcommand("/score/quantity/flatSurfaceCurrent",this);
161 qFlatSurfCurrCmd->SetGuidance("Flat surface current Scorer.");
162 qFlatSurfCurrCmd->
163 SetGuidance("[usage] /score/quantiy/flatSurfaceCurrent qname dflag wflag aflag");
164 qFlatSurfCurrCmd->SetGuidance(" qname :(String) scorer name");
165 qFlatSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag");
166 qFlatSurfCurrCmd->SetGuidance(" : 0 = Both In and Out");
167 qFlatSurfCurrCmd->SetGuidance(" : 1 = In only");
168 qFlatSurfCurrCmd->SetGuidance(" : 2 = Out only");
169 qFlatSurfCurrCmd->SetGuidance(" wflag :(Bool) weighted");
170 qFlatSurfCurrCmd->SetGuidance(" aflag :(Bool) divide by area");
171 param = new G4UIparameter("qname",'s',false);
172 qFlatSurfCurrCmd->SetParameter(param);
173 param = new G4UIparameter("dflag",'i',true);
174 param->SetDefaultValue("0");
175 qFlatSurfCurrCmd->SetParameter(param);
176 param = new G4UIparameter("wflag",'b',true);
177 param->SetDefaultValue("true");
178 qFlatSurfCurrCmd->SetParameter(param);
179 param = new G4UIparameter("aflag",'b',true);
180 param->SetDefaultValue("true");
181 qFlatSurfCurrCmd->SetParameter(param);
182 //
183 qFlatSurfFluxCmd = new G4UIcommand("/score/quantity/flatSurfaceFlux",this);
184 qFlatSurfFluxCmd->SetGuidance("Flat surface flux scorer.");
185 qFlatSurfFluxCmd->
186 SetGuidance("[usage] /score/quantiy/flatSurfaceFlux qname dflag");
187 qFlatSurfFluxCmd->SetGuidance(" qname :(String) scorer name");
188 qFlatSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag");
189 qFlatSurfFluxCmd->SetGuidance(" : 0 = Both In and Out");
190 qFlatSurfFluxCmd->SetGuidance(" : 1 = In only");
191 qFlatSurfFluxCmd->SetGuidance(" : 2 = Out only");
192 param = new G4UIparameter("qname",'s',false);
193 qFlatSurfFluxCmd->SetParameter(param);
194 param = new G4UIparameter("dflag",'i',true);
195 param->SetDefaultValue("0");
196 qFlatSurfFluxCmd->SetParameter(param);
197 //
198// qSphereSurfCurrCmd = new G4UIcommand("/score/quantity/sphereSurfaceCurrent",this);
199// qSphereSurfCurrCmd->SetGuidance("Sphere surface current Scorer.");
200// qSphereSurfCurrCmd->
201// SetGuidance("[usage] /score/quantiy/sphereSurfaceCurrent qname dflag wflag aflag");
202// qSphereSurfCurrCmd->SetGuidance(" qname :(String) scorer name");
203// qSphereSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag");
204// qSphereSurfCurrCmd->SetGuidance(" : 0 = Both In and Out");
205// qSphereSurfCurrCmd->SetGuidance(" : 1 = In only");
206// qSphereSurfCurrCmd->SetGuidance(" : 2 = Out only");
207// qSphereSurfCurrCmd->SetGuidance(" wflag :(Bool) Weighted");
208// qSphereSurfCurrCmd->SetGuidance(" aflag :(Bool) DivideByArea");
209// param = new G4UIparameter("qname",'s',false);
210// qSphereSurfCurrCmd->SetParameter(param);
211// param = new G4UIparameter("dflag",'i',true);
212// param->SetDefaultValue("0");
213// qSphereSurfCurrCmd->SetParameter(param);
214// param = new G4UIparameter("wflag",'b',true);
215// param->SetDefaultValue("true");
216// qSphereSurfCurrCmd->SetParameter(param);
217// param = new G4UIparameter("aflag",'b',true);
218// param->SetDefaultValue("true");
219// qSphereSurfCurrCmd->SetParameter(param);
220
221 //
222// qSphereSurfFluxCmd = new G4UIcommand("/score/quantity/sphereSurfaceFlux",this);
223// qSphereSurfFluxCmd->SetGuidance("Sphere surface Flux Scorer.");
224// qSphereSurfFluxCmd->
225// SetGuidance("[usage] /score/quantiy/sphereSurfaceFlux qname dflag");
226// qSphereSurfFluxCmd->SetGuidance(" qname :(String) scorer name");
227// qSphereSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag");
228// qSphereSurfFluxCmd->SetGuidance(" : 0 = Both In and Out");
229// qSphereSurfFluxCmd->SetGuidance(" : 1 = In only");
230// qSphereSurfFluxCmd->SetGuidance(" : 2 = Out only");
231// param = new G4UIparameter("qname",'s',false);
232// qSphereSurfFluxCmd->SetParameter(param);
233// param = new G4UIparameter("dflag",'i',true);
234// param->SetDefaultValue("0");
235// qSphereSurfFluxCmd->SetParameter(param);
236
237 //
238// qCylSurfCurrCmd = new G4UIcommand("/score/quantity/cylinderSurfaceCurrent",this);
239// qCylSurfCurrCmd->SetGuidance("Cylinder surface current Scorer.");
240// qCylSurfCurrCmd->
241// SetGuidance("[usage] /score/quantiy/cylinderSurfaceCurrent qname dflag wflag aflag");
242// qCylSurfCurrCmd->SetGuidance(" qname :(String) scorer name");
243// qCylSurfCurrCmd->SetGuidance(" dflag :(Int) direction flag");
244// qCylSurfCurrCmd->SetGuidance(" : 0 = Both In and Out");
245// qCylSurfCurrCmd->SetGuidance(" : 1 = In only");
246// qCylSurfCurrCmd->SetGuidance(" : 2 = Out only");
247// qCylSurfCurrCmd->SetGuidance(" wflag :(Bool) Weighted");
248// qCylSurfCurrCmd->SetGuidance(" aflag :(Bool) DivideByArea");
249// param = new G4UIparameter("qname",'s',false);
250// qCylSurfCurrCmd->SetParameter(param);
251// param = new G4UIparameter("dflag",'i',true);
252// param->SetDefaultValue("0");
253// qCylSurfCurrCmd->SetParameter(param);
254// param = new G4UIparameter("wflag",'b',true);
255// param->SetDefaultValue("true");
256// qCylSurfCurrCmd->SetParameter(param);
257// param = new G4UIparameter("aflag",'b',true);
258// param->SetDefaultValue("true");
259// qCylSurfCurrCmd->SetParameter(param);
260 //
261// qCylSurfFluxCmd = new G4UIcommand("/score/quantity/cylinderSurfaceFlux",this);
262// qCylSurfFluxCmd->SetGuidance("Cylinder surface Flux Scorer.");
263// qCylSurfFluxCmd->
264// SetGuidance("[usage] /score/quantiy/cylinderSurfaceFlux qname dflag");
265// qCylSurfFluxCmd->SetGuidance(" qname :(String) scorer name");
266// qCylSurfFluxCmd->SetGuidance(" dflag :(Int) direction flag");
267// qCylSurfFluxCmd->SetGuidance(" : 0 = Both In and Out");
268// qCylSurfFluxCmd->SetGuidance(" : 1 = In only");
269// qCylSurfFluxCmd->SetGuidance(" : 2 = Out only");
270// param = new G4UIparameter("qname",'s',false);
271// qCylSurfFluxCmd->SetParameter(param);
272// param = new G4UIparameter("dflag",'i',true);
273// param->SetDefaultValue("0");
274// qCylSurfFluxCmd->SetParameter(param);
275 //
276 qNofCollisionCmd = new G4UIcommand("/score/quantity/nOfCollision",this);
277 qNofCollisionCmd->SetGuidance("Number of collision scorer.");
278 qNofCollisionCmd->
279 SetGuidance("[usage] /score/quantiy/nOfCollision qname wflag");
280 qNofCollisionCmd->SetGuidance(" qname :(String) scorer name");
281 qNofCollisionCmd->SetGuidance(" wflag :(Bool) weighted");
282 param = new G4UIparameter("qname",'s',false);
283 qNofCollisionCmd->SetParameter(param);
284 param = new G4UIparameter("wflag",'b',true);
285 param->SetDefaultValue("false");
286 qNofCollisionCmd->SetParameter(param);
287 //
288 qPopulationCmd = new G4UIcommand("/score/quantity/population",this);
289 qPopulationCmd->SetGuidance("Population scorer.");
290 qPopulationCmd->
291 SetGuidance("[usage] /score/quantiy/population qname wflag");
292 qPopulationCmd->SetGuidance(" qname :(String) scorer name");
293 qPopulationCmd->SetGuidance(" wflag :(Bool) weighted");
294 param = new G4UIparameter("qname",'s',false);
295 qPopulationCmd->SetParameter(param);
296 param = new G4UIparameter("wflag",'b',true);
297 param->SetDefaultValue("false");
298 qPopulationCmd->SetParameter(param);
299
300 //
301 qTrackCountCmd = new G4UIcommand("/score/quantity/nOfTrack",this);
302 qTrackCountCmd->SetGuidance("Number of track scorer.");
303 qTrackCountCmd->
304 SetGuidance("[usage] /score/quantiy/nOfTrack qname dflag wflag");
305 qTrackCountCmd->SetGuidance(" qname :(String) scorer name");
306 qTrackCountCmd->SetGuidance(" dflag :(Int) direction");
307 qTrackCountCmd->SetGuidance(" : 0 = Both In and Out");
308 qTrackCountCmd->SetGuidance(" : 1 = In only");
309 qTrackCountCmd->SetGuidance(" : 2 = Out only");
310 qTrackCountCmd->SetGuidance(" wflag :(Bool) weighted");
311 param = new G4UIparameter("qname",'s',false);
312 qTrackCountCmd->SetParameter(param);
313 param = new G4UIparameter("dflag",'i',true);
314 param->SetDefaultValue("0");
315 qTrackCountCmd->SetParameter(param);
316 param = new G4UIparameter("wflag",'b',true);
317 param->SetDefaultValue("false");
318 qTrackCountCmd->SetParameter(param);
319
320 //
321 qTerminationCmd = new G4UIcommand("/score/quantity/nOfTerminatedTrack",this);
322 qTerminationCmd->SetGuidance("Number of terminated tracks scorer.");
323 qTerminationCmd->
324 SetGuidance("[usage] /score/quantiy/nOfTerminatedTrack qname wflag");
325 qTerminationCmd->SetGuidance(" qname :(String) scorer name");
326 qTerminationCmd->SetGuidance(" wflag :(Bool) weighted");
327 param = new G4UIparameter("qname",'s',false);
328 qTerminationCmd->SetParameter(param);
329 param = new G4UIparameter("wflag",'b',true);
330 param->SetDefaultValue("false");
331 qTerminationCmd->SetParameter(param);
332}
333
Note: See TracBrowser for help on using the repository browser.