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
예제 #2
0
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)   
   
   
   
   
예제 #4
0
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
예제 #5
0
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 
예제 #6
0
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
##################
예제 #7
0
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()

#====================================================================
예제 #8
0
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
예제 #9
0
  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
예제 #10
0
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
예제 #11
0
#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]
예제 #12
0
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 = []
예제 #13
0
    '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)

#=======================================
예제 #14
0
#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

##################
예제 #15
0
    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)

#====================================================================
예제 #16
0
#                                                                        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
예제 #17
0
# 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
예제 #18
0
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
예제 #19
0
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])
예제 #20
0
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])
예제 #21
0
    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
예제 #22
0
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")
예제 #23
0
    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(
예제 #24
0
#====================================================================

# 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])
예제 #25
0
    # 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
#=======================================
예제 #26
0
# 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]_.*"
예제 #27
0
#========================================================================
# 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(
예제 #28
0
# 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",
예제 #29
0
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(
예제 #30
0
        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