示例#1
0
    def test2KwConstructor(self):
        """Test keyword constructor"""
        i = CfgItemList('MyItems',
                        items=[
                            'Klass1#klass1',
                            'Klass2#klass2',
                        ],
                        allowWildCard=False)
        self.failUnless(i.has_item('Klass1#klass1'),
                        'Corrupted output item list !')
        self.failUnless(i.has_item('Klass2#klass2'),
                        'Corrupted output item list !')
        self.failUnless(i.has_item('Klass1#*'), 'Corrupted output item list !')
        self.failUnless(i.has_item('Klass2#*'), 'Corrupted output item list !')
        self.failUnless(i.has_item('Klass1#klass*'),
                        'Corrupted output item list !')
        self.failUnless(i.has_item('Klass2#klass*'),
                        'Corrupted output item list !')
        self.failUnless(not i.has_item('Klass1#klass2'),
                        'Corrupted output item list !')
        self.failUnless(not i.has_item('Klass2#klass1'),
                        'Corrupted output item list !')
        self.failUnless(i._allowWildCard == False,
                        'Invalid "allowWildCard" state !')
        self.failUnless(i() == [
            'Klass1#klass1',
            'Klass2#klass2',
        ], 'Invalid output item list value !')

        del i
        i = CfgItemList('MyItems',
                        items=[
                            'Klass3#klass3',
                            'Klass4#klass4',
                        ],
                        allowWildCard=True)
        self.failUnless(i._allowWildCard == True,
                        'Invalid "allowWildCard" state !')
        self.failUnless(i() == [
            'Klass3#klass3',
            'Klass4#klass4',
        ], 'Invalid output item list value !')

        del i
        msg.setLevel(logging.ERROR)
        i = CfgItemList('MyItems', items=['Klass3#*'], allowWildCard=False)
        self.failUnless(len(i()) == 0, "AllowWildCard does not work !")

        del i
        i = CfgItemList('MyItems', items=['Klass3#*'])
        self.failUnless(len(i()) == 0, "AllowWildCard does not work !")

        del i
        i = CfgItemList('MyItems')
        i.add('Klass3#*')
        self.failUnless(len(i()) == 0, "AllowWildCard does not work !")
    def test2KwConstructor( self ):
        """Test keyword constructor"""
        i = CfgItemList( 'MyItems',
                         items = [ 'Klass1#klass1',
                                   'Klass2#klass2', ],
                         allowWildCard = False )
        self.failUnless( i.has_item( 'Klass1#klass1' ),
                         'Corrupted output item list !' )
        self.failUnless( i.has_item( 'Klass2#klass2' ),
                         'Corrupted output item list !' )
        self.failUnless( i.has_item( 'Klass1#*' ),
                         'Corrupted output item list !' )
        self.failUnless( i.has_item( 'Klass2#*' ),
                         'Corrupted output item list !' )
        self.failUnless( i.has_item( 'Klass1#klass*' ),
                         'Corrupted output item list !' )
        self.failUnless( i.has_item( 'Klass2#klass*' ),
                         'Corrupted output item list !' )
        self.failUnless( not i.has_item( 'Klass1#klass2' ),
                         'Corrupted output item list !' )
        self.failUnless( not i.has_item( 'Klass2#klass1' ),
                         'Corrupted output item list !' )
        self.failUnless( i._allowWildCard == False,
                         'Invalid "allowWildCard" state !' )
        self.failUnless( i() == [ 'Klass1#klass1', 'Klass2#klass2', ],
                         'Invalid output item list value !' )
        
        del i
        i = CfgItemList( 'MyItems',
                         items = [ 'Klass3#klass3',
                                   'Klass4#klass4', ],
                         allowWildCard = True )
        self.failUnless( i._allowWildCard == True,
                         'Invalid "allowWildCard" state !' )
        self.failUnless( i() == [ 'Klass3#klass3', 'Klass4#klass4', ],
                         'Invalid output item list value !' )

        del i
        msg.setLevel( logging.ERROR )
        i = CfgItemList( 'MyItems',
                         items = [ 'Klass3#*' ],
                         allowWildCard = False )
        self.failUnless( len(i()) == 0, "AllowWildCard does not work !" )

        del i
        i = CfgItemList( 'MyItems', items = [ 'Klass3#*' ] )
        self.failUnless( len(i()) == 0, "AllowWildCard does not work !" )
        
        del i
        i = CfgItemList( 'MyItems' )
        i.add( 'Klass3#*' )
        self.failUnless( len(i()) == 0, "AllowWildCard does not work !" )
