diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py
index 166cbad0165a4d4650e428e832086c84404ddb75..8886c0392837785e5d19f26dc7d6c16b103a56a3 100644
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py
@@ -272,9 +272,9 @@ class AugmentedByteStream( AugmentedStreamBase ):
         svcMgr.ToolSvc += self.bsCopyTool
 
         #default output directory
-        import commands
+        import subprocess
         cmd='pwd'
-        (statusCode,outDir) = commands.getstatusoutput(cmd)
+        (statusCode,outDir) = subprocess.getstatusoutput(cmd)
         outDir+="/"
 
         # BS output Svc
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/python/LogicalFilterCombiner.py b/PhysicsAnalysis/PrimaryDPDMaker/python/LogicalFilterCombiner.py
index 50de75cb42d3d21bc40cca4b5d5a80f169695f4a..bfa191a6f1a62dfd6e9dd9ef37bdfb26a50c592e 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/python/LogicalFilterCombiner.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/python/LogicalFilterCombiner.py
@@ -23,7 +23,7 @@ from AthenaCommon.AlgSequence import AlgSequence
 from AthenaCommon.Logging import logging
 
 import tokenize
-from cStringIO import StringIO
+from io import StringIO
 
 class LogicalFilterCombiner( PyAthena.AthFilterAlgorithm ):
     
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDNCB.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDNCB.py
index 82b573e8dfb7cabce731a0629996cc2277440720..15d0452613e74b9847b05d22fbd72c531e093325 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDNCB.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDNCB.py
@@ -90,8 +90,8 @@ if dumpPixInfo:
     PixelChargeToTConversionSetter = PixelChargeToTConversion(name = "NCBPixelChargeToTConversionSetter") 
     topSequence += PixelChargeToTConversionSetter 
     if (printIdTrkDxAODConf):
-        print PixelChargeToTConversionSetter
-        print PixelChargeToTConversionSetter.properties()
+        print(PixelChargeToTConversionSetter)
+        print(PixelChargeToTConversionSetter.properties())
 
 #Setup SCT extension efficiency algorithm if running pixel tracklets
 #if InDetFlags.doTrackSegmentsPixel():
@@ -111,8 +111,8 @@ if dumpTrtInfo:
 
     topSequence += xAOD_TRT_PrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_TRT_PrepDataToxAOD
-        print xAOD_TRT_PrepDataToxAOD.properties()
+        print(xAOD_TRT_PrepDataToxAOD)
+        print(xAOD_TRT_PrepDataToxAOD.properties())
 
 if dumpSctInfo:
     from InDetPrepRawDataToxAOD.InDetPrepRawDataToxAODConf import SCT_PrepDataToxAOD
@@ -126,8 +126,8 @@ if dumpSctInfo:
 
     topSequence += xAOD_SCT_PrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_SCT_PrepDataToxAOD
-        print xAOD_SCT_PrepDataToxAOD.properties()
+        print(xAOD_SCT_PrepDataToxAOD)
+        print(xAOD_SCT_PrepDataToxAOD.properties())
 
 if dumpPixInfo:
     from InDetPrepRawDataToxAOD.InDetPrepRawDataToxAODConf import PixelPrepDataToxAOD
@@ -144,8 +144,8 @@ if dumpPixInfo:
 
     topSequence += xAOD_PixelPrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_PixelPrepDataToxAOD
-        print xAOD_PixelPrepDataToxAOD.properties()
+        print(xAOD_PixelPrepDataToxAOD)
+        print(xAOD_PixelPrepDataToxAOD.properties())
 
 
 #################
@@ -179,8 +179,8 @@ ToolSvc += DFIDNCB
 augmentationTools+=[DFIDNCB]
 
 if (printIdTrkDxAODConf):
-    print DFIDNCB
-    print DFIDNCB.properties()
+    print(DFIDNCB)
+    print(DFIDNCB.properties())
 
 # Add BS error augmentation tool
 if dumpBytestreamErrors:
@@ -192,8 +192,8 @@ if dumpBytestreamErrors:
     ToolSvc += DFEI
     augmentationTools+=[DFEI]
     if (printIdTrkDxAODConf):
-        print DFEI
-        print DFEI.properties()
+        print(DFEI)
+        print(DFEI.properties())
 
 # Add Unassociated hits augmentation tool
 if dumpUnassociatedHits:
@@ -205,8 +205,8 @@ if dumpUnassociatedHits:
                                                                                   TRTDriftCircleContainer = "TRT_DriftCircles")
     ToolSvc += unassociatedHitsGetterTool
     if (printIdTrkDxAODConf):
