144 "[usage] /score/filter/kineticEnergy fname Elow Ehigh unit");
176 new G4UIcommand(
"/score/filter/particleWithKineticEnergy",
this);
179 "[usage] /score/filter/particleWithKineticEnergy fname Elow Ehigh unit p0 "
183 " Elow :(Double) Lower edge of kinetic energy");
185 " Ehigh :(Double) Higher edge of kinetic energy");
187 " unit :(String) unit of given kinetic energy");
262 ed <<
"ERROR : No mesh is currently open. Open/create a mesh first. "
291 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
299 ps->SetUnit(token[1]);
308 if(shape == MeshShape::box)
312 else if(shape == MeshShape::cylinder)
322 else if(shape == MeshShape::realWorldLogVol)
324 ed <<
"Cell flux for real world volume is not yet supported. Command "
329 else if(shape == MeshShape::probe)
333 ps->SetUnit(token[1]);
342 if(shape == MeshShape::box)
346 else if(shape == MeshShape::cylinder)
356 else if(shape == MeshShape::realWorldLogVol)
358 ed <<
"Passing cell flux for real world volume is not yet supported. "
363 else if(shape == MeshShape::probe)
367 ps->SetUnit(token[1]);
376 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
384 ps->SetUnit(token[1]);
393 if(shape == MeshShape::box)
397 else if(shape == MeshShape::cylinder)
408 else if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
412 ps->SetUnit(token[1]);
421 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
429 ps->SetBoundaryFlag(
StoB(token[1]));
438 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
454 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
462 ps->Weighted(
StoB(token[1]));
463 ps->MultiplyKineticEnergy(
StoB(token[2]));
464 ps->DivideByVelocity(
StoB(token[3]));
465 ps->SetUnit(token[4]);
474 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
482 ps->Weighted(
StoB(token[1]));
491 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
499 ps->Weighted(
StoB(token[1]));
500 ps->SetUnit(token[2]);
509 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
518 ps->Weighted(
StoB(token[2]));
519 ps->DivideByArea(
StoB(token[3]));
522 ps->SetUnit(token[4]);
536 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
545 ps->Weighted(
StoB(token[2]));
546 ps->DivideByArea(
StoB(token[3]));
549 ps->SetUnit(token[4]);
563 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
572 ps->SetDivCos(
StoI(token[1]));
635 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
643 ps->Weighted(
StoB(token[1]));
652 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
660 ps->Weighted(
StoB(token[1]));
669 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
678 ps->Weighted(
StoB(token[2]));
687 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
695 ps->Weighted(
StoB(token[1]));
704 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
712 ps->SetUnit(token[1]);
721 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
745 <<
"] : Current quantity is not set. Set or touch a quantity first.";
758 <<
"] : Current quantity is not set. Set or touch a quantity first.";
776 <<
"] : Current quantity is not set. Set or touch a quantity first.";
789 <<
"] : Current quantity is not set. Set or touch a quantity first.";
802 <<
"] : Current quantity is not set. Set or touch a quantity first.";
820 while(!(val = next()).
empty())
822 token.push_back(val);
834 std::vector<G4String> pnames;
835 for(
G4int i = 1; i < (
G4int) token.size(); i++)
837 pnames.push_back(token[i]);
853 for(
G4int i = 4; i < (
G4int) token.size(); i++)
855 filter->
add(token[i]);
872 << psname <<
"\", is already existing.";
std::ostringstream G4ExceptionDescription
static constexpr double ps
std::vector< G4String > G4TokenVec
G4GLOB_DLL std::ostream G4cout
void SetNumberOfSegments(G4int nSeg[3])
void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan)
void SetNumberOfSegments(G4int nSeg[3])
void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan)
virtual void SetUnit(const G4String &unit)
void SetCylinderSize(G4ThreeVector cylSize, G4double startAng, G4double angSpan)
void SetNumberOfSegments(G4int nSeg[3])
void add(const G4String &particleName)
G4UIcommand * qdoseDepCmd
G4UIcmdWithAString * fneutralCmd
G4UIcommand * qPopulationCmd
void FParticleWithEnergyCommand(G4VScoringMesh *mesh, G4TokenVec &token)
G4UIcmdWithAString * qTouchCmd
G4UIcmdWithAString * fchargedCmd
G4UIdirectory * quantityDir
G4bool CheckMeshPS(G4VScoringMesh *mesh, G4String &psname, G4UIcommand *command)
G4UIcommand * qTrackLengthCmd
G4UIcommand * qTrackCountCmd
G4UIcommand * qPassCellFluxCmd
G4UIcommand * qFlatSurfCurrCmd
G4UIcommand * qTerminationCmd
G4UIcommand * qnOfSecondaryCmd
G4UIcommand * qNofCollisionCmd
G4UIdirectory * filterDir
G4UIcommand * fparticleCmd
G4String GetCurrentValue(G4UIcommand *)
G4UIcommand * qStepCheckerCmd
void SetNewValue(G4UIcommand *command, G4String newValues)
G4UIcommand * qCellFluxCmd
G4UIcommand * qPassTrackLengthCmd
G4UIcommand * fparticleKinECmd
G4UIcmdWithAString * qSetUnitCmd
G4ScoreQuantityMessenger(G4ScoringManager *SManager)
G4UIcommand * qMinKinEAtGeneCmd
void FillTokenVec(G4String newValues, G4TokenVec &token)
G4UIcommand * qCellChgCmd
G4UIcommand * qFlatSurfFluxCmd
G4UIcommand * qPassCellCurrCmd
~G4ScoreQuantityMessenger()
void FParticleCommand(G4VScoringMesh *mesh, G4TokenVec &token)
G4UIcommand * qVolFluxCmd
G4UIcmdWithoutParameter * qGetUnitCmd
G4UIcommand * qnOfStepCmd
G4VScoringMesh * GetCurrentMesh() const
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
const G4String & GetCommandPath() const
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
void CommandFailed(G4int errCode, G4ExceptionDescription &ed)
G4String DtoS(G4double a)
G4double StoD(G4String s)
void SetDefaultValue(const char *theDefaultValue)
void SetDefaultUnit(const char *theDefaultUnit)
static G4double GetValueOf(const G4String &)
void SetFilter(G4VSDFilter *filter)
void SetNullToCurrentPrimitiveScorer()
G4ThreeVector GetSize() const
MeshShape GetShape() const
G4double GetStartAngle() const
void GetNumberOfSegments(G4int nSegment[3])
G4int GetCopyNumberLevel() const
void SetCurrentPSUnit(const G4String &unit)
void SetCurrentPrimitiveScorer(const G4String &name)
void SetPrimitiveScorer(G4VPrimitiveScorer *ps)
G4String GetCurrentPSUnit()
G4double GetAngleSpan() const
G4bool IsCurrentPrimitiveScorerNull()
G4bool FindPrimitiveScorer(const G4String &psname)
const char * name(G4int ptype)