From cd95eb7e4c203b242e3c86f4384f831cf9bc4a0b Mon Sep 17 00:00:00 2001
From: Atlas-Software Librarian <Atlas-Software.Librarian@cern.ch>
Date: Fri, 8 Apr 2016 17:10:21 +0200
Subject: [PATCH] 'CMakeLists.txt' (McParticleEventTPCnv-00-03-19)

	* Now that the Gaudi development in the CMake nightly has settled
	  a bit, cleaned out the RootTruthParticleCnvTool code a bit. So
	  that it would build correctly in both dev(val) and the CMake
	  nightly.
	* Tagging as McParticleEventTPCnv-00-03-19

2016-02-17  Peter van Gemmeren  <gemmeren@anl.gov>

	* Tagging McParticleEventTPCnv-00-03-18.
	* Remove #include of transient McEventCollection from persistent state

2016-01-11 Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
	* Since using -DATHENAHIVE didn't pan out too well in the
	  CMake nightly, modified RootTruthParticleCnvTool to not
	  rely on a macro to declare its inputDataObjects() and
	  outputDataObjects() functions.
	* Tagging as McParticleEventTPCnv-00-03-17

2016-01-10 Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
	* Once again following the changes in Gaudi's master branch.
...
(Long ChangeLog diff - truncated)
---
 .../McParticleEventTPCnv/CMakeLists.txt       |  46 +++++++
 .../TruthEtIsolations_p1.h                    |   2 +-
 .../TruthParticleContainer_p3.h               |   2 +-
 .../TruthParticleContainer_p4.h               |   2 +-
 .../McParticleEventTPCnv/cmt/requirements     |   3 +-
 .../src/RootTruthParticleCnvTool.cxx          | 122 ++++++++++++------
 .../src/RootTruthParticleCnvTool.h            |  50 ++++---
 7 files changed, 162 insertions(+), 65 deletions(-)
 create mode 100644 PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/CMakeLists.txt

diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/CMakeLists.txt b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/CMakeLists.txt
new file mode 100644
index 00000000000..b0f81b8eb7a
--- /dev/null
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/CMakeLists.txt
@@ -0,0 +1,46 @@
+################################################################################
+# Package: McParticleEventTPCnv
+################################################################################
+
+# Declare the package name:
+atlas_subdir( McParticleEventTPCnv )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          Control/DataModelAthenaPool
+                          Database/AthenaPOOL/AthenaPoolCnvSvc
+                          GaudiKernel
+                          PhysicsAnalysis/TruthParticleID/McParticleEvent
+                          PRIVATE
+                          Control/AthenaKernel
+                          Control/StoreGate
+                          Generators/GeneratorObjects
+                          PhysicsAnalysis/TruthParticleID/McParticleKernel )
+
+# External dependencies:
+find_package( Boost COMPONENTS filesystem thread system )
+find_package( CLHEP )
+find_package( HepMC )
+find_package( ROOT COMPONENTS EG Core Tree MathCore Hist RIO pthread )
+
+# Component(s) in the package:
+atlas_add_tpcnv_library( McParticleEventTPCnv
+                         src/*.cxx
+                         PUBLIC_HEADERS McParticleEventTPCnv
+                         INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
+                         PRIVATE_INCLUDE_DIRS ${HEPMC_INCLUDE_DIRS}
+                         DEFINITIONS ${CLHEP_DEFINITIONS}
+                         LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} DataModelAthenaPoolLib AthenaPoolCnvSvcLib GaudiKernel McParticleEvent AthenaKernel StoreGateLib SGtests GeneratorObjects McParticleKernel )
+
+atlas_add_dictionary( McParticleEventTPCnvDict
+                      McParticleEventTPCnv/McParticleEventTPCnvDict.h
+                      McParticleEventTPCnv/selection.xml
+                      INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} DataModelAthenaPoolLib AthenaPoolCnvSvcLib GaudiKernel McParticleEvent AthenaKernel StoreGateLib SGtests GeneratorObjects McParticleKernel McParticleEventTPCnv )
+
+atlas_add_dictionary( OLD_McParticleEventTPCnvDict
+                      McParticleEventTPCnv/McParticleEventTPCnvDict.h
+                      McParticleEventTPCnv/OLD_selection.xml
+                      INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} DataModelAthenaPoolLib AthenaPoolCnvSvcLib GaudiKernel McParticleEvent AthenaKernel StoreGateLib SGtests GeneratorObjects McParticleKernel McParticleEventTPCnv )
+
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthEtIsolations_p1.h b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthEtIsolations_p1.h
index e6bda65f2e9..9bde78450b4 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthEtIsolations_p1.h
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthEtIsolations_p1.h
@@ -23,7 +23,7 @@
 #include "DataModelAthenaPool/ElementLink_p1.h"
 
 // McParticleEvent includes
-#include "McParticleEvent/TruthParticleParamDefs.h"
+#include "McParticleEvent/TruthParticleParamDefs.h" // For enum
 
 // forward declarations
 class TruthEtIsolationsCnv_p1;
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p3.h b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p3.h
index a3fe9cdd031..292307beb94 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p3.h
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p3.h
@@ -19,7 +19,7 @@
 #include "DataModelAthenaPool/ElementLink_p1.h"
 
 // HepMC / CLHEP includes
-#include "GeneratorObjects/McEventCollection.h"
+//#include "GeneratorObjects/McEventCollection.h"
 
 // Gaudi includes
 
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p4.h b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p4.h
index 094ed9044d4..858e50c7817 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p4.h
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/McParticleEventTPCnv/TruthParticleContainer_p4.h
@@ -19,7 +19,7 @@
 #include "DataModelAthenaPool/ElementLink_p1.h"
 
 // HepMC / CLHEP includes
-#include "GeneratorObjects/McEventCollection.h"
+//#include "GeneratorObjects/McEventCollection.h"
 
 // Gaudi includes
 
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/cmt/requirements b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/cmt/requirements
index 7d8bf1965f4..d987eb26dc7 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/cmt/requirements
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/cmt/requirements
@@ -13,8 +13,6 @@ use DataModelAthenaPool DataModelAthenaPool-*		Control
 
 use AthenaPoolCnvSvc	AthenaPoolCnvSvc-*		Database/AthenaPOOL
 
-use GeneratorObjects	GeneratorObjects-*		Generators
-
 use McParticleEvent	McParticleEvent-*		PhysicsAnalysis/TruthParticleID
 
 private
@@ -22,6 +20,7 @@ use AtlasHepMC		AtlasHepMC-*			External
 use StoreGate		StoreGate-*			Control
 use AthenaKernel    AthenaKernel-*          Control
 use McParticleKernel	McParticleKernel-*		PhysicsAnalysis/TruthParticleID
+use GeneratorObjects	GeneratorObjects-*		Generators
 end_private
 
 branches McParticleEventTPCnv src
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx
index df60028aedb..202486c6494 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx
@@ -34,6 +34,13 @@ static const boost::array<int, 100> qcharge = {
 
 }
 
+////////////////////////////////////////////////////////////////////////////////
+//
+//         Implementation of the ITruthParticleCnvTool function(s)
+//
+
+StatusCode RootTruthParticleCnvTool::execute() { abort(); }
+
 StatusCode
 RootTruthParticleCnvTool::convert(const McEventCollection *mcCollection,
                                   const unsigned int genEventIndex,
@@ -130,6 +137,8 @@ RootTruthParticleCnvTool::convert(const McEventCollection *mcCollection,
   return StatusCode::SUCCESS;
 }
 
+//
+////////////////////////////////////////////////////////////////////////////////
 
 double RootTruthParticleCnvTool::chargeFromPdgId (int pdgId) const
 {
@@ -172,48 +181,77 @@ double RootTruthParticleCnvTool::chargeFromPdgId (int pdgId) const
   }
 }
 
+////////////////////////////////////////////////////////////////////////////////
+//
+//              Implementation of the IInterface function(s)
+
+StatusCode RootTruthParticleCnvTool::queryInterface( const InterfaceID&,
+                                                     void** ) { abort(); }
+unsigned long RootTruthParticleCnvTool::addRef() { abort(); }
+unsigned long RootTruthParticleCnvTool::release() { abort(); }
+unsigned long RootTruthParticleCnvTool::refCount() const { abort(); }
+
+//
+////////////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//               Implementation of the IProperty function(s)
+//
+
+StatusCode RootTruthParticleCnvTool::setProperty( const Property& ) { abort(); }
+StatusCode RootTruthParticleCnvTool::setProperty( const std::string& ) {
+   abort(); }
+StatusCode RootTruthParticleCnvTool::setProperty( const std::string&,
+                                                  const std::string& ) {
+   abort(); }
+StatusCode RootTruthParticleCnvTool::getProperty( Property* ) const { abort(); }
+const Property&
+RootTruthParticleCnvTool::getProperty( const std::string& ) const{ abort(); }
+StatusCode RootTruthParticleCnvTool::getProperty( const std::string&,
+                                                  std::string& ) const {
+   abort(); }
+const std::vector< Property* >&
+RootTruthParticleCnvTool::getProperties() const { abort(); }
+bool RootTruthParticleCnvTool::hasProperty( const std::string& ) const {
+   abort(); }
+
+//
+////////////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//               Implementation of the IAlgTool function(s)
+//
+
+const std::string& RootTruthParticleCnvTool::type() const { abort(); }
+const IInterface* RootTruthParticleCnvTool::parent() const { abort(); }
+StatusCode RootTruthParticleCnvTool::configure() { abort(); }
+StatusCode RootTruthParticleCnvTool::initialize() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysInitialize() { abort(); }
+StatusCode RootTruthParticleCnvTool::reinitialize() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysReinitialize() { abort(); }
+StatusCode RootTruthParticleCnvTool::start() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysStart() { abort(); }
+StatusCode RootTruthParticleCnvTool::restart() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysRestart() { abort(); }
+StatusCode RootTruthParticleCnvTool::stop() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysStop() { abort(); }
+StatusCode RootTruthParticleCnvTool::finalize() { abort(); }
+StatusCode RootTruthParticleCnvTool::sysFinalize() { abort(); }
+StatusCode RootTruthParticleCnvTool::terminate() { abort(); }
+Gaudi::StateMachine::State RootTruthParticleCnvTool::FSMState() const {
+   abort(); }
+
+//
+////////////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//              Implementation of the INamedInterface function(s)
+//
 
-StatusCode RootTruthParticleCnvTool::queryInterface(const InterfaceID&,
-                                                    void** ){abort();}
-unsigned long RootTruthParticleCnvTool::addRef(){abort();}
-unsigned long RootTruthParticleCnvTool::release(){abort();}
-StatusCode RootTruthParticleCnvTool::setProperty( const Property& ){abort();}
-
-StatusCode RootTruthParticleCnvTool::setProperty(const std::string&){abort();}
-StatusCode RootTruthParticleCnvTool::setProperty( const std::string&, const std::string& ){abort();}
-StatusCode RootTruthParticleCnvTool::getProperty( Property* ) const{abort();}
-const Property& RootTruthParticleCnvTool::getProperty( const std::string&) const{abort();}
-StatusCode RootTruthParticleCnvTool::getProperty( const std::string&, std::string& ) const{abort();}
-const std::vector<Property*>& RootTruthParticleCnvTool::getProperties( ) const{abort();}
-bool RootTruthParticleCnvTool::hasProperty(const std::string&) const {abort();}
-
-const std::string&  RootTruthParticleCnvTool::type() const{abort();}
-const IInterface*   RootTruthParticleCnvTool::parent() const{abort();}
-
-StatusCode RootTruthParticleCnvTool::configure(){abort();}
-StatusCode RootTruthParticleCnvTool::initialize(){abort();}
-StatusCode RootTruthParticleCnvTool::sysInitialize(){abort();}
-StatusCode RootTruthParticleCnvTool::reinitialize(){abort();}
-StatusCode RootTruthParticleCnvTool::sysReinitialize(){abort();}
-StatusCode RootTruthParticleCnvTool::start(){abort();}
-StatusCode RootTruthParticleCnvTool::sysStart(){abort();}
-StatusCode RootTruthParticleCnvTool::restart(){abort();}
-StatusCode RootTruthParticleCnvTool::sysRestart(){abort();}
-StatusCode RootTruthParticleCnvTool::stop(){abort();}
-StatusCode RootTruthParticleCnvTool::sysStop(){abort();}
-StatusCode RootTruthParticleCnvTool::finalize(){abort();}
-StatusCode RootTruthParticleCnvTool::sysFinalize(){abort();}
-StatusCode RootTruthParticleCnvTool::terminate(){abort();}
-unsigned long RootTruthParticleCnvTool::refCount() const{abort();}
 const std::string& RootTruthParticleCnvTool::name() const{abort();}
-StatusCode RootTruthParticleCnvTool::execute() {abort();}
-#ifdef GAUDIKERNEL_STATEMACHINE_H_
-Gaudi::StateMachine::State RootTruthParticleCnvTool::FSMState() const{abort();}
-#endif
 
-#ifdef ATHENAHIVE
-const DataObjectDescriptorCollection & 
-RootTruthParticleCnvTool::inputDataObjects() const { abort(); }
-const DataObjectDescriptorCollection & 
-RootTruthParticleCnvTool::outputDataObjects() const { abort(); }
-#endif
+//
+////////////////////////////////////////////////////////////////////////////////
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h
index 6088ceb6376..1c5df708d98 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h
@@ -13,6 +13,12 @@ class RootTruthParticleCnvTool
   : public ITruthParticleCnvTool
 {
 public:
+  /// @name Function(s) inherited from ITruthParticleCnvTool
+  /// @{
+
+  /// A hook for Athena algorithms
+  virtual StatusCode execute();
+
   /** Converts a @c McEventCollection into an @c TruthParticleContainer (ie:
    *  converts it into an AOD compliant collection).
    *  @in  mcEvts the @c McEventCollection holding the @c HepMC::GenEvent we
@@ -22,29 +28,42 @@ public:
    *       be filled with adaptors to @c HepMC::GenParticles.
    */
   StatusCode convert( const McEventCollection* mcEvts,
-		      const unsigned int genEvtIndex,
-		      TruthParticleContainer* mcParts,
-		      const ITruthParticleVisitor* visitor ) const;
+                      const unsigned int genEvtIndex,
+                      TruthParticleContainer* mcParts,
+                      const ITruthParticleVisitor* visitor ) const;
+
+  /// @}
 
   /** Helper method to get the charge of a particle given its PDG Id.
    */
   double chargeFromPdgId( int pdgId ) const;
 
