Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ScoreQuantityMessenger Class Reference

#include <G4ScoreQuantityMessenger.hh>

Inheritance diagram for G4ScoreQuantityMessenger:

Public Member Functions

 G4ScoreQuantityMessenger (G4ScoringManager *SManager)
 ~G4ScoreQuantityMessenger () override
void SetNewValue (G4UIcommand *command, G4String newValues) override
G4String GetCurrentValue (G4UIcommand *) override
Public Member Functions inherited from G4UImessenger
 G4UImessenger ()=default
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
virtual ~G4UImessenger ()
G4bool CommandsShouldBeInMaster () const

Protected Member Functions

void FillTokenVec (const G4String &newValues, G4TokenVec &token)
void FParticleCommand (G4VScoringMesh *mesh, G4TokenVec &token)
void FParticleWithEnergyCommand (G4VScoringMesh *mesh, G4TokenVec &token)
G4bool CheckMeshPS (G4VScoringMesh *mesh, const G4String &psname, G4UIcommand *command)
Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
G4String LtoS (G4long l)
G4String DtoS (G4double a)
G4String BtoS (G4bool b)
G4int StoI (const G4String &s)
G4long StoL (const G4String &s)
G4double StoD (const G4String &s)
G4bool StoB (const G4String &s)
void AddUIcommand (G4UIcommand *newCommand)
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
template<typename T>
T * CreateCommand (const G4String &cname, const G4String &dsc)

Additional Inherited Members

Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir = nullptr
G4String baseDirName = ""
G4bool commandsShouldBeInMaster = false

Detailed Description

Definition at line 52 of file G4ScoreQuantityMessenger.hh.

Constructor & Destructor Documentation

◆ G4ScoreQuantityMessenger()

G4ScoreQuantityMessenger::G4ScoreQuantityMessenger ( G4ScoringManager * SManager)

Definition at line 115 of file G4ScoreQuantityMessenger.cc.

116 : fSMan(SManager)
117{
118 QuantityCommands();
119 FilterCommands();
120}

◆ ~G4ScoreQuantityMessenger()

G4ScoreQuantityMessenger::~G4ScoreQuantityMessenger ( )
override

Definition at line 515 of file G4ScoreQuantityMessenger.cc.

516{
517 delete quantityDir;
518 delete qTouchCmd;
519 delete qGetUnitCmd;
520 delete qSetUnitCmd;
521
522 //
523 delete qCellChgCmd;
524 delete qCellFluxCmd;
525 delete qPassCellFluxCmd;
526 delete qeDepCmd;
527 delete qdoseDepCmd;
528 delete qnOfStepCmd;
529 delete qnOfSecondaryCmd;
530 //
531 delete qTrackLengthCmd;
532 delete qPassCellCurrCmd;
533 delete qPassTrackLengthCmd;
534 delete qFlatSurfCurrCmd;
535 delete qFlatSurfFluxCmd;
536 delete qVolFluxCmd;
537
538 delete qNofCollisionCmd;
539 delete qPopulationCmd;
540 delete qTrackCountCmd;
541 delete qTerminationCmd;
542 delete qMinKinEAtGeneCmd;
543 //
544 delete qStepCheckerCmd;
545 //
546 delete filterDir;
547 delete fchargedCmd;
548 delete fneutralCmd;
549 delete fkinECmd;
550 delete fparticleCmd;
551 delete fparticleKinECmd;
552}

Member Function Documentation

◆ CheckMeshPS()

G4bool G4ScoreQuantityMessenger::CheckMeshPS ( G4VScoringMesh * mesh,
const G4String & psname,
G4UIcommand * command )
protected

Definition at line 1112 of file G4ScoreQuantityMessenger.cc.

1115{
1116 if(!mesh->FindPrimitiveScorer(psname))
1117 {
1118 return true;
1119 }
1120
1122 ed << "WARNING[" << qTouchCmd->GetCommandPath() << "] : Quantity name, \""
1123 << psname << "\", is already existing.";
1124 command->CommandFailed(ed);
1126 return false;
1127}
std::ostringstream G4ExceptionDescription
void CommandFailed(G4int errCode, G4ExceptionDescription &ed)
void SetNullToCurrentPrimitiveScorer()
G4bool FindPrimitiveScorer(const G4String &psname)

