GGS(GenericGEANT4Simulation)Software  2.6.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  _action(action) {
20 
21  _cmdDir = new G4UIdirectory("/GGS/userActions/hadrIntAction/");
22  _cmdDir->SetGuidance("Commands for hadronic interaction info action.");
23 
24  _outBaseCmd = new G4UIcmdWithAString("/GGS/userActions/hadrIntAction/fileBase", this);
25  _outBaseCmd->SetGuidance("Sets the base name for ROOT output file");
26  _outBaseCmd->SetGuidance(" Can be with or without extension (.root will be used automatically)");
27  _outBaseCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
28 
29  _outTreeCmd = new G4UIcmdWithAString("/GGS/userActions/hadrIntAction/treeName", this);
30  _outTreeCmd->SetGuidance("Set the name of the TTree object in the ROOT output file.");
31  _outTreeCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
32 
33  _setFractionCmd = new G4UIcmdWithADouble("/GGS/userActions/hadrIntAction/energyFraction", this);
34  _setFractionCmd->SetGuidance("Sets the minimum fraction of primary energy to tag quasi-elastic interactions.");
35  _setFractionCmd->SetParameterName("fraction", false);
36  _setFractionCmd->SetRange("fraction>=0. && fraction<=1.");
37  _setFractionCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
38 
39  _outProductsCmd = new G4UIcmdWithABool("/GGS/userActions/hadrIntAction/outProducts", this);
40  _outProductsCmd->SetGuidance("Toggles on and off saving interaction products.");
41  _outProductsCmd->SetParameterName("outProducts", false);
42  _outProductsCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
43 }
44 
45 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
46 
48 
49  delete _cmdDir;
50  delete _outBaseCmd;
51  delete _outTreeCmd;
52  delete _outProductsCmd;
53 }
54 
55 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
56 
57 void GGSHadrIntMessenger::SetNewValue(G4UIcommand* command, G4String newValue) {
58 
59  if (command == _outBaseCmd)
60  _action->SetOutputFileBase(newValue);
61 
62  if (command == _outTreeCmd)
63  _action->SetOutputTreeName(newValue);
64 
65  if (command == _setFractionCmd)
66  _action->SetEnergyFraction(_setFractionCmd->GetNewDoubleValue(newValue));
67 
68  if (command == _outProductsCmd) {
69  _action->SetOutputOfProducts(_outProductsCmd->GetNewBoolValue(newValue));
70  }
71 
72 }
73 
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.