-        print unassociatedHitsGetterTool
-        print unassociatedHitsGetterTool.properties()
+        print(unassociatedHitsGetterTool)
+        print(unassociatedHitsGetterTool.properties())
 
     from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__UnassociatedHitsDecorator
     unassociatedHitsDecorator = DerivationFramework__UnassociatedHitsDecorator (name ='NCBunassociatedHitsDecorator',
@@ -218,8 +218,8 @@ if dumpUnassociatedHits:
     augmentationTools+=[unassociatedHitsDecorator]
 
     if (printIdTrkDxAODConf):
-        print unassociatedHitsDecorator
-        print unassociatedHitsDecorator.properties()
+        print(unassociatedHitsDecorator)
+        print(unassociatedHitsDecorator.properties())
 
 # Add LArCollisionTime augmentation tool
 if dumpLArCollisionTime:
@@ -236,8 +236,8 @@ if dumpLArCollisionTime:
         augmentationTools+=[lArCollisionTimeDecorator]
 
         if (printIdTrkDxAODConf):
-            print lArCollisionTimeDecorator
-            print lArCollisionTimeDecorator.properties()
+            print(lArCollisionTimeDecorator)
+            print(lArCollisionTimeDecorator.properties())
 
 
 #====================================================================
@@ -304,8 +304,8 @@ DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("DFIDNCB_
 
 topSequence += DerivationFrameworkJob
 if (printIdTrkDxAODConf):
-    print DerivationFrameworkJob
-    print DerivationFrameworkJob.properties()
+    print(DerivationFrameworkJob)
+    print(DerivationFrameworkJob.properties())
 
 #################
 ### Steer output file content
@@ -381,4 +381,4 @@ if dumpTriggerInfo:
     IDNCBStream.AddItem("xAOD::TrigNavigationAuxInfo#TrigNavigationAux.")
 
 if (printIdTrkDxAODConf):
-    print IDNCBStream
+    print(IDNCBStream)
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDPIXLUMI.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDPIXLUMI.py
index 072ceeee75090ee54612cfff48dcfd5a11f29337..73a2fecc20e04d910cfdac064ad81f6898e95e00 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDPIXLUMI.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDPIXLUMI.py
@@ -25,8 +25,8 @@ if dumpPixInfo:
     PixelChargeToTConversionSetter = PixelChargeToTConversion(name = "PixelChargeToTConversionSetter") 
     topSequence += PixelChargeToTConversionSetter 
     if (printIdTrkDxAODConf):
-        print PixelChargeToTConversionSetter
-        print PixelChargeToTConversionSetter.properties()
+        print(PixelChargeToTConversionSetter)
+        print(PixelChargeToTConversionSetter.properties())
 
 
 #################
@@ -48,8 +48,8 @@ if dumpPixInfo:
 
     topSequence += xAOD_PixelPrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_PixelPrepDataToxAOD
-        print xAOD_PixelPrepDataToxAOD.properties()
+        print(xAOD_PixelPrepDataToxAOD)
+        print(xAOD_PixelPrepDataToxAOD.properties())
 
 
 #################
@@ -127,8 +127,8 @@ DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("DFTSOS_K
                                                                        OutputLevel =INFO)
 
 if (printIdTrkDxAODConf):
-    print DerivationFrameworkJob
-    print DerivationFrameworkJob.properties()
+    print(DerivationFrameworkJob)
+    print(DerivationFrameworkJob.properties())
 
  
 #====================================================================
@@ -147,4 +147,4 @@ IDPIXLUMISlimmingHelper.AppendContentToStream(IDPIXLUMIStream)
 # Add trigger information
 
 if (printIdTrkDxAODConf):
-    print IDPIXLUMIStream
+    print(IDPIXLUMIStream)
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDTRKLUMI.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDTRKLUMI.py
index e4007db644df1c437c67b76e5f5718d40db4cdf7..036a1b11728bdda2212a3022f91ae9e302f88aa5 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDTRKLUMI.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DAOD_IDTRKLUMI.py
@@ -54,8 +54,8 @@ if dumpPixInfo:
     PixelChargeToTConversionSetter = PixelChargeToTConversion(name = "PixelChargeToTConversionSetter") 
     topSequence += PixelChargeToTConversionSetter 
     if (printIdTrkDxAODConf):
-        print PixelChargeToTConversionSetter
-        print PixelChargeToTConversionSetter.properties()
+        print(PixelChargeToTConversionSetter)
+        print(PixelChargeToTConversionSetter.properties())
 
 #Setup SCT extension efficiency algorithm if running pixel tracklets
 #if InDetFlags.doTrackSegmentsPixel():
@@ -78,8 +78,8 @@ if dumpSctInfo:
 
     topSequence += xAOD_SCT_PrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_SCT_PrepDataToxAOD
-        print xAOD_SCT_PrepDataToxAOD.properties()
+        print(xAOD_SCT_PrepDataToxAOD)
+        print(xAOD_SCT_PrepDataToxAOD.properties())
 
 if dumpPixInfo:
     from InDetPrepRawDataToxAOD.InDetPrepRawDataToxAODConf import PixelPrepDataToxAOD
@@ -95,8 +95,8 @@ if dumpPixInfo:
 
     topSequence += xAOD_PixelPrepDataToxAOD
     if (printIdTrkDxAODConf):
-        print xAOD_PixelPrepDataToxAOD
-        print xAOD_PixelPrepDataToxAOD.properties()
+        print(xAOD_PixelPrepDataToxAOD)
+        print(xAOD_PixelPrepDataToxAOD.properties())
 
 
 #################
@@ -130,8 +130,8 @@ DFTSOS = DerivationFramework__TrackStateOnSurfaceDecorator(name = "DFTrackStateO
 ToolSvc += DFTSOS
 augmentationTools+=[DFTSOS]
 if (printIdTrkDxAODConf):
-    print DFTSOS
-    print DFTSOS.properties()
+    print(DFTSOS)
+    print(DFTSOS.properties())
 
 
 # Add BS error augmentation tool
@@ -144,8 +144,8 @@ if dumpBytestreamErrors:
     ToolSvc += DFEI
     augmentationTools+=[DFEI]
     if (printIdTrkDxAODConf):
-        print DFEI
-        print DFEI.properties()
+        print(DFEI)
+        print(DFEI.properties())
 
 # Add Unassociated hits augmentation tool
 if dumpUnassociatedHits:
@@ -157,8 +157,8 @@ if dumpUnassociatedHits:
                                                                                   TRTDriftCircleContainer = "TRT_DriftCircles")
     ToolSvc += unassociatedHitsGetterTool
     if (printIdTrkDxAODConf):
-        print unassociatedHitsGetterTool
-        print unassociatedHitsGetterTool.properties()
+        print(unassociatedHitsGetterTool)
+        print(unassociatedHitsGetterTool.properties())
 
     from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__UnassociatedHitsDecorator
     unassociatedHitsDecorator = DerivationFramework__UnassociatedHitsDecorator (name ='unassociatedHitsDecorator',
@@ -169,8 +169,8 @@ if dumpUnassociatedHits:
     ToolSvc += unassociatedHitsDecorator
     augmentationTools+=[unassociatedHitsDecorator]
     if (printIdTrkDxAODConf):
-        print unassociatedHitsDecorator
-        print unassociatedHitsDecorator.properties()
+        print(unassociatedHitsDecorator)
+        print(unassociatedHitsDecorator.properties())
 
 # Add LArCollisionTime augmentation tool
 if dumpLArCollisionTime:
@@ -188,8 +188,8 @@ if dumpLArCollisionTime:
         ToolSvc += lArCollisionTimeDecorator
         augmentationTools+=[lArCollisionTimeDecorator]
         if (printIdTrkDxAODConf):
-            print lArCollisionTimeDecorator
-            print lArCollisionTimeDecorator.properties()
+            print(lArCollisionTimeDecorator)
+            print(lArCollisionTimeDecorator.properties())
 
 
 
@@ -201,8 +201,8 @@ DerivationFrameworkJob += CfgMgr.DerivationFramework__CommonAugmentation("DFTSOS
 
 topSequence += DerivationFrameworkJob
 if (printIdTrkDxAODConf):
-    print DerivationFrameworkJob
-    print DerivationFrameworkJob.properties()
+    print(DerivationFrameworkJob)
+    print(DerivationFrameworkJob.properties())
 
 #################
 ### Steer output file content
@@ -263,4 +263,4 @@ if dumpTriggerInfo:
     IDTRKLUMIStream.AddItem("xAOD::TrigT2MbtsBitsAuxContainer#HLT_xAOD__TrigT2MbtsBitsContainer_T2MbtsAux.")
 
 if (printIdTrkDxAODConf):
-    print IDTRKLUMIStream
+    print(IDTRKLUMIStream)
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DESD_DEDX.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DESD_DEDX.py
index 52f4a7e451cb9dcb2543835636c9acfa0dc84e2b..2d9c6e1d3b5d273022073d6a3f550062dc990621 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DESD_DEDX.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DESD_DEDX.py
@@ -35,7 +35,7 @@ DESD_DEDX_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "DES
                                                                         expression = selection)
 
 ToolSvc += DESD_DEDX_SkimmingTool
-print DESD_DEDX_SkimmingTool
+print(DESD_DEDX_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGJPSI.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGJPSI.py
index d4ea9dff565f7492b4c6176d09085dd356f4ef0c..b1f280a35552762ce291288c003e67866637a19d 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGJPSI.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGJPSI.py
@@ -42,7 +42,7 @@ DRAW_EGJPSI_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "D
                                                                         expression = draw_egcalib)
 
 ToolSvc += DRAW_EGJPSI_SkimmingTool
-print DRAW_EGJPSI_SkimmingTool
+print(DRAW_EGJPSI_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGZ.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGZ.py
index 18a056377df5462b1407f25024f98363e4cbadd9..4ee120f2a5e4b6d87a8168e8f0d53bbd2cd3df2b 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGZ.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EGZ.py
@@ -57,7 +57,7 @@ DRAW_EGZ_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "DRAW
                                                                         expression = draw_egz)
 
 ToolSvc += DRAW_EGZ_SkimmingTool
-print DRAW_EGZ_SkimmingTool
+print(DRAW_EGZ_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EMU.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EMU.py
index 09ea6f473113b108b6340b5ab092454a2187ca72..c106e817be9373801e2e699c50ebeca99cac6b65 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EMU.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_EMU.py
@@ -24,7 +24,7 @@ DRAW_EMU_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "DRAW
                                                                         expression = draw_emu)
 
 ToolSvc += DRAW_EMU_SkimmingTool
-print DRAW_EMU_SkimmingTool
+print(DRAW_EMU_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TAUMUH.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TAUMUH.py
index 9456be84fea2045c4a87677f6dabeeb783ea860a..241181895fe8545ebc7ce29c79cc295f98697717 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TAUMUH.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TAUMUH.py
@@ -41,14 +41,14 @@ TAUMUH_DeltaRTool = DerivationFramework__DeltaRTool(  name                    =
                                                       StoreGateEntryName      = "TAUMUH_DeltaR"
                                                       )
 ToolSvc += TAUMUH_DeltaRTool
-print TAUMUH_DeltaRTool
+print(TAUMUH_DeltaRTool)
 # Event selection tool
 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool
 DRAW_TAUMUH_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "DRAW_TAUMUH_SkimmingTool",
                                                                         expression = draw_taumuh)
 
 ToolSvc += DRAW_TAUMUH_SkimmingTool
-print DRAW_TAUMUH_SkimmingTool
+print(DRAW_TAUMUH_SkimmingTool)
 
 
 # Kernel algorithm
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TOPSLMU.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TOPSLMU.py
index 0dffbd16a48519c326336cbac0446f7c36c2a4a6..97d58317dd4e807f0cce4f4b4d6ff99938fcfbd5 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TOPSLMU.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_TOPSLMU.py
@@ -33,8 +33,8 @@ muTriggers = ['HLT_mu20_iloose_L1MU15','HLT_mu24_ivarmedium','HLT_mu24_imedium']
 # Event selection string: 
 draw_ttbar = '( count('+sel_muon+')==1 && count('+sel_jet+')>=3 && count('+sel_bjet+')>=1 && count('+sel_el+') == 0 && count('+met+') >=1 ) && (' + " || ".join(muTriggers) + ')'
 
-print "This is the selection string that will be used for DRAW_TOPSLMU:"
-print draw_ttbar
+print("This is the selection string that will be used for DRAW_TOPSLMU:")
+print(draw_ttbar)
 
 # Event selection tool
 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool
@@ -43,8 +43,8 @@ DRAW_TOPSLMU_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "
 
 ToolSvc += DRAW_TOPSLMU_SkimmingTool
 
-print "Skimming tool:"
-print DRAW_TOPSLMU_SkimmingTool
+print("Skimming tool:")
+print(DRAW_TOPSLMU_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_ZMUMU.py b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_ZMUMU.py
index e51d461b707c48f18ec1d2942bb2ab53d4be65dc..8e19571da344332decba26c505d272272ca4eeb8 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_ZMUMU.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/DRAW_ZMUMU.py
@@ -43,7 +43,7 @@ goodMuonTool.MuQuality = 3
 # turn of the momentum correction which is not needed for IDHits cut and Preselection
 goodMuonTool.TurnOffMomCorr = True
 ToolSvc += goodMuonTool
-print goodMuonTool
+print(goodMuonTool)
 from PrimaryDPDMaker.PrimaryDPDMakerConf import DerivationFramework__DRAW_ZMUMUSkimmingTool
 goodMuonSkimmingTool = DerivationFramework__DRAW_ZMUMUSkimmingTool(name = "DRAW_ZMUMU_GoodMuon_SkimmingTool",
                                                                MuonContainerKey = "Muons",
@@ -54,8 +54,8 @@ ToolSvc += goodMuonSkimmingTool
 
 periods = TriggerPeriod.future | TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017
 allUnprescaledTriggers = TriggerAPI.getLowestUnprescaledAnyPeriod(periods, TriggerType.mu)
-print "DRAW_ZMUMU: will skim on an OR of the following muon triggers (list provided at run-time by the TriggerAPI):"
-print allUnprescaledTriggers
+print("DRAW_ZMUMU: will skim on an OR of the following muon triggers (list provided at run-time by the TriggerAPI):")
+print(allUnprescaledTriggers)
 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool
 triggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(name = "DRAWZMUMUTriggerSkimmingTool", 
                                                                TriggerListOR = allUnprescaledTriggers)
@@ -68,7 +68,7 @@ DRAW_ZMUMU_SkimmingTool = DerivationFramework__FilterCombinationAND( name = "DRA
                                                                                  goodMuonSkimmingTool, 
                                                                                  triggerSkimmingTool] )
 ToolSvc += DRAW_ZMUMU_SkimmingTool
-print DRAW_ZMUMU_SkimmingTool
+print(DRAW_ZMUMU_SkimmingTool)
 
 # Kernel algorithm
 from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_MS.py b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_MS.py
index 7f781b8683497e168aa2a87df479154eab03ef52..ad5c959959a81636c7265d95f0449310a5369bd6 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_MS.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_MS.py
@@ -34,7 +34,7 @@ from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
 ##====================================================================
 if rec.OutputLevel() <= DEBUG:
     muonDPDStream_msg.info('Values of all PerfDESDM_MS flags:')
-    print primDPDAlignTrigMu
+    print(primDPDAlignTrigMu)
     pass
 
 # ============================================================================
@@ -86,18 +86,18 @@ MuonNoAlgTrig_TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(
                                                                                                   "HLT_noalg_L1MU11","HLT_noalg_L1MU15","HLT_noalg_L1MU20",
                                                                                                   "HLT_noalg_L12MU4","HLT_noalg_L12MU6","HLT_noalg_L12MU10"] )
 ToolSvc += MuonNoAlgTrig_TriggerSkimmingTool
-print MuonNoAlgTrig_TriggerSkimmingTool
+print(MuonNoAlgTrig_TriggerSkimmingTool)
 
 MuonNoAlgTrig_PrescaleSkimmingTool = DerivationFramework__PrescaleTool ( name = "MuonNoAlgTrig_PrescaleSkimmingTool",
                                                                          Prescale = 1)
 
 ToolSvc += MuonNoAlgTrig_PrescaleSkimmingTool
-print MuonNoAlgTrig_PrescaleSkimmingTool
+print(MuonNoAlgTrig_PrescaleSkimmingTool)
 
 
 MuonNoAlgTrig_EventSkimmingTool = DerivationFramework__FilterCombinationAND(name="MuonNoAlgTrig_EventSkimmingTool",FilterList=[MuonNoAlgTrig_TriggerSkimmingTool, MuonNoAlgTrig_PrescaleSkimmingTool])
 ToolSvc += MuonNoAlgTrig_EventSkimmingTool
-print MuonNoAlgTrig_EventSkimmingTool
+print(MuonNoAlgTrig_EventSkimmingTool)
 
 # ------------------------------------------------
 # Orthogonal triggers (RPC needs)
@@ -122,7 +122,7 @@ ideta|smooth)_(HLTCalo|iloose|L1EM[0-9]*VH|L1EM[0-9]*)",
                                                                                              "HLT_mb.*"] )
 
 ToolSvc += OrthoTrig_TriggerSkimmingTool