Referenced by SetNewValue().

◆ FillTokenVec()

void G4ScoreQuantityMessenger::FillTokenVec ( const G4String & newValues,
G4TokenVec & token )
protected

Definition at line 1067 of file G4ScoreQuantityMessenger.cc.

1069{
1070 G4Tokenizer next(newValues);
1071 G4String val;
1072 while(!(val = next()).empty())
1073 { // Loop checking 12.18.2015 M.Asai
1074 token.push_back(val);
1075 }
1076}

Referenced by SetNewValue().

◆ FParticleCommand()

void G4ScoreQuantityMessenger::FParticleCommand ( G4VScoringMesh * mesh,
G4TokenVec & token )
protected

Definition at line 1078 of file G4ScoreQuantityMessenger.cc.

1080{
1081 //
1082 // Filter name
1083 G4String name = token[0];
1084 //
1085 // particle list
1086 std::vector<G4String> pnames;
1087 for(G4int i = 1; i < (G4int) token.size(); i++)
1088 {
1089 pnames.push_back(token[i]);
1090 }
1091 //
1092 // Attach Filter
1093 mesh->SetFilter(new G4SDParticleFilter(name, pnames));
1094}
int G4int
Definition G4Types.hh:85
void SetFilter(G4VSDFilter *filter)
const char * name(G4int ptype)

Referenced by SetNewValue().

◆ FParticleWithEnergyCommand()

void G4ScoreQuantityMessenger::FParticleWithEnergyCommand ( G4VScoringMesh * mesh,
G4TokenVec & token )
protected

Definition at line 1096 of file G4ScoreQuantityMessenger.cc.

1098{
1099 G4String& name = token[0];
1100 G4double elow = StoD(token[1]);
1101 G4double ehigh = StoD(token[2]);
1102 G4double unitVal = G4UnitDefinition::GetValueOf(token[3]);
1103 auto filter =
1104 new G4SDParticleWithEnergyFilter(name, elow * unitVal, ehigh * unitVal);
1105 for(G4int i = 4; i < (G4int) token.size(); i++)
1106 {
1107 filter->add(token[i]);
1108 }
1109 mesh->SetFilter(filter);
1110}
double G4double
Definition G4Types.hh:83
G4double StoD(const G4String &s)
static G4double GetValueOf(const G4String &)

Referenced by SetNewValue().

◆ GetCurrentValue()

G4String G4ScoreQuantityMessenger::GetCurrentValue ( G4UIcommand * )
overridevirtual

Reimplemented from G4UImessenger.

Definition at line 1060 of file G4ScoreQuantityMessenger.cc.

1061{
1062 G4String val;
1063
1064 return val;
1065}

◆ SetNewValue()

void G4ScoreQuantityMessenger::SetNewValue ( G4UIcommand * command,
G4String newValues )
overridevirtual

Reimplemented from G4UImessenger.

Definition at line 554 of file G4ScoreQuantityMessenger.cc.