示例#3
0
    def test5WildCard(self):
        """Test the wildcard capabilities of CfgItemList"""
        i = CfgItemList('MyItems')
        self.failUnless(i.name() == 'MyItems')

        ## test wildcard
        i.add("Klass#Foo")
        self.failUnless(i("Klass") == ["Klass#Foo"])

        # ignored as not allowing wildcarded items
        i.add("Klass#*")
        self.failUnless(i("Klass") == ["Klass#Foo"])

        # allowed as special cases for trigger
        i.clear()
        i.add("TrigKlass#HLTAutoKey*")
        self.failUnless(i("TrigKlass") == ["TrigKlass#HLTAutoKey*"])

        i.clear()
        i.add("TrigKlass#HLTAutoKey_*")
        self.failUnless(i("TrigKlass") == ["TrigKlass#HLTAutoKey_*"])

        i.clear()
        i.add("TrigKlass#HLTAutoKey_foo_*")
        self.failUnless(i("TrigKlass") == ["TrigKlass#HLTAutoKey_foo_*"])

        i.clear()
        i.add("TrigKlass#HLTAutoKey_foo_42_*")
        self.failUnless(i("TrigKlass") == ["TrigKlass#HLTAutoKey_foo_42_*"])
示例#4
0
    def test4Methods(self):
        """Test various methods of CfgItemList"""
        i = CfgItemList('MyItems')
        self.failUnless(i.name() == 'MyItems')

        i.add({'Klass': ['key1', 'key2']})
        self.failUnless(i() == ['Klass#key1', 'Klass#key2'])

        i.add({'Klass': ['key1', 'key3']})
        self.failUnless(i() == ['Klass#key1', 'Klass#key2', 'Klass#key3'])

        props = i.getProperties()
        self.failUnless(props.has_key('Klass'))
        self.failUnless(len(props['Klass']) == len(['key1', 'key2', 'key3']))
        self.failUnless('key1' in props['Klass'])
        self.failUnless('key2' in props['Klass'])
        self.failUnless('key3' in props['Klass'])

        self.failUnless(len(i.allChildren()) == 0)

        self.failUnless(i.has_item('Klass#key1'))
        self.failUnless(i.has_item('Klass#key*'))
        self.failUnless(not i.has_item('Klass#Key1'))
        self.failUnless(not i.has_item('Klass#Key*'))

        i.clear()
        self.failUnless(len(i()) == 0)

        i.add({'Klass': ['key1', 'key2']})
        self.failUnless(len(i()) == 2)
        i.remove('Klass')
        self.failUnless(len(i()) == 2)
        i.remove('Klass#key1')
        self.failUnless(len(i()) == 2)
        i.removeAll()
        self.failUnless(len(i()) == 2)

        i.removeItem('Klass')
        self.failUnless(len(i()) == 2)
        i.removeItem('Klass#key1')
        self.failUnless(len(i()) == 1)

        _keys = ['key1', 'key2', 'key3']
        i.add({'Klass': _keys})
        self.failUnless(len(i()) == 3)
        i.removeAllItems('Klass#key2')
        self.failUnless(len(i()) == 2)

        ## test we don't modify input dict
        d = {'Klassy': ['key1', 'key2', 'key3']}
        orig_d = d.copy()
        i.add(d)
        self.failUnless(d == orig_d)

        d = {'Klassy': 'key4'}
        orig_d = d.copy()
        i.add(d)
        self.failUnless(d == orig_d)

        ## test extraction of the item list of a given Container type
        _keys = ["Klassy#%s" % k for k in 'key1', 'key2', 'key3', 'key4']
        self.failUnless(i("Klassy") == _keys)
        self.failUnless(i.list("Klassy") == _keys)
        self.failUnless(i(key="Klassy") == _keys)
        self.failUnless(i.list(key="Klassy") == _keys)

        ## test dict()
        _keys = ['key1', 'key2', 'key3', 'key4']
        self.failUnless(i.dict()['Klass'] == ['key1', 'key3'])
        self.failUnless(i.dict()['Klassy'] == _keys)
        _dict = {
            'Klass': ['key1', 'key3'],
            'Klassy': ['key1', 'key2', 'key3', 'key4']
        }
        self.failUnless(i.dict() == _dict)
