4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.Enums
import MetadataCategory
7 from AthenaCommon.CFElements
import seqAND
12 """Configure the example skimming tool"""
15 ExtraData += [
'xAOD::JetContainer/AntiKt2HIJets']
16 ExtraData += [
'xAOD::JetContainer/AntiKt4HIJets']
18 acc.addSequence(
seqAND(
"HION7Sequence") )
19 acc.getSequence(
"HION7Sequence").ExtraDataForDynamicConsumers = ExtraData
20 acc.getSequence(
"HION7Sequence").ProcessDynamicDataDependencies =
True
24 from DerivationFrameworkHI
import ListTriggers
25 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
28 if (info.getBeam1Type() < 11)
or (info.getBeam2Type() < 11):
30 if not flags.Input.isMC:
31 print(
'project: ', flags.Input.ProjectName,
', isSmallSystem: ', isSmallSystem)
32 TriggerDict = ListTriggers.GetTriggers(flags.Input.ProjectName, isSmallSystem)
33 for i, key
in enumerate(TriggerDict):
34 expression = expression +
'(' + key +
' && count(AntiKt4HIJets.pt >' +
str(TriggerDict[key]) +
'*GeV) >=1 ) ' +
'|| (' + key +
' && count(AntiKt2HIJets.pt >' +
str(TriggerDict[key]) +
'*GeV) >=1 ) '
35 if not i == len(TriggerDict) - 1:
36 expression = expression +
' || '
38 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
40 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"HION7StringSkimmingTool",
41 expression = expression,
42 TrigDecisionTool=tdt),
48 """Configure the example augmentation tool"""
53 augmentation_tool = CompFactory.DerivationFramework.HIGlobalAugmentationTool(name=
"HION7AugmentationTool",
56 acc.addPublicTool(augmentation_tool, primary=
True)
62 """Configure the derivation framework driving algorithm (kernel)"""
67 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
70 if (info.getBeam1Type() < 11)
or (info.getBeam2Type() < 11):
75 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
77 track_thinning_expression =
"InDetTrackParticles.pt > 0.9*GeV"
80 name =
"PHYSTrackParticleThinningTool",
81 StreamName = kwargs[
'StreamName'],
82 SelectionString = track_thinning_expression,
83 InDetTrackParticlesKey =
"InDetTrackParticles"))
87 name =
"AntiKt2HIJetsThinningTool",
88 StreamName = kwargs[
'StreamName'],
89 JetKey =
"AntiKt2HIJets",
90 SelectionString =
"AntiKt2HIJets.pt > "+
str(pTCut) +
"*GeV",
91 InDetTrackParticlesKey =
"InDetTrackParticles"))
95 name =
"AntiKt4HIJetsThinningTool",
96 StreamName = kwargs[
'StreamName'],
97 JetKey =
"AntiKt4HIJets",
98 SelectionString =
"AntiKt4HIJets.pt > "+
str(pTCut) +
"*GeV",
99 InDetTrackParticlesKey =
"InDetTrackParticles"))
102 thinningTools = [TrackParticleThinningTool,
103 AntiKt2HIJetsThinningTool,
104 AntiKt4HIJetsThinningTool]
106 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import GenericTruthThinningCfg
107 truth_thinning_expression =
"(TruthParticles.status==1) && (TruthParticles.pt > 0.7*GeV) && (abs(TruthParticles.eta) < 2.7)"
109 name=
"TruthParticleThinningTool",
110 StreamName=kwargs[
'StreamName'],
111 ParticleSelectionString = truth_thinning_expression
114 thinningTools += [TruthParticleThinningTool]
118 augmentationTool=[globalAugmentationTool]
120 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName=
"HION7Sequence")
127 acc.merge(
HION7KernelCfg(flags, name=
"HION7Kernel",StreamName =
"StreamDAOD_HION7"))
129 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
130 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
131 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
132 from DerivationFrameworkHI
import ListSlimming
136 HION7SlimmingHelper =
SlimmingHelper(
"HION7SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
137 HION7SlimmingHelper.SmartCollections = ListSlimming.HION7SmartCollections()
138 all_variables = ListSlimming.HION7AllVarContent()
140 all_variables += ListSlimming.HION7AllVarTruthContent()
141 HION7SlimmingHelper.AllVariables = all_variables
143 HION7ItemList = HION7SlimmingHelper.GetItemList()
145 acc.merge(
OutputStreamCfg(flags,
"DAOD_HION7", ItemList=HION7ItemList, AcceptAlgs=[
"HION7Kernel"]))
146 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_HION7", AcceptAlgs=[
"HION7Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))