GGS(GenericGEANT4Simulation)Software  2.7.0
 All Data Structures Namespaces Files Functions Variables Typedefs Macros
GGSHadrIntMessenger.cpp
Go to the documentation of this file.
1 /*
2  * GGSHadrIntMessenger.cpp
3  *
4  * Created on: 08 Jun 2011
5  * Author: Nicola Mori
6  */
7 
10 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
11 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
15 
16 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
17 
19 
20  _cmdDir = new G4UIdirectory("/GGS/userActions/hadrIntAction/");
21  _cmdDir->SetGuidance("Commands for hadronic interaction info action.");
22 
23  _outBaseCmd = new G4UIcmdWithAString("/GGS/userActions/hadrIntAction/fileBase", this);
24  _outBaseCmd->SetGuidance("Sets the base name for ROOT output file");
25  _outBaseCmd->SetGuidance(" Can be with or without extension (.root will be used automatically)");
26  _outBaseCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
27 
28  _outTreeCmd = new G4UIcmdWithAString("/GGS/userActions/hadrIntAction/treeName", this);
29  _outTreeCmd->SetGuidance("Set the name of the TTree object in the ROOT output file.");
30  _outTreeCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
31 
32  _setFractionCmd = new G4UIcmdWithADouble("/GGS/userActions/hadrIntAction/energyFraction", this);
33  _setFractionCmd->SetGuidance("Sets the minimum fraction of primary energy to tag quasi-elastic interactions.");
34  _setFractionCmd->SetParameterName("fraction", false);
35  _setFractionCmd->SetRange("fraction>=0. && fraction<=1.");
36  _setFractionCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
37 
38  _outProductsCmd = new G4UIcmdWithABool("/GGS/userActions/hadrIntAction/outProducts", this);
39  _outProductsCmd->SetGuidance("Toggles on and off saving interaction products.");
40  _outProductsCmd->SetParameterName("outProducts", false);
41  _outProductsCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
42 }
43 
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45 
47 
48  delete _cmdDir;
49  delete _outBaseCmd;
50  delete _outTreeCmd;
51  delete _outProductsCmd;
52 }
53 
54 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
55 
56 void GGSHadrIntMessenger::SetNewValue(G4UIcommand *command, G4String newValue) {
57 
58  if (command == _outBaseCmd)
59  _action->SetOutputFileBase(newValue);
60 
61  if (command == _outTreeCmd)
62  _action->SetOutputTreeName(newValue);
63 
64  if (command == _setFractionCmd)
65  _action->SetEnergyFraction(_setFractionCmd->GetNewDoubleValue(newValue));
66 
67  if (command == _outProductsCmd) {
68  _action->SetOutputOfProducts(_outProductsCmd->GetNewBoolValue(newValue));
69  }
70 }
void SetOutputFileBase(const std::string &outFileBase)
Sets the output file base name.
void SetOutputTreeName(const std::string &outTreeName)
Sets the output tree name.
void SetOutputOfProducts(bool output)
Toggles the output of hadronic interaction products.
void SetNewValue(G4UIcommand *command, G4String newValue)
Override of SetNewValue method.
void SetEnergyFraction(double fraction)
Sets the maximum secondary energy fraction for hadronic interactions.
~GGSHadrIntMessenger()
Destructor.
GGSHadrIntMessenger(GGSHadrIntAction *action)
Constructor.
Action which finds the hadronic interaction points for each primary particle.