示例#5
0
        include("CaloRingerAlgs/CaloRingerOutputItemList_jobOptions.py")
        fullESDList += CfgItemList("caloRingerEsd", items=caloRingerESDList)
        from RecExConfig.ObjKeyStore import objKeyStore
        objKeyStore['metaData'] += CfgItemList("caloRingerMeta",
                                               items=caloRingerMetaDataList)
    except:
        treatException("Could not load CaloRinger ESD item list")
        pass
    pass

# now merge the explicit ESD list to the one coming from ObjKeyStore
# (more and more will be taken from ObjKeyStore)
from AthenaCommon.KeyStore import CfgItemList, CfgKeyStore
theCKS = CfgKeyStore("KeyStore")
CILMergeESD = CfgItemList("ESDMerge", allowWildCard=True)
CILMergeESD.add(fullESDList())
CILMergeESD.add(theCKS.streamESD())

#now prune the itemlist from the object which are soft linked

# this doe not work CILMergeESD.remove("DataVector<INavigable4Momentum>")
#this does
for k in CILMergeESD('DataVector<INavigable4Momentum>'):
    CILMergeESD.removeItem(k)

# The only items declared in StreamESD are those written here.
# Note the use of "=" instead of "+=" is deliberate
#DR moved to RecExCommon_topOptions.py
#StreamESD.ItemList = CILMergeESD()

#merge back the complete list in objkeystore
AOD_ItemList += ["TileCellContainer#MBTSContainer"]

# MC Truth for PileUp
AOD_ItemList += ["PileUpEventInfo#*"]

#obsolete AOD_ItemList+=[ "DetStatusMap#DetectorStatus" ]

if AODFlags.Trigger:
    include("TriggerRelease/TriggerOutputItemListAOD_jobOptions.py")

# now merge the explicit AOD list to the one coming from ObjKeyStore
# (more and more will be taken from ObjKeyStore)
from AthenaCommon.KeyStore import CfgItemList, CfgKeyStore
theCKS = CfgKeyStore("KeyStore")
CILMergeAOD = CfgItemList("AODMerge", allowWildCard=True)
CILMergeAOD.add(AOD_ItemList)
CILMergeAOD.add(theCKS.streamAOD())

#now prune the itemlist from the object which are soft linked

# this doe not work CILMergeAOD.remove("DataVector<INavigable4Momentum>")
#this does
for k in CILMergeAOD('DataVector<INavigable4Momentum>'):
    CILMergeAOD.removeItem(k)

# The only items declared in StreamESD are those written here.
# Note the use of "=" instead of "+=" is deliberate
#StreamESD.ItemList = fullESDList()

AOD_ItemList = CILMergeAOD()
示例#7
0
from AthenaCommon.KeyStore import CfgItemList

