G4AnalysisMessenger Class Reference

#include <G4AnalysisMessenger.hh>

Inheritance diagram for G4AnalysisMessenger:

G4UImessenger

Public Member Functions

 G4AnalysisMessenger (G4VAnalysisManager *manager)
virtual ~G4AnalysisMessenger ()
virtual void SetNewValue (G4UIcommand *command, G4String value)

Detailed Description

Definition at line 47 of file G4AnalysisMessenger.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }  


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:26 2013 for Geant4 by  doxygen 1.4.7