#include <G4AnalysisMessenger.hh>
Inheritance diagram for G4AnalysisMessenger:
Public Member Functions | |
G4AnalysisMessenger (G4VAnalysisManager *manager) | |
virtual | ~G4AnalysisMessenger () |
virtual void | SetNewValue (G4UIcommand *command, G4String value) |
Definition at line 47 of file G4AnalysisMessenger.hh.
G4AnalysisMessenger::G4AnalysisMessenger | ( | G4VAnalysisManager * | manager | ) |
Definition at line 48 of file G4AnalysisMessenger.cc.
References G4UIcommand::AvailableForStates(), G4State_Idle, G4State_PreInit, G4UIcommand::SetGuidance(), G4UIcmdWithAnInteger::SetParameterName(), G4UIcmdWithABool::SetParameterName(), G4UIcmdWithAString::SetParameterName(), and G4UIcommand::SetRange().
00049 : G4UImessenger(), 00050 fManager(manager), 00051 fAnalysisDir(0), 00052 fSetFileNameCmd(0), 00053 fSetHistoDirNameCmd(0), 00054 fSetNtupleDirNameCmd(0), 00055 fSetActivationCmd(0), 00056 fVerboseCmd(0), 00057 fH1Dir(0), 00058 fCreateH1Cmd(0), 00059 fSetH1Cmd(0), 00060 fSetH1AsciiCmd(0), 00061 fSetH1TitleCmd(0), 00062 fSetH1XAxisCmd(0), 00063 fSetH1YAxisCmd(0), 00064 fSetH1ActivationCmd(0), 00065 fSetH1ActivationAllCmd(0), 00066 fH2Dir(0), 00067 fCreateH2Cmd(0), 00068 fSetH2Cmd(0), 00069 fSetH2AsciiCmd(0), 00070 fSetH2TitleCmd(0), 00071 fSetH2XAxisCmd(0), 00072 fSetH2YAxisCmd(0), 00073 fSetH2ActivationCmd(0), 00074 fSetH2ActivationAllCmd(0) 00075 { 00076 fAnalysisDir = new G4UIdirectory("/analysis/"); 00077 fAnalysisDir->SetGuidance("analysis control"); 00078 00079 fSetFileNameCmd = new G4UIcmdWithAString("/analysis/setFileName",this); 00080 fSetFileNameCmd->SetGuidance("Set name for the histograms & ntuple file"); 00081 fSetFileNameCmd->SetParameterName("Filename", false); 00082 fSetFileNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00083 00084 fSetHistoDirNameCmd = new G4UIcmdWithAString("/analysis/setHistoDirName",this); 00085 fSetHistoDirNameCmd->SetGuidance("Set name for the histograms directory"); 00086 fSetHistoDirNameCmd->SetParameterName("HistoDirName", false); 00087 fSetHistoDirNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00088 00089 fSetNtupleDirNameCmd = new G4UIcmdWithAString("/analysis/setNtupleDirName",this); 00090 fSetNtupleDirNameCmd->SetGuidance("Set name for the ntuple directory"); 00091 fSetNtupleDirNameCmd->SetParameterName("NtupleDirName", false); 00092 fSetNtupleDirNameCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00093 00094 fSetActivationCmd = new G4UIcmdWithABool("/analysis/setActivation",this); 00095 G4String guidance = "Set activation. \n"; 00096 guidance += "When this option is enabled, only the histograms marked as activated\n"; 00097 guidance += "are returned, filled or saved on file.\n"; 00098 guidance += "No warning is issued when Get or Fill is called on inactive histogram."; 00099 fSetActivationCmd->SetGuidance(guidance); 00100 fSetActivationCmd->SetParameterName("Activation",false); 00101 00102 fVerboseCmd = new G4UIcmdWithAnInteger("/analysis/verbose",this); 00103 fVerboseCmd->SetGuidance("Set verbose level"); 00104 fVerboseCmd->SetParameterName("VerboseLevel",false); 00105 fVerboseCmd->SetRange("VerboseLevel>=0 && VerboseLevel<=4"); 00106 00107 fH1Dir = new G4UIdirectory("/analysis/h1/"); 00108 fH1Dir->SetGuidance("1D histograms control"); 00109 00110 CreateH1Cmd(); 00111 SetH1Cmd(); 00112 00113 fSetH1AsciiCmd = new G4UIcmdWithAnInteger("/analysis/h1/setAscii",this); 00114 fSetH1AsciiCmd->SetGuidance("Print 1D histogram of #Id on ascii file."); 00115 fSetH1AsciiCmd->SetParameterName("Id",false); 00116 fSetH1AsciiCmd->SetRange("Id>=0"); 00117 fSetH1AsciiCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00118 00119 SetH1TitleCmd(); 00120 SetH1XAxisCmd(); 00121 SetH1YAxisCmd(); 00122 SetH1ActivationCmd(); 00123 00124 fSetH1ActivationAllCmd = new G4UIcmdWithABool("/analysis/h1/setActivationToAll",this); 00125 fSetH1ActivationAllCmd->SetGuidance("Set activation to all 1D histograms."); 00126 fSetH1ActivationAllCmd->SetParameterName("Activation",false); 00127 00128 fH2Dir = new G4UIdirectory("/analysis/h2/"); 00129 fH2Dir->SetGuidance("2D histograms control"); 00130 00131 CreateH2Cmd(); 00132 SetH2Cmd(); 00133 00134 fSetH2AsciiCmd = new G4UIcmdWithAnInteger("/analysis/h2/setAscii",this); 00135 fSetH2AsciiCmd->SetGuidance("Print 2D histogram of #Id on ascii file."); 00136 fSetH2AsciiCmd->SetParameterName("Id",false); 00137 fSetH2AsciiCmd->SetRange("Id>=0"); 00138 fSetH2AsciiCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00139 00140 SetH2TitleCmd(); 00141 SetH2XAxisCmd(); 00142 SetH2YAxisCmd(); 00143 SetH2ZAxisCmd(); 00144 SetH2ActivationCmd(); 00145 00146 fSetH2ActivationAllCmd = new G4UIcmdWithABool("/analysis/h2/setActivationToAll",this); 00147 fSetH2ActivationAllCmd->SetGuidance("Set activation to all 2D histograms."); 00148 fSetH2ActivationAllCmd->SetParameterName("Activation",false); 00149 00150 }
G4AnalysisMessenger::~G4AnalysisMessenger | ( | ) | [virtual] |
Definition at line 153 of file G4AnalysisMessenger.cc.
00154 { 00155 delete fSetFileNameCmd; 00156 delete fSetHistoDirNameCmd; 00157 delete fSetNtupleDirNameCmd; 00158 delete fSetActivationCmd; 00159 delete fVerboseCmd; 00160 delete fCreateH1Cmd; 00161 delete fSetH1Cmd; 00162 delete fSetH1AsciiCmd; 00163 delete fSetH1TitleCmd; 00164 delete fSetH1XAxisCmd; 00165 delete fSetH1YAxisCmd; 00166 delete fSetH1ActivationCmd; 00167 delete fSetH1ActivationAllCmd; 00168 delete fH1Dir; 00169 delete fCreateH2Cmd; 00170 delete fSetH2Cmd; 00171 delete fSetH2AsciiCmd; 00172 delete fSetH2TitleCmd; 00173 delete fSetH2XAxisCmd; 00174 delete fSetH2YAxisCmd; 00175 delete fSetH2ZAxisCmd; 00176 delete fSetH2ActivationCmd; 00177 delete fSetH2ActivationAllCmd; 00178 delete fH2Dir; 00179 delete fAnalysisDir; 00180 }
void G4AnalysisMessenger::SetNewValue | ( | G4UIcommand * | command, | |
G4String | value | |||
) | [virtual] |
Reimplemented from G4UImessenger.
Definition at line 585 of file G4AnalysisMessenger.cc.
References G4UIcommand::ConvertToBool(), G4VAnalysisManager::CreateH1(), G4VAnalysisManager::CreateH2(), G4String::data(), G4cout, G4endl, G4UIcmdWithABool::GetNewBoolValue(), G4UIcmdWithAnInteger::GetNewIntValue(), G4VAnalysisManager::kH1, G4VAnalysisManager::kH2, G4VAnalysisManager::SetActivation(), G4VAnalysisManager::SetAscii(), G4VAnalysisManager::SetFileName(), G4VAnalysisManager::SetH1(), G4VAnalysisManager::SetH1Title(), G4VAnalysisManager::SetH1XAxisTitle(), G4VAnalysisManager::SetH1YAxisTitle(), G4VAnalysisManager::SetH2(), G4VAnalysisManager::SetH2Title(), G4VAnalysisManager::SetH2XAxisTitle(), G4VAnalysisManager::SetH2YAxisTitle(), G4VAnalysisManager::SetH2ZAxisTitle(), G4VAnalysisManager::SetHistoDirectoryName(), G4VAnalysisManager::SetNtupleDirectoryName(), and G4VAnalysisManager::SetVerboseLevel().
00586 { 00587 if ( command == fSetFileNameCmd ) { 00588 G4cout << "Set file name: " << newValues << G4endl; 00589 fManager->SetFileName(newValues); 00590 } 00591 else if ( command == fSetHistoDirNameCmd ) { 00592 fManager->SetHistoDirectoryName(newValues); 00593 } 00594 else if ( command == fSetNtupleDirNameCmd ) { 00595 fManager->SetNtupleDirectoryName(newValues); 00596 } 00597 else if ( command == fSetActivationCmd ) { 00598 fManager->SetActivation(fSetActivationCmd->GetNewBoolValue(newValues)); 00599 } 00600 else if ( command == fVerboseCmd ) { 00601 fManager->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValues)); 00602 } 00603 else if ( command == fCreateH1Cmd ) { 00604 G4String name, title; 00605 G4int nbins; 00606 G4double vmin,vmax; 00607 G4String sunit; 00608 G4String sfcn; 00609 std::istringstream is(newValues.data()); 00610 is >> name >> title >> nbins >> vmin >> vmax >> sunit >> sfcn; 00611 fManager->CreateH1(name, title, nbins, vmin, vmax, sunit, sfcn); 00612 } 00613 else if ( command == fSetH1Cmd ) { 00614 G4int id; 00615 G4int nbins; 00616 G4double vmin, vmax; 00617 G4String sunit; 00618 G4String sfcn; 00619 std::istringstream is(newValues.data()); 00620 is >> id >> nbins >> vmin >> vmax >> sunit >> sfcn; 00621 fManager->SetH1(id, nbins, vmin, vmax, sunit, sfcn); 00622 } 00623 else if ( command == fSetH1AsciiCmd ) { 00624 G4int id = fSetH1AsciiCmd->GetNewIntValue(newValues); 00625 fManager->SetAscii(G4VAnalysisManager::kH1, id, true); 00626 } 00627 else if ( command == fSetH1TitleCmd ) { 00628 G4int id; 00629 G4String title; 00630 std::istringstream is(newValues.data()); 00631 is >> id; 00632 getline(is, title); 00633 fManager->SetH1Title(id, title); 00634 } 00635 else if ( command == fSetH1XAxisCmd ) { 00636 G4int id; 00637 G4String xaxis; 00638 std::istringstream is(newValues.data()); 00639 is >> id; 00640 getline(is, xaxis); 00641 fManager->SetH1XAxisTitle(id, xaxis); 00642 } 00643 else if ( command == fSetH1YAxisCmd ) { 00644 G4int id; 00645 G4String yaxis; 00646 std::istringstream is(newValues.data()); 00647 is >> id; 00648 getline(is, yaxis); 00649 fManager->SetH1YAxisTitle(id, yaxis); 00650 } 00651 else if ( command == fSetH1ActivationCmd ) { 00652 G4int id; 00653 G4String sactivation; 00654 std::istringstream is(newValues.data()); 00655 is >> id >> sactivation; 00656 G4bool activation = G4UIcommand::ConvertToBool(sactivation); 00657 fManager->SetActivation(G4VAnalysisManager::kH1, id, activation); 00658 } 00659 else if ( command == fSetH1ActivationAllCmd ) { 00660 G4bool activation = fSetH1ActivationAllCmd->GetNewBoolValue(newValues); 00661 fManager->SetActivation(G4VAnalysisManager::kH1, activation); 00662 } 00663 else if ( command == fCreateH2Cmd ) { 00664 G4String name, title; 00665 G4int xnbins, ynbins; 00666 G4double xvmin, xvmax, yvmin, yvmax; 00667 G4String xsunit,xsfcn, ysunit, ysfcn; 00668 std::istringstream is(newValues.data()); 00669 is >> name >> title 00670 >> xnbins >> xvmin >> xvmax >> xsunit >> xsfcn 00671 >> ynbins >> yvmin >> yvmax >> ysunit >> ysfcn; 00672 fManager->CreateH2(name, title, 00673 xnbins, xvmin, xvmax, ynbins, yvmin, yvmax, 00674 ysunit, ysfcn, ysunit, ysfcn); 00675 } 00676 else if ( command == fSetH2Cmd ) { 00677 G4int id; 00678 G4int xnbins, ynbins; 00679 G4double xvmin, xvmax, yvmin, yvmax; 00680 G4String xsunit,xsfcn, ysunit, ysfcn; 00681 std::istringstream is(newValues.data()); 00682 is >> id 00683 >> xnbins >> xvmin >> xvmax >> xsunit >> xsfcn 00684 >> ynbins >> yvmin >> yvmax >> ysunit >> ysfcn; 00685 fManager->SetH2(id, 00686 xnbins, xvmin, xvmax, ynbins, yvmin, yvmax, 00687 ysunit, ysfcn, ysunit, ysfcn); 00688 } 00689 else if ( command == fSetH2AsciiCmd ) { 00690 G4int id = fSetH2AsciiCmd->GetNewIntValue(newValues); 00691 fManager->SetAscii(G4VAnalysisManager::kH2, id, true); 00692 } 00693 else if ( command == fSetH2TitleCmd ) { 00694 G4int id; 00695 G4String title; 00696 std::istringstream is(newValues.data()); 00697 is >> id; 00698 getline(is, title); 00699 fManager->SetH2Title(id, title); 00700 } 00701 else if ( command == fSetH2XAxisCmd ) { 00702 G4int id; 00703 G4String xaxis; 00704 std::istringstream is(newValues.data()); 00705 is >> id; 00706 getline(is, xaxis); 00707 fManager->SetH2XAxisTitle(id, xaxis); 00708 } 00709 else if ( command == fSetH2YAxisCmd ) { 00710 G4int id; 00711 G4String yaxis; 00712 std::istringstream is(newValues.data()); 00713 is >> id; 00714 getline(is, yaxis); 00715 fManager->SetH2YAxisTitle(id, yaxis); 00716 } 00717 else if ( command == fSetH2ZAxisCmd ) { 00718 G4int id; 00719 G4String zaxis; 00720 std::istringstream is(newValues.data()); 00721 is >> id; 00722 getline(is, zaxis); 00723 fManager->SetH2ZAxisTitle(id, zaxis); 00724 } 00725 else if ( command == fSetH2ActivationCmd ) { 00726 G4int id; 00727 G4String sactivation; 00728 std::istringstream is(newValues.data()); 00729 is >> id >> sactivation; 00730 G4bool activation = G4UIcommand::ConvertToBool(sactivation); 00731 fManager->SetActivation(G4VAnalysisManager::kH2, id, activation); 00732 } 00733 else if ( command == fSetH2ActivationAllCmd ) { 00734 G4bool activation = fSetH2ActivationAllCmd->GetNewBoolValue(newValues); 00735 fManager->SetActivation(G4VAnalysisManager::kH2, activation); 00736 } 00737 }