From bc7b9df044d5b59e70af7b99d8e61bf576d05809 Mon Sep 17 00:00:00 2001
From: Elmar Ritsch <Elmar.Ritsch@cern.ch>
Date: Tue, 16 Aug 2016 11:42:59 +0200
Subject: [PATCH] Fix compile-time warnings by replacing obsolete 'endreq' with
 'endmsg' in Athena output messages. (ISF_Interfaces-00-05-01-04)

	* Fix compile-time warnings by replacing obsolete 'endreq' with 'endmsg'
	in Athena output messages.
	* Tag as ISF_Interfaces-00-05-01-04

2016-07-29  Elmar Ritsch  <Elmar.Ritsch@cern.ch>
	* Adopt package to new location of Barcode.h and PhysicsProcessCode.h
	files (moved from BarcodeInterfaces package into new BarcodeEvent package).
	This is to follow ATLAS conventions about providing event-data types in
	dedicated *Event packages. ATLASSIM-2281
	* Tag as ISF_Interfaces-00-05-01-03

2016-07-05  Elmar Ritsch  <Elmar.Ritsch@cern.ch>
	* IInputConverter.h: add flag to specify pileup/no-pileup
	for conversion. Flag can be used to set e.g. BCID differently
	for both, which is critical for FastChain. ATLASSIM-2928
	* Tag as ISF_Interfaces-00-05-01-02

2016-06-28  Elmar Ritsch  <Elmar.Ritsch@cern.ch>
	* Refactor ISF input processing for AthenaMT. ATLASSIM-2928
	* Tag as ISF_Interfaces-00-05-01-01
...
(Long ChangeLog diff - truncated)


Former-commit-id: 30ab44ec51bfc3ac0bc56318a598354c58bcb5ad
---
 .../ISF_Core/ISF_Interfaces/CMakeLists.txt    |  2 +-
 .../ISF_Interfaces/BaseSimulationSvc.h        |  2 +-
 .../ISF_Interfaces/IInputConverter.h          | 59 +++++++++++++++++++
 .../ISF_Interfaces/IParticleBroker.h          |  4 +-
 .../ISF_Interfaces/IParticleHelper.h          |  2 +-
 .../ISF_Interfaces/IStackFiller.h             | 51 ----------------
 .../ISF_Core/ISF_Interfaces/cmt/requirements  |  2 +-
 7 files changed, 65 insertions(+), 57 deletions(-)
 create mode 100644 Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IInputConverter.h
 delete mode 100644 Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IStackFiller.h

diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/CMakeLists.txt b/Simulation/ISF/ISF_Core/ISF_Interfaces/CMakeLists.txt
index 48665758638..f6b0d775acf 100644
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/CMakeLists.txt
@@ -13,7 +13,7 @@ atlas_depends_on_subdirs( PUBLIC
                           DetectorDescription/AtlasDetDescr
                           DetectorDescription/GeoPrimitives
                           GaudiKernel
-                          Simulation/Barcode/BarcodeInterfaces
+                          Simulation/Barcode/BarcodeEvent
                           Simulation/ISF/ISF_Core/ISF_Event )
 
 # External dependencies:
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/BaseSimulationSvc.h b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/BaseSimulationSvc.h
index 8ed4707ad2e..b46bc42d632 100644
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/BaseSimulationSvc.h
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/BaseSimulationSvc.h
@@ -128,7 +128,7 @@ namespace ISF {
         for ( ; partIt != partItEnd; partIt++) {
           ATH_MSG_VERBOSE( m_screenOutputPrefix <<  "Starting simulation of particle: " << (*partIt) );
           if ( this->simulate(**partIt).isFailure()) {
-            ATH_MSG_WARNING("Simulation of particle failed!" << endreq <<
+            ATH_MSG_WARNING("Simulation of particle failed!" << endmsg <<
                             "   -> simulator: " << this->simSvcDescriptor() <<
                             "   -> particle : " << (ISFParticle&)(**partIt) );
             success = false;
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IInputConverter.h b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IInputConverter.h
new file mode 100644
index 00000000000..e53316c154c
--- /dev/null
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IInputConverter.h
@@ -0,0 +1,59 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+///////////////////////////////////////////////////////////////////
+// IInputConverter.h, (c) ATLAS Detector software
+///////////////////////////////////////////////////////////////////
+
+#ifndef ISF_INTERFACES_IINPUTCONVERTER_H
+#define ISF_INTERFACES_IINPUTCONVERTER_H 1
+
+// Gaudi
+#include "GaudiKernel/IInterface.h"
+ 
+// StoreGate
+#include "StoreGate/ReadHandle.h"
+#include "StoreGate/WriteHandle.h"
+
+// Simulation includes
+#include "ISF_Event/ISFParticleContainer.h"
+
+/** Declaration of the interface ID ( interface id, major version, minor version) */
+static const InterfaceID IID_IInputConverter("IInputConverter", 1, 0);
+
+// forward declarations
+class McEventCollection;
+   
+namespace ISF {
+
+  class ISFParticle;
+ 
+  /**
+   @class IInputConverter
+
+   Interface to Athena service that converts an input McEventCollection
+   into a container of ISFParticles.
+       
+   @author Elmar.Ritsch -at- cern.ch
+   */
+     
+  class IInputConverter : virtual public IInterface {
+     public:
+     
+       /** Virtual destructor */
+       virtual ~IInputConverter(){}
+
+       /** Gaudi InterfaceID */
+       static const InterfaceID& interfaceID() { return IID_IInputConverter; }
+       
+      /** Convert selected particles from the given McEventCollection into ISFParticles
+          and push them into the given ISFParticleContainer */
+       virtual StatusCode convert(const McEventCollection& inputGenEvents,
+                                  ISFParticleContainer& simParticles,
+                                  bool isPileup) const = 0;
+  };
+
+} // end of namespace
+
+#endif // ISF_INTERFACES_IINPUTCONVERTER_H
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleBroker.h b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleBroker.h
index af5bbc9ec40..b6bdd201be8 100644
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleBroker.h
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleBroker.h
@@ -19,7 +19,7 @@
 
 // ISF includes
 #include "ISF_Event/SimSvcID.h"
-#include "ISF_Event/ISFParticleVector.h"
+#include "ISF_Event/ISFParticleContainer.h"
 #include "ISF_Event/EntryLayer.h"
 #include "ISF_Interfaces/ISimulationSelector.h"
 
@@ -51,7 +51,7 @@ namespace ISF {
       virtual StatusCode registerSimSelector(SimSelectorToolArray &simSelectorTools, AtlasDetDescr::AtlasRegion geoID) = 0;
 
       /** Initialize the broker */
-      virtual StatusCode initializeEvent() = 0;
+      virtual StatusCode initializeEvent(ISFParticleContainer&& simParticles) = 0;
 
       /** Finalize the event in the broker service */
       virtual StatusCode finalizeEvent() = 0;
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleHelper.h b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleHelper.h
index 592e5940957..b708001260b 100644
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleHelper.h
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IParticleHelper.h
@@ -16,7 +16,7 @@
 #include "ISF_Event/SimSvcID.h" 
 
 // Barcode includes
-#include "BarcodeInterfaces/Barcode.h"
+#include "BarcodeEvent/Barcode.h"
 
 // Amg includes
 #include "GeoPrimitives/GeoPrimitives.h"
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IStackFiller.h b/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IStackFiller.h
deleted file mode 100644
index fcc8781aba6..00000000000
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/ISF_Interfaces/IStackFiller.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// IStackFiller.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#ifndef ISF_INTERFACES_ISTACKFILLER_H
-#define ISF_INTERFACES_ISTACKFILLER_H 1
-
-// Gaudi
-#include "GaudiKernel/IAlgTool.h"
- 
-// Simulation includes
-#include "ISF_Event/SimSvcID.h" 
-#include "ISF_Event/ISFParticleContainer.h"
- 
-namespace ISF {
-
-  class ISFParticle;
- 
-  static const InterfaceID IID_IStackFiller("IStackFiller", 1, 0);
-   
-  /**
-   @class IStackFiller
-       
-   Interface for the stack filling from generator/user defined input.
-   This should also be able to be implemented in python for simple
-   simulation feeding.       
-       
-   @author Andreas.Salzburger -at- cern.ch
-   */
-     
-  class IStackFiller : virtual public IAlgTool {
-     public:
-     
-       /** Virtual destructor */
-       virtual ~IStackFiller(){}
-
-       /** AlgTool interface methods */
-       static const InterfaceID& interfaceID() { return IID_IStackFiller; }
-       
-       /** Returns the Particle Stack, should register truth */
-       virtual StatusCode fillStack(ISFParticleContainer& stack) const = 0;
-       
-  };
-
-} // end of namespace
-
-#endif // ISF_INTERFACES_ISTACKFILLER_H
diff --git a/Simulation/ISF/ISF_Core/ISF_Interfaces/cmt/requirements b/Simulation/ISF/ISF_Core/ISF_Interfaces/cmt/requirements
index 42f4583738e..c488ba99366 100644
--- a/Simulation/ISF/ISF_Core/ISF_Interfaces/cmt/requirements
+++ b/Simulation/ISF/ISF_Core/ISF_Interfaces/cmt/requirements
@@ -13,7 +13,7 @@ use AthenaKernel                AthenaKernel-*                  Control
 use AthenaBaseComps             AthenaBaseComps-*               Control
 use StoreGate                   StoreGate-*                     Control
 use ISF_Event                   ISF_Event-*                     Simulation/ISF/ISF_Core
-use BarcodeInterfaces           BarcodeInterfaces-*             Simulation/Barcode
+use BarcodeEvent                BarcodeEvent-*                  Simulation/Barcode
 use AtlasDetDescr               AtlasDetDescr-*                 DetectorDescription
 use GeoPrimitives               GeoPrimitives-*                 DetectorDescription
 
-- 
GitLab