def setup_lep(TOPQname, ToolSvc): skimmingTools_lep=[] if TOPQname == 'TOPQ1': TOPQ_Selection_lep = "( (count("+MU20+") >= 1) || (count("+EL20+") >= 1) )" elif TOPQname == 'TOPQ2': TOPQ2_LEP15 = "( (count("+EL15+") >= 2) || (count("+MU15+") >= 2) || (count("+EL15+")>= 1 && count("+MU15+") >= 1) )" TOPQ2_LEP10 = "( (count("+EL10+") >= 2) || (count("+MU10+") >= 2) || (count("+EL10+")>= 1 && count("+MU10+") >= 1) )" TOPQ2_LEP20 = "( (count("+EL20+") >= 1) || (count("+MU20+") >= 1) )" TOPQ_Selection_lep = "( ("+TOPQ2_LEP15+") || (("+TOPQ2_LEP10+") && ("+TOPQ2_LEP20+")) )" elif TOPQname == 'TOPQ3': TOPQ_Selection_lep = "( (count("+MU20+") >= 1) || (count("+EL20+") >= 1) )" elif TOPQname == 'TOPQ4': TOPQ_Selection_lep = "1" else: TOPQ_Selection_lep = "1" from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool TOPQStringSkimmingTool_lep = DerivationFramework__xAODStringSkimmingTool( name = TOPQname+"StringSkimmingTool_lep", expression = TOPQ_Selection_lep) ToolSvc += TOPQStringSkimmingTool_lep skimmingTools_lep.append(TOPQStringSkimmingTool_lep) print TOPQname+".py", TOPQname+"StringSkimmingTool_lep: ", TOPQStringSkimmingTool_lep return skimmingTools_lep
def setup_lep(TOPQname, ToolSvc): skimmingTools_lep = [] # TOPQ5 is passed as 'TOPQ1' in shared/TOPQ5.py but do the 'or' just in case if TOPQname == 'TOPQ1' or TOPQname == 'TOPQ5': TOPQ_Selection_lep = "( (count(" + MU20 + ") >= 1) || (count(" + EL20 + ") >= 1) )" elif TOPQname == 'TOPQ2': TOPQ2_LEP10 = "( (count(" + EL10 + ") >= 2) || (count(" + MU10 + ") >= 2) || (count(" + EL10 + ")>= 1 && count(" + MU10 + ") >= 1) )" TOPQ2_LEP15 = "( (count(" + EL15 + ") >= 2) || (count(" + MU15 + ") >= 2) || (count(" + EL15 + ")>= 1 && count(" + MU15 + ") >= 1) )" TOPQ2_LEP17 = "( (count(" + EL17 + ") >= 2) || (count(" + MU17 + ") >= 2) || (count(" + EL17 + ")>= 1 && count(" + MU17 + ") >= 1) )" TOPQ2_LEP20 = "( (count(" + EL20 + ") >= 1) || (count(" + MU20 + ") >= 1) )" TOPQ2_LEP22 = "( (count(" + EL22 + ") >= 1) || (count(" + MU22 + ") >= 1) )" TOPQ_Selection_lep = "( (" + TOPQ2_LEP15 + ") || ((" + TOPQ2_LEP10 + ") && (" + TOPQ2_LEP20 + ")) )" elif TOPQname == 'TOPQ3': TOPQ_Selection_lep = "( (count(" + MU13 + ") >= 1) || (count(" + EL13 + ") >= 1) )" elif TOPQname == 'TOPQ4': TOPQ_Selection_lep = "1" else: TOPQ_Selection_lep = "1" from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool TOPQStringSkimmingTool_lep = DerivationFramework__xAODStringSkimmingTool( name=TOPQname + "StringSkimmingTool_lep", expression=TOPQ_Selection_lep) ToolSvc += TOPQStringSkimmingTool_lep skimmingTools_lep.append(TOPQStringSkimmingTool_lep) print(TOPQname + ".py", TOPQname + "StringSkimmingTool_lep: ", TOPQStringSkimmingTool_lep) return skimmingTools_lep
def setup_jet(TOPQname, ToolSvc): skimmingTools_jet=[] if TOPQname == 'TOPQ1': TOPQ_Selection_jet = "1" elif TOPQname == 'TOPQ2': TOPQ_Selection_jet = "1" elif TOPQname == 'TOPQ3': TOPQ_Selection_jet = "( (count("+akt4EMcalib_15+") >= 4) || (count("+largeR_200+") >= 1) )" elif TOPQname == 'TOPQ4': TOPQ_Selection_jet = "( (count("+akt4EMcalib_20+") >= 5) || (count("+largeR_200+") >= 1) )" else: TOPQ_Selection_jet = "1" from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool TOPQStringSkimmingTool_jet = DerivationFramework__xAODStringSkimmingTool( name = TOPQname+"StringSkimmingTool_jet", expression = TOPQ_Selection_jet) ToolSvc += TOPQStringSkimmingTool_jet skimmingTools_jet.append(TOPQStringSkimmingTool_jet) print TOPQname+".py", TOPQname+"StringSkimmingTool_jet: ", TOPQStringSkimmingTool_jet return skimmingTools_jet # end setup_jet(TOPQname, ToolSvc)
def setup_jet(TOPQname, ToolSvc): skimmingTools_jet = [] # TOPQ5 is passed as 'TOPQ1' in shared/TOPQ5.py but do the 'or' just in case if TOPQname == 'TOPQ1' or TOPQname == 'TOPQ5': TOPQ_Selection_jet = "1" elif TOPQname == 'TOPQ2': TOPQ_Selection_jet = "1" elif TOPQname == 'TOPQ3': TOPQ_Selection_jet = "( (count(" + akt4EMcalib_15 + ") >= 4) || (count(" + largeR_200 + ") >= 1) )" elif TOPQname == 'TOPQ4': smallR_sel = 'count({}) >= 5'.format(akt4EMcalib_20) largeR_sel = 'count({}) >= 1'.format(largeR_200) btag_sel = ('count(AntiKt4EMTopoJets.DFCommonJets_Calib_pt>20*GeV' ' && AntiKt4EMTopoJets.DFCommonJets_FixedCutBEff_90) > 0') TOPQ_Selection_jet = '(({} && {}) || {})'.format( btag_sel, smallR_sel, largeR_sel) # TOPQ_Selection_jet = "( (count("+akt4EMcalib_20+") >= 5) || (count("+largeR_200+") >= 1) )" # nominal selection # TOPQ_Selection_jet = "( (count("+akt4EMcalib_50+") >= 5) || (count("+largeR_200+") >= 1) )" # resolved_50GeV # TOPQ_Selection_jet = "( (count("+akt4EMcalib_20+") >= 5) || (count("+largeR_350+") >= 1) )" # boosted_350GeV # TOPQ_Selection_jet = "( (count("+akt4EMcalib_20+") >= 5) || (count("+largeR_200+") >= 2) )" # boosted_2jets # TOPQ_Selection_jet = "( (count("+akt4EMcalib_20+") >= 5) || (count("+largeR_200_masscut+") >= 1) )" # boosted_masscut else: TOPQ_Selection_jet = "1" from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool TOPQStringSkimmingTool_jet = DerivationFramework__xAODStringSkimmingTool( name=TOPQname + "StringSkimmingTool_jet", expression=TOPQ_Selection_jet) ToolSvc += TOPQStringSkimmingTool_jet skimmingTools_jet.append(TOPQStringSkimmingTool_jet) print(TOPQname + ".py", TOPQname + "StringSkimmingTool_jet: ", TOPQStringSkimmingTool_jet) return skimmingTools_jet
twoMuonsOneElectron = '((count('+muonsRequirements+') >= 2) && (count('+electronsRequirements+')>=1))' oneMuonTwoElectrons = '((count('+muonsRequirements+') >= 1) && (count('+electronsRequirements+')>=2))' expression = muonOnlySelection+' || '+electronOnlySelection+' || '+twoMuonsOneElectron+' || '+oneMuonTwoElectrons print "STDM5 skimming expression: ",expression ###OLD #stacoSelection = '(mu_staco_loose && mu_staco_pt > 10*GeV)' #muonsSelection = '(mu_loose && mu_pt > 10*GeV)' #electronSelection = '(el_loosePP || isLLHElectron || isMLElectron) && (recommendedEl_pt > 10*GeV)' #muonsOnly = '(count('+stacoSelection+') >= 3) || (count('+muonsSelection+') >= 3)' #electronsOnly = '(count('+electronSelection+') >= 3)' #twoMuonsOneElectron = '((count('+stacoSelection+') >= 2) || (count('+muonsSelection+') >= 2) ) && (count('+electronSelection+') > 1)' #oneMuonTwoElectrons = '((count('+stacoSelection+') >= 1) || (count('+muonsSelection+') >= 1) ) && (count('+electronSelection+') > 2)' #expression = muonsOnly+' || '+electronsOnly+' || '+twoMuonsOneElectron+' || '+oneMuonTwoElectrons from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool STDM5SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name = "STDM5SkimmingTool", expression = expression) ToolSvc += STDM5SkimmingTool STDM5AugmentationTools = [] #======================================= # CREATE THE DERIVATION KERNEL ALGORITHM #======================================= from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel # CREATE THE PRIVATE SEQUENCE STDM5Sequence = CfgMgr.AthSequencer("STDM5Sequence") # ADD KERNEL
draw_taumuh = muRequirement + ' && ' + tauRequirement + '&& ( count (TAUMUH_DeltaR > 2.9) >=1 )' # DeltaR tool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__DeltaRTool TAUMUH_DeltaRTool = DerivationFramework__DeltaRTool( name="TAUMUH_DeltaRTool", ContainerName="Muons", ObjectRequirements=sel_mu, SecondContainerName="TauJets", SecondObjectRequirements=sel_tau, StoreGateEntryName="TAUMUH_DeltaR") ToolSvc += TAUMUH_DeltaRTool print TAUMUH_DeltaRTool # Event selection tool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool DRAW_TAUMUH_SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="DRAW_TAUMUH_SkimmingTool", expression=draw_taumuh) ToolSvc += DRAW_TAUMUH_SkimmingTool print DRAW_TAUMUH_SkimmingTool # Kernel algorithm from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DRAW_TAUMUH_Seq += CfgMgr.DerivationFramework__DerivationKernel( "DRAW_TAUMUHKernel", AugmentationTools=[TAUMUH_DeltaRTool], SkimmingTools=[DRAW_TAUMUH_SkimmingTool]) topSequence += DRAW_TAUMUH_Seq ################## ### Output stream ##################
triggers.append("HLT_mu6_j150_gsc175_boffperf_split_dr05_dz02") triggers.append("HLT_mu6_j175_gsc260_boffperf_split_dr05_dz02") if globalflags.DataSource() == 'data': # muon-in-jet triggers are buggy in MC, so only apply them in data FTAG3TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool( name="FTAG3TriggerSkimmingTool", TriggerListOR=triggers) ToolSvc += FTAG3TriggerSkimmingTool printfunc(FTAG3TriggerSkimmingTool) FTAG3Seq += CfgMgr.DerivationFramework__DerivationKernel( "FTAG3SkimKernel", SkimmingTools=[FTAG3TriggerSkimmingTool]) if globalflags.DataSource() != 'data': # since we aren't using a trigger skim, apply a muon pT cut to avoid gigantic dijet samples FTAG3StringSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="FTAG3StringSkimmingTool", expression= 'count( (Muons.pt > 4*GeV) && (Muons.DFCommonGoodMuon) ) >= 1') ToolSvc += FTAG3StringSkimmingTool printfunc(FTAG3StringSkimmingTool) FTAG3Seq += CfgMgr.DerivationFramework__DerivationKernel( "FTAG3SkimKernel", SkimmingTools=[FTAG3StringSkimmingTool]) #==================================================================== # TRUTH SETUP #==================================================================== if globalflags.DataSource() != 'data': from DerivationFrameworkMCTruth.MCTruthCommon import addStandardTruthContents, addHFAndDownstreamParticles addStandardTruthContents() addHFAndDownstreamParticles() #====================================================================
photonSelection = ' ( (' + gammatrigsel + ') && (' + gammaofflinesel + ') ) ' lepSelection = '( ' + electronSelection + ' || ' + muonSelection + ' || ' + photonSelection + ' )' expression = jetSelection + ' || '+ lepSelection from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool JETM6TrigSkimmingTool = DerivationFramework__TriggerSkimmingTool( name = "JETM6TrigSkimmingTool", TriggerListOR = jetTriggers+electronTriggers+muonTriggers+photonTriggers ) #TriggerListOR = triggers ) ToolSvc += JETM6TrigSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool JETM6OfflineSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name = "JETM6OfflineSkimmingTool", expression = expression) ToolSvc += JETM6OfflineSkimmingTool #==================================================================== # CREATE PRIVATE SEQUENCE #==================================================================== jetm6Seq = CfgMgr.AthSequencer("JETM6Sequence") DerivationFrameworkJob += jetm6Seq #==================================================================== # Trigger matching decorations #==================================================================== photonTriggers_matching = ['HLT_g60_loose', 'HLT_g140_loose', 'HLT_g160_loose'] from DerivationFrameworkCore.TriggerMatchingAugmentation import applyTriggerMatching
prescaleA = 20 prescaleB = 10 prescaleC = 40 prescaleD = 30 prescaleE = 20 prescaleF = 10 prescaleG = 5 prescaleH = 1 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationOR from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationAND from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__PrescaleTool IDTIDE_SkimmingToolA = DerivationFramework__xAODStringSkimmingTool(name = "IDTIDE_SkimmingToolA", expression = desd_jetA) ToolSvc += IDTIDE_SkimmingToolA IDTIDE_PrescaleToolA = DerivationFramework__PrescaleTool(name="IDTIDE_PrescaleToolA",Prescale=prescaleA) ToolSvc += IDTIDE_PrescaleToolA IDTIDE_ANDToolA = DerivationFramework__FilterCombinationAND(name="IDTIDE_ANDToolA",FilterList=[IDTIDE_SkimmingToolA,IDTIDE_PrescaleToolA] ) ToolSvc += IDTIDE_ANDToolA IDTIDE_SkimmingToolB = DerivationFramework__xAODStringSkimmingTool(name = "IDTIDE_SkimmingToolB", expression = desd_jetB) ToolSvc += IDTIDE_SkimmingToolB IDTIDE_PrescaleToolB = DerivationFramework__PrescaleTool(name="IDTIDE_PrescaleToolB",Prescale=prescaleB) ToolSvc += IDTIDE_PrescaleToolB IDTIDE_ANDToolB = DerivationFramework__FilterCombinationAND(name="IDTIDE_ANDToolB",FilterList=[IDTIDE_SkimmingToolB,IDTIDE_PrescaleToolB] ) ToolSvc += IDTIDE_ANDToolB IDTIDE_SkimmingToolC = DerivationFramework__xAODStringSkimmingTool(name = "IDTIDE_SkimmingToolC", expression = desd_jetC) ToolSvc += IDTIDE_SkimmingToolC
ideta|smooth)_(HLTCalo|iloose|L1EM[0-9]*VH|L1EM[0-9]*)", "HLT_[0-9]?g[0-9]*_(loose|medium|tight|etcut)", "HLT_g[0-9]*_(loose|etcut)_(L1EM[0-9]*|L1EM[0-9]*VH)", "HLT_(e|g)[0-9]*_(loose|medium|lhmedium|tight)_g.*", "HLT_ht.*", "HLT_te.*", "HLT_xs.*", "HLT_mb.*" ]) ToolSvc += OrthoTrig_TriggerSkimmingTool print OrthoTrig_TriggerSkimmingTool # ------------------------------------------------ # Offline orthogonal trigger selection (low pT) OrthoTrig_LowpTMuonEventStringSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="OrthoTrig_LowpTMuonEventStringSkimmingTool", expression= "(count(Muons.muonType == 0 && Muons.pt > 4*GeV && Muons.pt < 15*GeV) > 0)" ) ToolSvc += OrthoTrig_LowpTMuonEventStringSkimmingTool print OrthoTrig_LowpTMuonEventStringSkimmingTool OrthoTrig_LowpTMuonPrescaleSkimmingTool = DerivationFramework__PrescaleTool( name="OrthoTrig_LowpTMuonPrescaleSkimmingTool", Prescale=10) ToolSvc += OrthoTrig_LowpTMuonPrescaleSkimmingTool print OrthoTrig_LowpTMuonPrescaleSkimmingTool OrthoTrig_LowpTMuonEventSkimmingTool = DerivationFramework__FilterCombinationAND( name="OrthoTrig_LowpTMuonEventSkimmingTool", FilterList=[ OrthoTrig_LowpTMuonEventStringSkimmingTool, OrthoTrig_LowpTMuonPrescaleSkimmingTool
#METrequirement = '(MET_LocHadTopoAux.mpx > 40.*GeV)' # "failed to load valid proxy loader" #METrequirement = '(MET_LocHadTopo.met > 40.*GeV)' # segfault #METrequirement = '(MET_LocHadTopo.mpy > 40.*GeV)' # segfault #METrequirement = "(count((MET_RefFinal.mpx * MET_RefFinal.mpx + MET_RefFinal.mpy * MET_RefFinal.mpy) > 40*GeV * 40*GeV) > 0)" # like EXOT3, "ERROR MultipleProxyLoader: unable to find valid proxy loader for MET_RefFinal.mpx" #METrequirement = "(count((MET_LocHadTopo.mpx * MET_LocHadTopo.mpx + MET_LocHadTopo.mpy * MET_LocHadTopo.mpy) > 40*GeV * 40*GeV) > 0)" # segfault #METrequirement = "(count((MET_Reference_AntiKt4EMTopo.mpx * MET_Reference_AntiKt4EMTopo.mpx + MET_Reference_AntiKt4EMTopo.mpy * MET_Reference_AntiKt4EMTopo.mpy) > 40*GeV * 40*GeV) > 0)" # segfault METrequirement = '(%s)' % ' || '.join( ["L1_XE%d" % x for x in [35, 40, 45, 50, 55, 60, 70, 80]]) acceptors.append(METrequirement) # combine all looseSelection = ' || '.join(acceptors) print "Skimming expression:", looseSelection from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool SUSY9SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="SUSY9SkimmingTool", expression=looseSelection) ToolSvc += SUSY9SkimmingTool #============================================================================== # SUSY signal augmentation #============================================================================== if False: from DerivationFrameworkSUSY.DerivationFrameworkSUSYConf import DerivationFramework__SUSYSignalTagger SUSYSignalTagger = DerivationFramework__SUSYSignalTagger( name="SUSYSignalTagger") SUSYSignalTagger.EventInfoName = "EventInfo" SUSYSignalTagger.MCCollectionName = "TruthParticles" ToolSvc += SUSYSignalTagger AugmentationTools += [SUSYSignalTagger]
mutrigsel = '(EventInfo.eventTypeBitmask==1) || ' + orstr.join(muonTriggers) muofflinesel = andstr.join([ 'count((Muons.pt > 20*GeV) && (Muons.DFCommonMuonsPreselection)) >= 1', jetSelection ]) muonSelection = ' ( (' + mutrigsel + ') && (' + muofflinesel + ') ) ' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool JETM15TrigSkimmingTool = DerivationFramework__TriggerSkimmingTool( name="JETM15TrigSkimmingTool", TriggerListOR=jetTriggers + muonTriggers) ToolSvc += JETM15TrigSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool JETM15OfflineSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="JETM15OfflineSkimmingTool", expression=jetSelection + ' || ' + muonSelection) ToolSvc += JETM15OfflineSkimmingTool #Trigger matching decorations from DerivationFrameworkCore.TriggerMatchingAugmentation import applyTriggerMatching TrigMatchAug, NewTrigVars = applyTriggerMatching(ToolNamePrefix="JETM15", ElectronTriggers=[], MuonTriggers=muonTriggers, PhotonTriggers=[]) #==================================================================== # THINNING TOOLS #==================================================================== thinningTools = []
'HLT_j30_xe10_razor100', 'HLT_j30_xe10_razor170', 'HLT_j30_xe10_razor185', 'HLT_j30_xe10_razor195', # Additional triggers added for 25 ns / higher rate 'HLT_j30_xe60_razor100', 'HLT_j30_xe60_razor170', 'HLT_j30_xe60_razor185', 'HLT_j30_xe60_razor195', # VBF 'HLT_2j40_0eta490_invm250_L1XE55', ] expression = ' || '.join(triggers) if not DerivationFrameworkIsMonteCarlo: EXOT5StringSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name='EXOT5StringSkimmingTool', expression=expression) ToolSvc += EXOT5StringSkimmingTool skimmingTools.append(EXOT5StringSkimmingTool) EXOT5SkimmingTool = DerivationFramework__SkimmingToolEXOT5( name='EXOT5SkimmingTool', JetContainer='AntiKt4EMTopoJets', UncalibMonoJetPtCut=100000., MonoJetPtCut=100000., LeadingJetPtCut=40000., SubleadingJetPtCut=40000., DiJetMassCut=150000.) ToolSvc += EXOT5SkimmingTool skimmingTools.append(EXOT5SkimmingTool) #=======================================
#triggers for periodD3 Run=302872, events=474 muTriggers = [ 'HLT_mu20_iloose_L1MU15', 'HLT_mu24_ivarmedium', 'HLT_mu24_imedium' ] # Event selection string: draw_ttbar = '( count(' + sel_muon + ')==1 && count(' + sel_jet + ')>=3 && count(' + sel_bjet + ')>=1 && count(' + sel_el + ') == 0 && count(' + met + ') >=1 ) && (' + " || ".join( muTriggers) + ')' print "This is the selection string that will be used for DRAW_TOPSLMU:" print draw_ttbar # Event selection tool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool DRAW_TOPSLMU_SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="DRAW_TOPSLMU_SkimmingTool", expression=draw_ttbar) ToolSvc += DRAW_TOPSLMU_SkimmingTool print "Skimming tool:" print DRAW_TOPSLMU_SkimmingTool # Kernel algorithm from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DRAW_TOPSLMU_Seq += CfgMgr.DerivationFramework__DerivationKernel( "DRAW_TOPSLMUKernel", SkimmingTools=[DRAW_TOPSLMU_SkimmingTool]) topSequence += DRAW_TOPSLMU_Seq ##################
ToolSvc += EXOT9TruthTool2 thinningTools.append(EXOT9TruthTool2) #======================================= # CREATE THE SKIMMING TOOL #======================================= beamEnergy = jobproperties.Beam.energy() expression = '' if (beamEnergy < 4.1e+06): triggerStrategy = '(EventInfo.eventTypeBitmask==1) || (EF_xe80_tclcw || EF_xe80_tclcw_loose || EF_e24vhi_medium1 || EF_e60_medium1 || EF_mu24i_tight || EF_mu36_tight || EF_g120_loose)' if (beamEnergy > 6.0e+06): #triggerStrategy = '(EventInfo.eventTypeBitmask==1) || (HLT_mu26_imedium || HLT_mu50 || HLT_mu60_msonly_0eta105 || HLT_e28_tight_iloose || HLT_e60_medium || HLT_g140_loose || HLT_xe100 || HLT_g60_loose_xe60 || HLT_e140_loose)' triggerStrategy = '(count(Electrons.pt > 50*GeV && (Electrons.DFCommonElectronsLHLoose||Electrons.DFCommonElectronsLHMedium||Electrons.DFCommonElectronsLHTight||Electrons.DFCommonElectronsIsEMLoose||Electrons.DFCommonElectronsIsEMMedium||Electrons.DFCommonElectronsIsEMTight)) >= 1) || (count(Muons.pt > 50*GeV && (Muons.DFCommonGoodMuon && Muons.muonType == 0)) >= 1)' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT9SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="EXOT9SkimmingTool1", expression=triggerStrategy) ToolSvc += EXOT9SkimmingTool printfunc(EXOT9SkimmingTool) #======================================= # CREATE THE DERIVATION KERNEL ALGORITHM #======================================= from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DerivationFrameworkJob += exot9Seq exot9Seq += CfgMgr.DerivationFramework__DerivationKernel( "EXOT9Kernel_skim", SkimmingTools=[EXOT9SkimmingTool]) exot9Seq += CfgMgr.DerivationFramework__DerivationKernel( "EXOT9Kernel", ThinningTools=thinningTools) #====================================================================
# StoreGateEntryName = "Mass") #ToolSvc += EXOT10PhotonInvariantMassTool #======================================= # CREATE THE SKIMMING TOOL #======================================= expression = '' #'( count(PhotonCollection.pt > 30*GeV) > 0 )' if (beamEnergy < 4.1e+06): expression = '( ( ((EventInfo.eventTypeBitmask==1) || EF_g35_loose1_g25_loose1) || (EF_g35_medium1_g25_medium1 || EF_g35_medium1_g25_medium1_L12EM15V) ) || EF_2g20_tight1 || EF_2g50_loose ) && ( (count(Photons.pt > 30*GeV) >= 2) || (count(Photons.pt > 30*GeV) > 0 && count(Electrons.pt > 30*GeV) > 0) || (count(Electrons.pt > 30*GeV) >= 2) )' if (beamEnergy > 6.0e+06): #expression = '( (EventInfo.eventTypeBitmask == 1) || HLT_g35_loose1_g25_loose1 || HLT_g35_medium1_g25_medium1 || HLT_g35_medium1_g25_medium1_L12EM15V || HLT_2g20_tight1 || HLT_2g50_loose ) && ( (count(Photons.pt > 30*GeV) >= 2) || (count(Photons.pt > 30*GeV) > 0 && count(Electrons.pt > 30*GeV) > 0) || (count(Electrons.pt > 30*GeV) >= 2) )' expression = '( (EventInfo.eventTypeBitmask == 1) || HLT_g35_loose_g25_loose || HLT_g35_medium_g25_medium || HLT_g35_medium_g25_medium_L12EM15V || HLT_2g20_tight || HLT_2g50_loose ) && ( (count(Photons.pt > 30*GeV) >= 2) || (count(Photons.pt > 30*GeV) > 0 && count(Electrons.pt > 30*GeV) > 0) || (count(Electrons.pt > 30*GeV) >= 2) )' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT10SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="EXOT10SkimmingTool1", expression=expression) ToolSvc += EXOT10SkimmingTool printfunc(EXOT10SkimmingTool) #==================================================================== # Max Cell sum decoration tool #==================================================================== from DerivationFrameworkCalo.DerivationFrameworkCaloConf import DerivationFramework__MaxCellDecorator EXOT10_MaxCellDecoratorTool = DerivationFramework__MaxCellDecorator( name="EXOT10_MaxCellDecoratorTool", SGKey_electrons="Electrons", SGKey_photons="Photons", ) ToolSvc += EXOT10_MaxCellDecoratorTool
# SET UP STREAM #====================================================================================================================== streamName = derivationFlags.WriteDAOD_JETM11Stream.StreamName fileName = buildFileName(derivationFlags.WriteDAOD_JETM11Stream) JETM11Stream = MSMgr.NewPoolRootStream(streamName, fileName) JETM11Stream.AcceptAlgs(['JETM11Kernel']) #====================================================================================================================== # SKIMMING TOOL #====================================================================================================================== from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool singleElTriggers = TriggerLists.single_el_Trig() singleMuTriggers = TriggerLists.single_mu_Trig() cutExpression = "(count(Electrons.DFCommonElectronsLHLoose && Electrons.pt > (24 * GeV) && abs(Electrons.eta) < 2.47) + count(Muons.DFCommonMuonsPreselection && Muons.pt > (24*GeV) && abs(Muons.eta) < 2.47) ) >= 1" JETM11StringSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="JETM11StringSkimmingTool", expression=cutExpression) JETM11TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool( name="JETM11TriggerSkimmingTool", TriggerListOR=singleElTriggers + singleMuTriggers) ToolSvc += JETM11StringSkimmingTool ToolSvc += JETM11TriggerSkimmingTool content_manager = METTriggerDerivationContentManager.make_tight_manager( "JETM11", JETM11Stream) #====================================================================================================================== # CREATE PRIVATE SEQUENCE #====================================================================================================================== jetm11Seq = CfgMgr.AthSequencer("jetm11Seq") DerivationFrameworkJob += jetm11Seq
topSequence = AlgSequence() DESDM_PHOJET_Seq = CfgMgr.AthSequencer("DESDM_PHOJET_Seq") ##============================================================================ ## Define the skimming (event selection) for the DESD_PHOJET output stream ##============================================================================ # Object selection strings sel_phojet = 'Photons.pt > 280*GeV && Photons.Tight' # Event selection string desd_phojet = '(count('+sel_phojet+')>=1)' # Event selection tool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool DESDM_PHOJET_SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "DESDM_PHOJET_SkimmingTool", expression = desd_phojet) ToolSvc += DESDM_PHOJET_SkimmingTool # Kernel algorithm from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DESDM_PHOJET_Seq += CfgMgr.DerivationFramework__DerivationKernel("DESDM_PHOJETKernel", SkimmingTools = [DESDM_PHOJET_SkimmingTool] ) topSequence += DESDM_PHOJET_Seq ################## ### Output stream ################## from OutputStreamAthenaPool.MultipleStreamManager import MSMgr
selection_mu = "(count(Muons.pt > 15*GeV) > 1)" selection_e_mu = "((count(Muons.pt > 15*GeV) > 0) && (count((Electrons.Loose) && (Electrons.pt > 15*GeV)) > 0))" #selection_j = "( (count(CamKt12LCTopoJets.pt > 200*GeV) > 0) || (count(AntiKt10LCTopoJets.pt > 200*GeV) > 0))" #|| (count(AntiKt4LCTopoJets.pt > 200*GeV) > 0) )" #selection_j = "( (count(CamKt12LCTopoJets.pt > 200*GeV) > 0) || (count(AntiKt10LCTopoJets.pt > 0*GeV) > 0))" #|| (count(AntiKt4LCTopoJets.pt > 200*GeV) > 0) )" beamEnergy = jobproperties.Beam.energy() expression = '' if (beamEnergy < 4.1e+06): expression_lep = "(" + selection_e + "||" + selection_mu + "||" + selection_e_mu + ")" expression_jet = "" # selection_j if (beamEnergy > 6.0e+06): expression_lep = "(" + selection_e + "||" + selection_mu + "||" + selection_e_mu + ")" expression_jet = "" # selection_j from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT12SkimmingTool_lep = DerivationFramework__xAODStringSkimmingTool( name="EXOT12SkimmingTool_lep", expression=expression_lep) ToolSvc += EXOT12SkimmingTool_lep printfunc(EXOT12SkimmingTool_lep) #EXOT12SkimmingTool_jet = DerivationFramework__xAODStringSkimmingTool( name = "EXOT12SkimmingTool_jet", # expression = expression_jet) #ToolSvc += EXOT12SkimmingTool_jet #printfunc (EXOT12SkimmingTool_jet) #======================================= # THE DERIVATION KERNEL ALGORITHM #======================================= from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DerivationFrameworkJob += exot12Seq exot12Seq += CfgMgr.DerivationFramework__DerivationKernel( "EXOT12Kernel_lep", SkimmingTools=[EXOT12SkimmingTool_lep])
beamEnergy = jobproperties.Beam.energy() expression = '' expression2 = '' if (beamEnergy < 4.1e+06): expression = '(((EventInfo.eventTypeBitmask==1) || ' + EXOT6_trigger1 + ') && ' + EXOT6_selection + ' && ' + topology_selection_1jet + ' ) ' #|| ( ((EventInfo.eventTypeBitmask==1) || ' + r1_trigger_selection + ' || ' + r2_trigger_selection + ' ) && ' + topology_selection_2jet + ' ) ' expression2 = topology_selection_2jet if (beamEnergy > 6.0e+06): # expression = '(HLT_g120_loose || HLT_g140_loose || HLT_xe100 || ' + r2_trigger_selection + ' ) && (((count(Photons.Loose && Photons.pt > 100*GeV) > 0) || (count(Electrons.Medium && Electrons.pt > 100*GeV) > 0)) || ' + topology_selection + ')' expression = '( ' + EXOT6_trigger2 + ' && ' + EXOT6_selection + ' && ' + topology_selection_1jet + ' )' # || ( ' + r2_trigger_selection + ' && ' + topology_selection_2jet + ' ) ' expression2 = topology_selection_2jet from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationOR from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationAND from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT3SkimmingTool1 = DerivationFramework__xAODStringSkimmingTool( name="EXOT3SkimmingTool1", expression=expression) ToolSvc += EXOT3SkimmingTool1 EXOT3SkimmingTool2 = DerivationFramework__xAODStringSkimmingTool( name="EXOT3SkimmingTool2", expression=expression2) ToolSvc += EXOT3SkimmingTool2 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool EXOT3TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool( name="EXOT3TriggerSkimmingTool", TriggerListAND=[], TriggerListOR=triggers) ToolSvc += EXOT3TriggerSkimmingTool # topology_selection_2jet && triggers EXOT3ANDSkimmingTool = DerivationFramework__FilterCombinationAND( name="EXOT3ANDSkimmingTool", FilterList=[EXOT3SkimmingTool2, EXOT3TriggerSkimmingTool])
MassHypothesis=0.511, StoreGateEntryName="eeMass3") ToolSvc += eeMassTool3 mmMassTool = DerivationFramework__InvariantMassTool( name="mmMassTool", ContainerName="Muons", ObjectRequirements=sel_muon4, MassHypothesis=105.66, StoreGateEntryName="DREmumuMass") ToolSvc += mmMassTool # Event selection tool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool DRAW_EGZ_SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="DRAW_EGZ_SkimmingTool", expression=draw_egz) ToolSvc += DRAW_EGZ_SkimmingTool print DRAW_EGZ_SkimmingTool # Kernel algorithm from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DRAW_EGZ_Seq += CfgMgr.DerivationFramework__DerivationKernel( "DRAW_EGZKernel", AugmentationTools=[eeMassTool1, eeMassTool3, mmMassTool], SkimmingTools=[DRAW_EGZ_SkimmingTool]) topSequence += DRAW_EGZ_Seq ################## ### Output stream
from DerivationFrameworkMuons.TrackIsolationDecorator import MUON1MSTrackDecorator as MUON3AugmentTool3 ToolSvc += MUON3AugmentTool3 MUON3AugmentTools.append(MUON3AugmentTool3) #==================================================================== # SKIMMING #==================================================================== muonsRequirementsLoose = '(Muons.pt >= 5*GeV)' muonsRequirementsTight = '(Muons.pt >= 20*GeV)' skimming_expression_WZ = 'HLT_mu14 && count(' + muonsRequirementsTight + ') >= 1' skimming_expression_Jpsi = '(HLT_2mu4 || HLT_2mu6_bJpsimumu) && count(' + muonsRequirementsLoose + ') >= 2' skimming_expression = '(' + skimming_expression_WZ + ') || (' + skimming_expression_Jpsi + ')' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool MUON3SkimmingTool1 = DerivationFramework__xAODStringSkimmingTool( name="MUON3SkimmingTool1", expression=skimming_expression) ToolSvc += MUON3SkimmingTool1 #==================================================================== # THINNING #==================================================================== MUON3ThinningTools = [] # keep tracks marked in augmentation thinning_expression1 = '||'.join(thinningORs) from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning MUON3ThinningTool1 = DerivationFramework__TrackParticleThinning( name="MUON3ThinningTool1", StreamName=streamName, SelectionString=thinning_expression1, InDetTrackParticlesKey="InDetTrackParticles")
DiMuonMassLow=primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.diMuonMassLow, DiMuonMassHigh=primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.diMuonMassHigh, DeltaPhiMax=primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.deltaPhiMax, StoreGateKeyPrefix="KinkTrk") print KinkTrkZmumuTagTool ToolSvc += KinkTrkZmumuTagTool ## Kernel for the augmentation tools topSequence += DerivationFramework__DerivationKernel( "KinkTrkAugmentationKernel", AugmentationTools=[KinkTrkZeeTagTool, KinkTrkZmumuTagTool]) ## Trigger filters KinkTrkZeeTriggerFilterTool = DerivationFramework__xAODStringSkimmingTool( name="KinkTrkZeeTriggerFilterTool", expression=KinkTrkTriggerFilterString( primRPVLLDESDM.KinkedTrack_ZeeFilterFlags)) #KinkTrkZeeTriggerFilterTool = DerivationFramework__TriggerSkimmingTool(name = "KinkTrkZeeTriggerFilterTool", # TriggerListOR = primRPVLLDESDM.KinkedTrack_ZeeFilterFlags.triggerNames) ToolSvc += KinkTrkZeeTriggerFilterTool KinkTrkZmumuTriggerFilterTool = DerivationFramework__xAODStringSkimmingTool( name="KinkTrkZmumuTriggerFilterTool", expression=KinkTrkTriggerFilterString( primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags)) #KinkTrkZmumuTriggerFilterTool = DerivationFramework__TriggerSkimmingTool(name = "KinkTrkZmumuTriggerFilterTool", # TriggerListOR = primRPVLLDESDM.KinkedTrack_ZmumuFilterFlags.triggerNames) ToolSvc += KinkTrkZmumuTriggerFilterTool ## Selecting low-pT probe electrons KinkTrkZeeLowPtSkimmingTool = DerivationFramework__xAODStringSkimmingTool(
#==================================================================== # Apply skimming requirement: at least one electron, muon or tau eleRequirements = '(Electrons.pt > 5*GeV) && (abs(Electrons.eta) < 2.6) && (Electrons.Loose || Electrons.DFCommonElectronsLHLoose)' muRequirements = '(Muons.DFCommonGoodMuon) && (Muons.muonType == 0) && (Muons.pt > 5*GeV) && (abs(Muons.eta) < 2.6)' tauRequirements = '(TauJets.pt > 15*GeV) && (abs(TauJets.charge)==1.0) && ((TauJets.nTracks == 1) || (TauJets.nTracks == 3)) && (abs(TauJets.eta) < 2.6)' eSelection = '(count('+eleRequirements+') >= 1)' mSelection = '(count('+muRequirements +') >= 1)' tauSelection = '(count('+tauRequirements+') >= 1)' lepSelection = eSelection+' || '+mSelection+' || '+tauSelection from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool MUON5SkimmingTool = DerivationFramework__xAODStringSkimmingTool(name = "MUON5SkimmingTool", expression = lepSelection) ToolSvc += MUON5SkimmingTool #==================================================================== # CREATE THE DERIVATION KERNEL ALGORITHM #==================================================================== from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel if is_MC: from DerivationFrameworkCore.LHE3WeightMetadata import * DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("MUON5Kernel", ThinningTools = thinningTools, AugmentationTools = augmentationTools, SkimmingTools = [MUON5SkimmingTool])
# triglist.append("L1_EM18VH") # triglist.append("L1_EM20VH") # triglist.append("L1_EM20VHI") # triglist.append("L1_EM22VHI") # triglist.append("L1_MU15") # triglist.append("L1_MU20") # triglist.append("L1_XE50") # triglist.append("L1_XE60") # triglist.append("L1_XE70") #==================================================================== # SKIMMING TOOL #==================================================================== from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool HIGG5D2JetSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="HIGG5D2JetSkimmingTool", expression=jetSel) ToolSvc += HIGG5D2JetSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool HIGG5D2LepSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="HIGG5D2LepSkimmingTool", expression=lepSel) ToolSvc += HIGG5D2LepSkimmingTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__TriggerSkimmingTool HIGG5D2TriggerSkimmingTool = DerivationFramework__TriggerSkimmingTool( name="HIGG5D2TriggerSkimmingTool", TriggerListOR=triglist) ToolSvc += HIGG5D2TriggerSkimmingTool #======================================= # CREATE PRIVATE SEQUENCE #=======================================
# SKIMMING TOOLS # (SKIMMING = REMOVING WHOLE EVENTS THAT FAIL CRITERIA) # Create skimming tool, and create + add kernel to sequence #==================================================================== # offline lepton skimming : require at least one lepton # pt-thresholds were evaluated for lowest single lepton triggers with pt-thresholds of 26 GeV # 0 == Muons.muonType correspond to Combined muons. DFCommonGoodMuon cuts on type are quality dependent # we assume that mu-channel events will be requested to have combined muon offline. # wo type cut, there is a relatively large (+~30%) leakage of mostly CaloTagged (muonType=3) muons offlineElec = "(Electrons.pt > 24*GeV) && (Electrons.Medium || Electrons.DFCommonElectronsLHMedium)" offlineMuon = "(Muons.pt > 24*GeV) && (Muons.DFCommonGoodMuon) && (0 == Muons.muonType)" offlineExpression = "( (count(" + offlineElec + ") >= 1) || (count(" + offlineMuon + ") >= 1) )" printfunc('FTAG4: offline skimming expression : \n', offlineExpression) FTAG4StringSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="FTAG4StringSkimmingTool", expression=offlineExpression) ToolSvc += FTAG4StringSkimmingTool printfunc(FTAG4StringSkimmingTool) # triggers used for skimming: # single lepton triggers: we want to include lowest un-prescaled # we do not hard-code the exact triggers, as these vary with luminosity # we however assume that the lowest un-prescaled triggers will have # thresholds of 20 GeV <= pt < 1 TeV triggers_e = [ "HLT_e[2-9][0-9]_.*", # WARNING: for triggers with 10<=pt<20 GeV, change to HLT_e[1-0][0-9]_.* ! "HLT_e[1-9][0-9][0-9]_.*" ] triggers_mu = [ "HLT_mu[2-9][0-9]_.*", # WARNING: for triggers with 10<=pt<20 GeV, change to HLT_mu[1-0][0-9]_.* ! "HLT_mu[1-9][0-9][0-9]_.*"
#======================================================================== # lepton selection #======================================================================== electronRequirements = '( (Electrons.pt > 25*GeV) && (abs(Electrons.eta) < 2.6) && (Electrons.Loose || Electrons.DFCommonElectronsLHLoose) )' muonRequirements = '( (Muons.pt > 25.0*GeV) && (abs(Muons.eta) < 2.6) && (Muons.DFCommonGoodMuon) )' lepSel = '( (count( ' + electronRequirements + ' ) >=1) || (count( ' + muonRequirements + ' ) >=1 ) )' #==================================================================== # SKIMMING TOOL #==================================================================== #(keep trigger off for future studies) #expression = '( '+ jetSel + ' ) && (count( ' + tauSel + ' ) >= 1) && ( ' +MCselection + ' ) && ( ' + TauMETtrigSel + ' )' expression = '( ' + jetSel + ' ) && (count( ' + tauSel + ' ) >= 1) && ( ' + MCselection + ' )' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool HIGG6D1SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="HIGG6D1SkimmingTool1", expression=expression) ToolSvc += HIGG6D1SkimmingTool print HIGG6D1SkimmingTool #==================================================================== # THINNING TOOLS #==================================================================== thinningTools = [] #==================================================================== # GenericTrackParticleThinning #==================================================================== thinning_expression = "(InDetTrackParticles.pt > 0.5*GeV) && (InDetTrackParticles.numberOfPixelHits > 0) && (InDetTrackParticles.numberOfSCTHits > 5) && (abs(DFCommonInDetTrackZ0AtPV) < 1.5)" from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning HIGG6D1GenTPThinningTool = DerivationFramework__TrackParticleThinning(
# Event selection string dimuonMassString = '( count ( DRZmumuMass > 70*GeV && DRZmumuMass < 110*GeV ) >= 1 )' # Invariant masses in various configurations from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__InvariantMassTool DRZmumuMassTool = DerivationFramework__InvariantMassTool( name="DRZmumuMassTool", ContainerName="Muons", ObjectRequirements=sel_muon1, SecondObjectRequirements=sel_muon2, MassHypothesis=105.66, SecondMassHypothesis=105.66, StoreGateEntryName="DRZmumuMass") ToolSvc += DRZmumuMassTool from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool dimuonMassSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="DRAW_ZMUMU_DiMuonMass_SkimmingTool", expression=dimuonMassString) ToolSvc += dimuonMassSkimmingTool # Muon selector tool from MuonSelectorTools.MuonSelectorToolsConf import CP__MuonSelectionTool goodMuonTool = CP__MuonSelectionTool(name="DRAW_ZMUMU_MuonsSelector") goodMuonTool.MaxEta = 3. goodMuonTool.MuQuality = 3 # turn of the momentum correction which is not needed for IDHits cut and Preselection goodMuonTool.TurnOffMomCorr = True ToolSvc += goodMuonTool print goodMuonTool from PrimaryDPDMaker.PrimaryDPDMakerConf import DerivationFramework__DRAW_ZMUMUSkimmingTool goodMuonSkimmingTool = DerivationFramework__DRAW_ZMUMUSkimmingTool( name="DRAW_ZMUMU_GoodMuon_SkimmingTool", MuonContainerKey="Muons",
boosted_trackjet_R20 = "count(BTagging_AntiKt2Track.MV2c20_discriminant > %s) >= 2" % mv2track boosted_trackjet_R30 = "count(BTagging_AntiKt3Track.MV2c20_discriminant > %s) >= 2" % mv2track if (beamEnergy < 4.1e+06): boosted_2LargeR = "(%s)" % (boosted_2LargeR_R20) else: boosted_2LargeR = "(%s) && ((%s) || (%s))" % ( boosted_2LargeR_R20, boosted_trackjet_R20, boosted_trackjet_R30) #eventSkim_zeroLepton = "(%s) && ((%s) || (%s))" % (trigger, resolved_4jet, boosted_2LargeR) eventSkim_zeroLepton = "((%s) || (%s))" % (resolved_4jet, boosted_2LargeR) eventSkim_singleLepton = "(%s) && ((%s) || (%s))" % ( singleLepton, resolved_2jet, boosted_1LargeR) eventSkim = "(%s) || (%s)" % (eventSkim_zeroLepton, eventSkim_singleLepton) from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT8SkimmingTool_sl = DerivationFramework__xAODStringSkimmingTool( name="EXOT8SkimmingTool_sl", expression=eventSkim_singleLepton) ToolSvc += EXOT8SkimmingTool_sl from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool EXOT8SkimmingTool_zl = DerivationFramework__xAODStringSkimmingTool( name="EXOT8SkimmingTool_zl", expression=eventSkim_zeroLepton) ToolSvc += EXOT8SkimmingTool_zl from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationAND EXOT8ANDSkimmingTool_zl = DerivationFramework__FilterCombinationAND( name="EXOT8ANDSkimmingTool_zl", FilterList=[EXOT8TriggerSkimmingTool, EXOT8SkimmingTool_zl]) ToolSvc += EXOT8ANDSkimmingTool_zl from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__FilterCombinationOR EXOT8SkimmingTool = DerivationFramework__FilterCombinationOR(
ParticleSelectionString=truth_cond_Lepton, PreserveDescendants=True, PreserveGeneratorDescendants=False, SimBarcodeOffset=DerivationFrameworkSimBarcodeOffset) ToolSvc += SUSY11TruthThinningTool thinningTools.append(SUSY11TruthThinningTool) #==================================================================== # TRIGGER SKIMMING #==================================================================== jettrig = '( HLT_j15 || HLT_j25 || HLT_j35 || HLT_j55 || HLT_j60 || HLT_j85 || HLT_j110 || HLT_j150 || HLT_j175 || HLT_j200 || HLT_j260 || HLT_j300 || HLT_j320 || HLT_j360 || HLT_j380 || HLT_j400 || HLT_j420 || HLT_j440 || HLT_j460)' from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool SUSY11SkimmingTool = DerivationFramework__xAODStringSkimmingTool( name="SUSY11SkimmingTool", expression=jettrig) ToolSvc += SUSY11SkimmingTool #======================================= # CREATE THE DERIVATION KERNEL ALGORITHM #======================================= from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel( "SUSY11KernelSkim", SkimmingTools=[SUSY11SkimmingTool], ) #============================================================================== # SUSY signal augmentation