Ejemplo n.º 1
0
    def test1NamedSingleton(self):
        """Test that instances w/ same name are the same"""

        i1 = CfgItemList("MyItems")
        i2 = CfgItemList("MyItems")
        self.failUnless(i1 == i2, "instances are not equal !")
        self.failUnless(i1 is i2, "instances are not identical !")
Ejemplo n.º 2
0
    def test3Methods(self):
        """Test various methods of CfgKeyStore"""
        ks = CfgKeyStore("MyStore")
        self.failUnless(ks.streamESD() == [])
        self.failUnless(ks['streamESD']() == [])
        ks.streamESD.add({
            'McEventCollection': ['GEN_EVENT', 'GEN_AOD', 'TruthEvent'],
        })
        self.failUnless(len(ks.streamESD()) == 3)
        self.failUnless(len(ks.transient()) == 3)
        self.failUnless(ks.streamESD.has_item('McEventCollection#TruthEvent'))
        self.failUnless(not ks.streamESD.has_item('McEventCollection#gen_aod'))

        ks.streamAOD += CfgItemList('subAod',
                                    items=['Klass#key1', 'Klass#key2'])
        self.failUnless(len(ks.streamAOD()) == 2)
        self.failUnless(len(ks.transient()) == 5)

        ks.streamESD.add({
            'JetCollection':
            ['Cone4Jets', 'Cone7Jets', 'KtJets', 'Cone4TruthJets'],
        })
        self.failUnless(len(ks.streamESD()) == 3 + 4)
        self.failUnless(len(ks.streamESD.dict().keys()) == 2)
        self.failUnless(len(ks.transient.dict().keys()) == 3)

        ks.streamESD.add(
            {'JetCollection': ['Cone4Jets', 'Cone7Jets', 'KtJets']})
        self.failUnless(len(ks.streamESD()) == 3 + 4)
        self.failUnless(len(ks.streamESD.dict().keys()) == 2)
        self.failUnless(len(ks.transient.dict().keys()) == 3)

        ks.streamAOD.add('ParticleJetContainer#ConeTowerParticleJets')
        self.failUnless(len(ks.streamAOD()) == 3)
        self.failUnless(len(ks.streamAOD.dict().keys()) == 2)
        self.failUnless(len(ks.transient.dict().keys()) == 4)

        ks.streamAOD.add(['ParticleJetContainer#ConeTowerParticleJets'])
        self.failUnless(len(ks.streamAOD()) == 3)
        self.failUnless(len(ks.streamAOD.dict().keys()) == 2)
        self.failUnless(len(ks.transient.dict().keys()) == 4)

        ks.streamAOD.add(['ParticleJetContainer#Cone4TowerParticleJets'])
        self.failUnless(len(ks.streamAOD()) == 4)
        self.failUnless(len(ks.streamAOD.dict().keys()) == 2)
        self.failUnless(len(ks.transient.dict().keys()) == 4)

        caught = False
        try:
            ks['unallowedKey'] = range(10)
        except KeyError, err:
            caught = True
Ejemplo n.º 3
0
    def test3Hierarchy( self ):
        """Test tree-like hierarchy structure of item lists"""
        i = CfgItemList( 'MyItems',
                         items = [ 'Klass1#klass1',
                                   'Klass2#klass2', ],
                         allowWildCard = False )
        ii = CfgItemList( 'MySubItems',
                          items = [ 'Klass3#klass3',
                                    'Klass4#klass4',
                                    'Klass5#klass5',
                                    'Klass6#klass6' ] )
        self.failUnless( len(i())  == 2,
                         "Invalid output item list !!" )
        self.failUnless( len(ii()) == 4,
                         "Invalid output item list !!" )

        i += ii
        self.failUnless( len(i())  == 6,
                         "Invalid output item list !!" )

        self.failUnless( hasattr(i, ii.name()),
                         'Invalid hierarchy structure !!' )
        oo = getattr(i, ii.name())
        self.failUnless( oo == ii,
                         'Invalid hierarchy structure !!' )
        self.failUnless( oo is ii,
                         'Invalid hierarchy structure !!' )
        self.failUnless( len(oo()) == 4,
                         "Invalid output item list !!" )
        
        del ii
        ii = CfgItemList( 'MySubItems' )
        self.failUnless( len(ii())  == 4,
                         "Invalid output item list !!" )

        del i,ii
        i  = CfgItemList( 'MyItems' )
        ii = CfgItemList( 'MySubItems' )
        self.failUnless( len( i())  == 0, "Invalid output item list !!" )
        self.failUnless( len(ii())  == 4, "Invalid output item list !!" )
        del oo,ii
        ii = CfgItemList( 'MySubItems' )
        self.failUnless( len(ii())  == 0, "Invalid output item list !!" )