-print OrthoTrig_TriggerSkimmingTool
+print(OrthoTrig_TriggerSkimmingTool)
 
 # ------------------------------------------------
 # Offline orthogonal trigger selection (low pT)
@@ -130,17 +130,17 @@ print OrthoTrig_TriggerSkimmingTool
 OrthoTrig_LowpTMuonEventStringSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "OrthoTrig_LowpTMuonEventStringSkimmingTool",
                                                                                          expression = "(count(Muons.muonType == 0 && Muons.pt > 4*GeV && Muons.pt < 15*GeV) > 0)")
 ToolSvc += OrthoTrig_LowpTMuonEventStringSkimmingTool
-print OrthoTrig_LowpTMuonEventStringSkimmingTool
+print(OrthoTrig_LowpTMuonEventStringSkimmingTool)
 
 OrthoTrig_LowpTMuonPrescaleSkimmingTool = DerivationFramework__PrescaleTool(   name  = "OrthoTrig_LowpTMuonPrescaleSkimmingTool",
                                                                                Prescale = 10)
 ToolSvc += OrthoTrig_LowpTMuonPrescaleSkimmingTool
-print OrthoTrig_LowpTMuonPrescaleSkimmingTool
+print(OrthoTrig_LowpTMuonPrescaleSkimmingTool)
 
 OrthoTrig_LowpTMuonEventSkimmingTool = DerivationFramework__FilterCombinationAND(name="OrthoTrig_LowpTMuonEventSkimmingTool",FilterList=[OrthoTrig_LowpTMuonEventStringSkimmingTool, OrthoTrig_LowpTMuonPrescaleSkimmingTool])
 
 ToolSvc += OrthoTrig_LowpTMuonEventSkimmingTool
-print OrthoTrig_LowpTMuonEventSkimmingTool
+print(OrthoTrig_LowpTMuonEventSkimmingTool)
 
 # ------------------------------------------------
 # Offline orthogonal trigger selection (mid pT)
@@ -149,17 +149,17 @@ OrthoTrig_MidpTMuonEventStringSkimmingTool = DerivationFramework__xAODStringSkim
                                                                                          expression = "(count(Muons.muonType == 0 && Muons.pt >= 15*GeV) > 0)")
 
 ToolSvc += OrthoTrig_MidpTMuonEventStringSkimmingTool
-print OrthoTrig_MidpTMuonEventStringSkimmingTool
+print(OrthoTrig_MidpTMuonEventStringSkimmingTool)
 
 OrthoTrig_MidpTMuonPrescaleSkimmingTool = DerivationFramework__PrescaleTool ( name = "OrthoTrig_MidpTMuonPrescaleSkimmingTool",
                                                                               Prescale = 1)
 
 ToolSvc += OrthoTrig_MidpTMuonPrescaleSkimmingTool
-print OrthoTrig_MidpTMuonPrescaleSkimmingTool
+print(OrthoTrig_MidpTMuonPrescaleSkimmingTool)
 
 OrthoTrig_MidpTMuonEventSkimmingTool = DerivationFramework__FilterCombinationAND(name="OrthoTrig_MidpTMuonEventSkimmingTool",FilterList=[OrthoTrig_MidpTMuonEventStringSkimmingTool, OrthoTrig_MidpTMuonPrescaleSkimmingTool])
 ToolSvc += OrthoTrig_MidpTMuonEventSkimmingTool
-print OrthoTrig_MidpTMuonEventSkimmingTool
+print(OrthoTrig_MidpTMuonEventSkimmingTool)
 
 # ------------------------------------------------
 # Ortho trig events accepted if there is: 
@@ -168,12 +168,12 @@ print OrthoTrig_MidpTMuonEventSkimmingTool
 
 OrthoTrig_pTMuonEventSkimmingTool=DerivationFramework__FilterCombinationOR(name="OrthoTrig_pTMuonEventSkimmingTool",FilterList=[OrthoTrig_LowpTMuonEventSkimmingTool, OrthoTrig_MidpTMuonEventSkimmingTool])
 ToolSvc += OrthoTrig_pTMuonEventSkimmingTool
-print OrthoTrig_pTMuonEventSkimmingTool
+print(OrthoTrig_pTMuonEventSkimmingTool)
 
 OrthoTrig_EventSkimmingTool=DerivationFramework__FilterCombinationAND(name="OrthoTrig_EventSkimmingTool",FilterList=[OrthoTrig_pTMuonEventSkimmingTool, OrthoTrig_TriggerSkimmingTool])
 
 ToolSvc += OrthoTrig_EventSkimmingTool
-print OrthoTrig_EventSkimmingTool
+print(OrthoTrig_EventSkimmingTool)
 
 # ------------------------------------------------
 # JPsi Trigger selection
@@ -184,12 +184,12 @@ JPsiTrig_TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(   name
                                                                                             "HLT_mu6_bJpsi_Trkloose", "HLT_mu18_bJpsi_Trkloose", 
                                                                                             "HLT_mu4_bJpsi_Trkloose", "HLT_mu20_msonly_mu6noL1_msonly_nscan05"] )
 ToolSvc += JPsiTrig_TriggerSkimmingTool
-print JPsiTrig_TriggerSkimmingTool
+print(JPsiTrig_TriggerSkimmingTool)
 
 JPsiTrig_PrescaleSkimmingTool = DerivationFramework__PrescaleTool(   name  = "JPsiTrig_PrescaleSkimmingTool",
                                                                      Prescale = 2)
 ToolSvc += JPsiTrig_PrescaleSkimmingTool
-print JPsiTrig_PrescaleSkimmingTool
+print(JPsiTrig_PrescaleSkimmingTool)
 
 # ------------------------------------------------
 # Jpsi trig events accepted if there is:
@@ -197,7 +197,7 @@ print JPsiTrig_PrescaleSkimmingTool
 JpsiTrig_EventSkimmingTool = DerivationFramework__FilterCombinationAND(name="JpsiTrig_EventSkimmingTool",FilterList=[JPsiTrig_PrescaleSkimmingTool, JPsiTrig_TriggerSkimmingTool])
 
 ToolSvc += JpsiTrig_EventSkimmingTool
-print JpsiTrig_EventSkimmingTool
+print(JpsiTrig_EventSkimmingTool)
 
 # ------------------------------------------------
 #For TGC, Muon HLT triggers:
@@ -207,51 +207,51 @@ MuonHLTTrig_TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(   na
                                                                               TriggerListOR =  ["HLT_mu.*"] )
 
 ToolSvc += MuonHLTTrig_TriggerSkimmingTool