recoMetadataItemList = CfgItemList(
    "RecoMetadata",
    items=[
        "IOVMetaDataContainer#*", "xAOD::LumiBlockRangeContainer#*",
        "xAOD::LumiBlockRangeAuxContainer#*", "xAOD::CutBookkeeperContainer#*",
        "xAOD::CutBookkeeperAuxContainer#*", "ByteStreamMetadataContainer#*",
        "xAOD::TruthMetaDataContainer#TruthMetaData",
        "xAOD::TruthMetaDataAuxContainer#TruthMetaDataAux."
    ],
    allowWildCard=True)

dfMetadataItemList = CfgItemList(
    "DerivedMetadata",
    items=[
        "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*",
        "xAOD::FileMetaData#FileMetaData",
        "xAOD::FileMetaDataAuxInfo#FileMetaDataAux.",
        "xAOD::TruthMetaDataContainer#TruthMetaData",
        "xAOD::TruthMetaDataAuxContainer#TruthMetaDataAux."
    ],
    allowWildCard=True)

dfMetadataItemList.add(recoMetadataItemList())
示例#8
0
from AthenaCommon.Constants import VERBOSE, INFO
from AthenaCommon.KeyStore import CfgItemList

from AthenaCommon.Logging import logging
msg = logging.getLogger('ItemList')
msg.setLevel(VERBOSE)

msg = logging.getLogger('Athena')
msg.setLevel(INFO)

msg.info("[CfgItemList] test running...")
esdList = CfgItemList("esd")

inDetEsdList = CfgItemList("InDetEsd")
inDetEsdList.add("VxContainer#Conversions")

esdList += inDetEsdList

esdList += CfgItemList(
    "CaloEsd", items=["CaloCellContainer#Boo", "CaloClusterContainer#BooBoo"])
assert (esdList.CaloEsd() == [
    "CaloCellContainer#Boo", "CaloClusterContainer#BooBoo"
])

esdList += CfgItemList("TrigEsd",
                       items=["JetCollection#HLT_AutoKey*"],
                       allowWildCard=True)
assert (esdList.TrigEsd() == ["JetCollection#HLT_AutoKey*"])

msg.info("Should see a warning about attempt at adding invalid element...")
    def test5WildCard( self ):
        """Test the wildcard capabilities of CfgItemList"""
        i = CfgItemList( 'MyItems' )
        self.failUnless( i.name() == 'MyItems' )
        
        ## test wildcard
        i.add( "Klass#Foo" )
        self.failUnless( i("Klass") == ["Klass#Foo"] )

        # ignored as not allowing wildcarded items
        i.add( "Klass#*" )
        self.failUnless( i("Klass") == ["Klass#Foo"] )

        # allowed as special cases for trigger
        i.clear()
        i.add( "TrigKlass#HLTAutoKey*" )
        self.failUnless( i("TrigKlass") == ["TrigKlass#HLTAutoKey*"] )
        
        i.clear()
        i.add( "TrigKlass#HLTAutoKey_*" )
        self.failUnless( i("TrigKlass") == ["TrigKlass#HLTAutoKey_*"] )
        
        i.clear()
        i.add( "TrigKlass#HLTAutoKey_foo_*" )
        self.failUnless( i("TrigKlass") == ["TrigKlass#HLTAutoKey_foo_*"] )
        
        i.clear()
        i.add( "TrigKlass#HLTAutoKey_foo_42_*" )
        self.failUnless( i("TrigKlass") == ["TrigKlass#HLTAutoKey_foo_42_*"] )
