示例#1
0
def SetupEGammaStreamFilters(seq):
    acceptAlgs=[]
    cutVersion=D2PDFlags.WriteDAOD_SUSYEGammaStream.CutVersion
    if cutVersion=='newest':
        #photon:
        if not hasattr(seq,"PhotonSelectorSUSY"): seq += PhotonSelectorSUSY
        #el+mu (must execute before other selectors because of elementlink nesting (see above))
        if not hasattr(seq,"MuidMuonSelectorSUSY_forEMu"): seq += MuidMuonSelectorSUSY_forEMu
        if not hasattr(seq,"StacoMuonSelectorSUSY_forEMu"): seq += StacoMuonSelectorSUSY_forEMu
        if not hasattr(seq,"ElectronSelectorSUSY_forEMu"): seq += ElectronSelectorSUSY_forEMu
        if not hasattr(seq,"ElectronPlusMuonSelectorSUSY"): seq += ElectronPlusMuonSelectorSUSY
        seq += ElectronSelectorSUSY
        seq.ElectronSelectorSUSY.etMin=12.0*Units.GeV
        #di-electrons
        seq += DiElectronSelectorSUSY
        seq.ElectronSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.DiElectronSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.ElectronPlusMuonSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.PhotonSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        acceptAlgs=["ElectronSelectorSUSY","DiElectronSelectorSUSY","PhotonSelectorSUSY","ElectronPlusMuonSelectorSUSY"]
    elif cutVersion=='OldV1':
        acceptAlgs = GetOldV1Setup( seq )
    else:
        raise RuntimeError("Unknown cut version '%s'"%cutVersion)

    return acceptAlgs
示例#2
0
def buildFileName( jobPropFlagOrString ):
    fileName = ""
    if type(jobPropFlagOrString) == str :
        fileName = D2PDFlags.OutputDirectoryName()+D2PDFlags.OutputPoolRootFileNamePrefix()+jobPropFlagOrString+D2PDFlags.OutputMiddleName()+".pool.root"
        pass
    else :
        if jobPropFlagOrString.is_locked() :
            fileName = jobPropFlagOrString.FileName
            pass
        else :
            fileName = D2PDFlags.OutputDirectoryName()+D2PDFlags.OutputPoolRootFileNamePrefix()+jobPropFlagOrString.StreamName+D2PDFlags.OutputMiddleName()+".pool.root"
            pass
        pass
    return fileName
示例#3
0
def SetupJetsStreamFilters(seq):
    acceptAlgs=[]
    cutVersion=D2PDFlags.WriteDAOD_SUSYJetsStream.CutVersion
    if cutVersion=='newest':
        seq += JetSelectorSUSY
        seq += DiJetSelectorSUSY
        seq += METSelectorSUSY
        #seq += FourJetSelectorSUSY         <--not used yet
        #seq.FourJetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.JetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.DiJetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        seq.METSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel()
        acceptAlgs=["JetSelectorSUSY","DiJetSelectorSUSY","METSelectorSUSY"]#,"FourJetSelectorSUSY"
    elif cutVersion=='OldV1':
        acceptAlgs = GetOldV1Setup( seq )
    else:
        raise RuntimeError("Unknown cut version '%s'"%cutVersion)
    return acceptAlgs
# ==============================================================================
# Execute the dpd maker
# ==============================================================================
from RecExConfig.RecFlags import rec
# Turn off most of RecExCommon... (optional)
rec.doWriteTAG = False
rec.doHist = False
#rec.LoadGeometry = False
#rec.doApplyAODFix.set_Value_and_Lock(False)

# Mandatory for ESD->DPD or AOD->DPD or DPD->DPD
rec.doDPD = True

# For brem fit
if D2PDFlags.WriteDAOD_H4lBremRecStream(
) and D2PDFlags.WriteDAOD_H4lBremRecStream.DoBremRec:
    from RecExConfig.RecAlgsFlags import recAlgs
    recAlgs.doEgammaBremReco.set_Value_and_Lock(True)
    include("egammaBremRec/egammaBremRec_preInclude.py")
    #recAlgs.doEgammaBremReco.set_Value_and_Lock(True)
    #include( "RecExCond/RecExCommon_flags.py" )
    #DetFlags.ID_setOn()
    #DetFlags.LAr_setOn()
    pass

#from AthenaCommon.DetFlags import DetFlags
#DetFlags.ID_setOn()

# Output file name handling. No need to change anything here
if len(D2PDFlags.OutputDirectoryName()
       ) >= 1 and not D2PDFlags.OutputDirectoryName().endswith("/"):
                                     outputCollection        = 'MyZmumuLooseZmumuBosonCollection',
                                     minNumberPassed         = 1,
                                     chargeMax               = 0,
                                     massMin                 = 30.0*Units.GeV
                                     )



#====================================================================
# Define the test DPD output stream
#====================================================================
from D2PDMaker.D2PDHelpers import buildFileName
# This stream HAS TO start with "StreamD2AODM_"! If the input was an (D)ESD(M), this should start with "StreamD2ESD(M)_".
# See this twiki for more information: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DPDNamingConvention
streamName = "StreamD2AODM_MyZmumu"
fileName   = D2PDFlags.OutputDirectoryName() + "MyD2PDExampleSimpleZmumuStream.pool.root"
ExampleSimpleZmumuStream = MSMgr.NewPoolStream( streamName, fileName )

# Only events that pass the filters listed below are written out
# AcceptAlgs  = logical OR of filters
# RequireAlgs = logical AND of filters
ExampleSimpleZmumuStream.AcceptAlgs( ["D2PDParticleCombinerInExampleSimpleZmumuStream_ZmumuBoson"] )



#---------------------------------------------------
# Add the containers to the output stream
#---------------------------------------------------
from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput

# Take all items from the input, except for the ones listed in the excludeList
示例#6
0
    pdgIDList=[11, 13],  # e-, e+, mu+, mu-
    pdgIDListOrigin=[23, 24, 25],  # Z, W, H boson
    acceptStatusCodeList=[1],  # stable
    removeDocumentationLine=True,
    keepOnlyGenerator=True,
    keepOnlyStable=True,
    removeSelfDecay=True)

#====================================================================
# Define the test DPD output stream
#====================================================================
from D2PDMaker.D2PDHelpers import buildFileName
# This stream HAS TO start with "StreamD2AODM_"! If the input was an (D)ESD(M), this should start with "StreamD2ESD(M)_".
# See this twiki for more information: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DPDNamingConvention
streamName = "StreamD2AODM_Test"
fileName = D2PDFlags.OutputDirectoryName() + "MyD2PDTestStream.pool.root"
TestStream = MSMgr.NewPoolStream(streamName, fileName)

# Only events that pass the filters listed below are written out
# AcceptAlgs  = logical OR of filters
# RequireAlgs = logical AND of filters
TestStream.AcceptAlgs([])

#---------------------------------------------------
# Add the containers to the output stream
#---------------------------------------------------
#from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput

# Take all items from the input, except for the ones listed in the excludeList
#excludeList = []
#excludeList = list(set(excludeList)) # This removes dublicates from the list
示例#7
0
                                         minNumberPassed      = 1,
                                         photonIsEM           = egammaPID.PhotonLoose,
                                         #photonAuthor         = egammaParameters.AuthorPhoton,
					#requested by Jovan 
                                         etMin                = 20.0*Units.GeV,
                                         clusterEMCaloLayer   = 2,
                                         clusterEMCaloLayerEtaMin        = -2.5,
                                         clusterEMCaloLayerEtaMax        = 2.5
                                         )



# Jet filters
from D2PDMaker.D2PDMakerConf import D2PDJetSelector
JetSelectorSUSY = D2PDJetSelector( "JetSelectorSUSY",
                                   inputCollection   = D2PDFlags.InputSUSYJetCollection() ,
                                   outputLinkCollection  = 'AntiKt4H1TopoJets_SelectedJetLinks',
                                   minNumberPassed   = 1,
                                   useJetSignalState = 0,
                                   jetScaledEtMin = 80.0*Units.GeV,
                                   jetSignalStateAbsEtaMax = 3.0
                                   )

DiJetSelectorSUSY = D2PDJetSelector( "DiJetSelectorSUSY",
                                     inputCollection   = D2PDFlags.InputSUSYJetCollection() ,
                                     outputLinkCollection  = 'AntiKt4H1TopoJets_SelectedDijetLinks',
                                     minNumberPassed   = 2,
                                     useJetSignalState = 0,
                                     jetScaledEtMin = 30.0*Units.GeV,
                                     jetSignalStateAbsEtaMax = 3.0
                                     )
#====================================================================
# Do the good run list (GRL) selection --- only for data
#====================================================================
cmdString_GRL = ""
if not inputIsSimulation and False:
    # use closest DB replica
    from PoolSvc.PoolSvcConf import PoolSvc
    svcMgr += PoolSvc(SortReplicas=True)
    from DBReplicaSvc.DBReplicaSvcConf import DBReplicaSvc
    svcMgr += DBReplicaSvc(UseCOOLSQLite=False)

    # Try to copy the GRL locally
    import socket
    socket.setdefaulttimeout(180)
    import urllib
    remoteGRL = D2PDFlags.GRLFile()
    localGRL  = "data10_7TeV.pro05.merged_LBSUMM_WZjets_allchannels.xml"
    urllib.urlretrieve( remoteGRL, localGRL )

    # Create an instance of the GoodRunsListSelectorTool
    from GoodRunsLists.GoodRunsListsConf import *
    ToolSvc += GoodRunsListSelectorTool( "GoodRunsListSelectorTool",
                                         OutputLevel     = INFO,
                                         GoodRunsListVec = [ 'data10_7TeV.pro05.merged_LBSUMM_WZjets_allchannels.xml' ], ## specify your grl here
                                         PassThrough     = False
                                         )

    # Use the GRLTriggerSelectorAlg
    from GoodRunsListsUser.GoodRunsListsUserConf import *
    topSequence += GRLTriggerSelectorAlg( "GRLFilterInWenuStream",
                                          OutputLevel       = INFO,