From a4d99c526714813d72f703423dd871cc645f3130 Mon Sep 17 00:00:00 2001
From: Attila Krasznahorkay <krasznaa@cern.ch>
Date: Fri, 15 Aug 2014 13:36:28 +0200
Subject: [PATCH] Adding a trigger configuration tool interface
 (TrigConfInterfaces-00-00-05)

	* Added ITrigConfigTool.h. This is a tool interface for providing the
	  trigger configuration for a trigger aware (xAOD) analysis.
	* Made the package compile with RootCore. (Just the dictionary is
	  actually compiled.)
	* Tagging as TrigConfInterfaces-00-00-05
---
 .../TrigConfInterfaces/IIHLTConfigSvc.h       |  8 +--
 .../TrigConfInterfaces/IILVL1ConfigSvc.h      |  8 +--
 .../TrigConfInterfaces/ITrigConfigTool.h      | 40 ++++++++++++++
 .../TrigConfInterfacesDict.h                  |  6 +--
 .../TrigConfInterfaces/cmt/Makefile.RootCore  | 54 +++++++++++++++++++
 .../TrigConfInterfaces/cmt/requirements       |  3 +-
 .../TrigConfInterfaces/doc/mainpage.h         |  8 ++-
 7 files changed, 111 insertions(+), 16 deletions(-)
 create mode 100644 Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigTool.h
 create mode 100644 Trigger/TrigConfiguration/TrigConfInterfaces/cmt/Makefile.RootCore

diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IIHLTConfigSvc.h b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IIHLTConfigSvc.h
index 76dc7c66d7f..39180fdd760 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IIHLTConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IIHLTConfigSvc.h
@@ -4,7 +4,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: IIHLTConfigSvc.h 580466 2014-01-28 14:54:00Z krasznaa $
+// $Id: IIHLTConfigSvc.h 612008 2014-08-15 13:35:58Z krasznaa $
 #ifndef TRIGCONFINTERFACES_IIHLTCONFIGSVC_H
 #define TRIGCONFINTERFACES_IIHLTCONFIGSVC_H
 
