From 212e988a647f770b4dc4668cad3759be0e4c6e85 Mon Sep 17 00:00:00 2001
From: adrien-matta <a.matta@surrey.ac.uk>
Date: Mon, 17 Nov 2014 16:54:20 +0000
Subject: [PATCH] * Adding Messenger for Primary generator action   - Reload
 the current generator   - Load a different one   - Adding corresponding
 button in the GUI

---
 NPAnalysis/TAMU/Analysis                      | Bin 35740 -> 35868 bytes
 NPAnalysis/TAMU/Analysis.o                    | Bin 28908 -> 29000 bytes
 NPSimulation/icons/aperture.png               | Bin 0 -> 3470 bytes
 NPSimulation/icons/bolt.png                   | Bin 0 -> 2537 bytes
 .../include/PrimaryGeneratorAction.hh         |   3 +
 .../PrimaryGeneratorActionMessenger.hh        |  58 +++++++++++
 NPSimulation/macro/gui.mac                    |   2 +
 NPSimulation/src/PrimaryGeneratorAction.cc    |  12 ++-
 .../src/PrimaryGeneratorActionMessenger.cc    |  91 ++++++++++++++++++
 9 files changed, 165 insertions(+), 1 deletion(-)
 create mode 100644 NPSimulation/icons/aperture.png
 create mode 100644 NPSimulation/icons/bolt.png
 create mode 100644 NPSimulation/include/PrimaryGeneratorActionMessenger.hh
 create mode 100644 NPSimulation/src/PrimaryGeneratorActionMessenger.cc

