From 203a76933a6f54d154a24622d6d9b4605f93b2da Mon Sep 17 00:00:00 2001
From: Marilena Bandieramonte <marilena.bandieramonte@cern.ch>
Date: Tue, 21 Jun 2022 16:54:51 +0200
Subject: [PATCH] Add UserActions plugins interfaces

---
 FullSimLight/CMakeLists.txt                   |  7 +++++-
 .../include/FSLUserEventActionPlugin.h        | 24 +++++++++++++++++++
 FullSimLight/include/FSLUserRunActionPlugin.h | 24 +++++++++++++++++++
 .../include/FSLUserStackingActionPlugin.h     | 24 +++++++++++++++++++
 .../include/FSLUserSteppingActionPlugin.h     | 24 +++++++++++++++++++
 .../include/FSLUserTrackingActionPlugin.h     | 24 +++++++++++++++++++
 6 files changed, 126 insertions(+), 1 deletion(-)
 create mode 100644 FullSimLight/include/FSLUserEventActionPlugin.h
 create mode 100644 FullSimLight/include/FSLUserRunActionPlugin.h
 create mode 100644 FullSimLight/include/FSLUserStackingActionPlugin.h
 create mode 100644 FullSimLight/include/FSLUserSteppingActionPlugin.h
 create mode 100644 FullSimLight/include/FSLUserTrackingActionPlugin.h

diff --git a/FullSimLight/CMakeLists.txt b/FullSimLight/CMakeLists.txt
index 5d3624d97..5689c483a 100644
--- a/FullSimLight/CMakeLists.txt
+++ b/FullSimLight/CMakeLists.txt
@@ -295,7 +295,12 @@ install( TARGETS FullSimLight
 install(FILES include/FSLSensitiveDetectorPlugin.h 
               include/MagFieldPlugin.h 
 	      include/FSLUserActionPlugin.h
-	      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
+              include/FSLUserRunActionPlugin.h
+              include/FSLUserEventActionPlugin.h
+              include/FSLUserSteppingActionPlugin.h
+              include/FSLUserTrackingActionPlugin.h
+              include/FSLUserStackingActionPlugin.h
+	          DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
   COMPONENT Development )
 
 
diff --git a/FullSimLight/include/FSLUserEventActionPlugin.h b/FullSimLight/include/FSLUserEventActionPlugin.h
new file mode 100644
index 000000000..6e115304e
--- /dev/null
+++ b/FullSimLight/include/FSLUserEventActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSEREVENTACTIONPLUGIN_H_
+#define _FSLUSEREVENTACTIONPLUGIN_H_
+class G4UserEventAction;
+class FSLUserEventActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserEventActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserEventActionPlugin()=default;
+  
+  virtual G4UserEventAction *getUserEventAction() const=0;
+  
+ private:
+  
+  FSLUserEventActionPlugin (const FSLUserEventActionPlugin &)=delete;
+
+  FSLUserEventActionPlugin & operator=(const FSLUserEventActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserRunActionPlugin.h b/FullSimLight/include/FSLUserRunActionPlugin.h
new file mode 100644
index 000000000..e7627e26f
--- /dev/null
+++ b/FullSimLight/include/FSLUserRunActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERRUNACTIONPLUGIN_H_
+#define _FSLUSERRUNACTIONPLUGIN_H_
+class G4UserRunAction;
+class FSLUserRunActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserRunActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserRunActionPlugin()=default;
+  
+  virtual G4UserRunAction *getUserRunAction() const=0;
+  
+ private:
+  
+  FSLUserRunActionPlugin (const FSLUserRunActionPlugin &)=delete;
+
+  FSLUserRunActionPlugin & operator=(const FSLUserRunActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserStackingActionPlugin.h b/FullSimLight/include/FSLUserStackingActionPlugin.h
new file mode 100644
index 000000000..f0088121b
--- /dev/null
+++ b/FullSimLight/include/FSLUserStackingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERSTACKINGACTIONPLUGIN_H_
+#define _FSLUSERSTACKINGACTIONPLUGIN_H_
+class G4UserStackingAction;
+class FSLUserStackingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserStackingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserStackingActionPlugin()=default;
+  
+  virtual G4UserStackingAction *getUserStackingAction() const=0;
+  
+ private:
+  
+  FSLUserStackingActionPlugin (const FSLUserStackingActionPlugin &)=delete;
+
+  FSLUserStackingActionPlugin & operator=(const FSLUserStackingActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserSteppingActionPlugin.h b/FullSimLight/include/FSLUserSteppingActionPlugin.h
new file mode 100644
index 000000000..90292df8d
--- /dev/null
+++ b/FullSimLight/include/FSLUserSteppingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERSTEPPINGACTIONPLUGIN_H_
+#define _FSLUSERSTEPPINGACTIONPLUGIN_H_
+class G4UserSteppingAction;
+class FSLUserSteppingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserSteppingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserSteppingActionPlugin()=default;
+  
+  virtual G4UserSteppingAction *getUserSteppingAction() const=0;
+  
+ private:
+  
+  FSLUserSteppingActionPlugin (const FSLUserSteppingActionPlugin &)=delete;
+
+  FSLUserSteppingActionPlugin & operator=(const FSLUserSteppingActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserTrackingActionPlugin.h b/FullSimLight/include/FSLUserTrackingActionPlugin.h
new file mode 100644
index 000000000..51a8bd0ed
--- /dev/null
+++ b/FullSimLight/include/FSLUserTrackingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERTRACKINGACTIONPLUGIN_H_
+#define _FSLUSERTRACKINGACTIONPLUGIN_H_
+class G4UserTrackingAction;
+class FSLUserTrackingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserTrackingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserTrackingActionPlugin()=default;
+  
+  virtual G4UserTrackingAction *getUserTrackingAction() const=0;
+  
+ private:
+  
+  FSLUserTrackingActionPlugin (const FSLUserTrackingActionPlugin &)=delete;
+
+  FSLUserTrackingActionPlugin & operator=(const FSLUserTrackingActionPlugin &)=delete;
+};
+
+
+#endif
-- 
GitLab