14 from basf2
import create_path
19 """Test case for standard photon lists"""
21 def _check_list(self, listtype=None, std_function=stdPhotons.stdPhotons, expected_lists=["all"]):
22 """check that a given listtype function works"""
23 testpath = create_path()
24 if (std_function
is stdPhotons.stdPhotons)
and (listtype
is not None):
25 std_function(listtype, path=testpath)
27 std_function(path=testpath)
31 len(testpath.modules()), len(set(expected_lists)) + 1
if listtype ==
'all' else len(set(expected_lists)) + 3,
32 f
"List {listtype} doesn't work with function {std_function.__name__}")
33 self.assertTrue(all((module.type() ==
"ParticleLoader")
or (module.type() ==
"ParticleListManipulator")
34 or (module.type() ==
"ParticleSelector")
35 for module
in testpath.modules()))
39 for module
in testpath.modules():
40 for param
in module.available_params():
41 if param.name ==
'decayStrings':
42 name = param.values[0].split(
':')[1]
43 built_list.append(name)
44 if param.name ==
'outputListName':
45 name = str(param.values).split(
':')[1]
46 built_list.append(name)
49 for a, b
in zip(built_list, expected_lists):
50 self.assertEqual(a, b, f
"Loaded list \'{a}\' instead of \'{b}\' with function {std_function.__name__}")
53 """Check that the builder function raises a ValueError for a non-existing list name."""
54 self.assertRaises(ValueError, self.
_check_list_check_list,
"flibble")
58 Check that the default list type is one of the lists in the cases that are checked for in :func:`stdPhotons.stdPhotons`.
60 This test relies on ``ValueError`` being raised for nonsense list types, which is tested by
61 :func:`test_nonsense_list`. However, :func:`test_nonsense_list` doesn't ensure that the default list works, so
62 for that this test is needed.
64 test_path = create_path()
68 stdPhotons_signature = inspect.signature(stdPhotons.stdPhotons)
69 default_listtype = stdPhotons_signature.parameters[
"listtype"].default
70 self.fail(f
"stdPhotons default listtype {default_listtype} is not in set of allowed list names.")
73 """Check that the default list type (loose) works."""
75 self.
_check_list_check_list(expected_lists=[
"cdc",
"cdc",
"loose"])
78 """check that the builder function works with the all list"""
79 self.
_check_list_check_list(
"all", expected_lists=[
"all"])
82 """check that the builder function works with the cdc list"""
83 self.
_check_list_check_list(
"cdc", expected_lists=[
"cdc"])
86 """check that the builder function works with the loose list"""
87 self.
_check_list_check_list(
"loose", expected_lists=[
"cdc",
"cdc",
"loose"])
90 """check that the builder function works with the default (loose) list"""
91 self.
_check_list_check_list(expected_lists=[
"cdc",
"cdc",
"loose"])
94 """check that the builder function works with the tight list"""
95 self.
_check_list_check_list(
"tight", expected_lists=[
"cdc",
"cdc",
"loose",
"tight"])
98 """check that the builder function works with the pi0eff60_May2020 list"""
99 self.
_check_list_check_list(
"pi0eff60_May2020", expected_lists=[
"pi0eff60_May2020"])
102 """check that the builder function works with the pi0eff50_May2020 list"""
103 self.
_check_list_check_list(
"pi0eff50_May2020", expected_lists=[
"pi0eff50_May2020"])
106 """check that the builder function works with the pi0eff40_May2020 list"""
107 self.
_check_list_check_list(
"pi0eff40_May2020", expected_lists=[
"pi0eff40_May2020"])
110 """check that the builder function works with the pi0eff30_May2020 list"""
111 self.
_check_list_check_list(
"pi0eff30_May2020", expected_lists=[
"pi0eff30_May2020"])
114 """check that the builder function works with the pi0eff20_May2020 list"""
115 self.
_check_list_check_list(
"pi0eff20_May2020", expected_lists=[
"pi0eff20_May2020"])
118 """check that the builder function works with the pi0eff10_May2020 list"""
119 self.
_check_list_check_list(
"pi0eff10_May2020", expected_lists=[
"pi0eff10_May2020"])
122 """check that the builder function works with the skim list"""
123 self.
_check_list_check_list(
"skim", std_function=stdPhotons.loadStdSkimPhoton, expected_lists=[
"cdc",
"cdc",
"loose",
"skim"])
126 """check that the builder function works with the belle list"""
127 self.
_check_list_check_list(
"goodBelle", std_function=stdPhotons.loadStdGoodBellePhoton, expected_lists=[
"goodBelle"])
130 if __name__ ==
'__main__':
def _check_list(self, listtype=None, std_function=stdPhotons.stdPhotons, expected_lists=["all"])
def test_default_list_works(self)
def test_default_list(self)
def test_loose_list(self)
def test_nonsense_list(self)
def test_pi0eff40_May2020_list(self)
def test_pi0eff20_May2020_list(self)
def test_pi0eff30_May2020_list(self)
def test_tight_list(self)
def test_pi0eff50_May2020_list(self)
def test_pi0eff60_May2020_list(self)
def test_pi0eff10_May2020_list(self)
def test_default_list_exists(self)
def stdPhotons(listtype='loose', path=None, beamBackgroundMVAWeight="", fakePhotonMVAWeight="", biasCorrectionTable="")