DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel( "EGAM1Kernel", AugmentationTools=[ EGAM1_ZEEMassTool1, EGAM1_ZEEMassTool2, EGAM1_ZEEMassTool3, EGAM1_ZEGMassTool, EGAM1_GainDecoratorTool, EGAM1_MaxCellDecoratorTool ] + EGAM1_ClusterEnergyPerLayerDecorators, SkimmingTools=[EGAM1SkimmingTool], ThinningTools=thinningTools) #======================================= # ADD NON-PROMPT LEPTON VETO ALGORITHMS #======================================= import JetTagNonPromptLepton.JetTagNonPromptLeptonConfig as Config DerivationFrameworkJob += Config.DecoratePromptLepton("Electrons", "AntiKt4PV0TrackJets") DerivationFrameworkJob += Config.DecoratePromptLepton("Muons", "AntiKt4PV0TrackJets") #======================================================================== #==================================================================== # SET UP STREAM #==================================================================== streamName = derivationFlags.WriteDAOD_EGAM1Stream.StreamName fileName = buildFileName(derivationFlags.WriteDAOD_EGAM1Stream) EGAM1Stream = MSMgr.NewPoolRootStream(streamName, fileName) # Only events that pass the filters listed below are written out. # Name must match that of the kernel above # AcceptAlgs = logical OR of filters # RequireAlgs = logical AND of filters
def setup(TOPQname, stream): DFisMC = (globalflags.DataSource() == 'geant4') TOPQSlimmingHelper = SlimmingHelper(TOPQname + "SlimmingHelper") #===================================================== # ADD BTagging_AntiKt4EMPFlow COLLECTION TO DICTIONARY #===================================================== TOPQSlimmingHelper.AppendToDictionary = { "BTagging_AntiKt4EMPFlow": "xAOD::BTaggingContainer", "BTagging_AntiKt4EMPFlowAux": "xAOD::BTaggingAuxContainer" } #================================ # SMART SLIMMING #================================ TOPQSlimmingHelper.SmartCollections = [] TOPQSlimmingHelper.SmartCollections += TOPQSmartSlimmingCollections print("TOPQSlimmingHelper.SmartCollections: ", TOPQSlimmingHelper.SmartCollections) #================================================================= # EXTRA VARIABLES FROM DerivationFrameworkTop.TOPQCommonExtraContent #================================================================= TOPQSlimmingHelper.ExtraVariables = [] TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesAntiKt4EMTopoJets TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesAntiKt4EMPFlowJets TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesBTagging_AntiKt4EMPFlow TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesBTagging_AntiKt4EMTopo TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesPhotons TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesElectrons TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesMuons TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesTaus TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesTrackJets TOPQSlimmingHelper.ExtraVariables += Config.GetExtraPromptVariablesForDxAOD( ) # TOPQSlimmingHelper.ExtraVariables += ["CaloCalTopoClusters.calE.calEta.calPhi.calM.rawM.rawE.rawEta.rawPhi.e_sampl.eta_sampl.etaCalo.phiCalo"] TOPQSlimmingHelper.ExtraVariables += [ "CaloCalTopoClusters.calPt.calEta.calPhi.calM.calE.CENTER_MAG" ] if DFisMC: TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesPhotonsTruth TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesElectronsTruth TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesMuonsTruth TOPQSlimmingHelper.ExtraVariables += TOPQExtraVariablesTausTruth TOPQSlimmingHelper.ExtraVariables += TOPQExtraVarsBTag_HLT_Container TOPQSlimmingHelper.ExtraVariables += TOPQExtraVarsJet_EF_Container TOPQSlimmingHelper.ExtraVariables += TOPQExtraVarsJet_Split_Container print("TOPQSlimmingHelper.ExtraVariables: ", TOPQSlimmingHelper.ExtraVariables) #================================ # EXTRA COLLECTIONS - user added #================================ TOPQSlimmingHelper.AllVariables = [] TOPQSlimmingHelper.AllVariables += TOPQExtraContainersStandard TOPQSlimmingHelper.AllVariables += TOPQExtraContainersTrigger if DFisMC: TOPQSlimmingHelper.AllVariables += TOPQExtraContainersTruth print("TOPQSlimmingHelper.AllVariables: ", TOPQSlimmingHelper.AllVariables) #================================ # CREATED ON-THE-FLY COLLECTIONS #================================ TOPQSlimmingHelper.StaticContent = [] TOPQSlimmingHelper.StaticContent += TOPQStaticContent if DFisMC: TOPQSlimmingHelper.StaticContent += TOPQStaticContentTruth print("TOPQSlimmingHelper.StaticContent: ", TOPQSlimmingHelper.StaticContent) #================================ # TRIGGER CONTENT #================================ TOPQSlimmingHelper.IncludeMuonTriggerContent = True TOPQSlimmingHelper.IncludeEGammaTriggerContent = True TOPQSlimmingHelper.IncludeJetTriggerContent = True TOPQSlimmingHelper.IncludeTauTriggerContent = True TOPQSlimmingHelper.IncludeEtMissTriggerContent = True #TOPQSlimmingHelper.IncludeJetTauEtMissTriggerContent = True #TOPQSlimmingHelper.IncludeBJetTriggerContent = True #TOPQSlimmingHelper.IncludeBPhysTriggerContent = True #TOPQSlimmingHelper.IncludeMinBiasTriggerContent = True #==================================== # ADD AntiKT4EMPFlowJets MET OUTPUT #==================================== # needs to be after where AllVaraibles[] and StaticContent[] are created # adds METAssoc_XXXX, MET_Core_XXXX, and MET_Reference_XXXX # uses DerivationFrameworkJetEtMiss.METCommon.py addMETOutputs(TOPQSlimmingHelper, ["AntiKt4EMPFlow"]) #==================================== # ADD CUSTOM JET OUTPUT (new rel 21 method) #==================================== addJetOutputs( TOPQSlimmingHelper, ["SmallR", "LargeR", TOPQname], [], # smart list [ "AntiKt3PV0TrackJets", "AntiKt4PV0TrackJets", "AntiKt4LCTopoJets", "AntiKt10LCTopoJets", "AntiKt10TruthWZJets", ] # veto list ) #================================ # THIS NEEDS TO BE THE LAST LINE #================================ TOPQSlimmingHelper.AppendContentToStream(stream)
# THIS IS NO LONGER NEEDED IN REL 21, REMOVE IN FUTURE (May-17) # # Then apply the TruthWZ fix # if DFisMC: # replaceBuggyAntiKt4TruthWZJets(TOPQ4Sequence,'TOPQ4') # Then apply truth tools in the form of aumentation if DFisMC: from DerivationFrameworkTop.TOPQCommonTruthTools import * TOPQ4Sequence += TOPQCommonTruthKernel DerivationFrameworkTop.TOPQCommonJets.addMSVVariables("AntiKt4EMTopoJets", TOPQ4Sequence, ToolSvc) # Then apply thinning TOPQ4Sequence += CfgMgr.DerivationFramework__DerivationKernel( "TOPQ4Kernel", ThinningTools=thinningTools) # JetTagNonPromptLepton decorations import JetTagNonPromptLepton.JetTagNonPromptLeptonConfig as Config TOPQ4Sequence += Config.GetDecoratePromptLeptonAlgs() # Finally, add the private sequence to the main job DerivationFrameworkJob += TOPQ4Sequence #==================================================================== # SLIMMING #==================================================================== import DerivationFrameworkTop.TOPQCommonSlimming DerivationFrameworkTop.TOPQCommonSlimming.setup('TOPQ4', TOPQ4Stream)
SkimmingTools=[EGAM1SkimmingTool], ThinningTools=thinningTools) #==================================================================== # RESTORE JET COLLECTIONS REMOVED BETWEEN r20 AND r21 #==================================================================== from DerivationFrameworkJetEtMiss.ExtendedJetCommon import replaceAODReducedJets #reducedJetList = ["AntiKt4PV0TrackJets", "AntiKt4TruthJets"] reducedJetList = ["AntiKt4TruthJets"] replaceAODReducedJets(reducedJetList, egam1Seq, "EGAM1") #======================================= # ADD NON-PROMPT LEPTON VETO ALGORITHMS #======================================= import JetTagNonPromptLepton.JetTagNonPromptLeptonConfig as JetTagConfig JetTagConfig.ConfigureAntiKt4PV0TrackJets(egam1Seq, "EGAM1") egam1Seq += JetTagConfig.GetDecoratePromptLeptonAlgs(name="Electrons") #==================================================================== # SET UP STREAM SELECTION #==================================================================== # Only events that pass the filters listed below are written out. # Name must match that of the kernel above # AcceptAlgs = logical OR of filters # RequireAlgs = logical AND of filters EGAM1Stream.AcceptAlgs(["EGAM1Kernel"]) #==================================================================== # SET UP SLIMMING #==================================================================== from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
the_alg = VertexDecoratorAlg(alg_name) InDetTool = InDet__InDetTrackSelectionTool( "TrackSelectionTool_VertexDecoration") InDetTool.minPt = 400 InDetTool.CutLevel = "Loose" ToolSvc += InDetTool the_alg.TrackSelectionTool = InDetTool DerivationFrameworkJob += the_alg #==================================================================== # JetTagNonPromptLepton decorations #==================================================================== import JetTagNonPromptLepton.JetTagNonPromptLeptonConfig as JetTagConfig import LeptonTaggers.LeptonTaggersConfig as LepTagConfig if not hasattr(MUON1Seq, "Muons_decoratePromptLepton"): JetTagConfig.ConfigureAntiKt4PV0TrackJets(MUON1Seq, "MUON1") MUON1Seq += JetTagConfig.GetDecoratePromptLeptonAlgs() MUON1Seq += LepTagConfig.GetDecorateImprovedPromptLeptonAlgs() from DerivationFrameworkMuons import ConstituentPileupIso ConstituentPileupIso.ConstituentPileupIso(MUON1Seq) from DerivationFrameworkFlavourTag.FlavourTagCommon import FlavorTagInit FlavorTagInit(JetCollections=['AntiKt4EMPFlowJets'], Sequencer=MUON1Seq) #==================================================================== # Add the containers to the output stream - slimming done here #==================================================================== from DerivationFrameworkMuons.StreamConfig import MuonsDxAODStreamConfigurer as conf if hasattr(ToolSvc, "MUON1MuonTP_Reco_mumu"): conf.Items['MUON1'] += [ "xAOD::VertexContainer#%s" %