Ejemplo n.º 4
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_*"])
Ejemplo n.º 5
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)
Ejemplo n.º 6
0
def HSG5D3PD (alg = None,
              file = 'hsg5.root',
              tuplename = 'physics',
              streamname = 'd3pdstream',
              flags=HSG5Flags,
              **kw):

    if flags.doTaus():
        # tau
        from TauD3PDMaker.TauD3PDObject                        import TauD3PDObject

    # define associations
    if flags.doPhotons() and not PhotonD3PDObject.allBlocknames().has_key('RecoveryMatch'):
        from PhotonD3PDMaker.PhotonRecoveryAssociation import PhotonRecoveryAssociation
        PhotonRecoveryAssoc = PhotonRecoveryAssociation(PhotonD3PDObject,
                                                        'ElectronContainer',
                                                        D3PDMakerFlags.ElectronSGKey(),
                                                        prefix = 'el_',
                                                        blockname = 'RecoveryMatch',
                                                        target = 'ph_ElectronRecovered_')
        

    # define track and cluster filters

    preseq = AlgSequence (D3PDMakerFlags.PreD3PDAlgSeqName())

    if flags.doGoodTracks() and not hasattr( preseq, "GoodTracks" ):
        filter1 = makeTrackFilterAlg(TracksName = D3PDMakerFlags.TrackSGKey(),
                                     OutputTracksName='GoodTracks',
                                     ptCut=0.,nSCTPix=4)
        preseq += filter1
                    
    if flags.doHighPtTracks() and not hasattr( preseq, "HighPtTracks" ):
        filter2 = makeTrackFilterAlg(TracksName = D3PDMakerFlags.TrackSGKey(),
                                     OutputTracksName='HighPtTracks',
                                     ptCut=5000.,nSCTPix=4)
        preseq += filter2


    if flags.doHighPtClusters() and not hasattr( preseq, "HighPtClusters" ):
        filter3 = makeClusterFilter(InputName  = D3PDMakerFlags.ClusterSGKey(),
                                    OutputName = 'HighPtClusters',
                                    ptCut=10000.)
        preseq += filter3

    if flags.doHighPtEMClusters() and not hasattr( preseq, "HighPtEMClusters" ):
        filter4 = makeClusterFilter(InputName  = D3PDMakerFlags.EMTopoClusterSGKey(),
                                    OutputName = 'HighPtEMClusters',
                                    ptCut=10000.)
        preseq += filter4

    # perform recoil calculation
     
    if flags.doHadronicRecoil(): 
        from HadronicRecoil.HadronicRecoilConf import HadronicRecoil__ElectronSelector
        from HadronicRecoil.HadronicRecoilConf import HadronicRecoil__MuonSelector
        from HadronicRecoil.HadronicRecoilConf import HadronicRecoil__EflowSelector
        from HadronicRecoil.HadronicRecoilConf import HadronicRecoil__RecoilCalculation
        from HadronicRecoil.HadronicRecoilConf import HadronicRecoil__EflowRecoil
        
        if not hasattr( preseq, "HadronicRecoil::ElectronSelector" ):
            preseq += HadronicRecoil__ElectronSelector()
        if not hasattr( preseq, "HadronicRecoil::MuonSelector" ):
            preseq += HadronicRecoil__MuonSelector()
        if not hasattr( preseq, "HadronicRecoil::EflowSelector" ):
            preseq += HadronicRecoil__EflowSelector()
        if not hasattr( preseq, "HadronicRecoil::RecoilCalculation" ):
            preseq += HadronicRecoil__RecoilCalculation( ConeSizes = [0.20] )
        if not hasattr( preseq, "EflowRecoil_20" ):
            preseq += HadronicRecoil__EflowRecoil("EflowRecoil_20", 
                                                  TrackRough       = "RoughRecoil_track_20", 
                                                  TrackUE          = "ueCorrection_track_20", 
                                                  TrackRef         = "RefinedRecoil_track_20", 
                                                  ClusNoTrackRough = "RoughRecoil_clusNoTrack_20", 
                                                  ClusNoTrackUE    = "ueCorrection_clusNoTrack_20", 
                                                  ClusNoTrackRef   = "RefinedRecoil_clusNoTrack_20", 
                                                  RoughRecoil_out  = "RoughRecoil_Eflow_20", 
                                                  ueCorrection_out = "ueCorrection_Eflow_20", 
                                                  RefinedRecoil_out= "RefinedRecoil_Eflow_20", 
                                                  MET_out          = "MET_HR_Eflow_20" ) 
            
    # now configure the D3PD
    
    if not alg:
        alg = MSMgr.NewRootStream(StreamName = streamname, FileName = file, TreeName = tuplename)

    
    alg += EventInfoD3PDObject        (**_args (10, 'EventInfo', kw))
    alg += LArCollisionTimeD3PDObject (**_args (10, 'LArCollisionTime', kw))

    from TriggerD3PDMaker.BunchStructureMetadata import addBunchStructureMetadata
    addBunchStructureMetadata (alg)

    # Eta rings of energy
    # FIXME brian crashing aod running
    if not rec.readAOD:
        from CaloD3PDMaker.RapgapD3PDObject       import EtaRingsNonTileD3PDObject
        from CaloD3PDMaker.RapgapD3PDObject       import EtaRingsD3PDObject

        alg += EtaRingsNonTileD3PDObject  ( **_args ( 0, 'EtaRings', kw) )
        alg += EtaRingsD3PDObject         ( **_args ( 0, 'EtaRings', kw) )
    
    # Electron/Photon blocks
    
    alg += ElectronD3PDObject         (**_args (10, 'Electron', kw))

    if testSGKey ('ElectronContainer', D3PDMakerFlags.GSFElectronSGKey()):
        alg += GSFElectronD3PDObject  (**_args (10, 'GSFElectron', kw,
                                                sgkey = D3PDMakerFlags.GSFElectronSGKey(),
                                                prefix = 'el_gsf_'))

    if flags.doPhotons():
        print "adding photons"
        alg += PhotonD3PDObject           (**_args (10, 'Photon', kw))


    # Muon blocks

     ### add the scattering significance filler - to be removed when added in the MuonD3PDMaker
    if not MuonD3PDObject.allBlocknames().has_key("MuonScatteringAngleSignificance"):
        from AthenaCommon.AppMgr import ToolSvc
        muonScatteringSigTool=None
        if hasattr(ToolSvc, "MuonScatteringSigTool"):
            muonScatteringSigTool=ToolSvc.MuonScatteringSigTool
        from JetTagD3PDMaker import MuonScatteringAngleSignificanceFillerTool
        MuonD3PDObject.defineBlock (100, "MuonScatteringAngleSignificance",
                                    MuonScatteringAngleSignificanceFillerTool,
                                    ScatteringSigTool=muonScatteringSigTool)

    alg += MuonD3PDObject             (**_args (10, 'MuidMuon', kw,
                                                sgkey='MuidMuonCollection', prefix='mu_muid_',
                                                include = ["EFCBInfoIndex", "EFMGInfoIndex", "EFMEInfoIndex",
                                                           "L2CBInfoIndex", "L1InfoIndex"],
                                                exclude = ["EFCBInfo", "EFMGInfo", "EFMEInfo", "L2CBInfo", "L1Info"],
                                                allowMissing = True ))

    alg += MuonD3PDObject             (**_args (10, 'StacoMuon', kw,
                                                sgkey='StacoMuonCollection', prefix='mu_staco_',
                                                include = ["EFCBInfoIndex", "EFMGInfoIndex", "EFMEInfoIndex",
                                                           "L2CBInfoIndex", "L1InfoIndex"],
                                                exclude = ["EFCBInfo", "EFMGInfo", "EFMEInfo", "L2CBInfo", "L1Info"],
                                                allowMissing = True ))
    
    from AthenaCommon.KeyStore import CfgItemList
    if CfgItemList("KeyStore_inputFile").has_item("Analysis::MuonContainer#Muons"):
        alg += MuonD3PDObject             (**_args (10, 'Muons', kw,
                                                    sgkey='Muons', prefix='mu_muons_',
                                                    include = ["EFCBInfoIndex", "EFMGInfoIndex", "EFMEInfoIndex",
                                                               "L2CBInfoIndex", "L1InfoIndex"],
                                                    exclude = ["EFCBInfo", "EFMGInfo", "EFMEInfo", "L2CBInfo", "L1Info"],
                                                    allowMissing = True ))

    alg += MuonD3PDObject             (**_args (0, 'CaloMuon', kw, sgkey='CaloMuonCollection', prefix='mu_calo_',
                                                include = ["MuonHitSummary", "Authors", "Likelihood",
                                                           "Isolation", "CaloEnergyLoss", "Quality"] ))
    
    # Tau block

    if flags.doTaus():
        alg += TauD3PDObject              (**_args ( 1, 'Tau', kw))



     # track and cluster blocks

    # ... all clusters, very low LOD
    
    alg += ClusterD3PDObject          (**_args ( 0, 'Clusters1', kw,
                                                 exclude='SamplingBasics'))

    # ... higher LOD for pt>10 GeV
    if flags.doHighPtClusters():
        alg += ClusterD3PDObject          (**_args ( 2, 'Clusters2', kw,
                                                     sgkey  = 'HighPtClusters',
                                                     prefix = 'clpt10_'))

    if flags.doHighPtEMClusters():    
        alg += ClusterD3PDObject          (**_args ( 3, 'Clusters3', kw,
                                                     sgkey  = 'HighPtEMClusters',
                                                     prefix = 'emclpt10_'))

    from TrackD3PDMaker.TrackD3PDObject import TrackD3PDObject    

    # ... good tracks only (nSCT>3; no pt cut)

    # use standard level of track info for 'GoodTracks'

    if flags.doGoodTracks():
        # use standard level of track info for 'GoodTracks'
        alg += TrackParticleD3PDObject    (**_args ( 3, 'Tracks1', kw,
                                                     sgkey  = 'GoodTracks',
                                                     label  = 'trk',
                                                     prefix = 'trk_'))
            
        # ... high-pt tracks (nSCT>3; pt>5 GeV)
            
    if flags.doHighPtTracks():
        
        from TrackD3PDMaker.TrackD3PDMakerFlags                import TrackD3PDFlags as highPtFlags
        highPtFlags.doTruth = True
        highPtFlags.storeDiagonalCovarianceAsErrors = True
        highPtFlags.storeHitTruthMatching = True
        highPtFlags.storePixelHitsOnTrack = False
        highPtFlags.storePixelHolesOnTrack = False
        highPtFlags.storePixelOutliersOnTrack = False
        highPtFlags.storeSCTHitsOnTrack = False
        highPtFlags.storeSCTHolesOnTrack = False
        highPtFlags.storeSCTOutliersOnTrack = False
        highPtFlags.storeTRTHitsOnTrack = False
        highPtFlags.storeTRTHolesOnTrack = False
        highPtFlags.storeTRTOutliersOnTrack = False
        highPtFlags.storeTrackFitQuality = True
        highPtFlags.storeTrackMomentum = True
        highPtFlags.storeTrackSummary = True
        highPtFlags.storeTrackSummary.IDOutliers = True
        highPtFlags.storeTrackSummary.PixelInfoPlus = True
        highPtFlags.storeTrackSummary.SCTInfoPlus = True
        highPtFlags.storeTrackSummary.TRTInfoPlus = True
        highPtFlags.storeTrackSummary.InfoPlus = True
        highPtFlags.trackParametersAtBeamSpotLevelOfDetails = 0
        highPtFlags.trackParametersAtGlobalPerigeeLevelOfDetails = 2
        highPtFlags.trackParametersAtPrimaryVertexLevelOfDetails = 3  

        HighPtTrackParticleD3PDObject = TrackD3PDObject(_label='trkpt5',
                                                        _prefix='trkpt5_',
                                                        _sgkey='HighPtTracks',
                                                        typeName='Rec::TrackParticleContainer',
                                                        flags=highPtFlags)
            
        alg += HighPtTrackParticleD3PDObject(**_args ( 3, 'Tracks2', kw,
                                                       sgkey  = 'HighPtTracks',
                                                       label  = 'trkpt5',
                                                       prefix = 'trkpt5_'))

  
    # Jet blocks
    
    from JetTagD3PDMaker.JetTagD3PDMakerFlags import JetTagD3PDFlags

    # include list modified for HSG5D3PD
    
    includelist = JetTagD3PDFlags.StdInfoInclude()

    from JetTagD3PDMaker.JetTagD3PDMakerKeys import JetTagD3PDKeys
    includelist += [JetTagD3PDKeys.BTagWeightsBlockName()]
    #includelist += [JetTagD3PDKeys.JetFitterInfoBaseBlockName()] 
    #includelist += [JetTagD3PDKeys.JetFitterTagInfoBlockName()] 
    #includelist += [JetTagD3PDKeys.IP3DInfoBaseBlockName()] 
    #includelist += [JetTagD3PDKeys.IP3DIPInfoBaseBlockName()] 
    #includelist += [JetTagD3PDKeys.JetFitterCombInfoBaseBlockName()] 
    includelist += [JetTagD3PDKeys.JetTrackAssocBlockName()] 
    includelist += [JetTagD3PDKeys.JetTrackBlockName()] 
    includelist += [JetTagD3PDKeys.IPInfoPlusTrackAssocBlockName()] 
    includelist += [JetTagD3PDKeys.IPInfoPlusTrackBlockName()] 
    includelist += ['ConstituentScale']
    
    jetkw = kw
    if not jetkw.has_key ( 'AK4TopoEMJet_'+JetTagD3PDKeys.JetTrackAssocBlockName()+'_target'):
        jetkw['AK4TopoEMJet_'+JetTagD3PDKeys.JetTrackAssocBlockName()+'_target']= "trk" 
    if not jetkw.has_key ( 'AK4TopoEMJet_'+JetTagD3PDKeys.IPInfoPlusTrackAssocBlockName()+'_target'):
        jetkw['AK4TopoEMJet_'+JetTagD3PDKeys.IPInfoPlusTrackAssocBlockName()+'_target']= "trk" 

    alg += JetD3PDObject              (**_args ( 3, 'AK4TopoEMJet', jetkw,
                                                 sgkey='AntiKt4TopoEMJets', prefix='jet_AntiKt4TopoEM_',
                                                 include = includelist,
                                                 JetVertexFraction_FromUD=True,
                                                 JetVertexFraction_FillFullJVF=True,
                                                 allowMissing = True))

    alg += JetD3PDObject              (**_args ( 3, 'AK6TopoEMJet', kw,
                                                 sgkey='AntiKt6TopoEMJets', prefix='jet_AntiKt6TopoEM_',
                                                 include = [JetTagD3PDFlags.StdInfoInclude(),'ConstituentScale'],
                                                 JetVertexFraction_FromUD=True,
                                                 JetVertexFraction_FillFullJVF=True,
                                                 allowMissing = True))

    alg += JetD3PDObject              (**_args ( 3, 'AK4LCTopoJet', kw,
                                                 sgkey='AntiKt4LCTopoJets', prefix='jet_AntiKt4LCTopo_',
                                                 exclude=['Layer'],
                                                 include=['ConstituentScale'],
                                                 JetVertexFraction_FromUD=True,
                                                 JetVertexFraction_FillFullJVF=True,
                                                 allowMissing = True))
    
    alg += JetD3PDObject              (**_args ( 3, 'AK6LCTopoJet', kw,
                                                 sgkey='AntiKt6LCTopoJets', prefix='jet_AntiKt6LCTopo_',
                                                 exclude=['Layer'],
                                                 include=['ConstituentScale'],
                                                 JetVertexFraction_FromUD=True,
                                                 JetVertexFraction_FillFullJVF=True,
                                                 allowMissing = True))


    from TopInputsD3PDMaker.HforD3PDObject import HforD3PDObject
    alg += HforD3PDObject(**_args (0, 'HforInfo', kw))


    # MET blocks
    # a whole mess to remove x,y components separately for all flavours

    if flags.doAllMissingET() :
        alg += MissingETD3PDObject        (**_args (10, 'MissingET', kw,
                                                    exclude=['MET_Base', 'MET_Base0', 'MET_Truth_Int',
                                                             'MET_RefFinal_Comps','MET_Calib_Comps','MET_CellOut_Comps',
                                                             'MET_CorrTopo_Comps','MET_Cryo_Comps','MET_CryoCone_Comps',
                                                             'MET_Final_Comps','MET_LocHadTopo_Comps',
                                                             'MET_LocHadTopoObj_Comps',
                                                             'MET_Muid_Comps','MET_Muid_Spectro_Comps','MET_Muid_Track_Comps',
                                                             'MET_MuonBoy_Comps','MET_MuonBoy_Spectro_Comps','MET_MuonBoy_Track_Comps',
                                                             'MET_Muons_Comps','MET_Muons_Spectro_Comps','MET_Muons_Track_Comps',
                                                             'MET_MuonMuid_Comps',
                                                             'MET_Muon_Comps','MET_Muon_Isol_Muid_Comps',
                                                             'MET_Muon_Isol_Staco_Comps','MET_Muon_NonIsol_Muid_Comps',
                                                             'MET_Muon_NonIsol_Staco_Comps','MET_Muon_Total_Muid_Comps',
                                                             'MET_Muon_Total_Staco_Comps','MET_RefEle_Comps',
                                                             'MET_RefEle_em_Comps','MET_RefGamma_Comps',
                                                             'MET_RefGamma_em_Comps','MET_RefJet_Comps',
                                                             'MET_RefJet_em_Comps','MET_RefMuon_Comps',
                                                             'MET_RefMuon_Muid_Comps','MET_RefMons_Comps','MET_RefMuon_Staco_Comps',
                                                             'MET_RefMuon_Track_Muid_Comps','MET_RefMuon_Track_Staco_Comps',
                                                             'MET_RefMuon_Track_em_Comps','MET_RefMuon_Track_Comps',
                                                             'MET_RefMuons_Track_Comps',
                                                             'MET_RefMuon_em_Comps','MET_RefTau_Comps',
                                                             'MET_RefTau_em_Comps','MET_SoftJets_Comps',
                                                             'MET_SoftJets_em_Comps','MET_Topo_Comps',
                                                             'MET_TopoObj_Comps','MET_Track_Comps','MET_Comps',
                                                             'MET_Track_Weights','MET_Cluster_Weights'],
                                                    allowMissing=True))
    else :
        alg += MissingETD3PDObject(0, sgkey = "MET_RefFinal",                prefix = "MET_RefFinal")

        # MuonBoy terms used in RefFinal
        alg += MissingETD3PDObject(0, sgkey = "MET_MuonBoy",                 prefix = "MET_MuonBoy")
        alg += MissingETD3PDObject(0, sgkey = "MET_RefMuon",                 prefix = "MET_RefMuon")
        alg += MissingETD3PDObject(0, sgkey = "MET_CellOut_Eflow",           prefix = "MET_CellOut_Eflow")

        # terms needed to calculate RefFinal with Muid instead of Staco
        alg += MissingETD3PDObject(0, sgkey = "MET_RefMuon_Muid",            prefix = "MET_RefMuon_Muid")
        alg += MissingETD3PDObject(0, sgkey = "MET_MuonMuid",                prefix = "MET_MuonMuid")
        alg += MissingETD3PDObject(0, sgkey = "MET_Muid",                    prefix = "MET_Muid")
        alg += MissingETD3PDObject(0, sgkey = "MET_CellOut_Eflow_Muid",      prefix = "MET_CellOut_Eflow_Muid")

        # terms needed to calculate RefFinal with third chain instead of Staco
        from AthenaCommon.KeyStore import CfgItemList
        keystore = CfgItemList("KeyStore_inputFile")
        if keystore.has_item("MissingET#MET_Muons"):
            alg += MissingETD3PDObject(0, sgkey = "MET_Muons",                    prefix = "MET_Muons")
        if keystore.has_item("MissingET#MET_RefMuons"):
            alg += MissingETD3PDObject(0, sgkey = "MET_RefMuons",                 prefix = "MET_RefMuons")
        if keystore.has_item("MissingET#MET_CellOut_Eflow_Muons"):
            alg += MissingETD3PDObject(0, sgkey = "MET_CellOut_Eflow_Muons",      prefix = "MET_CellOut_Eflow_Muons")
        
        # I have no idea what these are for
        alg += MissingETD3PDObject(0, sgkey = "MET_SoftJets",                prefix = "MET_SoftJets")
        alg += MissingETD3PDObject(0, sgkey = "MET_RefFinal_em",             prefix = "MET_RefFinal_em")
        alg += MissingETD3PDObject(0, sgkey = "MET_CellOut_em",              prefix = "MET_CellOut_em")
        alg += MissingETD3PDObject(0, sgkey = "MET_SoftJets_em",             prefix = "MET_SoftJets_em")
                   

    # HadronicRecoil blocks

    if flags.doHadronicRecoil():
        alg += ElectronD3PDObject(0,  sgkey = "HR_selectedElectrons",       prefix = "hr_el_")
        alg += MuonD3PDObject( 0,     sgkey = "HR_selectedMuons",           prefix = "hr_mu_" )
        
        alg += MissingETD3PDObject(0, sgkey = "RoughRecoil_20",                prefix = "hr_roughRecoil_20", 
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "ueCorrection_20",               prefix = "hr_ueCorrection_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "RefinedRecoil_20",              prefix = "hr_corrRecoil_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "MET_HR_20",                     prefix = "hr_MET_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        
        alg += MissingETD3PDObject(0, sgkey = "RoughRecoil_track_20",          prefix = "hr_roughRecoil_track_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "ueCorrection_track_20",         prefix = "hr_ueCorrection_track_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "RefinedRecoil_track_20",        prefix = "hr_corrRecoil_track_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "MET_HR_track_20",               prefix = "hr_MET_track_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        
        alg += MissingETD3PDObject(0, sgkey = "RoughRecoil_clusNoTrack_20",    prefix = "hr_roughRecoil_clusNoTrack_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "ueCorrection_clusNoTrack_20",   prefix = "hr_ueCorrection_clusNoTrack_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "RefinedRecoil_clusNoTrack_20",  prefix = "hr_corrRecoil_clusNoTrack_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "MET_HR_clusNoTrack_20",         prefix = "hr_MET_clusNoTrack_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        
        alg += MissingETD3PDObject(0, sgkey = "RoughRecoil_Eflow_20",          prefix = "hr_roughRecoil_Eflow_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "ueCorrection_Eflow_20",         prefix = "hr_ueCorrection_Eflow_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "RefinedRecoil_Eflow_20",        prefix = "hr_corrRecoil_Eflow_20",
                                   exclude=['MET_Regions','MET_Comps'] )  
        alg += MissingETD3PDObject(0, sgkey = "MET_HR_Eflow_20",               prefix = "hr_MET_Eflow_20", 
                                   exclude=['MET_Regions','MET_Comps'] )  


    """
    # track and cluster blocks

    # ... all clusters, very low LOD
    
    alg += ClusterD3PDObject          (**_args ( 0, 'Clusters1', kw,
                                                 exclude='SamplingBasics'))

    # ... higher LOD for pt>10 GeV
    if flags.doHighPtClusters():
        alg += ClusterD3PDObject          (**_args ( 2, 'Clusters2', kw,
                                                     sgkey  = 'HighPtClusters',
                                                     prefix = 'clpt10_'))

    if flags.doHighPtEMClusters():    
        alg += ClusterD3PDObject          (**_args ( 3, 'Clusters3', kw,
                                                     sgkey  = 'HighPtEMClusters',
                                                     prefix = 'emclpt10_'))

    from TrackD3PDMaker.TrackD3PDObject import TrackD3PDObject    

    # ... good tracks only (nSCT>3; no pt cut)

    # use standard level of track info for 'GoodTracks'

    if flags.doGoodTracks():
        # use standard level of track info for 'GoodTracks'
        alg += TrackParticleD3PDObject    (**_args ( 3, 'Tracks1', kw,
                                                     sgkey  = 'GoodTracks',
                                                     label  = 'trk',
                                                     prefix = 'trk_'))
            
        # ... high-pt tracks (nSCT>3; pt>5 GeV)
            
    if flags.doHighPtTracks():
        
        from TrackD3PDMaker.TrackD3PDMakerFlags                import TrackD3PDFlags as highPtFlags
        highPtFlags.doTruth = True
        highPtFlags.storeDiagonalCovarianceAsErrors = True
        highPtFlags.storeHitTruthMatching = True
        highPtFlags.storePixelHitsOnTrack = False
        highPtFlags.storePixelHolesOnTrack = False
        highPtFlags.storePixelOutliersOnTrack = False
        highPtFlags.storeSCTHitsOnTrack = False
        highPtFlags.storeSCTHolesOnTrack = False
        highPtFlags.storeSCTOutliersOnTrack = False
        highPtFlags.storeTRTHitsOnTrack = False
        highPtFlags.storeTRTHolesOnTrack = False
        highPtFlags.storeTRTOutliersOnTrack = False
        highPtFlags.storeTrackFitQuality = True
        highPtFlags.storeTrackMomentum = True
        highPtFlags.storeTrackSummary = True
        highPtFlags.storeTrackSummary.IDOutliers = True
        highPtFlags.storeTrackSummary.PixelInfoPlus = True
        highPtFlags.storeTrackSummary.SCTInfoPlus = True
        highPtFlags.storeTrackSummary.TRTInfoPlus = True
        highPtFlags.storeTrackSummary.InfoPlus = True
        highPtFlags.trackParametersAtBeamSpotLevelOfDetails = 0
        highPtFlags.trackParametersAtGlobalPerigeeLevelOfDetails = 2
        highPtFlags.trackParametersAtPrimaryVertexLevelOfDetails = 3  

        HighPtTrackParticleD3PDObject = TrackD3PDObject(_label='trkpt5',
                                                        _prefix='trkpt5_',
                                                        _sgkey='HighPtTracks',
                                                        typeName='Rec::TrackParticleContainer',
                                                        flags=highPtFlags)
            
        alg += HighPtTrackParticleD3PDObject(**_args ( 3, 'Tracks2', kw,
                                                       sgkey  = 'HighPtTracks',
                                                       label  = 'trkpt5',
                                                       prefix = 'trkpt5_'))
    """       
    
    # Primary vertex block - May be missing in single-beam data.

    alg += PrimaryVertexD3PDObject (**_args (1, 'PrimaryVertex', kw,
                                             allowMissing = True,
                                             sgkey = D3PDMakerFlags.VertexSGKey(),
                                             prefix = 'vxp_'))
            
    # MBTS 
            
    alg += MBTSD3PDObject             (**_args (10, 'MBTS', kw))
    alg += MBTSTimeD3PDObject         (**_args (10, 'MBTSTime', kw))
    alg += MBTSTriggerBitsD3PDObject  (**_args (10, 'MBTSTriggerBits', kw))
    #alg += CollisionDecisionD3PDObject(**_args (10, 'CollisionDecision', kw))
    
    # Truth

    if rec.doTruth():

        from TruthD3PDMaker.TruthParticleD3PDObject            import TruthParticleD3PDObject
        from MuonD3PDMaker.TruthMuonD3PDObject                 import TruthMuonD3PDObject

        alg += TruthMuonD3PDObject    (**_args ( 2, 'TruthMuon', kw))
        alg += GenEventD3PDObject     (**_args ( 1, 'GenEvent', kw))
        alg += TruthParticleD3PDObject(**_args ( 1, 'TruthParticle', kw))

        # TruthJets
        alg += JetD3PDObject          (**_args ( 1, 'AK4TruthJet', kw,
                                                 sgkey='AntiKt4TruthJets',prefix='jet_AntiKt4Truth_',
                                                 allowMissing = True))
        alg += JetD3PDObject          (**_args ( 1, 'AK6TruthJet', kw,
                                                 sgkey='AntiKt6TruthJets', prefix='jet_AntiKt6Truth_',
                                                 allowMissing = True))
        alg += JetD3PDObject          (**_args ( 1, 'AK4TruthJetALL', kw,
                                                 sgkey='AntiKt4TruthJets_ALL', prefix='jet_AntiKt4TruthALL_',
                                                 allowMissing = True))
        alg += JetD3PDObject          (**_args ( 1, 'AK6TruthJetALL', kw,
                                                 sgkey='AntiKt6TruthJets_ALL', prefix='jet_AntiKt6TruthALL_',
                                                 allowMissing = True))
        alg += JetD3PDObject          (**_args ( 1, 'AK4TruthJetWZ', kw,
                                                 sgkey='AntiKt4TruthJets_WZ', prefix='jet_AntiKt4TruthWZ_',
                                                 allowMissing = True))
        alg += JetD3PDObject          (**_args ( 1, 'AK6TruthJetWZ', kw,
                                                 sgkey='AntiKt6TruthJets_WZ', prefix='jet_AntiKt6TruthWZ_',
                                                 allowMissing = True))
        

    if not rec.doTruth():
        alg += BeamSpotD3PDObject(10)
    

    from TrigMissingETD3PDMaker.TrigMETD3PD import TrigMETD3PDObjects
    TrigMETD3PDObjects(alg,10)
    
    # Trigger

    if D3PDMakerFlags.DoTrigger():

        alg += SMWZTriggerBitsD3PDObject      (**_args (10, 'SMWZTriggerBits', kw))
        
        # Trigger Decision + metadata

        alg += TrigDecisionD3PDObject  (**_args(10, 'TrigDecision', kw))
        addTrigConfMetadata(alg)
        
        # Bunch group info

        alg += BGCodeD3PDObject (**_args (2, 'BGCode', kw))

        # Egamma and Mu
        
        TrigEgammaD3PDObjects (alg, 1)
        TrigMuonD3PDObjects( alg, 1)

        # Esum

        #alg += EnergySumROID3PDObject(**_args (2, 'EnergySumROI', kw,
        #                                       prefix = "trig_L1_esum_"))

        # The LVL2 information:

        #alg += TrigMETD3PDObject(**_args( 2, 'TrigMETL2', kw,
        #                                  prefix = "trig_L2_met_",
        #                                  sgkey = "HLT_T2MissingET" ))
        # The EF information:

        #alg += TrigMETD3PDObject(**_args ( 2, 'TrigMETEF', kw,
        #                                   prefix = "trig_EF_met_",
        #                                   sgkey = "HLT_TrigEFMissingET" ))

# Event metadata

    alg.MetadataTools += [LBMetadataConfig()]

# Invoke routine to write GSCFactor and WidthFraction jet moments

    #addSTRUCTCalib('AntiKt4LCTopoJets', input='Topo', mainParam=0.4)
    #addSTRUCTCalib('AntiKt6LCTopoJets', input='Topo', mainParam=0.6)
    #addSTRUCTCalib('AntiKt4TopoEMJets', input='Topo', mainParam=0.4)
    #addSTRUCTCalib('AntiKt6TopoEMJets', input='Topo', mainParam=0.6)
    
    if D3PDMakerFlags.FilterCollCand():
        from CaloD3PDMaker.CollisionFilterAlg import CollisionFilterAlg
        alg.filterSeq += CollisionFilterAlg (tuplename + '_CollCandFilter')

    return alg
Ejemplo n.º 7
0
outList = CfgItemList( 'HIPsStream',
                       items = ['EventInfo#*',
    'EventInfo#ByteStreamEventInfo',
    'InDet::PixelClusterContainer#PixelClusters',
    'InDet::SCT_ClusterContainer#SCT_Clusters',
    'BCM_RDO_Container#BCM_CompactDOs',
    'BCM_RDO_Container#BCM_RDOs',
    'LUCID_RawDataContainer#Lucid_RawData',
    'LArDigitContainer#LArDigitContainer_EMClust',
    'LArDigitContainer#LArDigitContainer_Thinned',
    'CaloCellContainer#AllCalo',
    'CaloCellContainer#HLT_CaloCellContainer_TrigCaloCellLoF',
    'CaloCellContainer#HLT_CaloCellContainer_TrigCaloCellMaker_eGamma',
    'CaloCellContainer#HLT_CaloCellContainer_TrigCaloCellMaker_tau',
    'CaloCellContainer#HLT_CaloCellContainer_TrigT2CaloEgammaCells',
    'CaloCellContainer#HLT_CaloCellContainer_TrigT2CaloTauCells',
    'CaloCellContainer#TauCommonPi0Cells',
    'TileDigitsContainer#MuRcvDigitsCnt',
    'TileDigitsContainer#TileDigitsFlt',
    'TileRawChannelContainer#MuRcvRawChCnt',
    'TileRawChannelContainer#TileRawChannelFlt',
    'TileCellContainer#E4prContainer',
    'TileCellContainer#MBTSContainer',
    'TileL2Container#TileL2Cnt',
    'TileMuContainer#TileMuObj',
    'TileMuonReceiverContainer#TileMuRcvCnt',
    'RpcPadContainer#RPCPAD',
    'ROIB::RoIBResult#RoIBResult',
    'CTP_RDO#CTP_RDO',
    'MuCTPI_RDO#MUCTPI_RDO',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_EFJetEtSum',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_EFMissingET_Fex_2sidednoiseSupp_PUC',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_T2MissingET',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEB',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PS',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PUC',
    'xAOD::TrigMissingETContainer#HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEB',
    'xAOD::TrigConfKeys#TrigConfKeys',
    'xAOD::EventAuxInfo#EventInfoAux.',
    'xAOD::TrigDecisionAuxInfo#xTrigDecisionAux.',
    'xAOD::EventInfo#EventInfo',
    'xAOD::EnergySumRoI#LVL1EnergySumRoI',
    'RecoTimingObj#RAWtoESD_mems',
    'RecoTimingObj#RAWtoESD_timings',
    'xAOD::TrigNavigationAuxInfo#TrigNavigationAux.',
    'xAOD::TrigDecision#xTrigDecision',
    'xAOD::JetEtRoI#LVL1JetEtRoI',
    'Trk::SegmentCollection#MuonSegments',
    'Trk::SegmentCollection#NCB_MuonSegments',
    'xAOD::MissingETAuxAssociationMap#METAssoc_AntiKt4EMPFlowAux.',
    'xAOD::MissingETAuxAssociationMap#METAssoc_AntiKt4EMTopoAux.',
    'xAOD::MissingETAuxAssociationMap#METAssoc_AntiKt4LCTopoAux.',
    'HLT::HLTResult#HLTResult_HLT',
    'LArNoisyROSummary#LArNoisyROSummary',
    'TrackCollection#CombinedMuonTracks',
    'TrackCollection#ExtrapolatedMuonTracks',
    'TrackCollection#GSFTracks',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Bjet_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Bphysics_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_CosmicsN_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Electron_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_FullScan_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Muon_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Photon_EFID',
    'TrackCollection#HLT_TrackCollection_InDetTrigTrackSlimmer_Tau_EFID',
    'TrackCollection#MuonSpectrometerTracks',
    'TrackCollection#DisappearingTracks',
    'TrackCollection#ResolvedForwardTracks',
    'TrackCollection#Tracks',
    'xAOD::EventShapeAuxInfo#Kt4EMPFlowEventShapeAux.',
    'xAOD::EventShapeAuxInfo#Kt4EMTopoEventShapeAux.',
    'xAOD::EventShapeAuxInfo#Kt4LCTopoEventShapeAux.',
    'xAOD::EventShapeAuxInfo#NeutralParticleFlowIsoCentralEventShapeAux.',
    'xAOD::EventShapeAuxInfo#NeutralParticleFlowIsoForwardEventShapeAux.',
    'xAOD::EventShapeAuxInfo#ParticleFlowIsoCentralEventShapeAux.',
    'xAOD::EventShapeAuxInfo#ParticleFlowIsoForwardEventShapeAux.',
    'xAOD::EventShapeAuxInfo#TopoClusterIsoCentralEventShapeAux.',
    'xAOD::EventShapeAuxInfo#TopoClusterIsoForwardEventShapeAux.',
    'InDet::PixelGangedClusterAmbiguities#PixelClusterAmbiguitiesMap',
    'InDet::PixelGangedClusterAmbiguities#SplitClusterAmbiguityMap',
    'xAOD::MissingETAssociationMap#METAssoc_AntiKt4EMPFlow',
    'xAOD::MissingETAssociationMap#METAssoc_AntiKt4EMTopo',
    'xAOD::MissingETAssociationMap#METAssoc_AntiKt4LCTopo',
    'xAOD::TrigNavigation#TrigNavigation',
    'LArFebErrorSummary#LArFebErrorSummary',
    'ComTime#TRT_Phase',
    'xAOD::EventShape#Kt4EMPFlowEventShape',
    'xAOD::EventShape#Kt4EMTopoEventShape',
    'xAOD::EventShape#Kt4LCTopoEventShape',
    'xAOD::EventShape#NeutralParticleFlowIsoCentralEventShape',
    'xAOD::EventShape#NeutralParticleFlowIsoForwardEventShape',
    'xAOD::EventShape#ParticleFlowIsoCentralEventShape',
    'xAOD::EventShape#ParticleFlowIsoForwardEventShape',
    'xAOD::EventShape#TopoClusterIsoCentralEventShape',
    'xAOD::EventShape#TopoClusterIsoForwardEventShape',
    'RawInfoSummaryForTag#RawInfoSummaryForTag',
    'xAOD::JetEtRoIAuxInfo#LVL1JetEtRoIAux.',
    'xAOD::EnergySumRoIAuxInfo#LVL1EnergySumRoIAux.',
    'Muon::CscPrepDataContainer#CSC_Clusters',
    'CombinedMuonFeatureContainer#HLT_CombinedMuonFeatureContainer',
    'xAOD::EmTauRoIContainer#HLT_xAOD__EmTauRoIContainer_L1TopoEM',
    'xAOD::EmTauRoIContainer#HLT_xAOD__EmTauRoIContainer_L1TopoTau',
    'xAOD::EmTauRoIContainer#LVL1EmTauRoIs',
    'xAOD::BTagVertexAuxContainer#BTagging_AntiKt2TrackJFVtxAux.',
    'xAOD::BTagVertexAuxContainer#BTagging_AntiKt3TrackJFVtxAux.',
    'xAOD::BTagVertexAuxContainer#BTagging_AntiKt4EMTopoJFVtxAux.',
    'xAOD::BTagVertexAuxContainer#BTagging_AntiKt4LCTopoJFVtxAux.',
    'xAOD::BTagVertexAuxContainer#BTagging_AntiKt4TrackJFVtxAux.',
    'xAOD::BTagVertexAuxContainer#HLT_xAOD__BTagVertexContainer_BjetVertexFexAux.',
    'xAOD::TrigRingerRingsAuxContainer#HLT_xAOD__TrigRingerRingsContainer_TrigT2CaloEgammaAux.',
    'xAOD::TriggerTowerAuxContainer#ZdcTriggerTowersAux.',
    'xAOD::TriggerTowerAuxContainer#xAODTriggerTowersAux.',
    'xAOD::TriggerTowerAuxContainer#xAODTriggerTowersMuonAux.',
    'xAOD::ElectronContainer#Electrons',
    'xAOD::ElectronContainer#ForwardElectrons',
    'xAOD::ElectronContainer#HLT_xAOD__ElectronContainer_egamma_Electrons',
    'xAOD::BTaggingTrigAuxContainer#HLT_xAOD__BTaggingContainer_HLTBjetFexAux.',
    'xAOD::TrigSpacePointCountsAuxContainer#HLT_xAOD__TrigSpacePointCountsContainer_spacepointsAux.',
    'TrigVertexCountsCollection#HLT_TrigVertexCountsCollection_vertexcounts',
    'xAOD::TrigT2ZdcSignalsContainer#HLT_xAOD__TrigT2ZdcSignalsContainer_zdcsignals',
    'xAOD::VertexContainer#BTagging_AntiKt2TrackSecVtx',
    'xAOD::VertexContainer#BTagging_AntiKt3TrackSecVtx',
    'xAOD::VertexContainer#BTagging_AntiKt4EMTopoSecVtx',
    'xAOD::VertexContainer#BTagging_AntiKt4LCTopoSecVtx',
    'xAOD::VertexContainer#BTagging_AntiKt4TrackSecVtx',
    'xAOD::VertexContainer#GSFConversionVertices',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_BjetSecondaryVertexFex',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_EFHistoPrmVtx',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_PrimVertexFTK',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_PrimVertexFTKRaw',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_PrimVertexFTKRefit',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_SecondaryVertex',
    'xAOD::VertexContainer#HLT_xAOD__VertexContainer_xPrimVx',
    'xAOD::VertexContainer#MSDisplacedVertex',
    'xAOD::VertexContainer#PrimaryVertices',
    'xAOD::VertexContainer#TauSecondaryVertices',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuXFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuXFex_XAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFDsPhiPiFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFMuPairsAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFMultiMuFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_EFTrackMassAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2BMuMuFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2BMuMuXFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2DiMuXFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDsAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhiAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2JpsieeFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2MultiMuFexAux.',
    'xAOD::TrigBphysAuxContainer#HLT_xAOD__TrigBphysContainer_L2TrackMassAux.',
    'xAOD::CPMTowerAuxContainer#CPMTowersAux.',
    'xAOD::CPMTowerAuxContainer#CPMTowersOverlapAux.',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_SplitJet',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_SuperRoi',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_TrigJetRec',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_TrigT2CaloJet',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_TrigT2CosmicJet',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_forID',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_forID1',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_forID2',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_forID3',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_forMS',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_initialRoI',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_secondaryRoI_EF',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_secondaryRoI_HLT',
    'TrigRoiDescriptorCollection#HLT_TrigRoiDescriptorCollection_secondaryRoI_L2',
    'xAOD::CMXRoIContainer#CMXRoIs',
    'xAOD::CMXCPTobAuxContainer#CMXCPTobsAux.',
    'xAOD::MissingETContainer#MET_Calo',
    'xAOD::MissingETContainer#MET_Core_AntiKt4EMPFlow',
    'xAOD::MissingETContainer#MET_Core_AntiKt4EMTopo',
    'xAOD::MissingETContainer#MET_Core_AntiKt4LCTopo',
    'xAOD::MissingETContainer#MET_EMTopo',
    'xAOD::MissingETContainer#MET_EMTopoRegions',
    'xAOD::MissingETContainer#MET_LocHadTopo',
    'xAOD::MissingETContainer#MET_LocHadTopoRegions',
    'xAOD::MissingETContainer#MET_Reference_AntiKt4EMPFlow',
    'xAOD::MissingETContainer#MET_Reference_AntiKt4EMTopo',
    'xAOD::MissingETContainer#MET_Reference_AntiKt4LCTopo',
    'xAOD::MissingETContainer#MET_Track',
    'xAOD::L2IsoMuonContainer#HLT_xAOD__L2IsoMuonContainer_MuonL2ISInfo',
    'xAOD::PhotonContainer#HLT_xAOD__PhotonContainer_egamma_Photons',
    'xAOD::PhotonContainer#Photons',
    'xAOD::TrigRNNOutputContainer#HLT_xAOD__TrigRNNOutputContainer_TrigRingerNeuralFex',
    'xAOD::TrigRNNOutputContainer#HLT_xAOD__TrigRNNOutputContainer_TrigTRTHTCounts',
    'xAOD::TrackParticleClusterAssociationAuxContainer#InDetTrackParticlesClusterAssociationsAux.',
    'xAOD::RODHeaderAuxContainer#RODHeadersAux.',
    'xAOD::ZdcModuleContainer#ZdcModules',
    'xAOD::TrigEMClusterAuxContainer#HLT_xAOD__TrigEMClusterContainer_TrigT2CaloEgammaAux.',
    'xAOD::ElectronAuxContainer#ElectronsAux.',
    'xAOD::ElectronAuxContainer#ForwardElectronsAux.',
    'TrigTrackCountsCollection#HLT_TrigTrackCountsCollection_trackcounts',
    'xAOD::TrigPassBitsContainer#HLT_xAOD__TrigPassBitsContainer_passbits',
    'xAOD::TrigElectronContainer#HLT_xAOD__TrigElectronContainer_L2ElectronFex',
    'xAOD::TrigElectronContainer#HLT_xAOD__TrigElectronContainer_L2IDCaloFex',
    'TRT_BSIdErrContainer#TRT_ByteStreamIdErrs',
    'xAOD::TrigT2MbtsBitsContainer#HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts',
    'TrigSpacePointCountsCollection#HLT_TrigSpacePointCountsCollection_spacepoints',
    'xAOD::TrigVertexCountsContainer#HLT_xAOD__TrigVertexCountsContainer_vertexcounts',
    'xAOD::L2IsoMuonAuxContainer#HLT_xAOD__L2IsoMuonContainer_MuonL2ISInfoAux.',
    'InDet::TRT_DriftCircleContainer#TRT_DriftCircles',
    'xAOD::MuonSegmentContainer#MuonSegments',
    'xAOD::MuonSegmentContainer#NCB_MuonSegments',
    'xAOD::JetRoIContainer#HLT_xAOD__JetRoIContainer_L1TopoJet',
    'xAOD::JetRoIContainer#LVL1JetRoIs',
    'xAOD::JetElementAuxContainer#JetElementsAux.',
    'xAOD::JetElementAuxContainer#JetElementsOverlapAux.',
    'CaloClusterCellLinkContainer#CaloCalTopoClusters_links',
    'CaloClusterCellLinkContainer#InDetTrackParticlesAssociatedClusters_links',
    'CaloClusterCellLinkContainer#LArClusterEM7_11Nocorr_links',
    'CaloClusterCellLinkContainer#LArClusterEM_links',
    'CaloClusterCellLinkContainer#MuonClusterCollection_links',
    'CaloClusterCellLinkContainer#egammaClusters_links',
    'CaloClusterCellLinkContainer#egammaTopoSeededClusters_links',
    'xAOD::TrigPhotonContainer#HLT_xAOD__TrigPhotonContainer_L2PhotonFex',
    'xAOD::CMXCPHitsAuxContainer#CMXCPHitsAux.',
    'TrigEFBjetContainer#HLT_TrigEFBjetContainer_EFBjetFex',
    'xAOD::SlowMuonContainer#SlowMuons',
    'xAOD::CMXJetHitsAuxContainer#CMXJetHitsAux.',
    'xAOD::RODHeaderContainer#RODHeaders',
    'xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuTagIMO_EFAux.',
    'xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuonEFInfoAux.',
    'xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuonEFInfo_FullScanAux.',
    'xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_MuonEFInfo_MSonlyTrackParticles_FullScanAux.',
    'xAOD::MuonAuxContainer#HLT_xAOD__MuonContainer_eMuonEFInfoAux.',
    'xAOD::MuonAuxContainer#MuonsAux.',
    'xAOD::MuonAuxContainer#StausAux.',
    'Muon::MdtPrepDataContainer#MDT_DriftCircles',
    'xAOD::HIEventShapeContainer#HLT_xAOD__HIEventShapeContainer_HIUE',
    'xAOD::BTagVertexContainer#BTagging_AntiKt2TrackJFVtx',
    'xAOD::BTagVertexContainer#BTagging_AntiKt3TrackJFVtx',
    'xAOD::BTagVertexContainer#BTagging_AntiKt4EMTopoJFVtx',
    'xAOD::BTagVertexContainer#BTagging_AntiKt4LCTopoJFVtx',
    'xAOD::BTagVertexContainer#BTagging_AntiKt4TrackJFVtx',
    'xAOD::BTagVertexContainer#HLT_xAOD__BTagVertexContainer_BjetVertexFex',
    'xAOD::CaloClusterTrigAuxContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMakerAux.',
    'xAOD::CaloClusterTrigAuxContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker_slwAux.',
    'xAOD::CaloClusterTrigAuxContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker_topoAux.',
    'xAOD::CaloClusterTrigAuxContainer#HLT_xAOD__CaloClusterContainer_TrigEFCaloCalibFexAux.',
    'xAOD::SlowMuonAuxContainer#SlowMuonsAux.',
    'xAOD::HIEventShapeAuxContainer#HLT_xAOD__HIEventShapeContainer_HIUEAux.',
    'TrigMuonEFInfoContainer#HLT_TrigMuonEFInfoContainer_MuTagIMO_EF',
    'TrigMuonEFInfoContainer#HLT_TrigMuonEFInfoContainer_MuonEFInfo',
    'TrigMuonEFInfoContainer#HLT_TrigMuonEFInfoContainer_eMuonEFInfo',
    'xAOD::TriggerTowerContainer#ZdcTriggerTowers',
    'xAOD::TriggerTowerContainer#xAODTriggerTowers',
    'xAOD::TriggerTowerContainer#xAODTriggerTowersMuon',
    'TrigMuonEFIsolationContainer#HLT_TrigMuonEFIsolationContainer_MuonEFIsolation',
    'xAOD::TrigCompositeAuxContainer#HLT_xAOD__TrigCompositeContainer_L1TopoCompositeAux.',
    'xAOD::TrigCompositeAuxContainer#HLT_xAOD__TrigCompositeContainer_L1TopoMETAux.',
    'xAOD::TrigCompositeAuxContainer#HLT_xAOD__TrigCompositeContainer_MuonRoIClusterAux.',
    'xAOD::CMXJetTobAuxContainer#CMXJetTobsAux.',
    'xAOD::ZdcModuleAuxContainer#ZdcModulesAux.',
    'xAOD::TauJetContainer#HLT_xAOD__TauJetContainer_TrigTauRecMerged',
    'xAOD::TauJetContainer#HLT_xAOD__TauJetContainer_TrigTauRecPreselection',
    'xAOD::TauJetContainer#TauJets',
    'xAOD::PFOContainer#JetETMissChargedParticleFlowObjects',
    'xAOD::PFOContainer#JetETMissNeutralParticleFlowObjects',
    'xAOD::PFOContainer#TauChargedParticleFlowObjects',
    'xAOD::PFOContainer#TauHadronicParticleFlowObjects',
    'xAOD::PFOContainer#TauNeutralParticleFlowObjects',
    'xAOD::PFOContainer#TauShotParticleFlowObjects',
    'xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuTagIMO_EF',
    'xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuonEFInfo',
    'xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuonEFInfo_FullScan',
    'xAOD::MuonContainer#HLT_xAOD__MuonContainer_MuonEFInfo_MSonlyTrackParticles_FullScan',
    'xAOD::MuonContainer#HLT_xAOD__MuonContainer_eMuonEFInfo',
    'xAOD::MuonContainer#Muons',
    'xAOD::MuonContainer#Staus',
    'xAOD::CMXEtSumsContainer#CMXEtSums',
    'xAOD::TrigElectronAuxContainer#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux.',
    'xAOD::TrigElectronAuxContainer#HLT_xAOD__TrigElectronContainer_L2IDCaloFexAux.',
    'TrigT2MbtsBitsContainer#HLT_TrigT2MbtsBitsContainer_T2Mbts',
    'xAOD::L1TopoRawDataContainer#L1TopoRawData',
    'xAOD::CPMTobRoIAuxContainer#CPMTobRoIsAux.',
    'xAOD::CPMTobRoIAuxContainer#CPMTobRoIsRoIBAux.',
    'Muon::TgcCoinDataContainer#TrigT1CoinDataCollection',
    'Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC',
    'Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC',
    'Muon::RpcCoinDataContainer#RPC_triggerHits',
    'IsoMuonFeatureContainer#HLT_IsoMuonFeatureContainer',
    'xAOD::CMXEtSumsAuxContainer#CMXEtSumsAux.',
    'MuonFeatureContainer#HLT_MuonFeatureContainer',
    'xAOD::L2CombinedMuonContainer#HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfo',
    'xAOD::L2CombinedMuonAuxContainer#HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfoAux.',
    'xAOD::JEMTobRoIContainer#JEMTobRoIs',
    'xAOD::JEMTobRoIContainer#JEMTobRoIsRoIB',
    'xAOD::L2StandAloneMuonAuxContainer#HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfoAux.',
    'xAOD::TrigSpacePointCountsContainer#HLT_xAOD__TrigSpacePointCountsContainer_spacepoints',
    'xAOD::TrackParticleAuxContainer#CombinedMuonTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#CombinedStauTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#ExtrapolatedMuonTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#ExtrapolatedStauTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnvIOTRT_CosmicsN_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_BjetPrmVtx_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTKAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTKRefitAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTKRefit_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTK_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_CosmicsN_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_L2IDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_MuonIso_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTKAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTKRefitAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTKRefit_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTK_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_TauCore_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_TauIso_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTFAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTKAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTKRefitAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTKRefit_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTK_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrigAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_minBias_EFIDAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_CombTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_ExtrapTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_CombTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_CombTrackParticles_FullScanAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_ExtrapTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_ExtrapTrackParticles_FullScanAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_eMuonEFInfo_CombTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#HLT_xAOD__TrackParticleContainer_eMuonEFInfo_ExtrapTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#InDetForwardTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition',
    'xAOD::TrackParticleAuxContainer#InDetDisappearingTrackParticlesAux.',
    'xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition',
    'xAOD::TrackParticleAuxContainer#MSonlyTrackletsAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux.-caloExtension.-cellAssociation.-clusterAssociation',
    'TrigPassFlagsCollection#HLT_TrigPassFlagsCollection_isEM',
    'TrigPassFlagsCollection#HLT_TrigPassFlagsCollection_passflags',
    'TrigEMClusterContainer#HLT_TrigEMClusterContainer_TrigT2CaloCosmic',
    'xAOD::CaloClusterContainer#CaloCalTopoClusters',
    'xAOD::CaloClusterContainer#ForwardElectronClusters',
    'xAOD::CaloClusterContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker',
    'xAOD::CaloClusterContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker_slw',
    'xAOD::CaloClusterContainer#HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker_topo',
    'xAOD::CaloClusterContainer#HLT_xAOD__CaloClusterContainer_TrigEFCaloCalibFex',
    'xAOD::CaloClusterContainer#InDetTrackParticlesAssociatedClusters',
    'xAOD::CaloClusterContainer#LArClusterEM',
    'xAOD::CaloClusterContainer#LArClusterEM7_11Nocorr',
    'xAOD::CaloClusterContainer#MuonClusterCollection',
    'xAOD::CaloClusterContainer#TauPi0Clusters',
    'xAOD::CaloClusterContainer#egammaClusters',
    'xAOD::CaloClusterContainer#egammaTopoSeededClusters',
    'xAOD::PFOAuxContainer#JetETMissChargedParticleFlowObjectsAux.',
    'xAOD::PFOAuxContainer#JetETMissNeutralParticleFlowObjectsAux.',
    'xAOD::PFOAuxContainer#TauChargedParticleFlowObjectsAux.',
    'xAOD::PFOAuxContainer#TauHadronicParticleFlowObjectsAux.',
    'xAOD::PFOAuxContainer#TauNeutralParticleFlowObjectsAux.',
    'xAOD::PFOAuxContainer#TauShotParticleFlowObjectsAux.',
    'MuonFeatureDetailsContainer#HLT_MuonFeatureDetailsContainer',
    'xAOD::CMXRoIAuxContainer#CMXRoIsAux.',
    'xAOD::MissingETAuxContainer#MET_CaloAux.',
    'xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMPFlowAux.',
    'xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMTopoAux.',
    'xAOD::MissingETAuxContainer#MET_Core_AntiKt4LCTopoAux.',
    'xAOD::MissingETAuxContainer#MET_EMTopoAux.',
    'xAOD::MissingETAuxContainer#MET_EMTopoRegionsAux.',
    'xAOD::MissingETAuxContainer#MET_LocHadTopoAux.',
    'xAOD::MissingETAuxContainer#MET_LocHadTopoRegionsAux.',
    'xAOD::MissingETAuxContainer#MET_Reference_AntiKt4EMPFlowAux.',
    'xAOD::MissingETAuxContainer#MET_Reference_AntiKt4EMTopoAux.',
    'xAOD::MissingETAuxContainer#MET_Reference_AntiKt4LCTopoAux.',
    'xAOD::MissingETAuxContainer#MET_TrackAux.',
    'xAOD::CMXJetTobContainer#CMXJetTobs',
    'xAOD::TrigPassBitsAuxContainer#HLT_xAOD__TrigPassBitsContainer_passbitsAux.',
    'xAOD::JEMEtSumsContainer#JEMEtSums',
    'xAOD::CPMTobRoIContainer#CPMTobRoIs',
    'xAOD::CPMTobRoIContainer#CPMTobRoIsRoIB',
    'Muon::CscStripPrepDataContainer#CSC_Measurements',
    'xAOD::BTaggingAuxContainer#BTagging_AntiKt2TrackAux.',
    'xAOD::BTaggingAuxContainer#BTagging_AntiKt3TrackAux.',
    'xAOD::BTaggingAuxContainer#BTagging_AntiKt4EMTopoAux.',
    'xAOD::BTaggingAuxContainer#BTagging_AntiKt4LCTopoAux.',
    'xAOD::BTaggingAuxContainer#BTagging_AntiKt4TrackAux.',
    'xAOD::JetContainer#AntiKt10LCTopoJets',
    'xAOD::JetContainer#AntiKt2PV0TrackJets',
    'xAOD::JetContainer#AntiKt3PV0TrackJets',
    'xAOD::JetContainer#AntiKt4EMPFlowJets',
    'xAOD::JetContainer#AntiKt4EMTopoJets',
    'xAOD::JetContainer#AntiKt4LCTopoJets',
    'xAOD::JetContainer#AntiKt4PV0TrackJets',
    'xAOD::JetContainer#CamKt12LCTopoJets',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_EFJet',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_FarawayJet',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_SplitJet',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_SuperRoi',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_TrigTauJet',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10TTemnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10TThadnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10r_tcemsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemjesPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemnojcalibPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemsubFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tcemsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwjesPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwnojcalibPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwsubFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a10tclcwsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a3ionemsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4TTemnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4TThadnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4ionemsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemjesPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemnojcalibPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemsubFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tcemsubjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwjesFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwjesPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwnojcalibFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwnojcalibPS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwsubFS',
    'xAOD::JetContainer#HLT_xAOD__JetContainer_a4tclcwsubjesFS',
    'xAOD::TrackParticleClusterAssociationContainer#InDetTrackParticlesClusterAssociations',
    'xAOD::CMXCPTobContainer#CMXCPTobs',
    'xAOD::PhotonAuxContainer#PhotonsAux.',
    'xAOD::EmTauRoIAuxContainer#HLT_xAOD__EmTauRoIContainer_L1TopoEMAux.',
    'xAOD::EmTauRoIAuxContainer#HLT_xAOD__EmTauRoIContainer_L1TopoTauAux.',
    'xAOD::EmTauRoIAuxContainer#LVL1EmTauRoIsAux.',
    'xAOD::TrigTrackCountsAuxContainer#HLT_xAOD__TrigTrackCountsContainer_trackcountsAux.',
    'Muon::RpcPrepDataContainer#RPC_Measurements',
    'xAOD::TrigT2MbtsBitsAuxContainer#HLT_xAOD__TrigT2MbtsBitsContainer_T2MbtsAux.',
    'xAOD::JetElementContainer#JetElements',
    'xAOD::JetElementContainer#JetElementsOverlap',
    'xAOD::BTaggingContainer#BTagging_AntiKt2Track',
    'xAOD::BTaggingContainer#BTagging_AntiKt3Track',
    'xAOD::BTaggingContainer#BTagging_AntiKt4EMTopo',
    'xAOD::BTaggingContainer#BTagging_AntiKt4LCTopo',
    'xAOD::BTaggingContainer#BTagging_AntiKt4Track',
    'xAOD::BTaggingContainer#HLT_xAOD__BTaggingContainer_HLTBjetFex',
    'xAOD::TrigEMClusterContainer#HLT_xAOD__TrigEMClusterContainer_TrigT2CaloEgamma',
    'xAOD::CPMTowerContainer#CPMTowers',
    'xAOD::CPMTowerContainer#CPMTowersOverlap',
    'xAOD::TrigRNNOutputAuxContainer#HLT_xAOD__TrigRNNOutputContainer_TrigRingerNeuralFexAux.',
    'xAOD::TrigRNNOutputAuxContainer#HLT_xAOD__TrigRNNOutputContainer_TrigTRTHTCountsAux.',
    'xAOD::PhotonTrigAuxContainer#HLT_xAOD__PhotonContainer_egamma_PhotonsAux.',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_EFJetEtSum',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_L2JetEtSum',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_L2MissingET_FEB',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_T2MissingET',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_TrigEFMissingET',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_TrigEFMissingET_FEB',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_TrigEFMissingET_topocl',
    'TrigMissingETContainer#HLT_TrigMissingETContainer_TrigEFMissingET_topocl_PS',
    'TrigMuonClusterFeatureContainer#HLT_TrigMuonClusterFeatureContainer_MuonCluster',
    'xAOD::CMXJetHitsContainer#CMXJetHits',
    'xAOD::DiTauJetContainer#DiTauJets',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_EFJetAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_FarawayJetAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_SplitJetAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_SuperRoiAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollectionAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_TrigTauJetAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10TTemnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10TThadnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10r_tcemsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemjesPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemnojcalibPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemsubFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tcemsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwjesPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwnojcalibPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwsubFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a10tclcwsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a3ionemsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4TTemnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4TThadnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4ionemsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemjesPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemnojcalibPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemsubFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tcemsubjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwjesFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwjesPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwnojcalibFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwnojcalibPSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwsubFSAux.',
    'xAOD::JetTrigAuxContainer#HLT_xAOD__JetContainer_a4tclcwsubjesFSAux.',
    'xAOD::TrackParticleContainer#CombinedMuonTrackParticles',
    'xAOD::TrackParticleContainer#CombinedStauTrackParticles',
    'xAOD::TrackParticleContainer#ExtrapolatedMuonTrackParticles',
    'xAOD::TrackParticleContainer#ExtrapolatedStauTrackParticles',
    'xAOD::TrackParticleContainer#GSFTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnvIOTRT_CosmicsN_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTK',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTKRefit',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTKRefit_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_FTK_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_CosmicsN_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_L2ID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_MuonIso_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTK',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTKRefit',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTKRefit_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTK_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_TauCore_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_TauIso_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTF',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTK',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTKRefit',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTKRefit_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_FTK_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrig',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_minBias_EFID',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_CombTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_ExtrapTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_CombTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_CombTrackParticles_FullScan',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_ExtrapTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_MuonEFInfo_ExtrapTrackParticles_FullScan',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_eMuonEFInfo_CombTrackParticles',
    'xAOD::TrackParticleContainer#HLT_xAOD__TrackParticleContainer_eMuonEFInfo_ExtrapTrackParticles',
    'xAOD::TrackParticleContainer#InDetForwardTrackParticles',
    'xAOD::TrackParticleContainer#InDetDisappearingTrackParticles',
    'xAOD::TrackParticleContainer#InDetTrackParticles',
    'xAOD::TrackParticleContainer#MSonlyTracklets',
    'xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles',
    'xAOD::JetRoIAuxContainer#HLT_xAOD__JetRoIContainer_L1TopoJetAux.',
    'xAOD::JetRoIAuxContainer#LVL1JetRoIsAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_EFJetEtSumAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_EFMissingET_Fex_2sidednoiseSupp_PUCAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_T2MissingETAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingETAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_FEBAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mhtAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topoclAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PSAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PUCAux.',
    'xAOD::TrigMissingETAuxContainer#HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEBAux.',
    'xAOD::MuonRoIAuxContainer#HLT_xAOD__MuonRoIContainer_L1TopoMuonAux.',
    'xAOD::MuonRoIAuxContainer#LVL1MuonRoIsAux.',
    'TileTrackMuFeatureContainer#HLT_TileTrackMuFeatureContainer',
    'xAOD::JetAuxContainer#AntiKt10LCTopoJetsAux.',
    'xAOD::JetAuxContainer#AntiKt2PV0TrackJetsAux.',
    'xAOD::JetAuxContainer#AntiKt3PV0TrackJetsAux.',
    'xAOD::JetAuxContainer#AntiKt4EMPFlowJetsAux.',
    'xAOD::JetAuxContainer#AntiKt4EMTopoJetsAux.',
    'xAOD::JetAuxContainer#AntiKt4LCTopoJetsAux.',
    'xAOD::JetAuxContainer#AntiKt4PV0TrackJetsAux.',
    'xAOD::JetAuxContainer#CamKt12LCTopoJetsAux.',
    'TileMuFeatureContainer#HLT_TileMuFeatureContainer',
    'RpcSectorLogicContainer#RPC_SECTORLOGIC',
    'TrigVertexCollection#HLT_TrigVertexCollection_TrigBeamSpotVertex',
    'TrigVertexCollection#HLT_TrigVertexCollection_TrigL2SiTrackFinder_FullScan_ZF_Only',
    'TrigInDetTrackCollection#HLT_TrigInDetTrackCollection',
    'xAOD::TrigRingerRingsContainer#HLT_xAOD__TrigRingerRingsContainer_TrigT2CaloEgamma',
    'xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.',
    'xAOD::CaloClusterAuxContainer#ForwardElectronClustersAux.',
    'xAOD::CaloClusterAuxContainer#InDetTrackParticlesAssociatedClustersAux.',
    'xAOD::CaloClusterAuxContainer#LArClusterEM7_11NocorrAux.',
    'xAOD::CaloClusterAuxContainer#LArClusterEMAux.',
    'xAOD::CaloClusterAuxContainer#MuonClusterCollectionAux.',
    'xAOD::CaloClusterAuxContainer#TauPi0ClustersAux.',
    'xAOD::CaloClusterAuxContainer#egammaClustersAux.',
    'xAOD::CaloClusterAuxContainer#egammaTopoSeededClustersAux.',
    'xAOD::CMXCPHitsContainer#CMXCPHits',
    'xAOD::TrigT2ZdcSignalsAuxContainer#HLT_xAOD__TrigT2ZdcSignalsContainer_zdcsignalsAux.',
    'xAOD::DiTauJetAuxContainer#DiTauJetsAux.',
    'xAOD::JEMTobRoIAuxContainer#JEMTobRoIsAux.',
    'xAOD::JEMTobRoIAuxContainer#JEMTobRoIsRoIBAux.',
    'xAOD::L2StandAloneMuonContainer#HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfo',
    'xAOD::TauJetAuxContainer#HLT_xAOD__TauJetContainer_TrigTauRecMergedAux.',
    'xAOD::TauJetAuxContainer#HLT_xAOD__TauJetContainer_TrigTauRecPreselectionAux.',
    'xAOD::TauJetAuxContainer#TauJetsAux.',
    'TrigPassBitsCollection#HLT_TrigPassBitsCollection_passbits',
    'xAOD::MuonRoIContainer#HLT_xAOD__MuonRoIContainer_L1TopoMuon',
    'xAOD::MuonRoIContainer#LVL1MuonRoIs',
    'xAOD::JEMEtSumsAuxContainer#JEMEtSumsAux.',
    'xAOD::TrigPhotonAuxContainer#HLT_xAOD__TrigPhotonContainer_L2PhotonFexAux.',
    'InDetBSErrContainer#PixelByteStreamErrs',
    'InDetBSErrContainer#SCT_ByteStreamErrs',
    'xAOD::TrigVertexCountsAuxContainer#HLT_xAOD__TrigVertexCountsContainer_vertexcountsAux.',
    'xAOD::VertexAuxContainer#BTagging_AntiKt2TrackSecVtxAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#BTagging_AntiKt3TrackSecVtxAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#BTagging_AntiKt4EMTopoSecVtxAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#BTagging_AntiKt4LCTopoSecVtxAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#BTagging_AntiKt4TrackSecVtxAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#GSFConversionVerticesAux.-vxTrackAtVertex',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_BjetSecondaryVertexFexAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_EFHistoPrmVtxAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_PrimVertexFTKAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_PrimVertexFTKRawAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_PrimVertexFTKRefitAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_SecondaryVertexAux.',
    'xAOD::VertexAuxContainer#HLT_xAOD__VertexContainer_xPrimVxAux.',
    'xAOD::VertexAuxContainer#MSDisplacedVertexAux.',
    'xAOD::VertexAuxContainer#PrimaryVerticesAux.-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV',
    'xAOD::VertexAuxContainer#TauSecondaryVerticesAux.-vxTrackAtVertex',
    'TrigOperationalInfoCollection#HLT_TrigOperationalInfoCollection_EXPRESS_OPI_HLT',
    'TRT_BSErrContainer#TRT_ByteStreamErrs',
    'xAOD::TrigTrackCountsContainer#HLT_xAOD__TrigTrackCountsContainer_trackcounts',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuXFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFBMuMuXFex_X',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFMuPairs',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFMultiMuFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_EFTrackMass',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2BMuMuFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2BMuMuXFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2DiMuXFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2JpsieeFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2MultiMuFex',
    'xAOD::TrigBphysContainer#HLT_xAOD__TrigBphysContainer_L2TrackMass',
    'xAOD::TrigCompositeContainer#HLT_xAOD__TrigCompositeContainer_L1TopoComposite',
    'xAOD::TrigCompositeContainer#HLT_xAOD__TrigCompositeContainer_L1TopoMET',
    'xAOD::TrigCompositeContainer#HLT_xAOD__TrigCompositeContainer_MuonRoICluster',
    'xAOD::L1TopoRawDataAuxContainer#L1TopoRawDataAux.',
    'xAOD::ElectronTrigAuxContainer#HLT_xAOD__ElectronContainer_egamma_ElectronsAux.',
    'xAOD::MuonSegmentAuxContainer#MuonSegmentsAux.',
    'xAOD::MuonSegmentAuxContainer#NCB_MuonSegmentsAux.',
    'Muon::TgcPrepDataContainer#TGC_MeasurementsAllBCs',
    'DataHeader#StreamESD']
)
Ejemplo n.º 8
0
#

from AthenaCommon.Resilience import treatException, protectedInclude

from AthenaCommon.GlobalFlags import globalflags

from AthenaCommon.Logging import logging
logRecoOutputItemList_jobOptions = logging.getLogger(
    'py:RecoOutputItemList_jobOptions')

from RecExConfig.RecFlags import rec

from AthenaCommon.KeyStore import CfgItemList

# Start with an empty list:
fullESDList = CfgItemList("EsdList")

# EventInfo stuff
fullItemList = ["xAOD::EventInfo#*", "xAOD::EventAuxInfo#*"]
protectedInclude("EventAthenaPool/EventAthenaPoolItemList_joboptions.py")
fullESDList += CfgItemList("EventAthenaPool",
                           items=fullItemList,
                           allowWildCard=True)

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

# RawInfoSummaryForTag
try:
    fullItemList = []
    protectedInclude(
Ejemplo n.º 9
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 )
Ejemplo n.º 10
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 !")
Ejemplo n.º 11
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())
Ejemplo n.º 12
0
    def configure(self):
        from AthenaCommon.Logging import logging
        mlog = logging.getLogger('CaloCellGetter::configure:')
        mlog.info('entering')

        doStandardCellReconstruction = True
        from CaloRec.CaloCellFlags import jobproperties

        if not jobproperties.CaloCellFlags.doFastCaloSim.statusOn:
            doFastCaloSim = False
            mlog.info("doFastCaloSim not set, so not using it")
        else:
            doFastCaloSim = jobproperties.CaloCellFlags.doFastCaloSim()
            if doFastCaloSim:
                mlog.info("doFastCaloSim requested")
                doStandardCellReconstruction = False
                if jobproperties.CaloCellFlags.doFastCaloSimAddCells():
                    doStandardCellReconstruction = True
                    mlog.info(
                        "doFastCaloSimAddCells requested: FastCaloSim is added to fullsim calorimeter"
                    )
                else:
                    mlog.info(
                        "doFastCaloSimAddCells not requested: Stand alone FastCaloSim is running"
                    )
            else:
                mlog.info("doFastCaloSim explicitly not requested")

        # get handle to upstream object
        # handle tile

        if doStandardCellReconstruction:
            # handle LAr
            import traceback
            try:
                from LArROD.LArRODFlags import larRODFlags
                from AthenaCommon.GlobalFlags import globalflags
                if larRODFlags.readDigits() and globalflags.DataSource(
                ) == 'data':
                    from AthenaCommon.KeyStore import CfgItemList
                    CfgItemList("KeyStore_inputFile").removeItem(
                        "LArRawChannelContainer#LArRawChannels")
                if (not larRODFlags.readDigits()
                    ) and globalflags.InputFormat() == 'bytestream':
                    from AthenaCommon.AppMgr import ServiceMgr as svcMgr
                    try:
                        if not "LArRawChannelContainer/LArRawChannels" in svcMgr.ByteStreamAddressProviderSvc.TypeNames:
                            svcMgr.ByteStreamAddressProviderSvc.TypeNames += [
                                "LArRawChannelContainer/LArRawChannels"
                            ]
                    except:
                        mlog.warning(
                            "Cannot remove LArRawChannelContainer/LArRawChannels from bytestream list"
                        )
                from LArROD.LArRawChannelGetter import LArRawChannelGetter
                theLArRawChannelGetter = LArRawChannelGetter()
            except:
                mlog.error("could not get handle to LArRawChannel Quit")
                print traceback.format_exc()
                return False

            if not theLArRawChannelGetter.usable():
                if not self.ignoreConfigError():
                    mlog.error("LArRawChannelGetter unusable. Quit.")
                    return False
                else:
                    mlog.error(
                        "LArRawChannelGetter unusable. Continue nevertheless")

        # writing of thinned digits
        if jobproperties.CaloCellFlags.doLArThinnedDigits.statusOn and jobproperties.CaloCellFlags.doLArThinnedDigits(
        ):
            from AthenaCommon.GlobalFlags import globalflags
            if globalflags.DataSource() == 'data':
                try:
                    from LArROD.LArDigits import DefaultLArDigitThinner
                    LArDigitThinner = DefaultLArDigitThinner(
                        'LArDigitThinner'
                    )  # automatically added to topSequence
                    LArDigitThinner.InputContainerName = "FREE"
                    LArDigitThinner.OutputContainerName = "LArDigitContainer_Thinned"
                except Exception:
                    treatException("Problem with LArDigitThinner ")

        # now configure the algorithm, part of this could be done in a separate class
        # cannot have same name
        try:
            from CaloRec.CaloRecConf import CaloCellMaker
        except:
            mlog.error("could not import CaloRec.CaloCellMaker")
            print traceback.format_exc()
            return False

        theCaloCellMaker = CaloCellMaker()
        self._CaloCellMakerHandle = theCaloCellMaker

        from AthenaCommon.AppMgr import ToolSvc

        if doStandardCellReconstruction:
            # configure CaloCellMaker here
            # check LArCellMakerTool_jobOptions.py for full configurability
            # FIXME

            from RecExConfig.RecFlags import rec

            if rec.doLArg():
                try:
                    from LArCellRec.LArCellRecConf import LArCellBuilderFromLArRawChannelTool
                    theLArCellBuilder = LArCellBuilderFromLArRawChannelTool()
                except:
                    mlog.error(
                        "could not get handle to LArCellBuilderFromLArRawChannel Quit"
                    )
                    print traceback.format_exc()
                    return False

                if jobproperties.CaloCellFlags.doLArCreateMissingCells():
                    # bad channel tools
                    try:
                        from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool
                        theLArBadChannelTool = LArBadChanTool()
                    except:
                        mlog.error("could not access bad channel tool Quit")
                        print traceback.format_exc()
                        return False
                    ToolSvc += theLArBadChannelTool
                    theLArCellBuilder.addDeadOTX = True
                    theLArCellBuilder.badChannelTool = theLArBadChannelTool

                # add the tool to list of tool ( should use ToolHandle eventually)
                ToolSvc += theLArCellBuilder
                theCaloCellMaker.CaloCellMakerToolNames += [theLArCellBuilder]

            if rec.doTile():

                from AthenaCommon.GlobalFlags import globalflags
                if globalflags.DataSource(
                ) == 'data' and globalflags.InputFormat() == 'bytestream':
                    from AthenaCommon.AppMgr import ServiceMgr as svcMgr
                    try:
                        svcMgr.ByteStreamCnvSvc.ROD2ROBmap = ["-1"]
                        if not "TileDigitsContainer/TileDigitsCnt" in svcMgr.ByteStreamAddressProviderSvc.TypeNames:
                            svcMgr.ByteStreamAddressProviderSvc.TypeNames += [
                                "TileBeamElemContainer/TileBeamElemCnt",
                                "TileDigitsContainer/TileDigitsCnt",
                                "TileL2Container/TileL2Cnt",
                                "TileLaserObject/TileLaserObj",
                                "TileMuonReceiverContainer/TileMuRcvCnt"
                            ]
                    except:
                        mlog.warning(
                            "Cannot add TileDigitsContainer/TileDigitsCnt et al. to bytestream list"
                        )

                    # set options for TileRawChannelMaker
                    from TileRecUtils.TileRecFlags import jobproperties
                    jobproperties.TileRecFlags.TileRunType = 1
                    # physics run type

                    # reading of digits can be disabled before calling CaloCellGetter
                    # if this is not done, but digits are not available in BS file
                    # reading of digits is automatically disabled at start of run
                    if jobproperties.TileRecFlags.readDigits()                \
                        and not (jobproperties.TileRecFlags.doTileFlat        \
                                 or jobproperties.TileRecFlags.doTileFit      \
                                 or jobproperties.TileRecFlags.doTileFitCool  \
                                 or jobproperties.TileRecFlags.doTileOpt      \
                                 or jobproperties.TileRecFlags.doTileOF1      \
                                 or jobproperties.TileRecFlags.doTileOpt2     \
                                 or jobproperties.TileRecFlags.doTileOptATLAS \
                                 or jobproperties.TileRecFlags.doTileMF):

                        from AthenaCommon.BeamFlags import jobproperties
                        # run Opt filter with iterations by default, both for cosmics and collisions before 2011
                        # run Opt filter without iterations for collisions in 2011 and later
                        if not 'doTileOpt2' in dir():
                            from RecExConfig.AutoConfiguration import GetRunNumber
                            rn = GetRunNumber()
                            if rn > 0 and rn < 171194:
                                doTileOpt2 = True
                            elif jobproperties.Beam.beamType() == 'collisions':
                                doTileOpt2 = False
                                # use OF without iterations for collisions
                            else:
                                doTileOpt2 = True
                                # always run OF with iterations for cosmics

                        # jobproperties.TileRecFlags.calibrateEnergy=True; # use pCb for RawChannels
                        # please, note that time correction and best phase are used only for collisions
                        if doTileOpt2:
                            jobproperties.TileRecFlags.doTileOpt2 = True
                            # run optimal filter with iterations
                            jobproperties.TileRecFlags.doTileOptATLAS = False
                            # disable optimal filter without iterations
                            jobproperties.TileRecFlags.correctAmplitude = False
                            # don't do parabolic correction
                            if jobproperties.Beam.beamType() == 'collisions':
                                jobproperties.TileRecFlags.correctTime = True
                                # apply time correction in physics runs
                                jobproperties.TileRecFlags.BestPhaseFromCOOL = False
                                # best phase is not needed for iterations
                        else:
                            jobproperties.TileRecFlags.doTileOpt2 = False
                            # disable optimal filter with iterations
                            jobproperties.TileRecFlags.doTileOptATLAS = True
                            # run optimal filter without iterations
                            jobproperties.TileRecFlags.correctAmplitude = True
                            # apply parabolic correction
                            if jobproperties.Beam.beamType() == 'collisions':
                                jobproperties.TileRecFlags.correctTime = False
                                # don't need time correction if best phase is used
                                jobproperties.TileRecFlags.BestPhaseFromCOOL = True
                                # use best phase stored in DB

                    try:
                        from TileRecUtils.TileRawChannelGetter import TileRawChannelGetter
                        theTileRawChannelGetter = TileRawChannelGetter()
                    except:
                        mlog.error("could not load TileRawChannelGetter Quit")
                        print traceback.format_exc()
                        return False

                    try:
                        from TileRecAlgs.TileRecAlgsConf import TileDigitsFilter
                        from AthenaCommon.AlgSequence import AlgSequence
                        topSequence = AlgSequence()
                        topSequence += TileDigitsFilter()
                    except:
                        mlog.error("Could not configure TileDigitsFilter")

                try:
                    from TileRecUtils.TileRecUtilsConf import TileCellBuilder
                    theTileCellBuilder = TileCellBuilder()
                    from TileRecUtils.TileRecFlags import jobproperties
                    theTileCellBuilder.TileRawChannelContainer = jobproperties.TileRecFlags.TileRawChannelContainer(
                    )

                    if not hasattr(ToolSvc, "TileBeamInfoProvider"):
                        from TileRecUtils.TileRecUtilsConf import TileBeamInfoProvider
                        ToolSvc += TileBeamInfoProvider()

                    if globalflags.DataSource(
                    ) == 'data' and globalflags.InputFormat() == 'bytestream':
                        if jobproperties.TileRecFlags.readDigits():
                            # everything is already corrected at RawChannel level
                            theTileCellBuilder.correctTime = False
                            theTileCellBuilder.correctAmplitude = False
                        else:
                            ToolSvc.TileBeamInfoProvider.TileRawChannelContainer = "TileRawChannelCnt"
                            # by default parameters are tuned for opt.filter without iterations
                            theTileCellBuilder.correctTime = jobproperties.TileRecFlags.correctTime(
                            )
                            theTileCellBuilder.correctAmplitude = jobproperties.TileRecFlags.correctAmplitude(
                            )
                            theTileCellBuilder.AmpMinForAmpCorrection = jobproperties.TileRecFlags.AmpMinForAmpCorrection(
                            )
                            if jobproperties.TileRecFlags.TimeMaxForAmpCorrection(
                            ) <= jobproperties.TileRecFlags.TimeMinForAmpCorrection(
                            ):
                                from AthenaCommon.BeamFlags import jobproperties
                                mlog.info(
                                    "adjusting min/max time of parabolic correction for %s"
                                    % jobproperties.Beam.bunchSpacing)
                                halfBS = jobproperties.Beam.bunchSpacing.get_Value(
                                ) / 2.
                                jobproperties.TileRecFlags.TimeMinForAmpCorrection = -halfBS
                                jobproperties.TileRecFlags.TimeMaxForAmpCorrection = halfBS
                            if jobproperties.TileRecFlags.TimeMaxForAmpCorrection(
                            ) > jobproperties.TileRecFlags.TimeMinForAmpCorrection(
                            ):
                                theTileCellBuilder.TimeMinForAmpCorrection = jobproperties.TileRecFlags.TimeMinForAmpCorrection(
                                )
                                theTileCellBuilder.TimeMaxForAmpCorrection = jobproperties.TileRecFlags.TimeMaxForAmpCorrection(
                                )

                    ToolSvc += theTileCellBuilder
                    theCaloCellMaker.CaloCellMakerToolNames += [
                        theTileCellBuilder
                    ]
                except:
                    mlog.error("could not get handle to TileCellBuilder Quit")
                    print traceback.format_exc()
                    return False

        if doFastCaloSim:
            mlog.info('configuring FastCaloSim here')

            try:
                from FastCaloSim.FastCaloSimConf import EmptyCellBuilderTool
                theEmptyCellBuilderTool = EmptyCellBuilderTool()
                ToolSvc += theEmptyCellBuilderTool
                theCaloCellMaker.CaloCellMakerToolNames += [
                    theEmptyCellBuilderTool
                ]

                print theEmptyCellBuilderTool
                mlog.info("configure EmptyCellBuilderTool worked")
            except:
                mlog.error("could not get handle to EmptyCellBuilderTool Quit")
                print traceback.format_exc()
                return False

            try:
                from FastCaloSim.FastCaloSimFactory import FastCaloSimFactory
                theFastShowerCellBuilderTool = FastCaloSimFactory()

                ToolSvc += theFastShowerCellBuilderTool
                theCaloCellMaker.CaloCellMakerToolNames += [
                    theFastShowerCellBuilderTool
                ]
                mlog.info("configure FastShowerCellBuilderTool worked")
            except:
                mlog.error(
                    "could not get handle to FastShowerCellBuilderTool Quit")
                print traceback.format_exc()
                return False

            doFastCaloSimNoise = jobproperties.CaloCellFlags.doFastCaloSimNoise(
            )
            if doFastCaloSimNoise:
                try:
                    from FastCaloSim.FastCaloSimConf import AddNoiseCellBuilderTool
                    theAddNoiseCellBuilderTool = AddNoiseCellBuilderTool()

                    from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
                    theCaloNoiseTool = CaloNoiseToolDefault()
                    from AthenaCommon.AppMgr import ToolSvc
                    ToolSvc += theCaloNoiseTool

                    theAddNoiseCellBuilderTool.CaloNoiseTool = theCaloNoiseTool.getFullName(
                    )

                    print theAddNoiseCellBuilderTool

                    ToolSvc += theAddNoiseCellBuilderTool
                    theCaloCellMaker.CaloCellMakerToolNames += [
                        theAddNoiseCellBuilderTool
                    ]
                    mlog.info("configure AddNoiseCellBuilderTool worked")
                except:
                    mlog.error(
                        "could not get handle to AddNoiseCellBuilderTool Quit")
                    print traceback.format_exc()
                    return False

        #
        # CaloCellContainerFinalizerTool : closing container and setting up iterators
        #

        from CaloRec.CaloRecConf import CaloCellContainerFinalizerTool
        theCaloCellContainerFinalizerTool = CaloCellContainerFinalizerTool()
        ToolSvc += theCaloCellContainerFinalizerTool
        theCaloCellMaker.CaloCellMakerToolNames += [
            theCaloCellContainerFinalizerTool
        ]

        #
        # Mergeing of calo cellcontainer with sparse raw channel container with improved energies
        #

        doLArMerge = False
        if globalflags.DataSource(
        ) == 'data' and jobproperties.CaloCellFlags.doLArRawChannelMerge.statusOn and jobproperties.CaloCellFlags.doLArRawChannelMerge(
        ):
            from LArROD.LArRODFlags import larRODFlags
            if larRODFlags.readDigits() and larRODFlags.keepDSPRaw():
                doLArMerge = True
        if doLArMerge:
            try:
                from LArCellRec.LArCellRecConf import LArCellMerger
                theLArCellMerger = LArCellMerger()
            except:
                mlog.error("could not get handle to LArCellMerge Quit")
                print traceback.format_exc()
                return False
            theLArCellMerger.RawChannelsName = larRODFlags.RawChannelFromDigitsContainerName(
            )
            ToolSvc += theLArCellMerger
            theCaloCellMaker.CaloCellMakerToolNames += [theLArCellMerger]

        #
        # masking of noisy and sporadic noisy cells in LAr
        #

        doNoiseMask = False
        if jobproperties.CaloCellFlags.doLArNoiseMasking.statusOn and jobproperties.CaloCellFlags.doLArNoiseMasking(
        ):
            doNoiseMask = True
        doSporadicMask = False
        if jobproperties.CaloCellFlags.doLArSporadicMasking.statusOn and jobproperties.CaloCellFlags.doLArSporadicMasking(
        ):
            doSporadicMask = True

        if doNoiseMask or doSporadicMask:
            try:
                from LArCellRec.LArCellRecConf import LArCellNoiseMaskingTool
                theLArCellNoiseMaskingTool = LArCellNoiseMaskingTool()
            except:
                mlog.error(
                    "could not get handle to LArCellNoiseMaskingTool Quit")
                print traceback.format_exc()
                return False

            # bad channel tools
            try:
                from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool
                theLArBadChannelTool = LArBadChanTool()
            except:
                mlog.error("could not access bad channel tool Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArBadChannelTool

            if doSporadicMask:
                try:
                    from LArBadChannelTool.LArBadChannelToolConf import LArBadChannelMasker
                    theLArSporadicNoiseMasker = LArBadChannelMasker(
                        "LArSporadicNoiseMasker")
                except:
                    mlog.error("could not access bad channel tool Quit")
                    print traceback.format_exc()
                    return False
                theLArSporadicNoiseMasker.TheLArBadChanTool = theLArBadChannelTool
                theLArSporadicNoiseMasker.DoMasking = True
                theLArSporadicNoiseMasker.ProblemsToMask = [
                    "sporadicBurstNoise"
                ]
                ToolSvc += theLArSporadicNoiseMasker
                theLArCellNoiseMaskingTool.MaskingSporadicTool = theLArSporadicNoiseMasker

            if doNoiseMask:
                try:
                    from LArBadChannelTool.LArBadChannelToolConf import LArBadChannelMasker
                    theLArNoiseMasker = LArBadChannelMasker("LArNoiseMasker")
                except:
                    mlog.error("could not access bad channel tool Quit")
                    print traceback.format_exc()
                    return False
                theLArNoiseMasker.TheLArBadChanTool = theLArBadChannelTool
                theLArNoiseMasker.DoMasking = True
                theLArNoiseMasker.ProblemsToMask = [
                    "highNoiseHG", "highNoiseMG", "highNoiseLG", "deadReadout",
                    "deadPhys"
                ]
                ToolSvc += theLArNoiseMasker
                theLArCellNoiseMaskingTool.MaskingTool = theLArNoiseMasker

            theLArCellNoiseMaskingTool.maskNoise = doNoiseMask
            theLArCellNoiseMaskingTool.maskSporadic = doSporadicMask
            # quality cut for sporadic noise masking
            theLArCellNoiseMaskingTool.qualityCut = 4000
            ToolSvc += theLArCellNoiseMaskingTool
            theCaloCellMaker.CaloCellMakerToolNames += [
                theLArCellNoiseMaskingTool
            ]

        #
        #  masking of Feb problems
        #
        doBadFebMasking = False
        if jobproperties.CaloCellFlags.doLArBadFebMasking.statusOn and jobproperties.CaloCellFlags.doLArBadFebMasking(
        ):
            from AthenaCommon.GlobalFlags import globalflags
            if globalflags.DataSource() == 'data':
                doBadFebMasking = True

        if doBadFebMasking:
            try:
                from LArCellRec.LArCellRecConf import LArBadFebMaskingTool
                theLArBadFebMaskingTool = LArBadFebMaskingTool()
                if (
                        rec.doExpressProcessing()
                        or athenaCommonFlags.isOnline()
                ):  # In online or express processing, EventInfo::LArError is triggered if >=4 FEB with data corrupted
                    theLArBadFebMaskingTool.minFebInError = 4
            except:
                mlog.error("could not get handle to LArBadFebMaskingTool Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArBadFebMaskingTool

            # bad channel tools
            try:
                from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool
                theLArBadChannelTool = LArBadChanTool()
            except:
                mlog.error("could not access bad channel tool Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArBadChannelTool

            theLArBadFebMaskingTool.badChannelTool = theLArBadChannelTool
            theCaloCellMaker.CaloCellMakerToolNames += [
                theLArBadFebMaskingTool
            ]

        #
        #  emulate gain pathologies on MC
        #
        doGainPathology = False
        if jobproperties.CaloCellFlags.doLArCellGainPathology.statusOn and jobproperties.CaloCellFlags.doLArCellGainPathology(
        ):
            from AthenaCommon.GlobalFlags import globalflags
            if globalflags.DataSource() == 'geant4':
                doGainPathology = True

        if doGainPathology:
            try:
                from LArCellRec.LArCellRecConf import LArCellGainPathology
                theLArCellGainPathology = LArCellGainPathology()
            except:
                mlog.error("could not get handle to LArCellGainPatholog< Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArCellGainPathology

            theCaloCellMaker.CaloCellMakerToolNames += [
                theLArCellGainPathology
            ]

        # lar miscalibration if MC only  (should be done after finalisation)

        if not jobproperties.CaloCellFlags.doLArCellEmMisCalib.statusOn:
            # the flag has not been set, so decide a reasonable default
            # this is the old global flags should use the new one as
            # soon as monitoring does
            from AthenaCommon.GlobalFlags import globalflags
            if globalflags.DataSource() == 'data':
                doLArCellEmMisCalib = False
                mlog.info(
                    "jobproperties.CaloCellFlags.doLArMisCalib not set and real data: do not apply LArCellEmMisCalibTool"
                )
            else:
                doLArCellEmMisCalib = True
                mlog.info(
                    "jobproperties.CaloCellFlags.doLArMisCalib not set and Monte Carlo: apply LArCellEmMisCalibTool"
                )
        else:
            doLArCellEmMisCalib = jobproperties.CaloCellFlags.doLArCellEmMisCalib(
            )
            if doLArCellEmMisCalib:
                mlog.info("LArCellEmMisCalibTool requested")
            else:
                mlog.info("LArCellEmMisCalibTool explicitly not requested")

        if doLArCellEmMisCalib:
            try:
                from LArCellRec.LArCellRecConf import LArCellEmMiscalib
                theLArCellEmMiscalib = LArCellEmMiscalib("LArCellEmMiscalib")
            except:
                mlog.error("could not get handle to LArCellEmMisCalib Quit")
                print traceback.format_exc()
                return False

            # examples on how to change miscalibration. Default values are 0.005 and 0.007
            #        theLArCellEmMiscalib.SigmaPerRegion = 0.005;
            #        theLArCellEmMiscalib.SigmaPerCell = 0.005;

            ToolSvc += theLArCellEmMiscalib

            try:
                from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
                from CaloIdentifier import SUBCALO
                theMisCalibTool = CaloCellContainerCorrectorTool(
                    "MisCalibTool",
                    CaloNums=[SUBCALO.LAREM],
                    CellCorrectionToolNames=[theLArCellEmMiscalib])
            except:
                mlog.error("could not get handle to MisCalibTool Quit")
                print traceback.format_exc()
                return False

            ToolSvc += theMisCalibTool
            theCaloCellMaker.CaloCellMakerToolNames += [theMisCalibTool]

        #
        # Pedestal shift correction
        #
        doPedestalCorr = False
        if jobproperties.CaloCellFlags.doPedestalCorr.statusOn:
            from AthenaCommon.GlobalFlags import globalflags
            if jobproperties.CaloCellFlags.doPedestalCorr() and (
                    globalflags.DataSource() == 'data'
                    or jobproperties.CaloCellFlags.doPileupOffsetBCIDCorr):
                doPedestalCorr = True
                mlog.info("Apply cell level pedestal shift correction")

        import os
        if doPedestalCorr:
            try:
                from CaloCellCorrection.CaloCellPedestalCorrDefault import CaloCellPedestalCorrDefault
                theCaloCellPedestalCorr = CaloCellPedestalCorrDefault()
                ToolSvc += theCaloCellPedestalCorr
                theCaloCellMaker.CaloCellMakerToolNames += [
                    theCaloCellPedestalCorr
                ]
            except:
                mlog.error("could not get handle to CaloCellPedestalCorr")
                print traceback.format_exc()

        #
        # HV correction for offline reprocessing, reading HV from Cool-DCS database
        #
        doHVCorr = False
        from AthenaCommon.DetFlags import DetFlags
        if DetFlags.dcs.LAr_on():
            if jobproperties.CaloCellFlags.doLArHVCorr.statusOn:
                from AthenaCommon.GlobalFlags import globalflags
                if jobproperties.CaloCellFlags.doLArHVCorr(
                ) and globalflags.DataSource() == 'data':
                    doHVCorr = True
                    mlog.info(
                        "Redoing HV correction at cell level from COOL/DCS database"
                    )

        if doHVCorr:
            from LArCellRec.LArCellHVCorrDefault import LArCellHVCorrDefault
            theLArCellHVCorr = LArCellHVCorrDefault()

            try:
                from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
                from CaloIdentifier import SUBCALO
                theHVCorrTool = CaloCellContainerCorrectorTool(
                    "HVCorrTool",
                    CaloNums=[SUBCALO.LAREM, SUBCALO.LARHEC, SUBCALO.LARFCAL],
                    CellCorrectionToolNames=[theLArCellHVCorr])
            except:
                mlog.error("could not get handle to HVCorrTool Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theHVCorrTool
            theCaloCellMaker.CaloCellMakerToolNames += [theHVCorrTool]

        #
        # correction to undo online calibration and apply new LAr electronics calibration for ADC->MeV conversion
        #
        doLArRecalibration = False
        if jobproperties.CaloCellFlags.doLArRecalibration.statusOn:
            from AthenaCommon.GlobalFlags import globalflags
            from LArConditionsCommon.LArCondFlags import larCondFlags
            if jobproperties.CaloCellFlags.doLArRecalibration(
            ) and globalflags.DataSource() == 'data' and (
                    not larCondFlags.SingleVersion()):
                doLArRecalibration = True
                mlog.info("Redoing LAr electronics calibration for ADC->MeV")

        if doLArRecalibration:

            # get tool for cell recalibration
            try:
                from LArCellRec.LArCellRecConf import LArCellRecalibration
                theLArCellRecalibration = LArCellRecalibration(
                    "LArCellRecalibration")
            except:
                mlog.error("could not get handle to LArCellRecalibration Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArCellRecalibration

            # get new ADC2MeVTool
            try:
                from LArRecUtils.LArADC2MeVToolDefault import LArADC2MeVToolDefault
                theLArADC2MeVToolDefault = LArADC2MeVToolDefault()
            except:
                mlog.error(
                    "Could not get handle to LArADC2MeVToolDefault Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArADC2MeVToolDefault

            # get old  ADC2MeVTool
            try:
                from LArRecUtils.LArADC2MeVToolOnline import LArADC2MeVToolOnline
                theLArADC2MeVToolOnline = LArADC2MeVToolOnline()
            except:
                mlog.error("Could not get handle to LArADC2MeVToolOnline Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArADC2MeVToolOnline

            theLArCellRecalibration.adc2MeVTool = theLArADC2MeVToolDefault
            theLArCellRecalibration.adc2MeVToolOnline = theLArADC2MeVToolOnline

            try:
                from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
                from CaloIdentifier import SUBCALO
                theLArRecalibrationTool = CaloCellContainerCorrectorTool(
                    "LArRecalibrationTool",
                    CaloNums=[SUBCALO.LAREM, SUBCALO.LARHEC, SUBCALO.LARFCAL],
                    CellCorrectionToolNames=[theLArCellRecalibration])
            except:
                mlog.error("could not get handle to HVCorrTool Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theLArRecalibrationTool
            theCaloCellMaker.CaloCellMakerToolNames += [
                theLArRecalibrationTool
            ]

        #
        # Correction for MinBias energy shift for MC pileup reco
        #
        doMinBiasAverage = False
        if jobproperties.CaloCellFlags.doMinBiasAverage.statusOn:
            from AthenaCommon.GlobalFlags import globalflags
            from AthenaCommon.BeamFlags import jobproperties
            if jobproperties.CaloCellFlags.doMinBiasAverage(
            ) and globalflags.DataSource() == 'geant4' and (
                    not jobproperties.Beam.zeroLuminosity()):
                doMinBiasAverage = True

        if doMinBiasAverage:

            try:
                from CaloTools.CaloMBAverageToolDefault import CaloMBAverageToolDefault
                theCaloMBAverageTool = CaloMBAverageToolDefault()
            except:
                mlog.error("could not get handle to CaloMBAverageTool  Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theCaloMBAverageTool

            try:
                from CaloCellCorrection.CaloCellCorrectionConf import CaloCellMBAverageCorr
                theCaloCellMBAverageCorr = CaloCellMBAverageCorr(
                    "CaloCellMBAverageCorr")
                theCaloCellMBAverageCorr.CaloMBAverageTool = theCaloMBAverageTool
            except:
                mlog.error(
                    "could not get handle to  CaloCellMBAverageCorr  Quit")
                print traceback.format_exc()
                return False
            ToolSvc += theCaloCellMBAverageCorr

            try:
                from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
                from CaloIdentifier import SUBCALO
                theMBAverageTool = CaloCellContainerCorrectorTool(
                    "MBAverageTool",
                    CaloNums=[SUBCALO.NSUBCALO],
                    CellCorrectionToolNames=[theCaloCellMBAverageCorr])
            except:
                mlog.error(
                    "could not get handle to CaloCellContainerCorrectorTool/MBAverageTool Quit"
                )
                print traceback.format_exc()
                return False

            ToolSvc += theMBAverageTool
            theCaloCellMaker.CaloCellMakerToolNames += [theMBAverageTool]

        #
        # Correction for dead cells, where we average the energy density of neighbor cells
        #
        doNeighborsAverage = False
        if jobproperties.CaloCellFlags.doDeadCellCorr.statusOn:
            if jobproperties.CaloCellFlags.doDeadCellCorr():
                doNeighborsAverage = True

        if doNeighborsAverage:
            try:
                from CaloCellCorrection.CaloCellCorrectionConf import CaloCellNeighborsAverageCorr
                theCaloCellNeighborsAverageCorr = CaloCellNeighborsAverageCorr(
                    "CaloCellNeighborsAverageCorr")
                theCaloCellNeighborsAverageCorr.testMode = False
            except:
                mlog.error(
                    "could not get handle to  CaloCellNeighborsAverageCorr  Quit"
                )
                print traceback.format_exc()
                return False
            ToolSvc += theCaloCellNeighborsAverageCorr
            theCaloCellMaker.CaloCellMakerToolNames += [
                theCaloCellNeighborsAverageCorr
            ]

        #
        # correction for missing Febs based on L1 readout
        doLArDeadOTXCorr = False
        if jobproperties.CaloCellFlags.doLArDeadOTXCorr.statusOn and jobproperties.CaloCellFlags.doLArCreateMissingCells.statusOn:
            if jobproperties.CaloCellFlags.doLArDeadOTXCorr(
            ) and jobproperties.CaloCellFlags.doLArCreateMissingCells(
            ) and doStandardCellReconstruction:
                if rec.doTrigger():
                    doLArDeadOTXCorr = True
                else:
                    mlog.warning(
                        "Trigger is switched off. Can't run deadOTX correction."
                    )

        if doLArDeadOTXCorr:

            try:
                from LArCellRec.LArCellDeadOTXCorrToolDefault import LArCellDeadOTXCorrToolDefault
                theLArCellDeadOTXCorr = LArCellDeadOTXCorrToolDefault()
            except:
                mlog.error("could not get handle to LArCellDeadOTXCorr Quit")
                print traceback.format_exc()

            ToolSvc += theLArCellDeadOTXCorr
            theCaloCellMaker.CaloCellMakerToolNames += [theLArCellDeadOTXCorr]

        doCaloEnergyRescaler = False
        if jobproperties.CaloCellFlags.doCaloCellEnergyCorr(
        ) and globalflags.DataSource(
        ) == 'data' and not athenaCommonFlags.isOnline():

            try:
                from CaloCellCorrection.CaloCellCorrectionConf import CaloCellEnergyRescaler
                theCCERescalerTool = CaloCellEnergyRescaler()
                theCCERescalerTool.Folder = "/LAR/CellCorrOfl/EnergyCorr"
                ToolSvc += theCCERescalerTool
                from IOVDbSvc.CondDB import conddb
                # conddb.addFolder("","/LAR/CellCorrOfl/EnergyCorr<tag>EnergyScale-00</tag><db>sqlite://;schema=escale.db;dbname=COMP200</db>")
                conddb.addFolder("LAR_OFL", "/LAR/CellCorrOfl/EnergyCorr")
                ToolSvc += theCCERescalerTool
                theCaloCellMaker.CaloCellMakerToolNames += [theCCERescalerTool]
            except:
                mlog.error(
                    "could not get handle to CaloCellEnergyRescaler Quit")
                print traceback.format_exc()
                return False
            pass

        if jobproperties.CaloCellFlags.doCaloCellTimeCorr(
        ) and globalflags.DataSource(
        ) == 'data' and not athenaCommonFlags.isOnline():
            try:
                from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
                from CaloCellCorrection.CaloCellCorrectionConf import CaloCellTimeCorrTool
                theLArTimeCorr = CaloCellTimeCorrTool()
                theLArTimeCorr.Folder = "/LAR/TimeCorrectionOfl/CellTimeOffset"
                ToolSvc += theLArTimeCorr
                from IOVDbSvc.CondDB import conddb
                # conddb.addFolder("","/LAR/TimeCorrectionOfl/CellTimeOffset<tag>LARTimeCorrectionOflCellTimeOffset-empty</tag><db>sqlite://;schema=timecorr.db;dbname=COMP200</db>")
                conddb.addFolder("LAR_OFL",
                                 "/LAR/TimeCorrectionOfl/CellTimeOffset")
                theCaloTimeCorrTool = CaloCellContainerCorrectorTool(
                    "LArTimeCorrTool",
                    CellCorrectionToolNames=[theLArTimeCorr])
                ToolSvc += theCaloTimeCorrTool
                theCaloCellMaker.CaloCellMakerToolNames += [
                    theCaloTimeCorrTool
                ]

            except:
                mlog.error("could not get handle to CaloCellTimeCorrTool Quit")
                print traceback.format_exc()
                return False

            pass

        # make lots of checks (should not be necessary eventually)
        # to print the check add:

        from CaloRec.CaloRecConf import CaloCellContainerCheckerTool
        theCaloCellContainerCheckerTool = CaloCellContainerCheckerTool()
        # FIXME
        # theCaloCellContainerCheckerTool.OutputLevel=DEBUG

        ToolSvc += theCaloCellContainerCheckerTool
        theCaloCellMaker.CaloCellMakerToolNames += [
            theCaloCellContainerCheckerTool
        ]

        #

        # sets output key
        theCaloCellMaker.CaloCellsOutputName = self.outputKey()

        # register output in objKeyStore
        from RecExConfig.ObjKeyStore import objKeyStore

        objKeyStore.addStreamESD(self.outputType(), self.outputKey())

        # now add algorithm to topSequence
        # this should always come at the end

        mlog.info(" now adding CaloCellMaker to topSequence")

        from AthenaCommon.AlgSequence import AlgSequence
        topSequence = AlgSequence()

        topSequence += theCaloCellMaker

        return True
Ejemplo n.º 13
0
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration

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*"])
Ejemplo n.º 14
0
# if the automatic trigger stream logics or command-line overrides did not activate a single selection,
# choose to not write out any events to the output file (can happen e.g. in Reco_trf.py test jobs)
else:
    from PrimaryDPDMaker.DummyFilter import DummyFilter
    dummyFilterName = "RPVLL_DESDMStream_DummyFilter"
    topSequence += DummyFilter(dummyFilterName)
    filtersToBookkeep += dummyFilterName
    vetoAlgsNames = []
    vetoAlgsNames.append(dummyFilterName)
    RPVLL.VetoAlgs(vetoAlgsNames)

# ##########################################################################################
# Output stream definition
# ##########################################################################################

# Add everything from the input file
from AthenaCommon.KeyStore import CfgKeyStore, CfgItemList
theCKS = CfgKeyStore('KeyStore')
outList = CfgItemList('RPVLL')
outList += theCKS['inputFile']

# Remove items here, as needed
outList.removeAllItems('RpcPadContainer#RPCPAD')  # Avoids crash in 20.1.0.2

# Configure the stream
RPVLL.AddItem(outList())

# make sure bookkeeping info is kept for additional filters
# MJF: Does this do anything useful?
RPVLL.AddOtherAlgsToBookkeep(filtersToBookkeep)
Ejemplo n.º 15
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 !" )
Ejemplo n.º 16
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_*"] )
Ejemplo n.º 17
0
    def test3Methods( self ):
        """Test various methods of CfgKeyStore"""
        ks = CfgKeyStore( "MyStore" )
        self.assertTrue( ks.streamESD()    == [] )
        self.assertTrue( ks['streamESD']() == [] )
        ks.streamESD.add( {
            'McEventCollection' : [ 'GEN_EVENT', 'GEN_AOD', 'TruthEvent' ],
            } )
        self.assertTrue( len(ks.streamESD()) == 3 )
        self.assertTrue( len(ks.transient()) == 3 )
        self.assertTrue(ks.streamESD.has_item('McEventCollection#TruthEvent'))
        self.assertTrue(not ks.streamESD.has_item('McEventCollection#gen_aod'))

        ks.streamAOD += CfgItemList( 'subAod',
                                     items = [ 'Klass#key1', 'Klass#key2' ] )
        self.assertTrue( len(ks.streamAOD()) == 2 )
        self.assertTrue( len(ks.transient()) == 5 )

        ks.streamESD.add( {
            'JetCollection' : [ 'Cone4Jets', 'Cone7Jets', 'KtJets',
                                'Cone4TruthJets' ],
            } )
        self.assertTrue( len(ks.streamESD()) == 3+4 )
        self.assertTrue( len(ks.streamESD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 3 )
        
        ks.streamESD.add( {
            'JetCollection' : [ 'Cone4Jets', 'Cone7Jets', 'KtJets' ] } )
        self.assertTrue( len(ks.streamESD()) == 3+4 )
        self.assertTrue( len(ks.streamESD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 3 )

        ks.streamAOD.add( 'ParticleJetContainer#ConeTowerParticleJets' )
        self.assertTrue( len(ks.streamAOD())             == 3 )
        self.assertTrue( len(ks.streamAOD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 4 )

        ks.streamAOD.add( ['ParticleJetContainer#ConeTowerParticleJets'] )
        self.assertTrue( len(ks.streamAOD())             == 3 )
        self.assertTrue( len(ks.streamAOD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 4 )
        
        ks.streamAOD.add( ['ParticleJetContainer#Cone4TowerParticleJets'] )
        self.assertTrue( len(ks.streamAOD())             == 4 )
        self.assertTrue( len(ks.streamAOD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 4 )

        caught = False
        try:
            ks['unallowedKey'] = range(10)
        except KeyError as err:
            caught = True
        self.assertTrue( caught )

        caught = False
        try:                  dummy = ks['unallowedKey']
        except KeyError as err: caught = True
        self.assertTrue( caught )

        caught = False
        try:                  dummy = ks['streamAOD']
        except KeyError as err: caught = True
        self.assertTrue( not caught )
        del dummy

        ## test reset...
        ks.streamTAG.add( 'JetCollection#Tag_Cone4Jets' )
        self.assertTrue( len(ks.streamTAG()) == 1 )
        ks.streamTAG.clear()
        self.assertTrue( len(ks.streamTAG()) == 0 )

        self.assertTrue( len(ks.streamAOD.dict().keys()) == 2 )
        self.assertTrue( len(ks.transient.dict().keys()) == 4 )

        ks.transient.clear()
        self.assertTrue( len(ks.transient.dict().keys()) == 0 )
        ## might be a bit confusing but 'clear' also removes children
        caught = False
        try:                        dummy = ks.streamAOD
        except AttributeError as err: caught = True
        self.assertTrue( caught )

        self.assertTrue( len(list(CfgKeyStore.instances.keys())) == 1 )

        del ks
        ## FIXME
        ## ARGH!!! Somebody is keeping a ref toward ks!
        ## OK with py3
        if six.PY3:
            self.assertTrue( len(list(CfgKeyStore.instances.keys())) == 0 )
AOD_ItemList += ["TileMuContainer#TileMuObj"]
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()
Ejemplo n.º 19
0
    def test3Hierarchy(self):
        """Test tree-like hierarchy structure of item lists"""
        i = CfgItemList('MyItems',
                        items=[
                            'Klass1#klass1',
                            'Klass2#klass2',
                        ],
                        allowWildCard=False)
        ii = CfgItemList('MySubItems',
                         items=[
                             'Klass3#klass3', 'Klass4#klass4', 'Klass5#klass5',
                             'Klass6#klass6'
                         ])
        self.failUnless(len(i()) == 2, "Invalid output item list !!")
        self.failUnless(len(ii()) == 4, "Invalid output item list !!")

        i += ii
        self.failUnless(len(i()) == 6, "Invalid output item list !!")

        self.failUnless(hasattr(i, ii.name()),
                        'Invalid hierarchy structure !!')
        oo = getattr(i, ii.name())
        self.failUnless(oo == ii, 'Invalid hierarchy structure !!')
        self.failUnless(oo is ii, 'Invalid hierarchy structure !!')
        self.failUnless(len(oo()) == 4, "Invalid output item list !!")

        del ii
        ii = CfgItemList('MySubItems')
        self.failUnless(len(ii()) == 4, "Invalid output item list !!")

        del i, ii
        i = CfgItemList('MyItems')
        ii = CfgItemList('MySubItems')
        self.failUnless(len(i()) == 0, "Invalid output item list !!")
        self.failUnless(len(ii()) == 4, "Invalid output item list !!")
        del oo, ii
        ii = CfgItemList('MySubItems')
        self.failUnless(len(ii()) == 0, "Invalid output item list !!")
Ejemplo n.º 20
0
# object added to any streams are also added to transient,
#  this is wrong if stream is an output stream. But KeyStore does not know which are input, which are output stream.
# sets this up at construction? Adding to outpustream is inconsistent

from AthenaCommon.Resilience import treatException, protectedInclude

from AthenaCommon.Logging import logging
logRecoOutputItemList_jobOptions = logging.getLogger(
    'py:RecoOutputItemList_jobOptions')

from RecExConfig.RecFlags import rec

from AthenaCommon.KeyStore import CfgItemList

# Start with an empty list:
fullAODList = CfgItemList("AodList")

# EventInfo stuff
fullItemList = ["xAOD::EventInfo#*", "xAOD::EventAuxInfo#*"]

try:
    include("EventAthenaPool/EventAthenaPoolItemList_joboptions.py")
    fullAODList += CfgItemList("EventAthenaPool",
                               items=fullItemList,
                               allowWildCard=True)
except Exception:
    treatException(
        "Could not include EventAthenaPool/EventAthenaPoolItemList_joboptions.py"
    )

# RawInfoSummaryForTag