diff --git a/NPAnalysis/TAMU/Analysis b/NPAnalysis/TAMU/Analysis
index 51b49831b4f26db0704d1cf57f594d163074da92..75ed53918899a83d526933e8f84c214ac2f4d90a 100755
GIT binary patch
delta 7040
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
G3I7Igo%{~~

delta 6886
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

diff --git a/NPAnalysis/TAMU/Analysis.o b/NPAnalysis/TAMU/Analysis.o
index 862bc1a8688665f0eed43491fc185c9ccceed7fa..0ca4757a1d2984729ca5c47d44d264bce87c9da8 100644
GIT binary patch
delta 5006
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
S>z|&iZ_XUh7JT}9iT?vQ+Utn`

delta 5072
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

diff --git a/NPSimulation/icons/aperture.png b/NPSimulation/icons/aperture.png
new file mode 100644
index 0000000000000000000000000000000000000000..90fe9b3dc1bf40a8144bf91bd7d7a3a583942249
GIT binary patch
literal 3470
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

literal 0
HcmV?d00001

diff --git a/NPSimulation/icons/bolt.png b/NPSimulation/icons/bolt.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b6ad4b0fa419857f8f65c19fe5a39ee2b2329c1
GIT binary patch
literal 2537
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

literal 0
HcmV?d00001

diff --git a/NPSimulation/include/PrimaryGeneratorAction.hh b/NPSimulation/include/PrimaryGeneratorAction.hh
index e067501e9..b0fceae90 100644
--- a/NPSimulation/include/PrimaryGeneratorAction.hh
+++ b/NPSimulation/include/PrimaryGeneratorAction.hh
@@ -32,6 +32,7 @@
 // NPTool headers
 #include "VEventGenerator.hh"
 #include "DetectorConstruction.hh"
+#include "PrimaryGeneratorActionMessenger.hh"
 using namespace std;
 using namespace CLHEP;
 
@@ -47,6 +48,7 @@ class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction{
 
   public:
     void ReadEventGeneratorFile(string Path);
+    void ClearEventGenerator();
 
   public:
     void SetTarget();
@@ -54,6 +56,7 @@ class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction{
   private:
     DetectorConstruction* m_detector;
     vector<VEventGenerator*> m_EventGenerator;
+    PrimaryGeneratorActionMessenger* m_Messenger;
 };
 
 #endif
diff --git a/NPSimulation/include/PrimaryGeneratorActionMessenger.hh b/NPSimulation/include/PrimaryGeneratorActionMessenger.hh
new file mode 100644
index 000000000..fcec08fb1
--- /dev/null
+++ b/NPSimulation/include/PrimaryGeneratorActionMessenger.hh
@@ -0,0 +1,58 @@
+#ifndef PrimaryGeneratorActionMessenger_h
+#define PrimaryGeneratorActionMessenger_h 1
+/*****************************************************************************
+ * Copyright (C) 2009-2013   this file is part of the NPTool Project         *
+ *                                                                           *
+ * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
+ * For the list of contributors see $NPTOOL/Licence/Contributors             *
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
+ *                                                                           *
+ * Creation Date  : November 2014                                            *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class describe the PrimaryGeneratorAction Messenger                               *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *****************************************************************************/
+///....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+#include "globals.hh"
+#include "G4UImessenger.hh"
+
+class PrimaryGeneratorAction;
+class G4UIdirectory;
+class G4UICommand;
+class G4UIcmdWithAString;
+class G4UIcmdWithAnInteger;
+class G4UIcmdWithADoubleAndUnit;
+class G4UIcmdWithoutParameter;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+class PrimaryGeneratorActionMessenger: public G4UImessenger{
+  public:
+    PrimaryGeneratorActionMessenger(PrimaryGeneratorAction* );
+   ~PrimaryGeneratorActionMessenger();
+    
+    void SetNewValue(G4UIcommand*, G4String);
+    
+  private:
+    PrimaryGeneratorAction* PGA;
+    
+    G4UIdirectory* GenDir;
+    G4UIcmdWithoutParameter* UpdateCmd;
+    G4UIcmdWithAString* OpenCmd;
+
+};
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+#endif
+
diff --git a/NPSimulation/macro/gui.mac b/NPSimulation/macro/gui.mac
index 00a720e85..443e26189 100644
--- a/NPSimulation/macro/gui.mac
+++ b/NPSimulation/macro/gui.mac
@@ -23,6 +23,8 @@
 /gui/addIcon "nptool" user_icon "/gui/system {gui_nptool}" icons/NPToolLogo.png
 /gui/addIcon "Exit" user_icon "{gui_exit}" icons/power.png
 /gui/addIcon "Update geometry" user_icon "{gui_update}" icons/recycle.png
+/gui/addIcon "Update generator" user_icon "/gen/update" icons/bolt.png
+/gui/addIcon "Open generator" user_icon "/gen/open" icons/folder.png
 /gui/addIcon "There is nothing here" user_icon "{gui_empty}" icons/empty.png 
 /gui/addIcon "Run beam on" user_icon "/run/beamOn" icons/rocket.png
 /gui/addIcon "One event" user_icon "{gui_beamon}" icons/play.png
diff --git a/NPSimulation/src/PrimaryGeneratorAction.cc b/NPSimulation/src/PrimaryGeneratorAction.cc
index c9bab2931..f2569cba8 100644
--- a/NPSimulation/src/PrimaryGeneratorAction.cc
+++ b/NPSimulation/src/PrimaryGeneratorAction.cc
@@ -58,7 +58,7 @@ PrimaryGeneratorAction::~PrimaryGeneratorAction(){
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det): m_detector(det){
-
+  m_Messenger = new PrimaryGeneratorActionMessenger(this);
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -180,6 +180,16 @@ void PrimaryGeneratorAction::ReadEventGeneratorFile(string Path){
   EventGeneratorFile.close();
 }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void PrimaryGeneratorAction::ClearEventGenerator(){
+  unsigned int mysize = m_EventGenerator.size();
+  for (unsigned int i = 0 ; i < mysize; i++) {
+    delete m_EventGenerator[i];
+  }
+  
+  m_EventGenerator.clear();
+
+}
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 void PrimaryGeneratorAction::SetTarget(){
   for (unsigned int i = 0 ; i < m_EventGenerator.size(); i++) {
     m_EventGenerator[i]->SetTarget(m_detector->GetTarget());
diff --git a/NPSimulation/src/PrimaryGeneratorActionMessenger.cc b/NPSimulation/src/PrimaryGeneratorActionMessenger.cc
new file mode 100644
index 000000000..9c0284d3c
--- /dev/null
+++ b/NPSimulation/src/PrimaryGeneratorActionMessenger.cc
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (C) 2009-2013   this file is part of the NPTool Project         *
+ *                                                                           *
+ * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
+ * For the list of contributors see $NPTOOL/Licence/Contributors             *
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
+ *                                                                           *
+ * Creation Date  : November 2014                                            *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class describe the PrimaryGeneratorAction Messenger                 * 
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *****************************************************************************/
+///....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+#include "PrimaryGeneratorActionMessenger.hh"
+
+#include "PrimaryGeneratorAction.hh"
+#include "G4UIparameter.hh"
+#include "G4UIcommand.hh"
+#include "G4UIdirectory.hh"
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWithoutParameter.hh"
+
+#include "NPOptionManager.h"
+#include <dirent.h>
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+PrimaryGeneratorActionMessenger::PrimaryGeneratorActionMessenger(PrimaryGeneratorAction* Gen):PGA(Gen){ 
+  GenDir = new G4UIdirectory("/gen/");
+  GenDir->SetGuidance("event generator control");
+
+  UpdateCmd = new G4UIcmdWithoutParameter("/gen/update",this);
+  UpdateCmd->SetGuidance("Update the event generator");
+  UpdateCmd->SetGuidance("Apply this command after editing your event generator file ");
+  UpdateCmd->AvailableForStates(G4State_Idle);
+
+  DIR *dir;
+  struct dirent *ent;
+  string path = getenv("NPTOOL");
+  path += "/Inputs/EventGenerator/";
+  string choices;
+  if ((dir = opendir (path.c_str())) != NULL) {
+    /* print all the files and directories within directory */
+    while ((ent = readdir (dir)) != NULL) {
+      choices += ent->d_name ;
+      choices += " " ;
+    }
+    closedir (dir);
+  }
+
+  OpenCmd = new G4UIcmdWithAString("/gen/open",this);
+  OpenCmd->SetGuidance("Open a new event generator");
+  OpenCmd->SetCandidates(choices.c_str()); 
+  OpenCmd->AvailableForStates(G4State_Idle);  
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+PrimaryGeneratorActionMessenger::~PrimaryGeneratorActionMessenger(){
+  delete UpdateCmd;
+  delete OpenCmd;
+  delete GenDir;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void PrimaryGeneratorActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue){ 
+  if( command == UpdateCmd ){ 
+    PGA->ClearEventGenerator();
+    PGA->ReadEventGeneratorFile(NPOptionManager::getInstance()->GetReactionFile()); 
+  }
+
+  else if( command == OpenCmd ){ 
+    PGA->ClearEventGenerator();
+    NPOptionManager::getInstance()->SetReactionFile(newValue);
+    PGA->ReadEventGeneratorFile(NPOptionManager::getInstance()->GetReactionFile()); 
+  }
+
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-- 
GitLab