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

Last change on this file since 1337 was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

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: geant4-09-04-beta-01 $
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.