def runLoop( comp, outDir, config, options): if options.input is not None: comp.files = [options.input] fullName = '/'.join( [outDir, comp.name ] ) # import pdb; pdb.set_trace() config.components = [comp] memcheck = 2 if getattr(options,'memCheck',False) else -1 loop = Looper( fullName, config, options.nevents, 0, nPrint = options.nprint, timeReport = options.timeReport, quiet = options.quiet, memCheckFromEvent = memcheck, stopFlag = _globalGracefulStopFlag) # print loop if options.iEvent is None: loop.loop() loop.write() # print loop else: # loop.InitOutput() iEvent = int(options.iEvent) loop.process( iEvent ) return loop
def runLoop(comp, outDir, config, options): if options.input is not None: comp.files = [options.input] fullName = '/'.join([outDir, comp.name]) # import pdb; pdb.set_trace() config.components = [comp] loop = Looper(fullName, config, options.nevents, 0, nPrint=options.nprint, timeReport=options.timeReport, quiet=options.quiet) # print loop if options.iEvent is None: loop.loop() loop.write() # print loop else: # loop.InitOutput() iEvent = int(options.iEvent) loop.process(iEvent) return loop
def test_skip(self): first = 10 loop = Looper( self.outdir, config, nEvents=None, firstEvent=first, nPrint=0 ) loop.loop()
class TestAnalysis_ee_ZH_nunubb(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_1(self): '''Check that the ZH->nunubb analysis runs ''' from heppy.papas.detectors.CMS import cms config.components[0].files = [test_filename] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) self.looper.loop() self.looper.write()
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0, timeReport=True) import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_analysis(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 93.6, 1) self.assertAlmostEqual(sigma, 11.2, 1)
class TestAnalysis_ee_Z_bb_fccsw(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_beff_cms_fccsw(self): '''check that the analysis runs with papas inputs from cmssw ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_bbbar_with_papas_rec.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) self.looper.loop()
class TestAnalysis_ee_Z_bb_fccsw(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_beff_cms_fccsw(self): '''Check b matching probability and b tag efficiency in CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_bbbar_with_papas_rec.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.JetTreeProducer.JetTreeProducer_1/jet_tree.root ']) plotter = Plotter(rootfile) self.assertAlmostEqual(plotter.bfrac(), 0.80, places=1) #changing of random seed varies this between approx 0.78 and 0.83
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0, timeReport=True) import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_analysis(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 90.13, 1) self.assertAlmostEqual(sigma, 10.54, 1)
class TestAnalysis_ee_ZH(unittest.TestCase): def setUp(self): random.seed(0xDEADBEEF) self.outdir = tempfile.mkdtemp() fname = "/".join([os.environ["HEPPY"], "test/data/ee_ZH_Zmumu_Hbb.root"]) config.components[0].files = [fname] self.looper = Looper(self.outdir, config, nEvents=50, nPrint=0, timeReport=True) import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_analysis(self): """Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. """ self.looper.loop() self.looper.write() rootfile = "/".join([self.outdir, "heppy.analyzers.examples.zh.ZHTreeProducer.ZHTreeProducer_1/tree.root"]) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 120.7, 1) self.assertAlmostEqual(sigma, 20.3, 1) def test_analysis_sorting(self): self.looper.process(0) self.assertTrue(test_sorted(self.looper.event.rec_particles))
def test_1(self): ''' ''' fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_ZZ_4mu.root']) config.components[0].files = [fname] looper = Looper(self.outdir, config, nEvents=50, nPrint=0) looper.loop() looper.write()
def test_ZZ_nunubb(self): '''Check that the ZH nunubb analysis runs ''' from analysis_ee_ZH_nunubb_cfg import config fname = 'samples/test/ee_ZZ_nunu.root' config.components[0].files = [fname] looper = Looper(self.outdir, config, nEvents=100, nPrint=0) looper.loop() looper.write()
def test_skip(self): first = 10 loop = Looper( self.outdir, config, nEvents=None, firstEvent=first, nPrint=0 ) loop.loop() loop.write() # input file has 200 entries # we skip 10 entries, so we process 190. self.assertEqual(loop.nEvProcessed, self.nevents-first)
def test_1(self): ''' ''' fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_ZZ_4mu.root']) config.components[0].files = [fname] looper = Looper( self.outdir, config, nEvents=50, nPrint=0 ) looper.loop() looper.write()
def test_skip(self): first = 10 loop = Looper(self.outdir, config, nEvents=None, firstEvent=first, nPrint=0) loop.loop() loop.write() # input file has 200 entries # we skip 10 entries, so we process 190. self.assertEqual(loop.nEvProcessed, self.nevents - first)
def test_all_events_processed(self): loop = Looper(self.outdir, config, nEvents=None, nPrint=0) loop.loop() loop.write() logfile = open('/'.join([self.outdir, 'log.txt'])) nev_processed = None for line in logfile: if line.startswith('number of events processed:'): nev_processed = int(line.split(':')[1]) logfile.close() self.assertEqual(nev_processed, self.nevents) # checking the looper itself. self.assertEqual(loop.nEvProcessed, self.nevents)
class TestAnalysis_ee_Z_bb(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_beff_cms(self): '''Check b matching probability and b tag efficiency in CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_bbbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=500, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.JetTreeProducer.JetTreeProducer_1/jet_tree.root ']) plotter = Plotter(rootfile) self.assertAlmostEqual(plotter.bfrac(), 0.867, places=2) self.assertAlmostEqual(plotter.beff(), 0.71, places=2) def test_fake_cms(self): '''Check fake rate in CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.JetTreeProducer.JetTreeProducer_1/jet_tree.root '])
def test_all_events_processed(self): loop = Looper( self.outdir, config, nEvents=None, nPrint=0 ) loop.loop() loop.write() logfile = open('/'.join([self.outdir, 'log.txt'])) nev_processed = None for line in logfile: if line.startswith('number of events processed:'): nev_processed = int(line.split(':')[1]) logfile.close() self.assertEqual(nev_processed, self.nevents) # checking the looper itself. self.assertEqual(loop.nEvProcessed, self.nevents)
def runLoop( comp, outDir, config, options): fullName = '/'.join( [outDir, comp.name ] ) # import pdb; pdb.set_trace() loop = Looper( fullName, comp, config.sequence, config.events_class, options.nevents, 0, nPrint = options.nprint) print loop if options.iEvent is None: loop.loop() loop.write() print loop else: # loop.InitOutput() iEvent = int(options.iEvent) loop.process( iEvent ) return loop
class TestAnalysis_gun(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_gun(self): '''test that the particle gun runs ''' self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write()
class TestAnalysis_ee_Z_bb(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_beff_cms(self): '''Check b matching probability and b tag efficiency in CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_bbbar.root']) config.components[0].files = [fname] config.sequence[2].detector = cms self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.JetTreeProducer.JetTreeProducer_1/jet_tree.root ' ]) plotter = Plotter(rootfile) self.assertGreater(plotter.bfrac(), 0.95) self.assertAlmostEqual(plotter.beff(), 0.7, places=2) def test_fake_cms(self): '''Check fake rate in CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] config.sequence[2].detector = cms self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.JetTreeProducer.JetTreeProducer_1/jet_tree.root ' ])
class TestAnalysis(unittest.TestCase): def setUp(self): os.environ['FCCDATASETBASEOUT'] = os.path.abspath('test') random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_1(self): '''Check the analysis runs''' from heppy.papas.detectors.CMS import cms config.components[0].splitFactor = 1 self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write()
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging #Alice: I turned this off otherwise no pdebug output. Ask Colin why it is on and if this is OK #logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) # NB If this test fails and If you expected the physics results to change # then it means that the cpp version of papas will need to be updated. # Please # (1) take the physics_clic.txt file that is produced by this test and rename it to update # the required_clic_physics_dd.txt file in heppy/test/data # (2) notify alice to change papas cpp def test_z_clic(self): '''Check Z mass in ee->Z->ddbar (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' random.seed(0xdeadbeef) from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = clic if hasattr(s, 'debug_filename'): s.debug_filename = 'physics_clic.txt' self.looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) self.looper.loop() self.looper.write() self.assertEqual(0,os.system("source $HEPPY/test/data/pdebug_python_check.sh physics_clic.txt $HEPPY/test/data/required_clic_physics_dd.txt"))
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging #Alice: I turned this off otherwise no pdebug output. Ask Colin why it is on and if this is OK #logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) # NB If this test fails and If you expected the physics results to change # then it means that the cpp version of papas will need to be updated. # Please # (1) take the physics_clic.txt file that is produced by this test and rename it to update # the required_clic_physics_dd.txt file in heppy/test/data # (2) notify alice to change papas cpp def test_z_clic(self): '''Check Z mass in ee->Z->ddbar (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' random.seed(0xdeadbeef) from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = clic if hasattr(s, 'debug_filename'): s.debug_filename = 'physics_clic.txt' self.looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) self.looper.loop() self.looper.write() self.assertEqual(0,os.system("source $HEPPY/test/data/pdebug_python_check.sh physics_clic.txt $HEPPY/test/data/required_clic_physics_dd.txt"))
def runLoop( comp, outDir, config, options): fullName = '/'.join( [outDir, comp.name ] ) # import pdb; pdb.set_trace() config.components = [comp] loop = Looper( fullName, config, options.nevents, 0, nPrint = options.nprint, timeReport = True, quiet=options.quiet) # print loop if options.iEvent is None: loop.loop() loop.write() # print loop else: # loop.InitOutput() iEvent = int(options.iEvent) loop.process( iEvent ) return loop
def test_analysis_ee_ZH_mumubb(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms for s in config.sequence: if hasattr( s,'detector'): s.detector = cms if hasattr(s, 'debug_filename'): s.debug_filename = 'physics_cms.txt' # import pdb; pdb.set_trace() fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_ZH_Zmumu_Hbb.root']) config.components[0].files = [fname] looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) looper.loop() looper.write() self.assertEqual(0,os.system("source $HEPPY/test/data/pdebug_python_check.sh physics_cms.txt $HEPPY/test/data/required_cms_physics.txt"))
def test_analysis_ee_ZH_mumubb(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms config.sequence[2].detector = cms # import pdb; pdb.set_trace() fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_ZH_Zmumu_Hbb.root']) config.components[0].files = [fname] looper = Looper(self.outdir, config, nEvents=50, nPrint=0) looper.loop() looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.examples.zh.ZHTreeProducer.ZHTreeProducer_1/tree.root' ]) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 113.3, 1) self.assertAlmostEqual(sigma, 21.2, 1)
class TestAnalysis(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() # logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) # logging.disable(logging.NOTSET) def test_1(self): '''Check that the ZH->nunubb analysis runs ''' config.components = config.components[:1] config.components[0].files = config.components[0].files[:1] nevts = 100 self.looper = Looper( self.outdir, config, nEvents=nevts, nPrint=0) self.looper.loop() self.looper.write()
def test_analysis_ee_ZH_mumubb(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms for s in config.sequence: if hasattr( s,'detector'): s.detector = cms # import pdb; pdb.set_trace() fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_ZH_Zmumu_Hbb.root']) config.components[0].files = [fname] looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) looper.loop() looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.examples.zh.ZHTreeProducer.ZHTreeProducer_1/tree.root']) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 110.87, 1) self.assertAlmostEqual(sigma, 18.6, 1)
def test_analysis_ee_ZH_mumubb(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms for s in config.sequence: if hasattr(s, 'detector'): s.detector = cms if hasattr(s, 'debug_filename'): s.debug_filename = 'physics_cms.txt' # import pdb; pdb.set_trace() fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_ZH_Zmumu_Hbb.root']) config.components[0].files = [fname] looper = Looper(self.outdir, config, nEvents=10, nPrint=0) looper.loop() looper.write() self.assertEqual( 0, os.system( "source $HEPPY/test/data/pdebug_python_check.sh physics_cms.txt $HEPPY/test/data/required_cms_physics.txt" ))
import random random.seed(0xdeadbeef) def process(iev=None): if iev is None: iev = loop.iEvent loop.process(iev) if display: display.draw() def next(): loop.process(loop.iEvent + 1) if display: display.draw() iev = None if len(sys.argv) == 2: papas.display = True iev = int(sys.argv[1]) loop = Looper('looper', config, nEvents=100, nPrint=0, timeReport=True) simulation = loop.analyzers[2] display = getattr(simulation, 'display', None) simulator = simulation.simulator detector = simulator.detector if iev is not None: process(iev) else: loop.loop() loop.write()
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_z_1_cms(self): '''Check Z mass in ee->Z->ddbar (CMS). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr(s, 'detector'): s.detector = cms self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot_ee_mass(rootfile) self.assertAlmostEqual(mean, 77.26, 1) self.assertAlmostEqual(sigma, 8.27, 1) def test_z_2_clic(self): '''Check Z mass in ee->Z->ddbar (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr(s, 'detector'): s.detector = clic self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot_ee_mass(rootfile) self.assertAlmostEqual(mean, 86.48, 1) self.assertAlmostEqual(sigma, 6.21, 1) def test_z_mumu_clic(self): '''Check Z mass in ee->Z->mumu (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_mumu.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr(s, 'detector'): s.detector = clic self.looper = Looper(self.outdir, config, nEvents=500, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot_ee_mass(rootfile, nbins=400, xmin=70, xmax=110) self.assertAlmostEqual(mean, 90.84, 1) self.assertAlmostEqual(sigma, 1.32, 1) def test_z_ee_clic(self): '''Check Z mass in ee->Z->ee (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ee.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr(s, 'detector'): s.detector = clic self.looper = Looper(self.outdir, config, nEvents=500, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot_ee_mass(rootfile, nbins=400, xmin=70, xmax=110) self.assertAlmostEqual(mean, 90.77, 1) self.assertAlmostEqual(sigma, 2.00, 1)
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_z_1_cms(self): '''Check Z mass in ee->Z->ddbar (CMS). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot_ee_mass(rootfile) self.assertAlmostEqual(mean, 83.58, 1) self.assertAlmostEqual(sigma, 7.06, 1) def test_z_ee_cms(self): '''Test Z->ee with CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ee.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) self.looper.loop() self.looper.write() def test_z_mumu_cms(self): '''Test Z->mumu with CMS ''' from heppy.papas.detectors.CMS import cms fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_mumu.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = cms self.looper = Looper( self.outdir, config, nEvents=10, nPrint=0 ) self.looper.loop() self.looper.write() def test_z_2_clic(self): '''Check Z mass in ee->Z->ddbar (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = clic self.looper = Looper( self.outdir, config, nEvents=100, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot_ee_mass(rootfile) self.assertAlmostEqual(mean, 90.15, 1) self.assertAlmostEqual(sigma, 3.3, 1) def test_z_mumu_clic(self): '''Check Z mass in ee->Z->mumu (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_mumu.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = clic self.looper = Looper( self.outdir, config, nEvents=500, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot_ee_mass(rootfile, nbins=400, xmin=70, xmax=110) self.assertAlmostEqual(mean, 90.80, 1) self.assertAlmostEqual(sigma, 2.7, 1) def test_z_ee_clic(self): '''Check Z mass in ee->Z->ee (CLIC). Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_ee.root']) config.components[0].files = [fname] for s in config.sequence: if hasattr( s,'detector'): s.detector = clic self.looper = Looper( self.outdir, config, nEvents=500, nPrint=0 ) self.looper.loop() self.looper.write() rootfile = '/'.join([self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root']) mean, sigma = plot_ee_mass(rootfile, nbins=400, xmin=70, xmax=110) self.assertAlmostEqual(mean, 90.67, 1) self.assertAlmostEqual(sigma, 5.05, 1)
class TestAnalysis_ee_Z(unittest.TestCase): def setUp(self): random.seed(0xdeadbeef) self.outdir = tempfile.mkdtemp() import logging logging.disable(logging.CRITICAL) def tearDown(self): shutil.rmtree(self.outdir) logging.disable(logging.NOTSET) def test_z_cms(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CMS import cms fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] config.sequence[2].detector = cms self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 94.6, 1) self.assertAlmostEqual(sigma, 15.1, 1) def test_z_clic(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join( [os.environ['HEPPY'], 'test/data/ee_Z_ddbar.root']) config.components[0].files = [fname] config.sequence[2].detector = clic self.looper = Looper(self.outdir, config, nEvents=100, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot(rootfile) self.assertAlmostEqual(mean, 83.24, 1) self.assertAlmostEqual(sigma, 7.37, 1) def test_z_mumu_clic(self): '''Check for an almost perfect match with reference. Will fail if physics algorithms are modified, so should probably be removed from test suite, or better: be made optional. ''' from heppy.papas.detectors.CLIC import clic fname = '/'.join([os.environ['HEPPY'], 'test/data/ee_Z_mumu.root']) config.components[0].files = [fname] config.sequence[2].detector = clic self.looper = Looper(self.outdir, config, nEvents=500, nPrint=0) self.looper.loop() self.looper.write() rootfile = '/'.join([ self.outdir, 'heppy.analyzers.GlobalEventTreeProducer.GlobalEventTreeProducer_1/tree.root' ]) mean, sigma = plot(rootfile, nbins=400) self.assertAlmostEqual(mean, 90.84, 1) self.assertAlmostEqual(sigma, 1.32, 1)
from heppy.framework.looper import Looper if __name__ == '__main__': import pickle import sys import os import imp if len(sys.argv) == 2: cfgFileName = sys.argv[1] pckfile = open(cfgFileName, 'r') config = pickle.load(pckfile) comp = config.components[0] events_class = config.events_class elif len(sys.argv) == 3: cfgFileName = sys.argv[1] file = open(cfgFileName, 'r') cfg = imp.load_source('cfg', cfgFileName, file) compFileName = sys.argv[2] pckfile = open(compFileName, 'r') comp = pickle.load(pckfile) cfg.config.components = [comp] events_class = cfg.config.events_class else: print 'usage: looper.py <configuration_file.py> [component.pickle]' sys.exit(1) looper = Looper('Loop', cfg.config, nPrint=5) looper.loop() looper.write()
if len(sys.argv)==2: papas.display = True try: iev = int(sys.argv[1]) except ValueError: print usage sys.exit(1) elif len(sys.argv)>2: print usage sys.exit(1) loop = Looper( 'looper', config, nEvents=10, nPrint=5, timeReport=True) simulation = None for ana in loop.analyzers: if hasattr(ana, 'display'): simulation = ana display = getattr(simulation, 'display', None) simulator = getattr(simulation, 'simulator', None) if simulator: detector = simulator.detector if iev is not None: process(iev) else: loop.loop() loop.write()
from heppy.framework.looper import Looper if __name__ == '__main__': import pickle import sys import os import imp if len(sys.argv) == 2 : cfgFileName = sys.argv[1] pckfile = open( cfgFileName, 'r' ) config = pickle.load( pckfile ) comp = config.components[0] events_class = config.events_class elif len(sys.argv) == 3 : cfgFileName = sys.argv[1] file = open( cfgFileName, 'r' ) cfg = imp.load_source( 'cfg', cfgFileName, file) compFileName = sys.argv[2] pckfile = open( compFileName, 'r' ) comp = pickle.load( pckfile ) cfg.config.components=[comp] events_class = cfg.config.events_class else: print 'usage: looper.py <configuration_file.py> [component.pickle]' sys.exit(1) looper = Looper( 'Loop', cfg.config,nPrint = 5) looper.loop() looper.write()
def test_all_events_processed(self): loop = Looper( self.outdir, config, nEvents=None, nPrint=0 ) loop.loop()