556{
557 using MeshShape = G4VScoringMesh::MeshShape;
558
560
561 //
562 // Get Current Mesh
563 //
564 G4VScoringMesh* mesh = fSMan->GetCurrentMesh();
565 if(mesh == nullptr)
566 {
567 ed << "ERROR : No mesh is currently open. Open/create a mesh first. "
568 "Command ignored.";
569 command->CommandFailed(ed);
570 return;
571 }
572 // Mesh type
573 auto shape = mesh->GetShape();
574 // Tokens
575 G4TokenVec token;
576 FillTokenVec(newVal, token);
577 //
578 // Commands for Current Mesh
579 if(command == qTouchCmd)
580 {
581 mesh->SetCurrentPrimitiveScorer(newVal);
582 }
583 else if(command == qGetUnitCmd)
584 {
585 G4cout << "Unit: " << mesh->GetCurrentPSUnit() << G4endl;
586 }
587 else if(command == qSetUnitCmd)
588 {
589 mesh->SetCurrentPSUnit(newVal);
590 }
591 else if(command == qCellChgCmd)
592 {
593 if(CheckMeshPS(mesh, token[0], command))
594 {
595 G4PSCellCharge* ps = nullptr;
596 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
597 {
598 ps = new G4PSCellCharge(token[0], mesh->GetCopyNumberLevel());
599 }
600 else
601 {
602 ps = new G4PSCellCharge3D(token[0]);
603 }
604 ps->SetUnit(token[1]);
605 mesh->SetPrimitiveScorer(ps);
606 }
607 }
608 else if(command == qCellFluxCmd)
609 {
610 if(CheckMeshPS(mesh, token[0], command))
611 {
612 G4PSCellFlux* ps = nullptr;
613 if(shape == MeshShape::box)
614 {
615 ps = new G4PSCellFlux3D(token[0]);
616 }
617 else if(shape == MeshShape::cylinder)
618 {
619 auto pps =
620 new G4PSCellFluxForCylinder3D(token[0]);
621 pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan());
622 G4int nSeg[3];
623 mesh->GetNumberOfSegments(nSeg);
624 pps->SetNumberOfSegments(nSeg);
625 ps = pps;
626 }
627 else if(shape == MeshShape::realWorldLogVol)
628 {
629 ed << "Cell flux for real world volume is not yet supported. Command "
630 "ignored.";
631 command->CommandFailed(ed);
632 return;
633 }
634 else if(shape == MeshShape::probe)
635 {
636 ps = new G4PSCellFlux(token[0]);
637 }
638 ps->SetUnit(token[1]);
639 ps->ScoreWeighted(StoB(token[2]));
640 mesh->SetPrimitiveScorer(ps);
641 }
642 }
643 else if(command == qPassCellFluxCmd)
644 {
645 if(CheckMeshPS(mesh, token[0], command))
646 {
647 G4PSPassageCellFlux* ps = nullptr;
648 if(shape == MeshShape::box)
649 {
650 ps = new G4PSPassageCellFlux3D(token[0]);
651 }
652 else if(shape == MeshShape::cylinder)
653 {
654 auto pps =
655 new G4PSPassageCellFluxForCylinder3D(token[0]);
656 pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan());
657 G4int nSeg[3];
658 mesh->GetNumberOfSegments(nSeg);
659 pps->SetNumberOfSegments(nSeg);
660 ps = pps;
661 }
662 else if(shape == MeshShape::realWorldLogVol)
663 {
664 ed << "Passing cell flux for real world volume is not yet supported. "
665 "Command ignored.";
666 command->CommandFailed(ed);
667 return;
668 }
669 else if(shape == MeshShape::probe)
670 {
671 ps = new G4PSPassageCellFlux(token[0]);
672 }
673 ps->SetUnit(token[1]);
674 mesh->SetPrimitiveScorer(ps);
675 }
676 }
677 else if(command == qeDepCmd)
678 {
679 if(CheckMeshPS(mesh, token[0], command))
680 {
681 G4PSEnergyDeposit* ps = nullptr;
682 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
683 {
684 ps = new G4PSEnergyDeposit(token[0], mesh->GetCopyNumberLevel());
685 }
686 else
687 {
688 ps = new G4PSEnergyDeposit3D(token[0]);
689 }
690 ps->SetUnit(token[1]);
691 mesh->SetPrimitiveScorer(ps);
692 }
693 }
694 else if(command == qdoseDepCmd)
695 {
696 if(CheckMeshPS(mesh, token[0], command))
697 {
698 G4PSDoseDeposit* ps = nullptr;
699 if(shape == MeshShape::box)
700 {
701 ps = new G4PSDoseDeposit3D(token[0]);
702 }
703 else if(shape == MeshShape::cylinder)
704 {
705 auto pps =
706 new G4PSDoseDepositForCylinder3D(token[0]);
707 pps->SetUnit(token[1]);
708 pps->SetCylinderSize(mesh->GetSize(),mesh->GetStartAngle(),mesh->GetAngleSpan());
709 G4int nSeg[3];
710 mesh->GetNumberOfSegments(nSeg);
711 pps->SetNumberOfSegments(nSeg);
712 ps = pps;
713 }
714 else if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
715 {
716 ps = new G4PSDoseDeposit(token[0], mesh->GetCopyNumberLevel());
717 }
718 ps->SetUnit(token[1]);
719 mesh->SetPrimitiveScorer(ps);
720 }
721 }
722 else if(command == qnOfStepCmd)
723 {
724 if(CheckMeshPS(mesh, token[0], command))
725 {
726 G4PSNofStep* ps = nullptr;
727 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
728 {
729 ps = new G4PSNofStep(token[0], mesh->GetCopyNumberLevel());
730 }
731 else
732 {
733 ps = new G4PSNofStep3D(token[0]);
734 }
735 ps->SetBoundaryFlag(StoB(token[1]));
736 mesh->SetPrimitiveScorer(ps);
737 }
738 }
739 else if(command == qnOfSecondaryCmd)
740 {
741 if(CheckMeshPS(mesh, token[0], command))
742 {
743 G4PSNofSecondary* ps = nullptr;
744 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
745 {
746 ps = new G4PSNofSecondary(token[0], mesh->GetCopyNumberLevel());
747 }
748 else
749 {
750 ps = new G4PSNofSecondary3D(token[0]);
751 }
752 mesh->SetPrimitiveScorer(ps);
753 }
754 }
755 else if(command == qTrackLengthCmd)
756 {
757 if(CheckMeshPS(mesh, token[0], command))
758 {
759 G4PSTrackLength* ps = nullptr;
760 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
761 {
762 ps = new G4PSTrackLength(token[0], mesh->GetCopyNumberLevel());
763 }
764 else
765 {
766 ps = new G4PSTrackLength3D(token[0]);
767 }
768 ps->Weighted(StoB(token[1]));
769 ps->MultiplyKineticEnergy(StoB(token[2]));
770 ps->DivideByVelocity(StoB(token[3]));
771 ps->SetUnit(token[4]);
772 mesh->SetPrimitiveScorer(ps);
773 }
774 }
775 else if(command == qPassCellCurrCmd)
776 {
777 if(CheckMeshPS(mesh, token[0], command))
778 {
779 G4PSPassageCellCurrent* ps = nullptr;
780 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
781 {
782 ps = new G4PSPassageCellCurrent(token[0], mesh->GetCopyNumberLevel());
783 }
784 else
785 {
786 ps = new G4PSPassageCellCurrent3D(token[0]);
787 }
788 ps->Weighted(StoB(token[1]));
789 mesh->SetPrimitiveScorer(ps);
790 }
791 }
792 else if(command == qPassTrackLengthCmd)
793 {
794 if(CheckMeshPS(mesh, token[0], command))
795 {
796 G4PSPassageTrackLength* ps = nullptr;
797 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
798 {
799 ps = new G4PSPassageTrackLength(token[0], mesh->GetCopyNumberLevel());
800 }
801 else
802 {
803 ps = new G4PSPassageTrackLength3D(token[0]);
804 }
805 ps->Weighted(StoB(token[1]));
806 ps->SetUnit(token[2]);
807 mesh->SetPrimitiveScorer(ps);
808 }
809 }
810 else if(command == qFlatSurfCurrCmd)
811 {
812 if(CheckMeshPS(mesh, token[0], command))
813 {
814 G4PSFlatSurfaceCurrent* ps = nullptr;
815 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
816 {
817 ps = new G4PSFlatSurfaceCurrent(token[0], StoI(token[1]),
818 mesh->GetCopyNumberLevel());
819 }
820 else
821 {
822 ps = new G4PSFlatSurfaceCurrent3D(token[0], StoI(token[1]));
823 }
824 ps->Weighted(StoB(token[2]));
825 ps->DivideByArea(StoB(token[3]));
826 if(StoB(token[3]))
827 {
828 ps->SetUnit(token[4]);
829 }
830 else
831 {
832 ps->SetUnit("");
833 }
834 mesh->SetPrimitiveScorer(ps);
835 }
836 }
837 else if(command == qFlatSurfFluxCmd)
838 {
839 if(CheckMeshPS(mesh, token[0], command))
840 {
841 G4PSFlatSurfaceFlux* ps = nullptr;
842 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
843 {
844 ps = new G4PSFlatSurfaceFlux(token[0], StoI(token[1]),
845 mesh->GetCopyNumberLevel());
846 }
847 else
848 {
849 ps = new G4PSFlatSurfaceFlux3D(token[0], StoI(token[1]));
850 }
851 ps->Weighted(StoB(token[2]));
852 ps->DivideByArea(StoB(token[3]));
853 if(StoB(token[3]))
854 {
855 ps->SetUnit(token[4]);
856 }
857 else
858 {
859 ps->SetUnit("");
860 }
861 mesh->SetPrimitiveScorer(ps);
862 }
863 }
864 else if(command == qVolFluxCmd)
865 {
866 if(CheckMeshPS(mesh, token[0], command))
867 {
868 G4PSVolumeFlux* ps = nullptr;
869 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
870 {
871 ps = new G4PSVolumeFlux(token[0], StoI(token[2]),
872 mesh->GetCopyNumberLevel());
873 }
874 else
875 {
876 ps = new G4PSVolumeFlux3D(token[0], StoI(token[2]));
877 }
878 ps->SetDivCos(StoI(token[1]) != 0);
879 mesh->SetPrimitiveScorer(ps);
880 }
881 }
882 else if(command == qNofCollisionCmd)
883 {
884 if(CheckMeshPS(mesh, token[0], command))
885 {
886 G4PSNofCollision* ps = nullptr;
887 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
888 {
889 ps = new G4PSNofCollision3D(token[0], mesh->GetCopyNumberLevel());
890 }
891 else
892 {
893 ps = new G4PSNofCollision3D(token[0]);
894 }
895 ps->Weighted(StoB(token[1]));
896 mesh->SetPrimitiveScorer(ps);
897 }
898 }
899 else if(command == qPopulationCmd)
900 {
901 if(CheckMeshPS(mesh, token[0], command))
902 {
903 G4PSPopulation* ps = nullptr;
904 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
905 {
906 ps = new G4PSPopulation(token[0], mesh->GetCopyNumberLevel());
907 }
908 else
909 {
910 ps = new G4PSPopulation3D(token[0]);
911 }
912 ps->Weighted(StoB(token[1]));
913 mesh->SetPrimitiveScorer(ps);
914 }
915 }
916 else if(command == qTrackCountCmd)
917 {
918 if(CheckMeshPS(mesh, token[0], command))
919 {
920 G4PSTrackCounter* ps = nullptr;
921 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
922 {
923 ps = new G4PSTrackCounter(token[0], StoI(token[1]),
924 mesh->GetCopyNumberLevel());
925 }
926 else
927 {
928 ps = new G4PSTrackCounter3D(token[0], StoI(token[1]));
929 }
930 ps->Weighted(StoB(token[2]));
931 mesh->SetPrimitiveScorer(ps);
932 }
933 }
934 else if(command == qTerminationCmd)
935 {
936 if(CheckMeshPS(mesh, token[0], command))
937 {
938 G4PSTermination* ps = nullptr;
939 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
940 {
941 ps = new G4PSTermination(token[0], mesh->GetCopyNumberLevel());
942 }
943 else
944 {
945 ps = new G4PSTermination3D(token[0]);
946 }
947 ps->Weighted(StoB(token[1]));
948 mesh->SetPrimitiveScorer(ps);
949 }
950 }
951 else if(command == qMinKinEAtGeneCmd)
952 {
953 if(CheckMeshPS(mesh, token[0], command))
954 {
955 G4PSMinKinEAtGeneration* ps = nullptr;
956 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
957 {
958 ps = new G4PSMinKinEAtGeneration(token[0], mesh->GetCopyNumberLevel());
959 }
960 else
961 {
962 ps = new G4PSMinKinEAtGeneration3D(token[0]);
963 }
964 ps->SetUnit(token[1]);
965 mesh->SetPrimitiveScorer(ps);
966 }
967 }
968 else if(command == qStepCheckerCmd)
969 {
970 if(CheckMeshPS(mesh, token[0], command))
971 {
972 G4PSStepChecker* ps = nullptr;
973 if(shape == MeshShape::realWorldLogVol || shape == MeshShape::probe)
974 {
975 ps = new G4PSStepChecker(token[0], mesh->GetCopyNumberLevel());
976 }
977 else
978 {
979 ps = new G4PSStepChecker3D(token[0]);
980 }
981 mesh->SetPrimitiveScorer(ps);
982 }
983
984 //
985 // Filters
986 //
987 }
988 else if(command == fchargedCmd)
989 {
991 {
992 mesh->SetFilter(new G4SDChargedFilter(token[0]));
993 }
994 else
995 {
996 ed << "WARNING[" << fchargedCmd->GetCommandPath()
997 << "] : Current quantity is not set. Set or touch a quantity first.";
998 command->CommandFailed(ed);
999 }
1000 }
1001 else if(command == fneutralCmd)
1002 {
1003 if(!mesh->IsCurrentPrimitiveScorerNull())
1004 {
1005 mesh->SetFilter(new G4SDNeutralFilter(token[0]));
1006 }
1007 else
1008 {
1009 ed << "WARNING[" << fneutralCmd->GetCommandPath()
1010 << "] : Current quantity is not set. Set or touch a quantity first.";
1011 command->CommandFailed(ed);
1012 }
1013 }
1014 else if(command == fkinECmd)
1015 {
1016 if(!mesh->IsCurrentPrimitiveScorerNull())
1017 {
1018 G4String& name = token[0];
1019 G4double elow = StoD(token[1]);
1020 G4double ehigh = StoD(token[2]);
1021 G4double unitVal = G4UnitDefinition::GetValueOf(token[3]);
1022 mesh->SetFilter(
1023 new G4SDKineticEnergyFilter(name, elow * unitVal, ehigh * unitVal));
1024 }
1025 else
1026 {
1027 ed << "WARNING[" << fkinECmd->GetCommandPath()
1028 << "] : Current quantity is not set. Set or touch a quantity first.";
1029 command->CommandFailed(ed);
1030 }
1031 }
1032 else if(command == fparticleKinECmd)
1033 {
1034 if(!mesh->IsCurrentPrimitiveScorerNull())
1035 {
1036 FParticleWithEnergyCommand(mesh, token);
1037 }
1038 else
1039 {
1040 ed << "WARNING[" << fparticleKinECmd->GetCommandPath()
1041 << "] : Current quantity is not set. Set or touch a quantity first.";
1042 command->CommandFailed(ed);
1043 }
1044 }
1045 else if(command == fparticleCmd)
1046 {
1047 if(!mesh->IsCurrentPrimitiveScorerNull())
1048 {
1049 FParticleCommand(mesh, token);
1050 }
1051 else
1052 {
1053 ed << "WARNING[" << fparticleCmd->GetCommandPath()
1054 << "] : Current quantity is not set. Set or touch a quantity first.";
1055 command->CommandFailed(ed);
1056 }
1057 }
1058}
std::vector< G4String > G4TokenVec
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
virtual void SetUnit(const G4String &unit)
virtual void SetUnit(const G4String &unit)
virtual void SetUnit(const G4String &unit)
virtual void SetUnit(const G4String &unit)
void DivideByArea(G4bool flg=true)
void Weighted(G4bool flg=true)
virtual void SetUnit(const G4String &unit)
void Weighted(G4bool flg=true)
void DivideByArea(G4bool flg=true)
virtual void SetUnit(const G4String &unit)
virtual void SetUnit(const G4String &unit)
void Weighted(G4bool flg=true)
void SetBoundaryFlag(G4bool flg=true)
void Weighted(G4bool flg=true)
virtual void SetUnit(const G4String &unit)
virtual void SetUnit(const G4String &unit)
void Weighted(G4bool flg=true)
void Weighted(G4bool flg=true)
void Weighted(G4bool flg=true)
void Weighted(G4bool flg=true)
virtual void SetUnit(const G4String &unit)
void MultiplyKineticEnergy(G4bool flg=true)
void Weighted(G4bool flg=true)
void DivideByVelocity(G4bool flg=true)
void SetDivCos(G4bool val)
void FParticleWithEnergyCommand(G4VScoringMesh *mesh, G4TokenVec &token)
G4bool CheckMeshPS(G4VScoringMesh *mesh, const G4String &psname, G4UIcommand *command)
void FillTokenVec(const G4String &newValues, G4TokenVec &token)
void FParticleCommand(G4VScoringMesh *mesh, G4TokenVec &token)
G4bool StoB(const G4String &s)
G4int StoI(const G4String &s)
void ScoreWeighted(G4bool flg=false)
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()

The documentation for this class was generated from the following files: