Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/analysis/management/src/G4AnalysisMessenger.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /analysis/management/src/G4AnalysisMessenger.cc (Version 11.3.0) and /analysis/management/src/G4AnalysisMessenger.cc (Version 2.0)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26                                                   
 27 // Author: Ivana Hrivnacova, 24/06/2013  (ivan    
 28                                                   
 29 #include "G4AnalysisMessenger.hh"                 
 30 #include "G4VAnalysisManager.hh"                  
 31 #include "G4NtupleMessenger.hh"                   
 32                                                   
 33 #include "G4UIcmdWithABool.hh"                    
 34 #include "G4UIcmdWithAnInteger.hh"                
 35 #include "G4UIcmdWithAString.hh"                  
 36 #include "G4UIcmdWithoutParameter.hh"             
 37 #include "G4Threading.hh"                         
 38                                                   
 39 using namespace G4Analysis;                       
 40                                                   
 41 //____________________________________________    
 42 G4AnalysisMessenger::G4AnalysisMessenger(G4VAn    
 43   : fManager(manager)                             
 44 {                                                 
 45   fAnalysisDir = std::make_unique<G4UIdirector    
 46   fAnalysisDir->SetGuidance("analysis control"    
 47                                                   
 48   fOpenFileCmd = CreateCommand<G4UIcmdWithAStr    
 49     "openFile", "Open analysis file", "FileNam    
 50   fOpenFileCmd->SetDefaultValue("");              
 51   fOpenFileCmd->SetToBeBroadcasted(true);         
 52                                                   
 53   fWriteCmd = CreateCommandWithoutParameter(      
 54     "write", "Write analysis data.");             
 55   fWriteCmd->SetToBeBroadcasted(false);           
 56                                                   
 57   fResetCmd = CreateCommandWithoutParameter(      
 58     "reset", "Reset analysis data.");             
 59   fResetCmd->SetToBeBroadcasted(false);           
 60                                                   
 61   fCloseFileCmd = CreateCommand<G4UIcmdWithABo    
 62     "closeFile", "Close analysis file and (opt    
 63   fCloseFileCmd->SetDefaultValue(true);           
 64   fCloseFileCmd->SetToBeBroadcasted(false);       
 65                                                   
 66   fListCmd = CreateCommand<G4UIcmdWithABool>(     
 67     "list", "List all/activate analysis object    
 68   fListCmd->SetDefaultValue(true);                
 69                                                   
 70   fSetDefaultFileTypeCmd = CreateCommand<G4UIc    
 71     "setDefaultFileType", "Set default output     
 72 #ifdef TOOLS_USE_HDF5                             
 73   fSetDefaultFileTypeCmd->SetCandidates("csv h    
 74 #else                                             
 75   fSetDefaultFileTypeCmd->SetCandidates("csv r    
 76 #endif                                            
 77                                                   
 78   fSetActivationCmd = CreateCommand<G4UIcmdWit    
 79     "setActivation",                              
 80     "Set activation. \n"                          
 81     "When this option is enabled, only the his    
 82     "are returned, filled or saved on file.\n"    
 83     "No warning is issued when Get or Fill is     
 84     "Activation");                                
 85                                                   
 86   fVerboseCmd = CreateCommand<G4UIcmdWithAnInt    
 87     "verbose", "Set verbose level", "VerboseLe    
 88   fVerboseCmd->SetRange("VerboseLevel>=0 && Ve    
 89                                                   
 90   fCompressionCmd = CreateCommand<G4UIcmdWithA    
 91     "compression", "Set compression level", "C    
 92   fCompressionCmd->SetRange("CompressionLevel>    
 93                                                   
 94   fSetFileNameCmd = CreateCommand<G4UIcmdWithA    
 95     "setFileName", "Set name for the histogram    
 96                                                   
 97   fSetHistoDirNameCmd = CreateCommand<G4UIcmdW    
 98     "setHistoDirName", "Set name for the histo    
 99                                                   
100   fSetNtupleDirNameCmd = CreateCommand<G4UIcmd    
101     "setNtupleDirName", "Set name for the ntup    
102                                                   
103   fNtupleMessenger = std::make_unique<G4Ntuple    
104 }                                                 
105                                                   
106 //____________________________________________    
107 G4AnalysisMessenger::~G4AnalysisMessenger() =     
108                                                   
109 //                                                
110 // private functions                              
111 //                                                
112                                                   
113                                                   
114 //____________________________________________    
115 std::unique_ptr<G4UIcmdWithoutParameter>          
116 G4AnalysisMessenger::CreateCommandWithoutParam    
117   G4String name, G4String guidance)               
118 {                                                 
119   G4String fullName = "/analysis/" + name;        
120                                                   
121   auto command = std::make_unique<G4UIcmdWitho    
122   command->SetGuidance(guidance.c_str());         
123   command->AvailableForStates(G4State_PreInit,    
124                                                   
125   return command;                                 
126 }                                                 
127                                                   
128 //                                                
129 // public functions                               
130 //                                                
131                                                   
132 //____________________________________________    
133 void G4AnalysisMessenger::SetNewValue(G4UIcomm    
134 {                                                 
135   if ( command == fOpenFileCmd.get() ) {          
136     // G4cout << "Calling OpenFile from comman    
137     fManager->OpenFile(newValues);                
138     return;                                       
139   }                                               
140                                                   
141   if ( command == fWriteCmd.get() ) {             
142     fManager->WriteFromUI();                      
143     return;                                       
144   }                                               
145                                                   
146   if ( command == fResetCmd.get() ) {             
147     fManager->ResetFromUI();                      
148     return;                                       
149   }                                               
150                                                   
151   if ( command == fCloseFileCmd.get() ) {         
152     fManager->CloseFileFromUI(fCloseFileCmd->G    
153     return;                                       
154   }                                               
155                                                   
156   if ( command == fListCmd.get() ) {              
157     fManager->List(fListCmd->GetNewBoolValue(n    
158     return;                                       
159   }                                               
160                                                   
161   if ( command == fSetDefaultFileTypeCmd.get()    
162     fManager->SetDefaultFileType(newValues);      
163     return;                                       
164   }                                               
165                                                   
166   if ( command == fSetActivationCmd.get() ) {     
167     fManager->SetActivation(fSetActivationCmd-    
168     return;                                       
169   }                                               
170                                                   
171   if ( command == fVerboseCmd.get() ) {           
172     fManager->SetVerboseLevel(fVerboseCmd->Get    
173     return;                                       
174   }                                               
175                                                   
176   if ( command == fCompressionCmd.get() ) {       
177     fManager->SetCompressionLevel(fCompression    
178     return;                                       
179   }                                               
180                                                   
181   if ( command == fSetFileNameCmd.get() ) {       
182     fManager->SetFileName(newValues);             
183     return;                                       
184   }                                               
185                                                   
186   if ( command == fSetHistoDirNameCmd.get() )     
187     fManager->SetHistoDirectoryName(newValues)    
188     return;                                       
189   }                                               
190                                                   
191   if ( command == fSetNtupleDirNameCmd.get() )    
192     fManager->SetNtupleDirectoryName(newValues    
193     return;                                       
194   }                                               
195 }                                                 
196