-print MuonHLTTrig_TriggerSkimmingTool
+print(MuonHLTTrig_TriggerSkimmingTool)
 
 # ------------------------------------------------
 # Dimuon selection
 MuonHLTTrig_DiMuonEventStringSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "MuonHLTTrig_DiMuonEventStringSkimmingTool",
                                                                                         expression = "( (count(Muons.muonType == 0 && Muons.pt > 25*GeV)  > 0) && (count(Muons.muonType == 0 && Muons.pt > 10*GeV)  > 1) )")
 ToolSvc += MuonHLTTrig_DiMuonEventStringSkimmingTool
-print MuonHLTTrig_DiMuonEventStringSkimmingTool
+print(MuonHLTTrig_DiMuonEventStringSkimmingTool)
 
 MuonHLTTrig_DiMuonEventPrescaleSkimmingTool = DerivationFramework__PrescaleTool(   name  = "MuonHLTTrig_DiMuonEventPrescaleSkimmingTool",
                                                                                    Prescale = 1)
 ToolSvc += MuonHLTTrig_DiMuonEventPrescaleSkimmingTool
-print MuonHLTTrig_DiMuonEventPrescaleSkimmingTool
+print(MuonHLTTrig_DiMuonEventPrescaleSkimmingTool)
 
 MuonHLTTrig_DiMuonEventSkimmingTool = DerivationFramework__FilterCombinationAND(name="MuonHLTTrig_DiMuonEventSkimmingTool",FilterList=[MuonHLTTrig_DiMuonEventStringSkimmingTool,\
                                                                                                                                            MuonHLTTrig_DiMuonEventPrescaleSkimmingTool])
 ToolSvc += MuonHLTTrig_DiMuonEventSkimmingTool
-print MuonHLTTrig_DiMuonEventSkimmingTool
+print(MuonHLTTrig_DiMuonEventSkimmingTool)
 
 # ------------------------------------------------
 # Mid pT muon selection
 MuonHLTTrig_MidpTEventStringSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "MuonHLTTrig_MidpTEventStringSkimmingTool",
                                                                                        expression = "(count(Muons.muonType == 0 && Muons.pt > 25*GeV) > 0)")
 ToolSvc += MuonHLTTrig_MidpTEventStringSkimmingTool
-print MuonHLTTrig_MidpTEventStringSkimmingTool
+print(MuonHLTTrig_MidpTEventStringSkimmingTool)
 
 MuonHLTTrig_MidpTMuonPrescaleSkimmingTool = DerivationFramework__PrescaleTool(   name  = "MuonHLTTrig_MidpTMuonPrescaleSkimmingTool",
                                                                                  Prescale = 2) #okay with 2
 ToolSvc += MuonHLTTrig_MidpTMuonPrescaleSkimmingTool
-print MuonHLTTrig_MidpTMuonPrescaleSkimmingTool
+print(MuonHLTTrig_MidpTMuonPrescaleSkimmingTool)
 
 MuonHLTTrig_MidpTMuonEventSkimmingTool=DerivationFramework__FilterCombinationAND(name="MuonHLTTrig_MidpTMuonEventSkimmingTool",FilterList=[MuonHLTTrig_MidpTEventStringSkimmingTool, MuonHLTTrig_MidpTMuonPrescaleSkimmingTool])
 ToolSvc += MuonHLTTrig_MidpTMuonEventSkimmingTool
-print MuonHLTTrig_MidpTMuonEventSkimmingTool
+print(MuonHLTTrig_MidpTMuonEventSkimmingTool)
 
 # ------------------------------------------------
 # Muon HLT selection with combined logic
 
 MuonHLTTrig_pTMuonEventSkimmingTool=DerivationFramework__FilterCombinationOR(name="MuonHLTTrig_pTMuonEventSkimmingTool",FilterList=[MuonHLTTrig_MidpTMuonEventSkimmingTool, MuonHLTTrig_DiMuonEventSkimmingTool])
 ToolSvc += MuonHLTTrig_pTMuonEventSkimmingTool
-print MuonHLTTrig_pTMuonEventSkimmingTool
+print(MuonHLTTrig_pTMuonEventSkimmingTool)
 
 MuonHLTTrig_EventSkimmingTool=DerivationFramework__FilterCombinationAND(name="MuonHLTTrig_EventSkimmingTool",FilterList=[MuonHLTTrig_pTMuonEventSkimmingTool, MuonHLTTrig_TriggerSkimmingTool])
 ToolSvc += MuonHLTTrig_EventSkimmingTool
-print MuonHLTTrig_EventSkimmingTool
+print(MuonHLTTrig_EventSkimmingTool)
 
 # ================================================
 # ------------------------------------------------
@@ -264,7 +264,7 @@ if primDPDAlignTrigMu.doAlignmentFormat():
                                                                                    expression = "(count(Muons.muonType == 0 && Muons.pt > 5*GeV) > 0)")
     
     ToolSvc += AlignmentEventStringSkimmingTool
-    print AlignmentEventStringSkimmingTool
+    print(AlignmentEventStringSkimmingTool)
     desdAlignmentTriggerMuonSequence+=CfgMgr.DerivationFramework__DerivationKernel("EventSkimmingKernel", SkimmingTools=[AlignmentEventStringSkimmingTool])
     
 else:
@@ -283,7 +283,7 @@ if hasMuons:
     filAlg_CT=muonTrkTrackThinTool("muonTrkTrackThinTool_CT", TrackCollectionKey = "CombinedMuonTracks")
     desdAlignmentTriggerMuonSequence+=filAlg_CT
     pass
