diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/helperFunctions.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/helperFunctions.py
index 0e557d832ba75..4e1795fd299ee 100644
--- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/helperFunctions.py
+++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/helperFunctions.py
@@ -194,6 +194,7 @@ def cppboolstring(string, name):
"""
return pythonboolstring(string, name).lower()
+conddbcode = None
def conddb(*args):
"""
Wrapper for conddb, so that you can run
@@ -203,29 +204,36 @@ def conddb(*args):
getcommandoutput2(conddb ...) doesn't work, it imports
the wrong sqlalchemy in CondCore/Utilities/python/conddblib.py
"""
- from tempfile import NamedTemporaryFile
+ global conddbcode
+ from tempfile import mkdtemp, NamedTemporaryFile
- with open(getCommandOutput2("which conddb").strip()) as f:
- conddb = f.read()
+ if conddbcode is None:
+ conddbfile = getCommandOutput2("which conddb").strip()
+ tmpdir = mkdtemp()
+ getCommandOutput2("2to3 -f print -o " + tmpdir + " -n -w " + conddbfile)
+
+ with open(os.path.join(tmpdir, "conddb")) as f:
+ conddb = f.read()
+
+ conddbcode = conddb.replace("sys.exit", "sysexit")
def sysexit(number):
if number != 0:
raise AllInOneError("conddb exited with status {}".format(number))
namespace = {"sysexit": sysexit, "conddboutput": ""}
- conddb = conddb.replace("sys.exit", "sysexit")
-
bkpargv = sys.argv
sys.argv[1:] = args
bkpstdout = sys.stdout
- with NamedTemporaryFile(bufsize=0) as sys.stdout:
- exec(conddb, namespace)
- namespace["main"]()
- with open(sys.stdout.name) as f:
- result = f.read()
-
- sys.argv[:] = bkpargv
- sys.stdout = bkpstdout
+ try:
+ with NamedTemporaryFile(bufsize=0) as sys.stdout:
+ exec(conddbcode, namespace)
+ namespace["main"]()
+ with open(sys.stdout.name) as f:
+ result = f.read()
+ finally:
+ sys.argv[:] = bkpargv
+ sys.stdout = bkpstdout
return result
diff --git a/RecoTauTag/RecoTau/BuildFile.xml b/RecoTauTag/RecoTau/BuildFile.xml
index f58047980c27a..21ff7471a4dcd 100644
--- a/RecoTauTag/RecoTau/BuildFile.xml
+++ b/RecoTauTag/RecoTau/BuildFile.xml
@@ -27,6 +27,7 @@
+
diff --git a/RecoTauTag/RecoTau/interface/DeepTauBase.h b/RecoTauTag/RecoTau/interface/DeepTauBase.h
new file mode 100644
index 0000000000000..031ebfd90021a
--- /dev/null
+++ b/RecoTauTag/RecoTau/interface/DeepTauBase.h
@@ -0,0 +1,80 @@
+#ifndef RecoTauTag_RecoTau_DeepTauBase_h
+#define RecoTauTag_RecoTau_DeepTauBase_h
+
+/*
+ * \class DeepTauBase
+ *
+ * Definition of the base class for tau identification using Deep NN.
+ *
+ * \author Konstantin Androsov, INFN Pisa
+ * \author Maria Rosaria Di Domenico, University of Siena & INFN Pisa
+ */
+
+#include