pTCuts=[mu_ptCut, mu_ptCut, jet_ptCut, jet_ptCut],\ qualityCuts=[mu_qual, calo_qual, jet_qual, jet_qual],\ collections=[muons_coll, calo_coll, jet_coll, jet_coll],\ diLeptonMassCut=diLeptonMassCut) algsList.append(theJob.DAOD_2MU2QHSG2_MuonsCalo_Filter.name()) msg.info("Added mumuqq (muons/calo) filter") combination = "" for iAlg in range(len(algsList)): if iAlg == 0: combination = algsList[iAlg] else: combination += " or " + algsList[iAlg] from PrimaryDPDMaker.LogicalFilterCombiner import LogicalFilterCombiner totalDecision_daod_2L2Q = LogicalFilterCombiner("DAOD_2L2QHSG2_Filter", cmdstring=combination) theJob += totalDecision_daod_2L2Q ## This handles multiple output streams from OutputStreamAthenaPool.MultipleStreamManager import MSMgr from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutHelper # define streams from AthenaCommon.JobProperties import jobproperties prodFlags = jobproperties.D2PDFlags from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName # Construct the stream and file names for the jp: streamName = prodFlags.WriteDAOD_2L2QHSG2Stream.StreamName fileName = buildFileName(prodFlags.WriteDAOD_2L2QHSG2Stream) streamOut_daod_2L2Q = MSMgr.NewPoolStream(streamName, fileName)
types=["e","mu"],\ collections=['ElectronAODCollection',"UniqueCaloMuonCollection"],\ mass=massCut_daod_2l,\ acceptFrwdE=jobproperties.HSG2.diLeptonAcceptFrwdE(),\ checkLArError=jobproperties.HSG2.diLeptonCheckLArError()) algsList.append(theJob.HSG2_DAOD_2MixedFilterCalo.name()) msg.info("Added 1e1mu (calo) filter") combination_daod_2l = "" for iAlg in range(len(algsList)): if iAlg == 0: combination_daod_2l = algsList[iAlg] else: combination_daod_2l += " or " + algsList[iAlg] totalDecision_daod_2l = LogicalFilterCombiner("HSG2_2LDAODFilter", cmdstring=combination_daod_2l) theJob += totalDecision_daod_2l ## This handles multiple output streams from OutputStreamAthenaPool.MultipleStreamManager import MSMgr from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutHelper # define streams from AthenaCommon.JobProperties import jobproperties prodFlags = jobproperties.D2PDFlags from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName # Construct the stream and file names for the jp: streamName = prodFlags.WriteDAOD_2LHSG2Stream.StreamName
acceptFrwdE=jobproperties.HSG2.fourLeptonAcceptFrwdE()) mixedFilterMuid_d3pd_4l=H4lDPDMaker.H4lMixedFilter("HSG2_D3PD_4MixedFilterMuid", nLept=4,\ pTCuts=[0,0,ptCut_d3pd_4l,ptCut_d3pd_4l],\ eTCuts=[ptCut_d3pd_4l,ptCut_d3pd_4l,0,0],\ qualityCuts=[eQual,eQual,muQual,muQual],\ types=["e","e","mu","mu"],\ collections=[eCollToUse,eCollToUse,"MuidMuonCollection","MuidMuonCollection"],\ mass=massCut_d3pd_4l,\ acceptFrwdE=jobproperties.HSG2.fourLeptonAcceptFrwdE()) theJob += mixedFilterStaco_d3pd_4l msg.info("Added 2e2mu(staco) filter") theJob += mixedFilterMuid_d3pd_4l msg.info("Added 2e2mu(muid) filter") combination_d3pd_4l = "HSG2_D3PD_4ElectronFilter or " + "HSG2_D3PD_4StacoMuonFilter or " + "HSG2_D3PD_4MuidMuonFilter or " + "HSG2_D3PD_4MixedFilterStaco or " + "HSG2_D3PD_4MixedFilterMuid" totalDecision_d3pd_4l = LogicalFilterCombiner("HSG2_D3PD_4l_Filter", cmdstring=combination_d3pd_4l) theJob += totalDecision_d3pd_4l from HSG2DPDUtils.HSG2D3PD import HSG2physicsD3PD stream_d3pd_4l = HSG2physicsD3PD("StreamNTUP_HSG2", runArgs.outputNTUP_HSG2File) stream_d3pd_4l.AcceptAlgs = [totalDecision_d3pd_4l.getName()]
if iAlg == 0: combination_tp += mu_algsList[iAlg] else: combination_tp += " or " + mu_algsList[iAlg] combination_tp += ") and (" for iTrig in range(len(mu_trigsList)): if iTrig == 0: combination_tp += mu_trigsList[iTrig] else: combination_tp += " or " + mu_trigsList[iTrig] combination_tp += "))" algsList = el_algsList + el_trigsList + mu_algsList + mu_trigsList totalDecision_tp = LogicalFilterCombiner("HSG2_TPFilter", cmdstring=combination_tp) theJob += totalDecision_tp ############ NTUPLING ############ from AthenaCommon.JobProperties import jobproperties prodFlags = jobproperties.D3PDProdFlags streamName = prodFlags.WriteTPHSG2D3PD.StreamName from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName fileName = buildFileName(prodFlags.WriteTPHSG2D3PD) from HSG2DPDUtils.HSG2D3PD import HSG2physicsD3PD
acceptFrwdE=jobproperties.HSG2.fourLeptonAcceptFrwdE(),\ kinematicsPtCuts=jobproperties.HSG2.fourLeptonKinematicsPtCuts(),\ kinematicsMassCuts=jobproperties.HSG2.fourLeptonKinematicsMassCuts(),\ kinematicsDeltaRCut=jobproperties.HSG2.fourLeptonKinematicsDeltaRCut(),\ checkLArError=jobproperties.HSG2.fourLeptonCheckLArError()) algsList.append(theJob.HSG2_DAOD_4MixedFilterElectronMuonsCalo_1e3mu.name()) msg.info("Added 1e3mu(unified/calo) filter") combination = "" for iAlg in range(len(algsList)): if iAlg == 0: combination = algsList[iAlg] else: combination += " or " + algsList[iAlg] totalDecision_daod_4l = LogicalFilterCombiner("HSG2_DAOD_4l_Filter", cmdstring=combination) theJob += totalDecision_daod_4l ## This handles multiple output streams from OutputStreamAthenaPool.MultipleStreamManager import MSMgr from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutHelper # define streams from AthenaCommon.JobProperties import jobproperties prodFlags = jobproperties.D2PDFlags from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName # Construct the stream and file names for the jp: streamName = prodFlags.WriteDAOD_4LHSG2Stream.StreamName
pTCuts=[mu_ptCut, mu_ptCut, jet_ptCut, jet_ptCut],\ qualityCuts=[mu_qual, calo_qual, jet_qual, jet_qual],\ collections=[muons_coll, calo_coll, jet_coll, jet_coll],\ diLeptonMassCut=diLeptonMassCut) algsList.append(theJob.NTUP_2MU2QHSG2_MuonsCalo_Filter.name()) msg.info("Added mumuqq (muons/calo) filter") combination="" for iAlg in range(len(algsList)): if iAlg==0: combination=algsList[iAlg] else: combination+=" or "+algsList[iAlg] from PrimaryDPDMaker.LogicalFilterCombiner import LogicalFilterCombiner totalDecision_2L2Q=LogicalFilterCombiner("NTUP_2L2QHSG2_Filter",cmdstring = combination) theJob+=totalDecision_2L2Q ############ NTUPLING ############ from AthenaCommon.JobProperties import jobproperties prodFlags = jobproperties.D3PDProdFlags streamName = prodFlags.Write2L2QHSG2D3PD.StreamName from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName fileName = buildFileName(prodFlags.Write2L2QHSG2D3PD) from HSG2DPDUtils.HSG2D3PD import HSG2physicsD3PD # Perform MV3 b-tagging when creating D3PD for 2013 Moriond analysis if jobproperties.HSG2.doMV3BTagInD3PD():
missingEtMin = 40.0*Units.GeV ) # Combined filters from PrimaryDPDMaker.LogicalFilterCombiner import LogicalFilterCombiner #MuonPlusJet and ElectronPlusJet are not needed anymore! #MuonPlusJetSelectorSUSY = LogicalFilterCombiner("MuonPlusJetSelectorSUSY") #MuonPlusJetSelectorSUSY.cmdstring = "(StacoMuonSelectorSUSY or MuidMuonSelectorSUSY) and DiJetSelectorSUSY_WithLep" #ElectronPlusJetSelectorSUSY = LogicalFilterCombiner("ElectronPlusJetSelectorSUSY") #ElectronPlusJetSelectorSUSY.cmdstring = "ElectronSelectorSUSY and DiJetSelectorSUSY_WithLep" ElectronPlusMuonSelectorSUSY = LogicalFilterCombiner("ElectronPlusMuonSelectorSUSY") ElectronPlusMuonSelectorSUSY.cmdstring = "(MuidMuonSelectorSUSY_forEMu or StacoMuonSelectorSUSY_forEMu) and ElectronSelectorSUSY_forEMu" ################################################################################## # Helper functions for the streams def GetOldV1Setup(seq): #This is the same for all streams #>0 electron(s) if not hasattr(seq,"ElectronSelectorSUSY"): seq+=ElectronSelectorSUSY seq.ElectronSelectorSUSY.etMin=10.0*Units.GeV #>0 muon(s) if not hasattr(seq,"StacoMuonSelectorSUSY"): seq += StacoMuonSelectorSUSY if not hasattr(seq,"MuidMuonSelectorSUSY"): seq += MuidMuonSelectorSUSY seq.StacoMuonSelectorSUSY.ptMin = 6.0*Units.GeV seq.MuidMuonSelectorSUSY.ptMin = 6.0*Units.GeV #jets or MET
# Do the PrimaryVertex selection #==================================================================== from D2PDMaker.D2PDMakerConf import D2PDVertexSelector topSequence += D2PDVertexSelector( "VertexSelectorInElLoose18Stream", OutputLevel = INFO, inputCollection = 'VxPrimaryCandidate', minNumberVxTracks = 3 ) algsToBookkeep.append( "VertexSelectorInElLoose18Stream" ) #-------------------------------------------------------------------- # Set up the cumulative cut-flow for the standard pre-selection. # This will use the Logical Filter Combiners to add individual cuts. #-------------------------------------------------------------------- cmdString_GRL_PrimVtx = cmdString_GRL + "VertexSelectorInElLoose18Stream" topSequence += LogicalFilterCombiner( "StreamElLoose18FilterCombiner_GRL_PrimVtx", cmdstring = cmdString_GRL_PrimVtx ) algsToBookkeep.append( "StreamElLoose18FilterCombiner_GRL_PrimVtx" ) #==================================================================== # Do the trigger selection #==================================================================== include("PrimaryDPDMaker/SetupTrigDecisionTool.py") from PrimaryDPDMaker.TriggerFilter import TriggerFilter topSequence += TriggerFilter( "TriggerFilterInElLoose18Stream_L1_EM14", trigger = "L1_EM14" )
# Do the PrimaryVertex selection #==================================================================== from D2PDMaker.D2PDMakerConf import D2PDVertexSelector topSequence += D2PDVertexSelector( "VertexSelectorInWenuStream", OutputLevel = INFO, inputCollection = 'VxPrimaryCandidate', minNumberVxTracks = 3 ) algsToBookkeep.append( "VertexSelectorInWenuStream" ) #-------------------------------------------------------------------- # Set up the cumulative cut-flow for the standard pre-selection. # This will use the Logical Filter Combiners to add individual cuts. #-------------------------------------------------------------------- cmdString_GRL_PrimVtx = cmdString_GRL + "VertexSelectorInWenuStream" topSequence += LogicalFilterCombiner( "StreamWenuFilterCombiner_GRL_PrimVtx", cmdstring = cmdString_GRL_PrimVtx ) algsToBookkeep.append( "StreamWenuFilterCombiner_GRL_PrimVtx" ) #==================================================================== # Do the trigger selection #==================================================================== include("PrimaryDPDMaker/SetupTrigDecisionTool.py") from PrimaryDPDMaker.TriggerFilter import TriggerFilter topSequence += TriggerFilter( "TriggerFilterInWenuStream_L1_EM10", trigger = "L1_EM10" )