@@ -20,11 +20,11 @@ namespace TrigConf {
    class HLTSequenceList;
 
    /**
-    * Interface for all services that provide HLT menu configuration
+    * Interface for all services/tools that provide HLT menu configuration
     * information.
     *
-    * $Revision: 580466 $
-    * $Date: 2014-01-28 15:54:00 +0100 (Tue, 28 Jan 2014) $
+    * $Revision: 612008 $
+    * $Date: 2014-08-15 15:35:58 +0200 (Fri, 15 Aug 2014) $
     */
    class IIHLTConfigSvc {
 
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IILVL1ConfigSvc.h b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IILVL1ConfigSvc.h
index 9d98ca7c357..6c7de76685b 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IILVL1ConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/IILVL1ConfigSvc.h
@@ -4,7 +4,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: IILVL1ConfigSvc.h 580466 2014-01-28 14:54:00Z krasznaa $
+// $Id: IILVL1ConfigSvc.h 612008 2014-08-15 13:35:58Z krasznaa $
 #ifndef TRIGCONFINTERFACES_IILVL1CONFIGSVC_H
 #define TRIGCONFINTERFACES_IILVL1CONFIGSVC_H
 
@@ -22,11 +22,11 @@ namespace TrigConf {
    class BunchGroupSet;
 
    /**
-    * Interface for all services that provide LVL1 menu configuration
+    * Interface for all services/tools that provide LVL1 menu configuration
     * information
     *
-    * $Revision: 580466 $
-    * $Date: 2014-01-28 15:54:00 +0100 (Tue, 28 Jan 2014) $
+    * $Revision: 612008 $
+    * $Date: 2014-08-15 15:35:58 +0200 (Fri, 15 Aug 2014) $
     */
    class IILVL1ConfigSvc {
 
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigTool.h b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigTool.h
new file mode 100644
index 00000000000..c472ac30527
--- /dev/null
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigTool.h
@@ -0,0 +1,40 @@
+// Dear emacs, this is -*- c++ -*-
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id: ITrigConfigTool.h 612008 2014-08-15 13:35:58Z krasznaa $
+#ifndef TRIGCONFINTERFACES_ITRIGCONFIGTOOL_H
+#define TRIGCONFINTERFACES_ITRIGCONFIGTOOL_H
+
+// Infrastructure include(s):
+#include "AsgTools/IAsgTool.h"
+
+// Local include(s):
+#include "TrigConfInterfaces/IILVL1ConfigSvc.h"
+#include "TrigConfInterfaces/IIHLTConfigSvc.h"
+
+namespace TrigConf {
+
+   /**
+    * Interface for dual-use tools that provide trigger configuration
+    * information.
+    *
+    * @author Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
+    *
+    * $Revision: 612008 $
+    * $Date: 2014-08-15 15:35:58 +0200 (Fri, 15 Aug 2014) $
+    */
+   class ITrigConfigTool : public virtual asg::IAsgTool,
+                           public virtual IILVL1ConfigSvc,
+                           public virtual IIHLTConfigSvc {
+
+      /// Declare the interface that this class provides
+      ASG_TOOL_INTERFACE( TrigConf::ITrigConfigTool )
+
+   }; // ITrigConfigTool
+
+} // namespace TrigConf
+
+#endif // TRIGCONFINTERFACES_ITRIGCONFIGTOOL_H
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/TrigConfInterfacesDict.h b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/TrigConfInterfacesDict.h
index aead50d5548..523dc0874f5 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/TrigConfInterfacesDict.h
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/TrigConfInterfacesDict.h
@@ -4,16 +4,12 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: TrigConfInterfacesDict.h 580466 2014-01-28 14:54:00Z krasznaa $
+// $Id: TrigConfInterfacesDict.h 612008 2014-08-15 13:35:58Z krasznaa $
 #ifndef TRIGCONFINTERFACES_TRIGCONFINTERFACESDICT_H
 #define TRIGCONFINTERFACES_TRIGCONFINTERFACESDICT_H
 
 // Local include(s):
 #include "TrigConfInterfaces/IILVL1ConfigSvc.h"
 #include "TrigConfInterfaces/IIHLTConfigSvc.h"
-#include "TrigConfInterfaces/ILVL1ConfigSvc.h"
-#include "TrigConfInterfaces/IHLTConfigSvc.h"
-#include "TrigConfInterfaces/IL1TopoConfigSvc.h"
-#include "TrigConfInterfaces/ITrigConfigSvc.h"
 
 #endif // TRIGCONFINTERFACES_TRIGCONFINTERFACESDICT_H
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/Makefile.RootCore b/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/Makefile.RootCore
new file mode 100644
index 00000000000..e9e014ab4ad
--- /dev/null
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/Makefile.RootCore
@@ -0,0 +1,54 @@
+# this makefile also gets parsed by shell scripts
+# therefore it does not support full make syntax and features
+# edit with care
+
+# for full documentation check:
+# https://twiki.cern.ch/twiki/bin/viewauth/Atlas/RootCore#Package_Makefile
+
+
+# the name of the package:
+PACKAGE          = TrigConfInterfaces
+
+# the libraries to link with this one:
+PACKAGE_PRELOAD  = 
+
+# additional compilation flags to pass (not propagated to dependent packages):
+PACKAGE_CXXFLAGS = 
+
+# additional compilation flags to pass (propagated to dependent packages):
+PACKAGE_OBJFLAGS = 
+
+# additional linker flags to pass (for compiling the library):
+PACKAGE_LDFLAGS  = 
+
+# additional linker flags to pass (for compiling binaries):
+PACKAGE_BINFLAGS = 
+
+# additional linker flags to pass (propagated to client libraries):
+PACKAGE_LIBFLAGS = 
+
+# the list of packages we depend on:
+PACKAGE_DEP      = AsgTools
+
+# the list of packages we use if present, but that we can work without :
+PACKAGE_TRYDEP   = 
+
+# list pattern of scripts to link directly into binary path:
+PACKAGE_SCRIPTS  = 
+
+# whether to use pedantic compilation:
+PACKAGE_PEDANTIC = 0
+
+# whether to turn *off* optimization (set to dict to do it only for
+# dictionaries):
+PACKAGE_NOOPT    = 0
+
+# whether to build no library (needs to be set if no source files are
+# present):
+PACKAGE_NOCC     = 1
+
+# whether we build a reflex dictionary:
+PACKAGE_REFLEX   = 1
+
+
+include $(ROOTCOREDIR)/Makefile-common
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/requirements b/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/requirements
index 84060ea9271..e3436a13cb1 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/requirements
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/cmt/requirements
@@ -1,5 +1,5 @@
 package TrigConfInterfaces
-# $Id: requirements 580580 2014-01-29 08:44:43Z krasznaa $
+# $Id: requirements 612008 2014-08-15 13:35:58Z krasznaa $
 
 author Joerg Stelzer        <stelzer@cern.ch>
 author Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
@@ -8,6 +8,7 @@ public
 
 use AtlasPolicy      AtlasPolicy-*
 use GaudiInterface   GaudiInterface-*   External
+use AsgTools         AsgTools-*         Control/AthToolSupport
 
 private
 
diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/doc/mainpage.h b/Trigger/TrigConfiguration/TrigConfInterfaces/doc/mainpage.h
index a140e825aaf..5a6ee6ecd47 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/doc/mainpage.h
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/doc/mainpage.h
@@ -8,8 +8,8 @@
    @author Joerg Stelzer        <Joerg.Stelzer@cern.ch>
    @author Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
 
-   $Revision: 580580 $
-   $Date: 2014-01-29 09:44:43 +0100 (Wed, 29 Jan 2014) $
+   $Revision: 612008 $
+   $Date: 2014-08-15 15:35:58 +0200 (Fri, 15 Aug 2014) $
 
    @section TrigConfInterfacesOverview Overview
 
@@ -36,6 +36,10 @@
        trigger configuration for offline usage. This is the most often used
        interface for analysis purposes.
 
+   And finally, there is an interface that can be used in the same way in
+   and outside of Athena: TrigConf::ITrigConfigTool. This is an interface
+   for dual-use ASG tools that are meant for trigger aware analysis.
+
    @htmlinclude used_packages.html
 
    @include requirements
-- 
GitLab