4from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory
import CompFactory
6from AthenaConfiguration.Enums
import MetadataCategory
7from AthenaCommon.CFElements
import seqAND
12 """Configure the example skimming tool"""
13 acc = ComponentAccumulator()
14 JetColl = flags.HeavyIon.HIJetPrefix
16 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt2HIJets']
17 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt4HIJets']
19 acc.addSequence( seqAND(
"HION15Sequence") )
20 acc.getSequence(
"HION15Sequence").ExtraDataForDynamicConsumers = ExtraData
21 acc.getSequence(
"HION15Sequence").ProcessDynamicDataDependencies =
True
25 from DerivationFrameworkHI
import ListTriggers
26 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import xAODStringSkimmingToolCfg
27 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
28 info=getTypeForRun(flags.Input.RunNumbers[0])
30 if (info.getBeam1Type() < 11)
or (info.getBeam2Type() < 11):
32 if not flags.Input.isMC
and not flags.Overlay.DataOverlay:
33 print(
'project: ', flags.Input.ProjectName,
', isSmallSystem: ', isSmallSystem)
34 TriggerDict = ListTriggers.GetTriggers(flags.Input.ProjectName, isSmallSystem)
35 for key
in TriggerDict:
37 expression =
'count('+JetColl+
'AntiKt4HIJets.pt >' + str(TriggerDict[key]) +
'*GeV) >=1 || count('+JetColl+
'AntiKt2HIJets.pt >' + str(TriggerDict[key]) +
'*GeV) >=1 '
39 HION15StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
40 flags, name =
"HION15StringSkimmingTool_"+key, expression = expression)), primary =
True)
41 filterList_trig += [HION15StringSkimmingTool]
43 HION15TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(name =
"HION7TriggerSkimmingTool_"+key, TriggerListOR = [key])
44 acc.addPublicTool(HION15TriggerSkimmingTool)
45 filterList_trig += [HION15TriggerSkimmingTool]
47 HION15SkimmingTool_trig = CompFactory.DerivationFramework.FilterCombinationAND(name=
"HION7SkimmingTool_trig_"+key, FilterList=filterList_trig)
48 acc.addPublicTool(HION15SkimmingTool_trig)
49 filterList += [HION15SkimmingTool_trig]
52 expression =
'count('+JetColl+
'AntiKt2HIJets.pt > 15000) > 1 || count('+JetColl+
'AntiKt4HIJets.pt > 15000) > 1'
53 HION15StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
54 flags, name =
"HION15StringSkimmingTool", expression = expression)), primary =
True)
55 filterList += [HION15StringSkimmingTool]
57 HION15SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(name=
"HION15SkimmingTool", FilterList=filterList)
58 acc.addPublicTool(HION15SkimmingTool, primary =
True)
63 """Configure the derivation framework driving algorithm (kernel)"""
64 acc = ComponentAccumulator()
66 from DerivationFrameworkHI.HION7
import PhysAugmentationsHION7Cfg
67 acc.merge(PhysAugmentationsHION7Cfg(flags))
70 from DerivationFrameworkHI.HION7
import HION7GlobalAugmentationToolCfg
71 globalAugmentationTool = acc.getPrimaryAndMerge(HION7GlobalAugmentationToolCfg(flags))
72 augmentationTool=[globalAugmentationTool]
74 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName=
"HION15Sequence")
81 acc = ComponentAccumulator()
83 JetColl = flags.HeavyIon.HIJetPrefix
84 from DerivationFrameworkHI.HION7
import getDFJets
85 acc.merge(getDFJets(flags))
87 acc.merge(
HION15KernelCfg(flags, name=
"HION15Kernel",StreamName =
"StreamDAOD_HION15"))
89 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
90 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
91 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
92 from DerivationFrameworkHI
import ListSlimming
96 HION15SlimmingHelper =
SlimmingHelper(
"HION15SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
97 HION15SlimmingHelper.SmartCollections = ListSlimming.HION15SmartCollections()
98 AllVars = ListSlimming.HION15AllVarContent()
99 AllVars += ListSlimming.HION15ExtraContainersTrigger()
100 ExtraVars = ListSlimming.HION15BasicJetVars(JetColl)
101 from DerivationFrameworkFlavourTag
import FtagBaseContent
102 if flags.Input.isMC
or flags.Overlay.DataOverlay:
103 AllVars += ListSlimming.HION15AllVarTruthContent()
104 if flags.HeavyIon.doHIBTagging:
105 FtagBaseContent.add_truth_to_SlimmingHelper(HION15SlimmingHelper)
106 if flags.HeavyIon.doHIBTagging:
107 from DerivationFrameworkFlavourTag.FtagBaseContent
import addCommonAugmentation
108 addCommonAugmentation(flags, acc, HION15SlimmingHelper, JetColl+
"AntiKt4HIJets")
109 AllVars += ListSlimming.HION15AllVarFromFTAG1()
111 extra_AppendToDictionary = {}
112 FtagBaseContent.update_AppendToDictionary_in_SlimmingHelper(HION15SlimmingHelper, flags, extra_AppendToDictionary)
114 ExtraVars += ListSlimming.HION15ExtraVarForBtag(JetColl)
115 FtagBaseContent.add_ExtraVariables_to_SlimmingHelper(HION15SlimmingHelper, flags)
117 HION15SlimmingHelper.ExtraVariables = ExtraVars
118 HION15SlimmingHelper.AllVariables = AllVars
120 HION15ItemList = HION15SlimmingHelper.GetItemList()
121 HIJetRemovedBranches=ListSlimming.makeHIJetRemovedBranchList()
122 jet_var_str =
'.-'.join ([
''] + HIJetRemovedBranches)
123 jetRlist = flags.HeavyIon.Jet.RValues
124 for jetR
in jetRlist:
125 output = [
"xAOD::JetContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJets",
126 "xAOD::JetAuxContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJetsAux.-PseudoJet"+jet_var_str]
127 HION15ItemList += output
129 acc.merge(OutputStreamCfg(flags,
"DAOD_HION15", ItemList=HION15ItemList, AcceptAlgs=[
"HION15Kernel"]))
130 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_HION15", AcceptAlgs=[
"HION15Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
void print(char *figname, TCanvas *c1)
HION15SkimmingToolCfg(flags)
Skiming.
HION15KernelCfg(flags, name='HION15Kernel', **kwargs)