Exemplo n.º 1
0
 def test_skip(self):
     first = 10 
     loop = Looper( self.outdir, config,
                    nEvents=None,
                    firstEvent=first,
                    nPrint=0 )
     loop.loop()    
Exemplo n.º 2
0
 def test_process_event(self):
     loop = Looper( self.outdir, config,
                    nEvents=None,
                    nPrint=0 )
     loop.process(10)
     self.assertEqual(loop.event.input.x1, 10)
     self.assertEqual(loop.event.input.x2, 100)
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
 def test_analysis_sorting(self):
     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.process(0)
     self.assertTrue(test_sorted(looper.event.rec_particles))
 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()
Exemplo n.º 7
0
 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()
Exemplo n.º 8
0
 def test_process_event(self):
     loop = Looper(self.outdir,
                   config,
                   nEvents=None,
                   nPrint=0,
                   timeReport=True)
     loop.process(10)
     self.assertEqual(loop.event.input.var1, 10)
     loop.process(10)
 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()
Exemplo n.º 10
0
 def test_userstop(self):
     config_with_stopper = copy.copy(config)
     config_with_stopper.sequence.insert(1, stopper)
     loop = Looper(self.outdir,
                   config_with_stopper,
                   nEvents=None,
                   nPrint=0,
                   timeReport=True)
     self.assertRaises(UserStop, loop.process, 10)
Exemplo n.º 11
0
 def test_process_event(self):
     '''Test that indeed, calling loop.process(iev) raises
     TypeError if the events backend does not support indexing. 
     '''
     loop = Looper(self.outdir,
                   config,
                   nEvents=None,
                   nPrint=0,
                   timeReport=True)
     self.assertRaises(TypeError, loop.process, 10)
Exemplo n.º 12
0
 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()
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 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()
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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()
Exemplo n.º 17
0
 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()
Exemplo n.º 18
0
 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)
Exemplo n.º 19
0
 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 '
     ])
Exemplo n.º 20
0
 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_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
Exemplo n.º 22
0
 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)
Exemplo n.º 23
0
 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)
Exemplo n.º 24
0
 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)
Exemplo n.º 25
0
 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)
Exemplo n.º 26
0
 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"))
Exemplo n.º 27
0
 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"
         ))
Exemplo n.º 28
0
    selected_photons,
    jets_20,
    match_jet_electrons,
    jets_noelectron,
    match_muon_jets,
    jets_nomuon,
    match_photon_jets,
    jets_nophoton,
    selected_bs,
    selected_lights,
    #photon_higgses,
    #b_higgses,
    tree
])

config = cfg.Config(components=selectedComponents,
                    sequence=sequence,
                    services=[],
                    events_class=Events)

if __name__ == '__main__':
    import sys
    from heppy.framework.looper import Looper

    def next():
        loop.process(loop.iEvent + 1)

    loop = Looper('looper', config, nEvents=100, nPrint=0, timeReport=True)
    loop.process(6)
    print loop.event
Exemplo n.º 29
0
    gen_tree,
    selected_muons,
    selected_electrons,
    selected_leptons,
    zeds,
    selection,
    higgses,
    reco_tree,
    ] )


config = cfg.Config(
    components = selectedComponents,
    sequence = sequence,
    services = [],
    events_class = Events
)

if __name__ == '__main__':
    import sys
    from heppy.framework.looper import Looper

    def next():
        loop.process(loop.iEvent+1)

    loop = Looper( 'looper', config,
                   nEvents=100,
                   nPrint=0)
    loop.process(6)
    print loop.event
Exemplo n.º 30
0
 def test_all_events_processed(self):
     loop = Looper( self.outdir, config,
                    nEvents=None,
                    nPrint=0 )
     loop.loop()