-  virtual StatusCode queryInterface(const InterfaceID& riid,
-                                    void** ppvInterface);
+
+  /// @name Function(s) inherited from IInterface
+  /// @{
+  virtual StatusCode queryInterface( const InterfaceID& riid,
+                                     void** ppvInterface );
   virtual unsigned long addRef();
   virtual unsigned long release();
+  virtual unsigned long refCount() const;
+  /// @}
+
+  /// @name Function(s) inherited from IProperty
+  /// @{
   virtual StatusCode setProperty( const Property& p );
   virtual StatusCode setProperty( const std::string& s );
   virtual StatusCode setProperty( const std::string& n, const std::string& v );
   virtual StatusCode getProperty( Property* p ) const;
-  virtual const Property& getProperty( const std::string& name) const;
+  virtual const Property& getProperty( const std::string& name ) const;
   virtual StatusCode getProperty( const std::string& n, std::string& v ) const;
   virtual const std::vector<Property*>& getProperties( ) const;
   virtual bool hasProperty(const std::string& name) const;
+  /// @}
 
-  virtual const std::string&  type() const;
-  virtual const IInterface*   parent() const;
+  /// @name Function(s) inherited from IAlgTool
+  /// @{
+  virtual const std::string& type() const;
+  virtual const IInterface* parent() const;
   virtual StatusCode configure();
   virtual StatusCode initialize();
   virtual StatusCode sysInitialize();
@@ -59,18 +78,13 @@ public:
   virtual StatusCode finalize();
   virtual StatusCode sysFinalize();
   virtual StatusCode terminate();
-  virtual unsigned long refCount() const;
-  virtual const std::string& name() const;
-  virtual StatusCode execute();
-#ifdef GAUDIKERNEL_STATEMACHINE_H_
   virtual Gaudi::StateMachine::State FSMState() const;
-#endif
-
-#ifdef ATHENAHIVE
-  virtual const DataObjectDescriptorCollection & inputDataObjects() const;
-  virtual const DataObjectDescriptorCollection & outputDataObjects() const;
-#endif
+  /// @}
 
+  /// @name Function(s) inherited from INamedInterface
+  /// @{
+  virtual const std::string& name() const;
+  /// @}
 
 };
 
-- 
GitLab