-print topSequence
+print(topSequence)
         
 ##====================================================================
 ## Define this Muon DPD output stream
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_TILEMU.py b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_TILEMU.py
index 085cc497eae4bab929cd984c6bc50ee9692cbe1f..72bfad7160453ee7e7a662e2150f85aa2db1056e 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_TILEMU.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDESDM_TILEMU.py
@@ -1,199 +1,199 @@
-##----------------------------------------------------------------------
-## Name: PerfDESDM_TILEMU.py
-##
-## Author: Tomoe Kishimoto
-## Email:  Tomoe.Kishimoto@cern.ch
-##
-## Description: This defines the content of the commissioning stream for 
-##              Tile-Muon trigger
-##
-##----------------------------------------------------------------------
-
-# If this file is already included, don't include it again
-include.block("PrimaryDPDMaker/PerfDESDM_TILEMU.py")
-
-## for messaging
-from AthenaCommon.Logging import logging
-muonDPDStream_msg = logging.getLogger( 'PerfDESDM_TILEMUStream' )
-
-## Import the module that allows to use named units, e.g. GeV
-import AthenaCommon.SystemOfUnits as Units
-
-## Include the job property flags for this package
-from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
-from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName
-from RecExConfig.RecFlags import rec
-
-## Include the job property flags for this package
-from PrimaryDPDMaker.PrimaryDESDMFlags_TileMu import primDESDMTileMu
-
-## This handels multiple output streams
-from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
-
-##======================================================================
-## Write the used options to the log file
-##======================================================================
-if rec.OutputLevel() <= DEBUG:
-    muonDPDStream_msg.info('Values of all PerfDESDM_TileMu flags:')
-    print primDESDMTileMu
-    pass
-
-# ======================================================================
-# Create a sub-sequence where all needed algorithms will run in
-# ======================================================================
-import AthenaCommon.CfgMgr as CfgMgr
-desdTileMuonSequence = CfgMgr.AthSequencer('DESDM_TILEMU_Sequence',
-                                          StopOverride = True )
-topSequence += desdTileMuonSequence
-
-##======================================================================
-## Define the skimming for the DESDM_TILEMU output stream
-##======================================================================
-from PrimaryDPDMaker.LogicalFilterCombiner import LogicalFilterCombiner
-from PrimaryDPDMaker.PrimaryDPDMakerConf   import PrimaryDPDPrescaler
-        
-from RecExConfig.ObjKeyStore import objKeyStore
-muonDPDStream_msg.debug("Items in objKeyStore[transient]: %s" %  
-    objKeyStore['transient'].list() )
-
-# ----------------------------------------------------------------------
-# String based reduction
-# ----------------------------------------------------------------------
-from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool
-from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationOR
-from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationAND
-from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
-
-# ----------------------------------------------------------------------
-# Muon HLT triggers:
-# ----------------------------------------------------------------------
-from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool
-TileMuTriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(name = "TileMuTriggerSkimmingTool",
-    TriggerListOR =  ["HLT_mu.*"] )
-
-ToolSvc += TileMuTriggerSkimmingTool
-print TileMuTriggerSkimmingTool
-
-# ----------------------------------------------------------------------
-# Muon selection
-# ----------------------------------------------------------------------
-muon_type = '(Muons.muonType == 0)'
-muon_pt   = '(Muons.pt > 13*GeV)'
-muon_eta  = '((abs(Muons.eta) < 1.5) && (abs(Muons.eta) > 0.8))'
-
-muon_expression = '(count('+muon_type+' && '+muon_pt+' && '+muon_eta+') > 0)'
-
-TileMuEventSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "TileMuEventSkimmingTool",
-    expression = muon_expression)
-
-ToolSvc += TileMuEventSkimmingTool
-print TileMuEventSkimmingTool
-
-# ----------------------------------------------------------------------
-# Final logical selection
-# ----------------------------------------------------------------------
-TileMuEventFilterTool = DerivationFramework__FilterCombinationAND(name="TileMuEventFilterTool",
-    FilterList=[TileMuTriggerSkimmingTool, TileMuEventSkimmingTool])
-
-ToolSvc += TileMuEventFilterTool
-print TileMuEventFilterTool
-
-
-##======================================================================
-## Define the thinning for the DESDM_TILEMU output stream
-##======================================================================
-from CaloRec.CaloRecConf import CaloThinCellsBySamplingAlg
-TileMuCaloCellThinningAlg = CaloThinCellsBySamplingAlg \
-  ('TileMuCaloCellThinningAlg',
-   StreamName = primDPD.WriteDESDM_TILEMUStream.StreamName,
-   Cells = 'AllCalo',
-   SamplingCellsName = ['TileBar0', 'TileBar1', 'TileBar2',  # Tile cells
-                        'TileGap1', 'TileGap1', 'TileGap3',
-                        'TileExt0', 'TileExt1', 'TileExt2',
-                        ])
-desdTileMuonSequence += TileMuCaloCellThinningAlg
-
-from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
-TileMuMuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name = "TileMuMuonTPThinningTool",
-                                                                          StreamName = primDPD.WriteDESDM_TILEMUStream.StreamName,
-                                                                          MuonKey = "Muons",
-                                                                          InDetTrackParticlesKey  = "InDetTrackParticles")
-ToolSvc += TileMuMuonTPThinningTool
-
-
-##======================================================================
-##  CREATE THE DERIVATION KERNEL ALGORITHM AND PASS THE ABOVE TOOLS
-##======================================================================
-desdTileMuonSequence += CfgMgr.DerivationFramework__DerivationKernel("TileMuKernel", 
-    SkimmingTools = [TileMuEventFilterTool],
-    ThinningTools = [TileMuMuonTPThinningTool])
-
-##======================================================================
-## Define this Muon DPD output stream
-##======================================================================
-streamName = primDPD.WriteDESDM_TILEMUStream.StreamName
-fileName   = buildFileName( primDPD.WriteDESDM_TILEMUStream )
-algsToBookkeep = []
-
-if primDPD.WriteDESDM_TILEMUStream.isVirtual or primDPD.isVirtual() :
-    TileMuStream = MSMgr.NewVirtualStream( streamName, fileName )
-    pass
-else:
-    TileMuStream = MSMgr.NewPoolStream( streamName, fileName )
-    # Add the per-event bookkeeping 
-    TileMuStream.AddOtherAlgsToBookkeep( algsToBookkeep )
-    pass
-
-if primDESDMTileMu.ApplySkimming():
-    TileMuStream.AcceptAlgs(["TileMuKernel"])
-    pass
-
-augStream = MSMgr.GetStream(streamName)
-evtStream = augStream.GetEventStream()
-
-#-----------------------------------------------------------------------
-# Add the containers to the output stream
-#-----------------------------------------------------------------------
-from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput
-ExcludeList=[]
-
-#dpdOutput.addAllItemsFromInputExceptExcludeList(streamName,ExcludeList)
-
-trackParticleAuxExclusions="-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
-
-
-TileMuStream.AddItem(["xAOD::EventInfo#*"])
-TileMuStream.AddItem(["xAOD::EventAuxInfo#*"])
-
-TileMuStream.AddItem(["xAOD::MuonContainer#Muons"])
-TileMuStream.AddItem(["xAOD::MuonAuxContainer#MuonsAux."])
-
-TileMuStream.AddItem(["xAOD::TrigNavigation#TrigNavigation"])
-TileMuStream.AddItem(["xAOD::TrigNavigationAuxInfo#TrigNavigationAux."])
-TileMuStream.AddItem(["xAOD::TrigDecision#xTrigDecision"])
-TileMuStream.AddItem(["xAOD::TrigDecisionAuxInfo#xTrigDecisionAux."])
-
-TileMuStream.AddItem(["xAOD::MuonRoIContainer#LVL1MuonRoIs"])
-TileMuStream.AddItem(["xAOD::MuonRoIAuxContainer#LVL1MuonRoIsAux."])
-TileMuStream.AddItem(["MuCTPI_RDO#MUCTPI_RDO"])
-
-TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC"])
-TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC"])
-TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollection"])
-
-TileMuStream.AddItem(["TileDigitsContainer#MuRcvDigitsCnt"])
-TileMuStream.AddItem(["TileRawChannelContainer#MuRcvRawChCnt"])
-TileMuStream.AddItem(["TileMuonReceiverContainer#TileMuRcvCnt"])
-TileMuStream.AddItem(["CaloCellContainer#AllCalo"])
-
-TileMuStream.AddItem(["xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuonEFInfo"])
-TileMuStream.AddItem(["xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuonEFInfoAux."])
-
-TileMuStream.AddItem(["xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles"])
-TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux."+trackParticleAuxExclusions])
-TileMuStream.AddItem(["xAOD::TrackParticleContainer#CombinedMuonTrackParticles"])
-TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#CombinedMuonTrackParticlesAux."+trackParticleAuxExclusions])
-TileMuStream.AddItem(["xAOD::TrackParticleContainer#ExtrapolatedMuonTrackParticles"])
-TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#ExtrapolatedMuonTrackParticlesAux."+trackParticleAuxExclusions])
-TileMuStream.AddItem(["xAOD::TrackParticleContainer#InDetTrackParticles"]) 
-TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux."+trackParticleAuxExclusions])
+##----------------------------------------------------------------------
+## Name: PerfDESDM_TILEMU.py
+##
+## Author: Tomoe Kishimoto
+## Email:  Tomoe.Kishimoto@cern.ch
+##
+## Description: This defines the content of the commissioning stream for 
+##              Tile-Muon trigger
+##
+##----------------------------------------------------------------------
+
+# If this file is already included, don't include it again
+include.block("PrimaryDPDMaker/PerfDESDM_TILEMU.py")
+
+## for messaging
+from AthenaCommon.Logging import logging
+muonDPDStream_msg = logging.getLogger( 'PerfDESDM_TILEMUStream' )
+
+## Import the module that allows to use named units, e.g. GeV
+import AthenaCommon.SystemOfUnits as Units
+
+## Include the job property flags for this package
+from PrimaryDPDMaker.PrimaryDPDFlags import primDPD
+from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName
+from RecExConfig.RecFlags import rec
+
+## Include the job property flags for this package
+from PrimaryDPDMaker.PrimaryDESDMFlags_TileMu import primDESDMTileMu
+
+## This handels multiple output streams
+from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
+
+##======================================================================
+## Write the used options to the log file
+##======================================================================
+if rec.OutputLevel() <= DEBUG:
+    muonDPDStream_msg.info('Values of all PerfDESDM_TileMu flags:')
+    print(primDESDMTileMu)
+    pass
+
+# ======================================================================
+# Create a sub-sequence where all needed algorithms will run in
+# ======================================================================
+import AthenaCommon.CfgMgr as CfgMgr
+desdTileMuonSequence = CfgMgr.AthSequencer('DESDM_TILEMU_Sequence',
+                                          StopOverride = True )
+topSequence += desdTileMuonSequence
+
+##======================================================================
+## Define the skimming for the DESDM_TILEMU output stream
+##======================================================================
+from PrimaryDPDMaker.LogicalFilterCombiner import LogicalFilterCombiner
+from PrimaryDPDMaker.PrimaryDPDMakerConf   import PrimaryDPDPrescaler
+        
+from RecExConfig.ObjKeyStore import objKeyStore
+muonDPDStream_msg.debug("Items in objKeyStore[transient]: %s" %  
+    objKeyStore['transient'].list() )
+
+# ----------------------------------------------------------------------
+# String based reduction
+# ----------------------------------------------------------------------
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationOR
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationAND
+from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
+
+# ----------------------------------------------------------------------
+# Muon HLT triggers:
+# ----------------------------------------------------------------------
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool
+TileMuTriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool(name = "TileMuTriggerSkimmingTool",
+    TriggerListOR =  ["HLT_mu.*"] )
+
+ToolSvc += TileMuTriggerSkimmingTool
+print(TileMuTriggerSkimmingTool)
+
+# ----------------------------------------------------------------------
+# Muon selection
+# ----------------------------------------------------------------------
+muon_type = '(Muons.muonType == 0)'
+muon_pt   = '(Muons.pt > 13*GeV)'
+muon_eta  = '((abs(Muons.eta) < 1.5) && (abs(Muons.eta) > 0.8))'
+
+muon_expression = '(count('+muon_type+' && '+muon_pt+' && '+muon_eta+') > 0)'
+
+TileMuEventSkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "TileMuEventSkimmingTool",
+    expression = muon_expression)
+
+ToolSvc += TileMuEventSkimmingTool
+print(TileMuEventSkimmingTool)
+
+# ----------------------------------------------------------------------
+# Final logical selection
+# ----------------------------------------------------------------------
+TileMuEventFilterTool = DerivationFramework__FilterCombinationAND(name="TileMuEventFilterTool",
+    FilterList=[TileMuTriggerSkimmingTool, TileMuEventSkimmingTool])
+
+ToolSvc += TileMuEventFilterTool
+print(TileMuEventFilterTool)
+
+
+##======================================================================
+## Define the thinning for the DESDM_TILEMU output stream
+##======================================================================
+from CaloRec.CaloRecConf import CaloThinCellsBySamplingAlg
+TileMuCaloCellThinningAlg = CaloThinCellsBySamplingAlg \
+  ('TileMuCaloCellThinningAlg',
+   StreamName = primDPD.WriteDESDM_TILEMUStream.StreamName,
+   Cells = 'AllCalo',
+   SamplingCellsName = ['TileBar0', 'TileBar1', 'TileBar2',  # Tile cells
+                        'TileGap1', 'TileGap1', 'TileGap3',
+                        'TileExt0', 'TileExt1', 'TileExt2',
+                        ])
+desdTileMuonSequence += TileMuCaloCellThinningAlg
+
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
+TileMuMuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name = "TileMuMuonTPThinningTool",
+                                                                          StreamName = primDPD.WriteDESDM_TILEMUStream.StreamName,
+                                                                          MuonKey = "Muons",
+                                                                          InDetTrackParticlesKey  = "InDetTrackParticles")
+ToolSvc += TileMuMuonTPThinningTool
+
+
+##======================================================================
+##  CREATE THE DERIVATION KERNEL ALGORITHM AND PASS THE ABOVE TOOLS
+##======================================================================
+desdTileMuonSequence += CfgMgr.DerivationFramework__DerivationKernel("TileMuKernel", 
+    SkimmingTools = [TileMuEventFilterTool],
+    ThinningTools = [TileMuMuonTPThinningTool])
+
+##======================================================================
+## Define this Muon DPD output stream
+##======================================================================
+streamName = primDPD.WriteDESDM_TILEMUStream.StreamName
+fileName   = buildFileName( primDPD.WriteDESDM_TILEMUStream )
+algsToBookkeep = []
+
+if primDPD.WriteDESDM_TILEMUStream.isVirtual or primDPD.isVirtual() :
+    TileMuStream = MSMgr.NewVirtualStream( streamName, fileName )
+    pass
+else:
+    TileMuStream = MSMgr.NewPoolStream( streamName, fileName )
+    # Add the per-event bookkeeping 
+    TileMuStream.AddOtherAlgsToBookkeep( algsToBookkeep )
+    pass
+
+if primDESDMTileMu.ApplySkimming():
+    TileMuStream.AcceptAlgs(["TileMuKernel"])
+    pass
+
+augStream = MSMgr.GetStream(streamName)
+evtStream = augStream.GetEventStream()
+
+#-----------------------------------------------------------------------
+# Add the containers to the output stream
+#-----------------------------------------------------------------------
+from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput
+ExcludeList=[]
+
+#dpdOutput.addAllItemsFromInputExceptExcludeList(streamName,ExcludeList)
+
+trackParticleAuxExclusions="-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
+
+
+TileMuStream.AddItem(["xAOD::EventInfo#*"])
+TileMuStream.AddItem(["xAOD::EventAuxInfo#*"])
+
+TileMuStream.AddItem(["xAOD::MuonContainer#Muons"])
+TileMuStream.AddItem(["xAOD::MuonAuxContainer#MuonsAux."])
+
+TileMuStream.AddItem(["xAOD::TrigNavigation#TrigNavigation"])
+TileMuStream.AddItem(["xAOD::TrigNavigationAuxInfo#TrigNavigationAux."])
+TileMuStream.AddItem(["xAOD::TrigDecision#xTrigDecision"])
+TileMuStream.AddItem(["xAOD::TrigDecisionAuxInfo#xTrigDecisionAux."])
+
+TileMuStream.AddItem(["xAOD::MuonRoIContainer#LVL1MuonRoIs"])
+TileMuStream.AddItem(["xAOD::MuonRoIAuxContainer#LVL1MuonRoIsAux."])
+TileMuStream.AddItem(["MuCTPI_RDO#MUCTPI_RDO"])
+
+TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC"])
+TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC"])
+TileMuStream.AddItem(["Muon::TgcCoinDataContainer#TrigT1CoinDataCollection"])
+
+TileMuStream.AddItem(["TileDigitsContainer#MuRcvDigitsCnt"])
+TileMuStream.AddItem(["TileRawChannelContainer#MuRcvRawChCnt"])
+TileMuStream.AddItem(["TileMuonReceiverContainer#TileMuRcvCnt"])
+TileMuStream.AddItem(["CaloCellContainer#AllCalo"])
+
+TileMuStream.AddItem(["xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuonEFInfo"])
+TileMuStream.AddItem(["xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuonEFInfoAux."])
+
+TileMuStream.AddItem(["xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles"])
+TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux."+trackParticleAuxExclusions])
+TileMuStream.AddItem(["xAOD::TrackParticleContainer#CombinedMuonTrackParticles"])
+TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#CombinedMuonTrackParticlesAux."+trackParticleAuxExclusions])
+TileMuStream.AddItem(["xAOD::TrackParticleContainer#ExtrapolatedMuonTrackParticles"])
+TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#ExtrapolatedMuonTrackParticlesAux."+trackParticleAuxExclusions])
+TileMuStream.AddItem(["xAOD::TrackParticleContainer#InDetTrackParticles"]) 
+TileMuStream.AddItem(["xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux."+trackParticleAuxExclusions])
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_EGamma.py b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_EGamma.py
index b0dcb559080a7a69dacf35de6fb0232b3ca03c9d..b576012a036352925d9bc92211b444dc5949467e 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_EGamma.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_EGamma.py
@@ -125,13 +125,13 @@ DESDM_EGAMMAJPsiTrigSkimmingTool = DerivationFramework__TriggerSkimmingTool(   n
 
 
 ToolSvc += DESDM_EGAMMAJPsiTrigSkimmingTool
-print DESDM_EGAMMAJPsiTrigSkimmingTool
+print(DESDM_EGAMMAJPsiTrigSkimmingTool)
 
 # Final event selection filter : 
 
 DESDM_EGAMMAEventFilterTool=DerivationFramework__FilterCombinationOR(name="DESDM_EGAMMAEventFilterTool",FilterList=[DESDM_EGAMMA_SkimmingTool,DESDM_EGAMMAJPsiTrigSkimmingTool])
 ToolSvc+=DESDM_EGAMMAEventFilterTool
-print DESDM_EGAMMAEventFilterTool
+print(DESDM_EGAMMAEventFilterTool)
 
 # =================================================================================
 # Agmentation starts here
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_Jet.py b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_Jet.py
index 9e313a0f48c3d301a5076232f4f2bbb8b84ede36..da717197d28255526a76477bfa98326c5eb1f3cc 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_Jet.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/PerfDPD_Jet.py
@@ -166,7 +166,7 @@ filter_list += TauCombTools
 DESDM_CALJET_ORTool = DerivationFramework__FilterCombinationOR(
     name="TauCalTauTool", FilterList=filter_list)
 ToolSvc += DESDM_CALJET_ORTool
-print DESDM_CALJET_ORTool
+print(DESDM_CALJET_ORTool)
 
 
 
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/PrimaryDPDMaker.py b/PhysicsAnalysis/PrimaryDPDMaker/share/PrimaryDPDMaker.py
index 5e71b5fa94706ea23c1a3aaa84013921280ba7e0..cbe7e459f694b52b0c5179822d21ce23680c8f01 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/PrimaryDPDMaker.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/PrimaryDPDMaker.py
@@ -55,7 +55,7 @@ if len( primDPD.OutputDirectoryName() ) >= 1 and not primDPD.OutputDirectoryName
 
 if rec.OutputLevel() <= INFO:
     primaryDPD_msg.info('Values of all PrimaryDPD flags:')    
-    print primDPD
+    print(primDPD)
 
 
 ##=============================================================================
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/aodtodpd.py b/PhysicsAnalysis/PrimaryDPDMaker/share/aodtodpd.py
index 0278f478b855d87663f8e2e724e2acbe33085ec1..435cdfddb47ab96a04ea490be1b3a59a2a2531c3 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/aodtodpd.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/aodtodpd.py
@@ -33,7 +33,7 @@ rec.readRDO = False
 rec.DPDMakerScripts.append("PrimaryDPDMaker/PrimaryDPDMaker.py")
 
 ## Write the used options to the log file
-print rec
+print(rec)
 
 # The job starts here!
 include ("RecExCommon/RecExCommon_topOptions.py")
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/share/esdtodpd.py b/PhysicsAnalysis/PrimaryDPDMaker/share/esdtodpd.py
index 4097329b490ba9368e8c0d8ebf7be77c18bd5dda..209cbd0324fdd8d69e2ad424303277a9fc1e4352 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/share/esdtodpd.py
+++ b/PhysicsAnalysis/PrimaryDPDMaker/share/esdtodpd.py
@@ -82,8 +82,8 @@ rec.readRDO = False
 rec.DPDMakerScripts.append("PrimaryDPDMaker/PrimaryDPDMaker.py")
 
 ## Write the used options to the log file
-print AODFlags
-print rec
+print(AODFlags)
+print(rec)
 
 # The job starts here!
 include ("RecExCommon/RecExCommon_topOptions.py")
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/PrimaryDPDFlags_RPVLLStream.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/PrimaryDPDFlags_RPVLLStream.py
index 21050a2415a6fa0a60249ec0a4d1b550242e02d9..1ee10967382cfb7218348aba9aacab55e2106408 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/PrimaryDPDFlags_RPVLLStream.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/PrimaryDPDFlags_RPVLLStream.py
@@ -32,18 +32,18 @@ jobproperties.add_Container(PrimaryDPDFlags_RPVLLStream)
 
 primRPVLLDESDM=jobproperties.PrimaryDPDFlags_RPVLLStream
 
-import DiLepFlags
-import DVFlags
-import KinkedTrackFlags
-import EmergingFlags
-import StoppedFlags
-import VH_DVFlags
-import QuirksFlags
-import HipsFlags
-import HNLFlags
-import HVFlags
-import SmpCaloIdFlags
-import SmpMsFlags
+from LongLivedParticleDPDMaker import DiLepFlags
+from LongLivedParticleDPDMaker import DVFlags
+from LongLivedParticleDPDMaker import KinkedTrackFlags
+from LongLivedParticleDPDMaker import EmergingFlags
+from LongLivedParticleDPDMaker import StoppedFlags
+from LongLivedParticleDPDMaker import VH_DVFlags
+from LongLivedParticleDPDMaker import QuirksFlags
+from LongLivedParticleDPDMaker import HipsFlags
+from LongLivedParticleDPDMaker import HNLFlags
+from LongLivedParticleDPDMaker import HVFlags
+from LongLivedParticleDPDMaker import SmpCaloIdFlags
+from LongLivedParticleDPDMaker import SmpMsFlags
 
 #===============================================================
 # Set specific properties for each of the analysis selections
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates.py
index 6713bdf2b65645eebcb30d3e512c94ca79428752..1fc61612877314a2439dad06bfb3b4e75d189264 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates.py
@@ -150,7 +150,7 @@ for lb1 in first_line.split("._"):
     if "lb" in lb1: first_lb = int(lb1[2:])
 current_lb = first_lb
 last_lb = 2500 # will change based on data in file
-print "FIRST LB:", first_lb, current_lb
+print("FIRST LB:", first_lb, current_lb)
 
 # initialize list to hold total number of processed events per lumiblock
 procEvents = []
@@ -192,10 +192,10 @@ procEvents.append(lbEventList[0])
 ## RATE / EFFICIENCY CALCULATIONS ##
 totalEvents = eventList[0]
 totalRPVLLpass = eventList[nft-1]
-print 'Events passing RPVLL filters:', totalRPVLLpass, 'out of', totalEvents
-print 'RPVLL filter efficiency:', float(totalRPVLLpass)/float(totalEvents) * 100., '%'
-print 'RPVLL normalized average rate: ', float(totalRPVLLpass)/float(totalEvents) * 1000., 'Hz'
-print ''
+print('Events passing RPVLL filters:', totalRPVLLpass, 'out of', totalEvents)
+print('RPVLL filter efficiency:', float(totalRPVLLpass)/float(totalEvents) * 100., '%')
+print('RPVLL normalized average rate: ', float(totalRPVLLpass)/float(totalEvents) * 1000., 'Hz')
+print('')
 
 # calculate fraction of events passing each indidivual filter
 fracList_total = [0] * nf # fraction of ALL events passing filter
@@ -203,36 +203,36 @@ fracList_RPVLL = [0] * nf # fraction of RPVLL events passing filter
 filterEvents = [0] * nf
 closureTest = 0
 
-print 'FRACTION OF (RPVLL | TOTAL) EVENTS PASSING EACH FILTER:'
+print('FRACTION OF (RPVLL | TOTAL) EVENTS PASSING EACH FILTER:')
 for filterNo in range(0,nf):
     closureTest += eventList[filterNo*2+1]
     fracList_total[filterNo] = float(eventList[filterNo*2+1])/float(totalEvents)
     fracList_RPVLL[filterNo] = float(eventList[filterNo*2+1])/float(totalRPVLLpass)
     filterEvents[filterNo] = eventList[filterNo*2+1]
     if filterNo != n_aug:
-        print filterNames[filterNo], ' -- ', '%.2E' % Decimal(fracList_RPVLL[filterNo]), ' | ', '%.2E' % Decimal(fracList_total[filterNo])
-print ''
+        print(filterNames[filterNo], ' -- ', '%.2E' % Decimal(fracList_RPVLL[filterNo]), ' | ', '%.2E' % Decimal(fracList_total[filterNo]))
+print('')
 
-print 'NORMALIZED (to 1 kHz) AVERAGE FILTER RATE:'
+print('NORMALIZED (to 1 kHz) AVERAGE FILTER RATE:')
 for filterNo in range(0,nf):
     if filterNo != n_aug:
-        print filterNames[filterNo], ' -- ', '%.2f' % (fracList_total[filterNo]*1000), 'Hz'
-print ''
+        print(filterNames[filterNo], ' -- ', '%.2f' % (fracList_total[filterNo]*1000), 'Hz')
+print('')
 
 # subtract away events corresponding to DVAugmentationKernel -- NOT A FILTER
 # closureTest_mAug will always be larger than totalRPVLLpass because of overlap
 # --> some RPVLL events will pass multiple filters and thus be added multiple times
 closureTest_mAug = closureTest - filterEvents[n_aug]
-print 'Total number of events passing filters / total number of events passing RPVLL: ', closureTest_mAug, '/', totalRPVLLpass, '=', float(closureTest_mAug)/float(totalRPVLLpass) * 100., '%'
-print ''
+print('Total number of events passing filters / total number of events passing RPVLL: ', closureTest_mAug, '/', totalRPVLLpass, '=', float(closureTest_mAug)/float(totalRPVLLpass) * 100., '%')
+print('')
                 
 # printout for easy copy-paste into google spreadsheet
 for n in filterNames_mAug:
-    print n,
-print ''
+    print(n,)
+print('')
 for n in range(0,nf):
-    if n != n_aug: print filterEvents[n],
-print ''
+    if n != n_aug: print(filterEvents[n],)
+print('')
 
 
 
@@ -258,7 +258,7 @@ for lineNo,line in enumerate(lbList):
         lbScaleHist.SetBinError(lbScaleHist.FindBin(float(line.split()[0])), 0)
         #print "TEST: ", line.split()[0], procEvents[l], scale[l], l, lineNo, len(procEvents)
         l += 1
-print ''
+print('')
 
 
 ## DRAW + PRINT PLOTS ##
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates_emergingFilterTest.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates_emergingFilterTest.py
index 039eb0f76560d404284123b59485fdbf47963593..70cc77a6fa49f404b2a2ea83b345e862aaf9ae17 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates_emergingFilterTest.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/compileRPVLLRates_emergingFilterTest.py
@@ -140,11 +140,11 @@ filterNames_di_pt100 = [fn for fn in filterNames_pt100 if 'DiJet' in fn]
 emFilterList = [fn for fn in filterNames_pt100 if 'DiJet' not in fn] + [fn for fn in filterNames_pt120 if 'DiJet' not in fn] + [fn for fn in filterNames_pt130 if 'DiJet' not in fn] + [fn for fn in filterNames_pt140 if 'DiJet' not in fn] + [fn for fn in filterNames_pt150 if 'DiJet' not in fn]
 dijetFilterList = [fn for fn in filterNames_pt100 if 'DiJet' in fn] + [fn for fn in filterNames_pt120 if 'DiJet' in fn] + [fn for fn in filterNames_pt130 if 'DiJet' in fn] + [fn for fn in filterNames_pt140 if 'DiJet' in fn] + [fn for fn in filterNames_pt150 if 'DiJet' in fn]
 for i in emFilterList:
-    print i
-print ''
+    print(i)
+print('')
 for i in dijetFilterList:
-    print i
-print ''
+    print(i)
+print('')
 
 
 
@@ -156,8 +156,8 @@ nft = nf*2+1                        # number of lines per lumiblock
 ix_dv = filterNames.index('DVAugmentationKernel')
 ix_em = filterNames.index('EmergingFilterKernel')
 ix_dj = filterNames.index('EmergingDiJet110FilterKernel')
-print nf, nft, ix_dv, ix_em, ix_dj
-print ''
+print(nf, nft, ix_dv, ix_em, ix_dj)
+print('')
 
 
 
@@ -269,10 +269,10 @@ procEvents.append(lbEventList[0])
 ## RATE / EFFICIENCY CALCULATIONS ##
 totalEvents = eventList[0]
 totalRPVLLpass = eventList[nft-1]
-print 'Events passing RPVLL filters: ', totalRPVLLpass, 'out of ', totalEvents
-print 'RPVLL filter efficiency: ', float(totalRPVLLpass)/float(totalEvents) * 100., '%'
-print 'RPVLL normalized average rate: ', float(totalRPVLLpass)/float(totalEvents) * 1000., 'Hz'
-print ''
+print('Events passing RPVLL filters: ', totalRPVLLpass, 'out of ', totalEvents)
+print('RPVLL filter efficiency: ', float(totalRPVLLpass)/float(totalEvents) * 100., '%')
+print('RPVLL normalized average rate: ', float(totalRPVLLpass)/float(totalEvents) * 1000., 'Hz')
+print('')
 
 # calculate fraction of events passing each individual filter
 fracList_total = [0] * nf # fraction of ALL events passing filter
@@ -280,7 +280,7 @@ fracList_RPVLL = [0] * nf # fraction of RPVLL events passing filter
 filterEvents = [0] * nf
 closureTest = 0
 
-print 'FRACTION OF (RPVLL | TOTAL) EVENTS PASSING EACH FILTER:'
+print('FRACTION OF (RPVLL | TOTAL) EVENTS PASSING EACH FILTER:')
 for filterNo in range(0, nf):
     closureTest += eventList[filterNo*2+1] # add up all filter-passing events
     fracList_total[filterNo] = float(eventList[filterNo*2+1])/float(totalEvents)
@@ -290,11 +290,11 @@ for filterNo in range(0, nf):
 #        print filterNames[filterNo], ' -- ', '%.2E' % Decimal(fracList_RPVLL[filterNo]), ' | ', '%.2E' % Decimal(fracList_total[filterNo])
 #print ''
 
-print 'NORMALIZED (to 1 kHz) AVERAGE FILTER RATE:'
+print('NORMALIZED (to 1 kHz) AVERAGE FILTER RATE:')
 for filterNo in range(0, nf):
     if filterNo != ix_dv:
-        print filterNames[filterNo], ' -- ', '%.2f' % (fracList_total[filterNo]*1000), 'Hz'
-print ''
+        print(filterNames[filterNo], ' -- ', '%.2f' % (fracList_total[filterNo]*1000), 'Hz')
+print('')
 
 ## subtract away events corresponding to DVAugmentationKernel -- NOT A FILTER
 ## closureTest_mAug will always be larger than totalRPVLLpass because of overlap
@@ -325,7 +325,7 @@ for lineNo,line in enumerate(lbList):
     if (float(line.split()[0]) >= first_lb and float(line.split()[0]) <= last_lb):
         lbEventHist.Fill(float(line.split()[0]), procEvents[l])
         lbEventHist.SetBinError(lbEventHist.FindBin(float(line.split()[0])), 0)
-        if (len(line.split()) > 3:
+        if (len(line.split()) > 3):
             lbFullEventHist.Fill(float(line.split()[0]), float(line.split()[3]))
             lbFullEventHist.SetBinError(lbFullEventHist.FindBin(float(line.split()[0])), 0)
             scale.append(float(line.split()[3])/float(procEvents[l]))
@@ -334,9 +334,9 @@ for lineNo,line in enumerate(lbList):
             scale.append(1)
         lbScaleHist.Fill(float(line.split()[0]), scale[l])
         lbScaleHist.SetBinError(lbScaleHist.FindBin(float(line.split()[0])), 0)
-        print line.split()[0], procEvents[l], line.split()[3], scale[l]
+        print(line.split()[0], procEvents[l], line.split()[3], scale[l])
         l += 1
-print ''
+print('')
 
 
 
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readFiles.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readFiles.py
index aa9041bac07a9d7dff2e4e166a1798cd25299001..dd01e375d863457ca7426380f0578168efb6ccbf 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readFiles.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readFiles.py
@@ -14,7 +14,7 @@ mypath = sys.argv[2]
 # get list of log files w/in directory passed as argument
 onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
 
-print 'About to loop through files!'
+print('About to loop through files!')
 for f in onlyfiles:
   badName = False
   #sometimes ls files from mounted eos gives funny results. This should fix that!
@@ -25,7 +25,7 @@ for f in onlyfiles:
     openFile = open(mypath+'.'.join(f.split('.')[3:16]))
   else:
     openFile = open(mypath+f)
-  print f
+  print(f)
   for line in openFile:
     # changed from 'RAWtoESD' to 'RAWtoALL' in R21
     if re.match('RAWtoALL.*RPVLL.*Events',line) or re.match('RAWtoALL.*BSESOutputSvcStreamDRAW_RPVLL.*events',line):
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readGridFiles.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readGridFiles.py
index 602e5b758d042fbb0011f82c60d3f626644c45fe..1811fd0e0e3f08d565e07553294b52e669ff4593 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readGridFiles.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/run/readGridFiles.py
@@ -20,7 +20,7 @@ tgzs = [t for t in listdir(mypath) if isfile(join(mypath, t))]
 os.chdir(mypath)
 
 # loop through tarballs and untar
-print 'About to loop through tarballs!'
+print('About to loop through tarballs!')
 for t in tgzs:
     tar = tarfile.open(t, "r:gz")
     tar.extractall()
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/LongLivedParticleDPDMaker.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/LongLivedParticleDPDMaker.py
index 3a177744d23734932b951ff824eee1bc667049a3..78b9942bf5e8c8920ce6863aca35161f11191de8 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/LongLivedParticleDPDMaker.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/LongLivedParticleDPDMaker.py
@@ -48,7 +48,7 @@ if len( llDPD.OutputDirectoryName() ) >= 1 and not llDPD.OutputDirectoryName().e
 
 if rec.OutputLevel() <= INFO:
     llDPD_msg.info('Values of all LongLivedDPD flags:')    
-    print llDPD
+    print(llDPD)
     pass
 
 ##=============================================================================
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py
index d3053c4a4900a412dad2defed3d51621b88870a7..0adb6123512eb4f548c5092fbfbc69ddb0a60f96 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py
@@ -68,7 +68,7 @@ KinkTrkSingleJetMetFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTo
                                                                                    LeptonPtCut          = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
                                                                                    LeptonEtaMax         = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
 
-print KinkTrkSingleJetMetFilterTool
+print(KinkTrkSingleJetMetFilterTool)
 ToolSvc += KinkTrkSingleJetMetFilterTool
 
 
@@ -102,7 +102,7 @@ KinkTrkMultiJetFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(n
                                                                                LeptonPtCut          = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
                                                                                LeptonEtaMax         = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
 
-print KinkTrkMultiJetFilterTool
+print(KinkTrkMultiJetFilterTool)
 ToolSvc += KinkTrkMultiJetFilterTool
 
 
@@ -136,7 +136,7 @@ KinkTrkStubletFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(na
                                                                               LeptonPtCut          = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax,
                                                                               LeptonEtaMax         = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax)
 
-print KinkTrkStubletFilterTool
+print(KinkTrkStubletFilterTool)
 ToolSvc += KinkTrkStubletFilterTool
 
 KinkTrkStubletPrescaleTool = DerivationFramework__PrescaleTool(name = "KinkTrkStubletPrescaleTool",
@@ -172,7 +172,7 @@ KinkTrkZeeTagTool = DerivationFramework__KinkTrkZeeTagTool(name
                                                            DeltaPhiMax          = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.deltaPhiMax,
                                                            StoreGateKeyPrefix   = "KinkTrk")
 
-print KinkTrkZeeTagTool
+print(KinkTrkZeeTagTool)
 ToolSvc += KinkTrkZeeTagTool
 
 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf import DerivationFramework__KinkTrkZmumuTagTool
@@ -192,7 +192,7 @@ KinkTrkZmumuTagTool = DerivationFramework__KinkTrkZmumuTagTool(name            =
                                                            DeltaPhiMax         = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.deltaPhiMax,
                                                            StoreGateKeyPrefix  = "KinkTrk")
 
-print KinkTrkZmumuTagTool
+print(KinkTrkZmumuTagTool)
 ToolSvc += KinkTrkZmumuTagTool
 
 ## Kernel for the augmentation tools
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_SmpCaloId.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_SmpCaloId.py
index d3fe39470f6e7df0c28cd99eb847e7afb386e27f..e350da9a2d16682c436b8375fd69d7be2b9d1ddc 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_SmpCaloId.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_SmpCaloId.py
@@ -130,7 +130,7 @@ for offlineFilterName in offlineObjectFilterNames :
     cmdstring += offlineFilterName
     offlineFilterCounter += 1
     pass
-print "NICK cmdstring of OfflineObjectFilter is ",cmdstring
+print("NICK cmdstring of OfflineObjectFilter is ",cmdstring)
 topSequence.SmpCaloId_CombinedOfflineFilter.cmdstring=cmdstring
 filtersToBookkeep+=["SmpCaloId_CombinedOfflineFilter"]
 #=#=#=#=
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_Stopped.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_Stopped.py
index 8e356407f6548a5c5d4c2828391b7b41e3af8583..699be2943aa33cc3af34cfd85a6fa509f2ee6aa7 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_Stopped.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_Stopped.py
@@ -110,7 +110,7 @@ cmdstring = jetFilterName+" and "+segFilterName;
 if primRPVLLDESDM.Stopped_muonSegmentFilterFlags.addPrescaledLooseFilter:
     cmdstring = jetFilterName+" and ("+segFilterName+" or "+prescaledMuSegFilterName+")"
 
-print 'Josh\'s Stopped_CombinedOfflineFilter: %s' % cmdstring
+print('Josh\'s Stopped_CombinedOfflineFilter: %s' % cmdstring)
 topSequence.Stopped_CombinedOfflineFilter.cmdstring=cmdstring
 filtersToBookkeep+=["Stopped_CombinedOfflineFilter"]
 
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDRAW_RPVLL.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDRAW_RPVLL.py
index 5740a3d5e723870967276400d931cf9c4c07586f..4d6fbe44dbae4fd40c8085e6453b698b2423ca63 100644
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDRAW_RPVLL.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDRAW_RPVLL.py
@@ -20,10 +20,10 @@
 
 from LongLivedParticleDPDMaker.LongLivedDPDFlags import WriteRPVLLStream
 from LongLivedParticleDPDMaker.PrimaryDPDFlags_RPVLLStream import primRPVLLDESDM
-print dir(primRPVLLDESDM)
-print primRPVLLDESDM.__module__
-print primRPVLLDESDM.__name__
-print primRPVLLDESDM
+print(dir(primRPVLLDESDM))
+print(primRPVLLDESDM.__module__)
+print(primRPVLLDESDM.__name__)
+print(primRPVLLDESDM)
  
 RPVLL_augmentationKernels = []
 
diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/TestRPVLLRates_topOptions.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/TestRPVLLRates_topOptions.py
index ed9fa90d9c9ca60cdd7133bd3c564676f1bc37dc..7a7cfc21266f3403c8c9ed54bf3a73e58d328bb0 100755
--- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/TestRPVLLRates_topOptions.py
+++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/TestRPVLLRates_topOptions.py
@@ -25,7 +25,7 @@ topSequence=AlgSequence()
 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf import RPVLLTestRates
 topSequence += RPVLLTestRates() 
 
-print topSequence.RPVLLTestRates
+print(topSequence.RPVLLTestRates)
 
 from GaudiSvc.GaudiSvcConf import THistSvc
 ServiceMgr += THistSvc()