diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/EventAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/EventAlgorithmsTest_eljob.py index 3613a13ea98a6cff01b461e90910a26884e48522..483a3be31291cb35c8220e31af626f533b141442 100755 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/EventAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/EventAlgorithmsTest_eljob.py @@ -54,10 +54,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from AsgAnalysisAlgorithms.AsgAnalysisAlgorithmsTest import makeEventAlgorithmsSequence algSeq = makeEventAlgorithmsSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print( algSeq ) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/GeneratorAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/GeneratorAlgorithmsTest_eljob.py index 254cd1baea8708348f8661960255af3b838c570d..9406cda8fdfe2eb90d169e4452e0eb3f7adb482e 100755 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/GeneratorAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/GeneratorAlgorithmsTest_eljob.py @@ -53,10 +53,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from AsgAnalysisAlgorithms.AsgAnalysisAlgorithmsTest import makeGeneratorAlgorithmsSequence algSeq = makeGeneratorAlgorithmsSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print( algSeq ) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/OverlapAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/OverlapAlgorithmsTest_eljob.py index eca0e2c2cbecbd6a5a728b67a3462677561bd601..125f781502503ec1dce7f57c7b9d85a13bfd6546 100755 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/OverlapAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/share/OverlapAlgorithmsTest_eljob.py @@ -54,11 +54,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from AsgAnalysisAlgorithms.AsgAnalysisAlgorithmsTest import makeOverlapSequence algSeq = makeOverlapSequence (dataType) -print algSeq # For debugging -for alg in algSeq : - job.algsAdd( alg ) - pass - +print( algSeq ) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/EgammaAnalysisAlgorithms/share/EgammaAnalysisAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/EgammaAnalysisAlgorithms/share/EgammaAnalysisAlgorithmsTest_eljob.py index 00417db13f4114e74573efd85ac0b9e0c20e0643..a3b97edcd10ec0abc8a48c320a0cfc0bd6d90577 100755 --- a/PhysicsAnalysis/Algorithms/EgammaAnalysisAlgorithms/share/EgammaAnalysisAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/EgammaAnalysisAlgorithms/share/EgammaAnalysisAlgorithmsTest_eljob.py @@ -62,10 +62,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from EgammaAnalysisAlgorithms.EgammaAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType, not useDNNeID) -print algSeq # For debugging -for alg in algSeq : - job.algsAdd( alg ) - pass +print (algSeq) # For debugging +algSeq.addSelfToJob( job ) # Find the right output directory: submitDir = options.submission_dir diff --git a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/share/FTagAnalysisAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/share/FTagAnalysisAlgorithmsTest_eljob.py index 8e5dc5c5ca34b08c194eeb4f4cc5be7346450c69..08246606b4d67d9043dff3737ea63fb01702bb05 100755 --- a/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/share/FTagAnalysisAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/FTagAnalysisAlgorithms/share/FTagAnalysisAlgorithmsTest_eljob.py @@ -59,10 +59,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from FTagAnalysisAlgorithms.FTagAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print (algSeq) # For debugging +algSeq.addSelfToJob( job ) # Find the right output directory: submitDir = options.submission_dir diff --git a/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_EMTopo_eljob.py b/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_EMTopo_eljob.py index 578869c2dc7838a568a247508d1176d8ed255c0d..ea1401ea043281267ff60814fe03d4698fb07eac 100755 --- a/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_EMTopo_eljob.py +++ b/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_EMTopo_eljob.py @@ -56,10 +56,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from JetAnalysisAlgorithms.JetAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType, jetContainer) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print (algSeq) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_PFlow_eljob.py b/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_PFlow_eljob.py index c04132ff157e6b4078f10ec183390a1a2b018610..9dff29ea1ff1f637162f7ad418c0995a171f13ce 100755 --- a/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_PFlow_eljob.py +++ b/PhysicsAnalysis/Algorithms/JetAnalysisAlgorithms/share/JetAnalysisAlgorithmsTest_PFlow_eljob.py @@ -56,10 +56,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from JetAnalysisAlgorithms.JetAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType, jetContainer) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print (algSeq) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/share/MetAnalysisAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/share/MetAnalysisAlgorithmsTest_eljob.py index 8f25b24403557ce64615b2eb9e70b1a845a37d9d..bdf6216a3e32d63126803e501ab65321cf66bef1 100755 --- a/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/share/MetAnalysisAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/MetAnalysisAlgorithms/share/MetAnalysisAlgorithmsTest_eljob.py @@ -61,10 +61,8 @@ job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) from MetAnalysisAlgorithms.MetAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print (algSeq) # For debugging +algSeq.addSelfToJob( job ) # Find the right output directory: submitDir = options.submission_dir diff --git a/PhysicsAnalysis/Algorithms/MuonAnalysisAlgorithms/share/MuonAnalysisAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/MuonAnalysisAlgorithms/share/MuonAnalysisAlgorithmsTest_eljob.py index bbf22561bd6c148442bf7f943f1fb454085830e0..99ec9533255c0ee34ea43804e88c3485bb1e0d9a 100755 --- a/PhysicsAnalysis/Algorithms/MuonAnalysisAlgorithms/share/MuonAnalysisAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/MuonAnalysisAlgorithms/share/MuonAnalysisAlgorithmsTest_eljob.py @@ -59,10 +59,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from MuonAnalysisAlgorithms.MuonAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print( algSeq ) # For debugging +algSeq.addSelfToJob( job ) # Make sure that both the ntuple and the xAOD dumper have a stream to write to. job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/share/TauAnalysisAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/share/TauAnalysisAlgorithmsTest_eljob.py index 737e283bb7e160c5e89a78c2a7c2ca5d522be5b6..846e1766fe4d71c35c43b2ab35a666349b4325b0 100755 --- a/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/share/TauAnalysisAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/TauAnalysisAlgorithms/share/TauAnalysisAlgorithmsTest_eljob.py @@ -58,10 +58,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, 500 ) from TauAnalysisAlgorithms.TauAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print( algSeq ) # For debugging +algSeq.addSelfToJob( job ) # Find the right output directory: submitDir = options.submission_dir diff --git a/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/share/TriggerAlgorithmsTest_eljob.py b/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/share/TriggerAlgorithmsTest_eljob.py index ba7d3e5d54141007a7966e9a392cbb7b91878772..401432b334cb85fb78d0894876f5f38b6e470077 100755 --- a/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/share/TriggerAlgorithmsTest_eljob.py +++ b/PhysicsAnalysis/Algorithms/TriggerAnalysisAlgorithms/share/TriggerAlgorithmsTest_eljob.py @@ -55,10 +55,8 @@ job.options().setString( ROOT.EL.Job.optSubmitDirMode, "unique" ) from TriggerAnalysisAlgorithms.TriggerAnalysisAlgorithmsTest import makeSequence algSeq = makeSequence (dataType) -print algSeq # For debugging -for alg in algSeq: - job.algsAdd( alg ) - pass +print(algSeq) # For debugging +algSeq.addSelfToJob( job ) # Set up an output file for the job: job.outputAdd( ROOT.EL.OutputStream( 'ANALYSIS' ) ) diff --git a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py index 35054350dbac8a170003e8020b4c2004cfa0265b..600dcf97b84d3e2423da571e29f37cb707378733 100644 --- a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py +++ b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py @@ -54,6 +54,17 @@ except ImportError: return self.__iadd__( algOrSeq, index = index ) + def addSelfToJob( self, job ): + """add a copy of this config to the EventLoop job object + + Keyword arguments: + job -- The job object to add ourself to + """ + for alg in self: + alg.addSelfToJob (job) + pass + pass + def __getitem__( self, index ): """Return one algorithm/sequence from the sequence by index diff --git a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/PythonConfig.py b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/PythonConfig.py index 50e0c9b815640e88df952c4b9258e94ffb4fc0af..7a68661bbb4fd9fc66869778ea58e2ff463c09f9 100644 --- a/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/PythonConfig.py +++ b/PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/PythonConfig.py @@ -80,6 +80,15 @@ class PythonConfig( ROOT.EL.PythonConfigBase ): return self.type() + def addSelfToJob( self, job ): + """add a copy of this config to the EventLoop job object + + Keyword arguments: + job -- The job object to add ourself to + """ + job.algsAdd( self ) + pass + def __getattr__( self, name ): """Get a previously set property value from the configuration