diff --git a/Tools/PyUtils/python/scripts/__init__.py b/Tools/PyUtils/python/scripts/__init__.py
index dbf2414bfc45b73fa5cb28b33a9a672864d0b1d7..55cac552735daa7c39c652d7499a893d9d602537 100644
--- a/Tools/PyUtils/python/scripts/__init__.py
+++ b/Tools/PyUtils/python/scripts/__init__.py
@@ -4,20 +4,17 @@
 
 import PyUtils.acmdlib as acmdlib
 acmdlib.register('chk-file', 'PyUtils.scripts.check_file')
+acmdlib.register('chk-sg', 'PyUtils.scripts.check_sg')
+acmdlib.register('chk-rflx', 'PyUtils.scripts.check_reflex')
 acmdlib.register('diff-pool', 'PyUtils.scripts.diff_pool_files')
 acmdlib.register('diff-root', 'PyUtils.scripts.diff_root_files')
 acmdlib.register('dump-root', 'PyUtils.scripts.dump_root_file')
-acmdlib.register('chk-sg', 'PyUtils.scripts.check_sg')
 acmdlib.register('ath-dump', 'PyUtils.scripts.ath_dump')
-acmdlib.register('chk-rflx', 'PyUtils.scripts.check_reflex')
 acmdlib.register('gen-klass', 'PyUtils.scripts.gen_klass')
 
 acmdlib.register('merge-files', 'PyUtils.scripts.merge_files')
 acmdlib.register('filter-files', 'PyUtils.scripts.filter_files')
 
-acmdlib.register('cmake.new-skeleton', 'PyUtils.scripts.cmake_newskeleton')
-acmdlib.register('cmake.new-pkg', 'PyUtils.scripts.cmake_newpkg')
-acmdlib.register('cmake.new-analysisalg', 'PyUtils.scripts.cmake_newanalysisalg')
 acmdlib.register('cmake.depends', 'PyUtils.scripts.cmake_depends')
 
 acmdlib.register('jira.issues', 'PyUtils.scripts.jira_issues')
diff --git a/Tools/PyUtils/python/scripts/cmake_newanalysisalg.py b/Tools/PyUtils/python/scripts/cmake_newanalysisalg.py
deleted file mode 100644
index db945efeb73b8f638b4cd57a87888d897615e82f..0000000000000000000000000000000000000000
--- a/Tools/PyUtils/python/scripts/cmake_newanalysisalg.py
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-# @file PyUtils.scripts.cmt_newanalysisalg
-# @purpose streamline and ease the creation of new athena algs
-# @author Will Buttinger
-# @date February 2017
-
-#Note - this code could use a serious rewrite, I just hacked it together to get something working
-
-from __future__ import with_statement, print_function
-
-__author__ = "Will Buttinger"
-__doc__ = "streamline and ease the creation of new AthAnalysisAlgorithm"
-
-### imports -------------------------------------------------------------------
-import os
-import textwrap
-import PyUtils.acmdlib as acmdlib
-import fileinput
-
-from future import standard_library
-standard_library.install_aliases()
-import subprocess
-
-class Templates:
-    alg_hdr_template = """\
-#ifndef %(guard)s
-#define %(guard)s 1
-
-#include "AthAnalysisBaseComps/AthAnalysisAlgorithm.h"
-
-//Example ROOT Includes
-//#include "TTree.h"
-//#include "TH1D.h"
-
-%(namespace_begin)s
-
-class %(klass)s: public ::AthAnalysisAlgorithm { 
- public: 
-  %(klass)s( const std::string& name, ISvcLocator* pSvcLocator );
-  virtual ~%(klass)s(); 
-
-  ///uncomment and implement methods as required
-
-                                        //IS EXECUTED:
-  virtual StatusCode  initialize();     //once, before any input is loaded
-  virtual StatusCode  beginInputFile(); //start of each input file, only metadata loaded
-  //virtual StatusCode  firstExecute();   //once, after first eventdata is loaded (not per file)
-  virtual StatusCode  execute();        //per event
-  //virtual StatusCode  endInputFile();   //end of each input file
-  //virtual StatusCode  metaDataStop();   //when outputMetaStore is populated by MetaDataTools
-  virtual StatusCode  finalize();       //once, after all events processed
-  
-
-  ///Other useful methods provided by base class are:
-  ///evtStore()        : ServiceHandle to main event data storegate
-  ///inputMetaStore()  : ServiceHandle to input metadata storegate
-  ///outputMetaStore() : ServiceHandle to output metadata storegate
-  ///histSvc()         : ServiceHandle to output ROOT service (writing TObjects)
-  ///currentFile()     : TFile* to the currently open input file
-  ///retrieveMetadata(...): See twiki.cern.ch/twiki/bin/view/AtlasProtected/AthAnalysisBase#ReadingMetaDataInCpp
-
-
- private: 
-
-   //Example algorithm property, see constructor for declaration:
-   //int m_nProperty = 0;
-
-   //Example histogram, see initialize method for registration to output histSvc
-   //TH1D* m_myHist = 0;
-   //TTree* m_myTree = 0;
-
-}; 
-%(namespace_end)s
-#endif //> !%(guard)s
-"""
-
-    alg_cxx_template = """\
-// %(pkg)s includes
-#include "%(namespace_klass)s.h"
-
-//#include "xAODEventInfo/EventInfo.h"
-
-
-%(namespace_begin)s
-
-%(klass)s::%(klass)s( const std::string& name, ISvcLocator* pSvcLocator ) : AthAnalysisAlgorithm( name, pSvcLocator ){
-
-  //declareProperty( "Property", m_nProperty = 0, "My Example Integer Property" ); //example property declaration
-
-}
-
-
-%(klass)s::~%(klass)s() {}
-
-
-StatusCode %(klass)s::initialize() {
-  ATH_MSG_INFO ("Initializing " << name() << "...");
-  //
-  //This is called once, before the start of the event loop
-  //Retrieves of tools you have configured in the joboptions go here
-  //
-
-  //HERE IS AN EXAMPLE
-  //We will create a histogram and a ttree and register them to the histsvc
-  //Remember to configure the histsvc stream in the joboptions
-  //
-  //m_myHist = new TH1D("myHist","myHist",100,0,100);
-  //CHECK( histSvc()->regHist("/MYSTREAM/myHist", m_myHist) ); //registers histogram to output stream
-  //m_myTree = new TTree("myTree","myTree");
-  //CHECK( histSvc()->regTree("/MYSTREAM/SubDirectory/myTree", m_myTree) ); //registers tree to output stream inside a sub-directory
-
-
-  return StatusCode::SUCCESS;
-}
-
-StatusCode %(klass)s::finalize() {
-  ATH_MSG_INFO ("Finalizing " << name() << "...");
-  //
-  //Things that happen once at the end of the event loop go here
-  //
-
-
-  return StatusCode::SUCCESS;
-}
-
-StatusCode %(klass)s::execute() {  
-  ATH_MSG_DEBUG ("Executing " << name() << "...");
-  setFilterPassed(false); //optional: start with algorithm not passed
-
-
-
-  //
-  //Your main analysis code goes here
-  //If you will use this algorithm to perform event skimming, you
-  //should ensure the setFilterPassed method is called
-  //If never called, the algorithm is assumed to have 'passed' by default
-  //
-
-
-  //HERE IS AN EXAMPLE
-  //const xAOD::EventInfo* ei = 0;
-  //CHECK( evtStore()->retrieve( ei , "EventInfo" ) );
-  //ATH_MSG_INFO("eventNumber=" << ei->eventNumber() );
-  //m_myHist->Fill( ei->averageInteractionsPerCrossing() ); //fill mu into histogram
-
-
-  setFilterPassed(true); //if got here, assume that means algorithm passed
-  return StatusCode::SUCCESS;
-}
-
-StatusCode %(klass)s::beginInputFile() { 
-  //
-  //This method is called at the start of each input file, even if
-  //the input file contains no events. Accumulate metadata information here
-  //
-
-  //example of retrieval of CutBookkeepers: (remember you will need to include the necessary header files and use statements in requirements file)
-  // const xAOD::CutBookkeeperContainer* bks = 0;
-  // CHECK( inputMetaStore()->retrieve(bks, "CutBookkeepers") );
-
-  //example of IOVMetaData retrieval (see https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/AthAnalysisBase#How_to_access_file_metadata_in_C)
-  //float beamEnergy(0); CHECK( retrieveMetadata("/TagInfo","beam_energy",beamEnergy) );
-  //std::vector<float> bunchPattern; CHECK( retrieveMetadata("/Digitiation/Parameters","BeamIntensityPattern",bunchPattern) );
-
-
-
-  return StatusCode::SUCCESS;
-}
-
-%(namespace_end)s
-"""
-    testxml_template = """\
-   <TEST name="%(namespace_klass)s" type="athena" suite="ASGTests">
-      <options_atn>%(pkg)s/%(namespace_klass)sJobOptions.py</options_atn>
-      <timelimit>5</timelimit>
-      <author> PLEASE ENTER A NAME </author>
-      <mailto> PLEASEENTER@cern.ch </mailto>
-      <expectations>
-         <errorMessage> Athena exited abnormally </errorMessage>
-         <errorMessage>FAILURE (ERROR)</errorMessage>
-         <returnValue>0</returnValue>
-      </expectations>
-   </TEST>
-"""
-
-
-### functions -----------------------------------------------------------------
-@acmdlib.command(
-    name='cmake.new-analysisalg'
-    )
-@acmdlib.argument(
-    'algname',
-    help="name of the new alg"
-    )
-@acmdlib.argument(
-    '--newJobo',
-    action='store_true',
-    default=False,
-    help='Create a skeleton joboption for execution of the new algorithm'
-    )
-
-def main(args):
-    """create a new AthAnalysisAlgorithm inside the current package. Call from within the package directory
-
-    ex:
-     $ acmd cmake new-analysisalg MyAlg
-    """
-    sc = 0
-    
-    full_alg_name = args.algname
-
-    #determine the package from the cwd 
-    cwd = os.getcwd()
-    #check that src dir exists and CMakeLists.txt exists (i.e. this is a package)
-    if not os.path.isdir(cwd+"/src") or not os.path.isfile(cwd+"/CMakeLists.txt"):
-        print ("ERROR you must call new-analysisalg from within the package you want to add the algorithm to")
-        return -1
-   
-   
-    full_pkg_name = os.path.basename(cwd)
-    print (textwrap.dedent("""\
-    ::: create alg [%(full_alg_name)s] in pkg [%(full_pkg_name)s]""" %locals()))
-
-    
-    #first we must check that CMakeLists.txt file has the AthAnalysisBaseComps dependency in it
-    foundBaseComps=False
-    hasxAODEventInfo=False
-    hasAtlasROOT=False
-    hasAsgTools=False
-    lastUse=0 
-    lineCount=0
-    hasLibraryLine=False
-    hasComponentLine=False
-    for line in open('CMakeLists.txt'):
-        lineCount +=1 
-        if "atlas_add_library" in line: hasLibraryLine=True
-        if "atlas_add_component" in line: hasComponentLine=True
-
-#GOT THIS FAR WITH EDITING
-
-        
-        
-
-    
-    #following code borrowed from gen_klass
-    hdr = getattr(Templates, 'alg_hdr_template')
-    cxx = getattr(Templates, 'alg_cxx_template')
-    
-    namespace_klass = full_alg_name.replace('::','__')
-    namespace_begin,namespace_end = "",""
-    namespace = ""
-    if full_alg_name.count("::")>0:
-        namespace    = full_alg_name.split("::")[0]
-        full_alg_name = full_alg_name.split("::")[1]
-        namespace_begin = "namespace %s {" % namespace
-        namespace_end   = "} //> end namespace %s" % namespace
-        pass
-
-    guard = "%s_%s_H" % (full_pkg_name.upper(), namespace_klass.upper())
-
-    d = dict( pkg=full_pkg_name,
-              klass=full_alg_name,
-              guard=guard,
-              namespace_begin=namespace_begin,
-              namespace_end=namespace_end,namespace_klass=namespace_klass,namespace=namespace
-              )
-    fname = os.path.splitext("src/%s"%namespace_klass)[0]
-    #first check doesn't exist 
-    if os.path.isfile(fname+'.h'):
-       print (":::  ERROR %s.h already exists" % fname)
-       return -1
-    print (":::  INFO Creating %s.h" % fname)
-    o_hdr = open(fname+'.h', 'w')
-    o_hdr.writelines(hdr%d)
-    o_hdr.flush()
-    o_hdr.close()
-
-    if os.path.isfile(fname+'.cxx'):
-       print (":::  ERROR %s.cxx already exists" % fname)
-       return -1
-    print (":::  INFO Creating %s.cxx" % fname)
-    o_cxx = open(fname+'.cxx', 'w')
-    o_cxx.writelines(cxx%d)
-    o_cxx.flush()
-    o_cxx.close()
-
-    #now add the algorithm to the _entries.cxx file in the components folder 
-    #first check they exist
-    if not os.path.exists("src/components"): os.mkdir("src/components")
-    if not os.path.isfile("src/components/%s_load.cxx"%full_pkg_name):
-       print (":::  INFO Creating src/components/%s_load.cxx"%full_pkg_name)
-       loadFile = open("src/components/%s_load.cxx"%full_pkg_name,'w')
-       loadFile.writelines(""" 
-#include "GaudiKernel/LoadFactoryEntries.h"
-LOAD_FACTORY_ENTRIES(%(pkg)s)
-"""%d)
-       loadFile.flush()
-       loadFile.close()
-      
-    if not os.path.isfile("src/components/%s_entries.cxx"%full_pkg_name):
-       print (":::  INFO Creating src/components/%s_entries.cxx"%full_pkg_name)
-       loadFile = open("src/components/%s_entries.cxx"%full_pkg_name,'w')
-       if len(namespace_begin)>0:
-          d["namespace"] = args.algname.split("::")[0]
-          loadFile.writelines("""
-#include "GaudiKernel/DeclareFactoryEntries.h"
-
-#include "../%(namespace_klass)s.h"
-
-DECLARE_NAMESPACE_ALGORITHM_FACTORY(%(namespace)s, %(klass)s )
-
-DECLARE_FACTORY_ENTRIES( %(pkg)s ) 
-{
-  DECLARE_NAMESPACE_ALGORITHM(%(namespace)s, %(klass)s );
-}
-"""%d)
-       else:
-          loadFile.writelines("""
-#include "GaudiKernel/DeclareFactoryEntries.h"
-
-#include "../%(namespace_klass)s.h"
-
-DECLARE_ALGORITHM_FACTORY( %(klass)s )
-
-DECLARE_FACTORY_ENTRIES( %(pkg)s ) 
-{
-  DECLARE_ALGORITHM( %(klass)s );
-}
-"""%d)
-       loadFile.flush()
-       loadFile.close()
-    else:
-       #first check algorithm not already in _entries file 
-       inFile=False
-       for line in open("src/components/%s_entries.cxx"%full_pkg_name):
-          if len(namespace_begin)==0 and "DECLARE_ALGORITHM" in line and d["klass"] in line: inFile=True
-          if len(namespace_begin)>0 and "DECLARE_NAMESPACE_ALGORITHM" in line and d["klass"] in line and d["namespace"]: inFile=True
-          
-       if not inFile:
-         print (":::  INFO Adding %s to src/components/%s_entries.cxx"% (args.algname,full_pkg_name))
-         nextAdd=False
-         for line in fileinput.input("src/components/%s_entries.cxx"%full_pkg_name, inplace=1):
-            if nextAdd and "{" not in line:
-               nextAdd=False
-               if len(namespace_begin)>0:
-                  print ("""  DECLARE_NAMESPACE_ALGORITHM(%(namespace)s, %(klass)s );"""%d)
-               else:
-                  print ("""  DECLARE_ALGORITHM( %(klass)s );"""%d)
-            if line.startswith("DECLARE_FACTORY_ENTRIES"):
-               nextAdd=True
-               if len(namespace_begin)>0:
-                  
-                  print ("""
-#include "../%(namespace_klass)s.h"
-DECLARE_NAMESPACE_ALGORITHM_FACTORY( %(namespace)s, %(klass)s )
-"""%d)
-               else:
-                  print ("""
-#include "../%(namespace_klass)s.h"
-DECLARE_ALGORITHM_FACTORY( %(klass)s )
-"""%d)
-            print (line, end='')
-   
-   
-    if args.newJobo:
-      #make the joboptions file too
-      full_jobo_name = namespace_klass + "JobOptions"
-      full_alg_name = namespace_klass
-   
-      print (textwrap.dedent("""\
-      ::: create jobo [%(full_jobo_name)s] for alg [%(full_alg_name)s]""" %locals()))
-   
-      #following code borrowed from gen_klass
-      from cmt_newjobo import Templates as joboTemplates
-      jobo = getattr(joboTemplates, 'jobo_template')
-   
-      e = dict( klass=full_alg_name,
-               inFile=os.environ['ASG_TEST_FILE_MC'],
-               )
-      fname = 'share/%s.py' % full_jobo_name
-      #first check doesn't exist 
-      if os.path.isfile(fname):
-         print (":::  WARNING %s already exists .. will not overwrite" % fname)
-      else:
-         o_hdr = open(fname, 'w')
-         o_hdr.writelines(jobo%e)
-         o_hdr.flush()
-         o_hdr.close()
-
-    #need to reconfigure cmake so it knows about the new files
-    #rely on the WorkDir_DIR env var for this
-    workDir = os.environ.get("WorkDir_DIR")
-    if workDir is None:
-        print ("::: ERROR No WorkDir_DIR env var, did you forget to source the setup.sh script?")
-        print ("::: ERROR Please do this and reconfigure cmake manually!")
-    else:
-        print (":::  INFO Reconfiguring cmake %s/../." % workDir)
-        res = subprocess.getstatusoutput('cmake %s/../.' % workDir)
-        if res[0]!=0:
-            print (":::  WARNING reconfigure unsuccessful. Please reconfigure manually!")
-        
-
-    print (":::  INFO Please ensure your CMakeLists.txt file has ")
-    print (":::       atlas_add_component( %s src/component/*.cxx ... )" % full_pkg_name)
-    print (":::  INFO and necessary dependencies declared ")
-    print (":::  INFO Minimum dependency is: Control/AthAnalysisBaseComps")
-
diff --git a/Tools/PyUtils/python/scripts/cmake_newpkg.py b/Tools/PyUtils/python/scripts/cmake_newpkg.py
deleted file mode 100644
index 3451bd557cb133c89513caacf80b6b2719df0c1b..0000000000000000000000000000000000000000
--- a/Tools/PyUtils/python/scripts/cmake_newpkg.py
+++ /dev/null
@@ -1,154 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-# @file PyUtils.scripts.cmake_newpkg
-# @purpose streamline and ease the creation of new cmake packages
-# @author Will Buttinger
-# @date Feb 2017
-
-from __future__ import with_statement, print_function
-
-__author__ = "Will buttinger"
-__doc__ = "streamline and ease the creation of new cmake packages"
-
-### imports -------------------------------------------------------------------
-import os
-import textwrap
-import PyUtils.acmdlib as acmdlib
-
-from future import standard_library
-standard_library.install_aliases()
-import subprocess
-
-### functions -----------------------------------------------------------------
-@acmdlib.command(
-    name='cmake.new-pkg'
-    )
-@acmdlib.argument(
-    'pkgname',
-    help="(fully qualified) name of the new package"
-    )
-@acmdlib.argument(
-    '--author',
-    default='${USER}',
-    help='name of the author of this new package'
-    )
-
-def main(args):
-    """create a new cmake package with sensible atlas-oriented defaults
-
-    ex:
-     $ acmd cmake new-pkg Control/MyContainer/NewPackage
-    """
-    sc = 0
-    
-    full_pkg_name = args.pkgname
-    if full_pkg_name[0] == '/':
-        full_pkg_name = full_pkg_name[1:]
-    
-    pkg_path = os.path.dirname(os.getcwd() + "/" + full_pkg_name)
-    pkg_name = os.path.basename(full_pkg_name)
-    pkg_vers = '%s-00-00-00' % pkg_name
-    author = os.path.expanduser(os.path.expandvars(args.author))
-
-    if os.path.exists(pkg_path+"/"+pkg_name):
-        print ("ERROR: %s package already exists" % full_pkg_name)
-        return 1
-        
-    print (textwrap.dedent("""\
-    ::: creating package [%(full_pkg_name)s]...
-    :::   - pkg name:    %(pkg_name)s
-    :::   - pkg version: %(pkg_vers)s
-    :::   - pkg path:    %(pkg_path)s
-    :::   - author:      %(author)s""" % locals()))
-
-
-    #create the directories
-    try:
-        os.makedirs(pkg_path+"/"+pkg_name+"/src")
-        os.makedirs(pkg_path+"/"+pkg_name+"/share")
-        os.makedirs(pkg_path+"/"+pkg_name+"/python")
-        os.makedirs(pkg_path+"/"+pkg_name+"/data")
-        os.makedirs(pkg_path+"/"+pkg_name+"/util")
-    except OSError:
-        print ("ERROR while making directories for " % (pkg_path+"/"+pkg_name+"/src"))
-        return -1
-
-
-    with open(os.path.join(pkg_path+"/"+pkg_name,'CMakeLists.txt'), 'w') as req:
-        print (textwrap.dedent("""\
-        ## automatically generated CMakeLists.txt file
-
-        # Declare the package
-        atlas_subdir( %(pkg_name)s )
-
-        # Declare external dependencies ... default here is to include ROOT
-        find_package( ROOT COMPONENTS MathCore RIO Core Tree Hist )
-
-        # Declare public and private dependencies
-        # Public dependencies are anything that appears in the headers in public include dir
-        # Private is anything else
-        
-        # An example is included
-        atlas_depends_on_subdirs(
-            PUBLIC
-   
-            PRIVATE
-            # Control/AthAnalysisBaseComps
-        )
-
-        # Declare package as a library
-        # Note the convention that library names get "Lib" suffix
-        # Any package you add to dependencies above, you should add
-        # to LINK_LIBRARIES line below (see the example)
-        atlas_add_library( %(pkg_name)sLib src/*.cxx
-                           PUBLIC_HEADERS %(pkg_name)s
-                           INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                           LINK_LIBRARIES ${ROOT_LIBRARIES}
-                                            #AthAnalysisBaseCompsLib
-        )
-
-        # if you add components (tools, algorithms) to this package
-        # uncomment the next lines
-        # atlas_add_component( %(pkg_name)s src/components/*.cxx
-        #                      LINK_LIBRARIES %(pkg_name)sLib 
-        # )
-      
-        # if you add an application (exe) to this package
-        # declare it like this (note convention that apps live in util dir)
-        # atlas_add_executable( MyApp util/myApp.cxx
-        #                       LINK_LIBRARIES %(pkg_name)sLib
-        # )
-
-        # Install python modules, joboptions, and share content
-        atlas_install_python_modules( python/*.py )
-        atlas_install_joboptions( share/*.py )
-        atlas_install_data( data/* )
-        # You can access your data from code using path resolver, e.g.
-        # PathResolverFindCalibFile("%(pkg_name)s/file.txt")
-
-        
-        """%locals()), file=req)
-    
-    #also create a version.cmake file with PackageName-00-00-01 in it
-    with open(os.path.join(pkg_path+"/"+pkg_name,'version.cmake'), 'w') as req:
-        print (("%s-00-00-01" % pkg_name), file=req)
-
-    #need to reconfigure cmake so it knows about the new files
-    #rely on the WorkDir_DIR env var for this
-    workDir = os.environ.get("WorkDir_DIR")
-    if workDir is None:
-        print ("::: ERROR No WorkDir_DIR env var, did you forget to source the setup.sh script?")
-        print ("::: ERROR Please do this and reconfigure cmake manually!")
-    else:
-        print (":::  INFO Reconfiguring cmake %s/../." % workDir)
-        res = subprocess.getstatusoutput('cmake %s/../.' % workDir)
-        if res[0]!=0:
-            print (":::  WARNING reconfigure unsuccessful. Please reconfigure manually!")
-
-
-    print ("::: creating package [%(full_pkg_name)s]... [done]" % locals())
-    
-    
-    
-    return sc
-
diff --git a/Tools/PyUtils/python/scripts/cmake_newskeleton.py b/Tools/PyUtils/python/scripts/cmake_newskeleton.py
deleted file mode 100644
index b48dd07188ccaa10317c88abc5cd29acecffe02e..0000000000000000000000000000000000000000
--- a/Tools/PyUtils/python/scripts/cmake_newskeleton.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-# @file PyUtils.scripts.cmt_newanalysisalg
-# @purpose streamline and ease the creation of new athena algs
-# @author Will Buttinger
-# @date February 2017
-
-#Note - this code could use a serious rewrite, I just hacked it together to get something working
-
-from __future__ import with_statement, print_function
-
-__author__ = "Will Buttinger"
-__doc__ = "streamline and ease the creation of new AthAnalysisAlgorithm in a new package"
-
-### imports -------------------------------------------------------------------
-import os
-import textwrap
-import PyUtils.acmdlib as acmdlib
-
-from future import standard_library
-standard_library.install_aliases()
-import subprocess
-
-
-### functions -----------------------------------------------------------------
-@acmdlib.command(
-    name='cmake.new-skeleton'
-    )
-@acmdlib.argument(
-    'pkgname',
-    help="name of the new pkg"
-    )
-
-
-def main(args):
-    """create a new skeleton package
-
-    ex:
-     $ acmd cmake new-skeleton MyPackage
-    """
-    sc = 0
-    
-    full_pkg_name = args.pkgname
-
-    #make new package
-    res = subprocess.getstatusoutput('acmd cmake new-pkg %s' % full_pkg_name)
-    if res[0]!=0:
-        print (":::  ERROR could not create new package")
-        return -1
-
-
-    #add algorithm
-    res = subprocess.getstatusoutput('cd %s;acmd cmake new-analysisalg --newJobo %sAlg' % (full_pkg_name,full_pkg_name))
-    if res[0]!=0:
-        print (":::  ERROR could not create new alg")
-        return -1
-
-    pkg_name = full_pkg_name
-
-    # overwrite CMakeLists with our skeleton
-    with open(os.path.join(full_pkg_name,'CMakeLists.txt'), 'w') as req:
-        print (textwrap.dedent("""\
-        ## automatically generated CMakeLists.txt file
-
-        # Declare the package
-        atlas_subdir( %(pkg_name)s )
-
-        # Declare external dependencies ... default here is to include ROOT
-        find_package( ROOT COMPONENTS MathCore RIO Core Tree Hist )
-
-        # Declare public and private dependencies
-        # Public dependencies are anything that appears in the headers in public include dir
-        # Private is anything else
-        
-        # An example is included
-        atlas_depends_on_subdirs(
-            PUBLIC
-   
-            PRIVATE
-            Control/AthAnalysisBaseComps
-        )
-
-        # Declare package as a library
-        # Note the convention that library names get "Lib" suffix
-        # Any package you add to dependencies above, you should add
-        # to LINK_LIBRARIES line below (see the example)
-        atlas_add_library( %(pkg_name)sLib src/*.cxx
-                           PUBLIC_HEADERS %(pkg_name)s
-                           INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                           LINK_LIBRARIES ${ROOT_LIBRARIES}
-                                            AthAnalysisBaseCompsLib
-        )
-
-        # if you add components (tools, algorithms) to this package
-        # these lines are needed so you can configure them in joboptions
-        atlas_add_component( %(pkg_name)s src/components/*.cxx
-                              LINK_LIBRARIES %(pkg_name)sLib 
-        )
-      
-        # if you add an application (exe) to this package
-        # declare it like this (note convention that apps go in the util dir)
-        # atlas_add_executable( MyApp util/myApp.cxx
-        #                       LINK_LIBRARIES %(pkg_name)sLib
-        # )
-
-        # Install python modules, joboptions, and share content
-        atlas_install_python_modules( python/*.py )
-        atlas_install_joboptions( share/*.py )
-        atlas_install_data( data/* )
-        # You can access your data from code using path resolver, e.g.
-        # PathResolverFindCalibFile("%(pkg_name)s/file.txt")
-
-        
-        """%locals()), file=req)
-
-
-
-
-    #need to reconfigure cmake so it knows about the new files
-    #rely on the WorkDir_DIR env var for this
-    workDir = os.environ.get("WorkDir_DIR")
-    if workDir is None:
-        print ("::: ERROR No WorkDir_DIR env var, did you forget to source the setup.sh script?")
-        print ("::: ERROR Please do this and reconfigure cmake manually!")
-    else:
-        print (":::  INFO Reconfiguring cmake %s/../." % workDir)
-        res = subprocess.getstatusoutput('cmake %s/../.' % workDir)
-        if res[0]!=0:
-            print (":::  WARNING reconfigure unsuccessful. Please reconfigure manually!")
-        
-
diff --git a/Tools/PyUtils/python/scripts/cmt_newjobo.py b/Tools/PyUtils/python/scripts/cmt_newjobo.py
deleted file mode 100644
index 4d09dd880f44fda67cfb10c2560382803438c95b..0000000000000000000000000000000000000000
--- a/Tools/PyUtils/python/scripts/cmt_newjobo.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-# @file PyUtils.scripts.cmt_newalg
-# @purpose streamline and ease the creation of a skeleton joboption
-# @author Will Buttinger
-# @date March 2015
-
-#Note - this code could use a serious rewrite, I just hacked it together to get something working
-
-from __future__ import with_statement, print_function
-
-__author__ = "Will Buttinger"
-__doc__ = "streamline and ease the creation of new skeleton joboption for analysis"
-
-### imports -------------------------------------------------------------------
-import os
-import textwrap
-import PyUtils.acmdlib as acmdlib
-
-class Templates:
-    jobo_template = """\
-#Skeleton joboption for a simple analysis job
-
-#---- Minimal joboptions -------
-
-theApp.EvtMax=10                                         #says how many events to run over. Set to -1 for all events
-jps.AthenaCommonFlags.FilesInput = ["%(inFile)s"]   #insert your list of input files here (do this before next lines)
-
-#Now choose your read mode (POOL, xAOD, or TTree):
-
-#POOL:
-#import AthenaPoolCnvSvc.ReadAthenaPool                   #sets up reading of any POOL files (but POOL is slow)
-
-#xAOD:
-import AthenaRootComps.ReadAthenaxAODHybrid               #FAST xAOD reading!
-
-#TTree:
-#import AthenaRootComps.ReadAthenaRoot                    #read a flat TTree, very fast, but no EDM objects
-#svcMgr.EventSelector.TupleName="MyTree"                  #You usually must specify the name of the tree (default: CollectionTree)
-
-algseq = CfgMgr.AthSequencer("AthAlgSeq")                #gets the main AthSequencer
-algseq += CfgMgr.%(klass)s()                                 #adds an instance of your alg to it
-
-#-------------------------------
-
-
-#note that if you edit the input files after this point you need to pass the new files to the EventSelector:
-#like this: svcMgr.EventSelector.InputCollections = ["new","list"] 
-
-
-
-
-
-##--------------------------------------------------------------------
-## This section shows up to set up a HistSvc output stream for outputing histograms and trees
-## See https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/AthAnalysisBase#How_to_output_trees_and_histogra for more details and examples
-
-#if not hasattr(svcMgr, 'THistSvc'): svcMgr += CfgMgr.THistSvc() #only add the histogram service if not already present (will be the case in this jobo)
-#svcMgr.THistSvc.Output += ["MYSTREAM DATAFILE='myfile.root' OPT='RECREATE'"] #add an output root file stream
-
-##--------------------------------------------------------------------
-
-
-##--------------------------------------------------------------------
-## The lines below are an example of how to create an output xAOD
-## See https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/AthAnalysisBase#How_to_create_an_output_xAOD for more details and examples
-
-#from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
-#xaodStream = MSMgr.NewPoolRootStream( "StreamXAOD", "xAOD.out.root" )
-
-##EXAMPLE OF BASIC ADDITION OF EVENT AND METADATA ITEMS
-##AddItem and AddMetaDataItem methods accept either string or list of strings
-#xaodStream.AddItem( ["xAOD::JetContainer#*","xAOD::JetAuxContainer#*"] ) #Keeps all JetContainers (and their aux stores)
-#xaodStream.AddMetaDataItem( ["xAOD::TriggerMenuContainer#*","xAOD::TriggerMenuAuxContainer#*"] )
-#ToolSvc += CfgMgr.xAODMaker__TriggerMenuMetaDataTool("TriggerMenuMetaDataTool") #MetaDataItems needs their corresponding MetaDataTool
-#svcMgr.MetaDataSvc.MetaDataTools += [ ToolSvc.TriggerMenuMetaDataTool ] #Add the tool to the MetaDataSvc to ensure it is loaded
-
-##EXAMPLE OF SLIMMING (keeping parts of the aux store)
-#xaodStream.AddItem( ["xAOD::ElectronContainer#Electrons","xAOD::ElectronAuxContainer#ElectronsAux.pt.eta.phi"] ) #example of slimming: only keep pt,eta,phi auxdata of electrons
-
-##EXAMPLE OF SKIMMING (keeping specific events)
-#xaodStream.AddAcceptAlgs( "%(klass)s" ) #will only keep events where 'setFilterPassed(false)' has NOT been called in the given algorithm
-
-##--------------------------------------------------------------------
-
-
-include("AthAnalysisBaseComps/SuppressLogging.py")              #Optional include to suppress as much athena output as possible. Keep at bottom of joboptions so that it doesn't suppress the logging of the things you have configured above
-
-"""
-
-
-
-### functions -----------------------------------------------------------------
-@acmdlib.command(
-    name='cmt.new-jobo'
-    )
-@acmdlib.argument(
-    'joboName',
-    help="name of the joboption"
-    )
-@acmdlib.argument(
-    'alg',
-    default='MyAlg',
-    help='name of the algorithm to add to sequence'
-    )
-@acmdlib.argument(
-    '--inFile',
-    default='my.pool.root',
-    help='name of an input file to add to EventSelector'
-    )
-def main(args):
-    """create a new algorithm inside the current package. Call from within the package directory
-
-    ex:
-     $ acmd cmt new-jobo myJobo MyAlg
-    """
-
-    full_jobo_name = args.joboName
-    full_alg_name = args.alg
-
-    print (textwrap.dedent("""\
-    ::: create jobo [%(full_jobo_name)s] for alg [%(full_alg_name)s]""" %locals()))
-
-    #following code borrowed from gen_klass
-    jobo = getattr(Templates, 'jobo_template')
-
-    d = dict( klass=args.alg,
-              inFile=args.inFile,
-              )
-    fname = args.joboName+'.py'
-    #first check doesn't exist 
-    if os.path.isfile(fname):
-       print (":::  ERROR %s already exists" % fname)
-       return -1
-    o_hdr = open(fname, 'w')
-    o_hdr.writelines(jobo%d)
-    o_hdr.flush()
-    o_hdr.close()
-