示例#10
0
    def test4Methods( self ):
        """Test various methods of CfgItemList"""
        i = CfgItemList( 'MyItems' )
        self.failUnless( i.name() == 'MyItems' )

        i.add( { 'Klass' : ['key1', 'key2'] } )
        self.failUnless( i() == [ 'Klass#key1', 'Klass#key2' ] )

        i.add( { 'Klass' : ['key1', 'key3' ] } )
        self.failUnless( i() == [ 'Klass#key1', 'Klass#key2', 'Klass#key3' ] )

        props = i.getProperties()
        self.failUnless( props.has_key( 'Klass' ) )
        self.failUnless( len(props['Klass']) == len(['key1','key2','key3']) )
        self.failUnless( 'key1' in props['Klass'] )
        self.failUnless( 'key2' in props['Klass'] )
        self.failUnless( 'key3' in props['Klass'] )

        self.failUnless( len(i.allChildren()) == 0 )

        self.failUnless(     i.has_item( 'Klass#key1' ) )
        self.failUnless(     i.has_item( 'Klass#key*' ) )
        self.failUnless( not i.has_item( 'Klass#Key1' ) )
        self.failUnless( not i.has_item( 'Klass#Key*' ) )

        i.clear()
        self.failUnless( len(i()) == 0 )
        
        i.add( { 'Klass' : ['key1', 'key2'] } )
        self.failUnless( len(i()) == 2 )
        i.remove( 'Klass' )
        self.failUnless( len(i()) == 2 )
        i.remove( 'Klass#key1' )
        self.failUnless( len(i()) == 2 )
        i.removeAll()
        self.failUnless( len(i()) == 2 )

        i.removeItem( 'Klass' )
        self.failUnless( len(i()) == 2 )
        i.removeItem( 'Klass#key1' )
        self.failUnless( len(i()) == 1 )

        _keys = ['key1', 'key2', 'key3']
        i.add( { 'Klass' : _keys } )
        self.failUnless( len(i()) == 3 )
        i.removeAllItems( 'Klass#key2' )
        self.failUnless( len(i()) == 2 )

        ## test we don't modify input dict
        d = {  'Klassy' : ['key1', 'key2', 'key3'] }
        orig_d = d.copy()
        i.add( d )
        self.failUnless( d == orig_d )

        d = {  'Klassy' : 'key4' }
        orig_d = d.copy()
        i.add( d )
        self.failUnless( d == orig_d )

        ## test extraction of the item list of a given Container type
        _keys = [ "Klassy#%s" % k for k in 'key1', 'key2', 'key3', 'key4' ]
        self.failUnless(      i(       "Klassy" ) == _keys )
        self.failUnless( i.list(       "Klassy" ) == _keys )
        self.failUnless(      i( key = "Klassy" ) == _keys )
        self.failUnless( i.list( key = "Klassy" ) == _keys )

        ## test dict()
        _keys = [ 'key1', 'key2', 'key3', 'key4' ]
        self.failUnless( i.dict()['Klass' ] == ['key1', 'key3'] )
        self.failUnless( i.dict()['Klassy'] == _keys )
        _dict = { 'Klass' : ['key1', 'key3'],
                  'Klassy': ['key1', 'key2', 'key3', 'key4']}
        self.failUnless( i.dict() == _dict )
示例#11
0
if rec.doCaloRinger():
    try:
        include("CaloRingerAlgs/CaloRingerOutputItemList_jobOptions.py")
        fullAODList += CfgItemList("caloRingerAod", items=caloRingerAODList)
        StreamAOD_Augmented.AddMetaDataItem(caloRingerMetaDataList)
    except Exception:
        treatException(
            "Could not load CaloRingerAlgs/CaloRingerOutputItemList_jobOptions.py"
        )

# now merge the explicit AOD list to the one coming from ObjKeyStore
# (more and more will be taken from ObjKeyStore)
from AthenaCommon.KeyStore import CfgItemList, CfgKeyStore
theCKS = CfgKeyStore("KeyStore")
CILMergeAOD = CfgItemList("AODMerge", allowWildCard=True)
CILMergeAOD.add(fullAODList())
CILMergeAOD.add(theCKS.streamAOD())

#now prune the itemlist from the object which are soft linked

# this doe not work CILMergeAOD.remove("DataVector<INavigable4Momentum>")
#this does
for k in CILMergeAOD('DataVector<INavigable4Momentum>'):
    CILMergeAOD.removeItem(k)

# The only items declared in StreamAOD are those written here.
# Note the use of "=" instead of "+=" is deliberate

StreamAOD.ItemList = CILMergeAOD()

if rec.OutputLevel() <= DEBUG: