ATLAS Offline Software
Loading...
Searching...
No Matches
HION15.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# HION15.py
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.Enums import MetadataCategory
7from AthenaCommon.CFElements import seqAND
8
9
12 """Configure the example skimming tool"""
13 acc = ComponentAccumulator()
14 JetColl = flags.HeavyIon.HIJetPrefix
15 ExtraData = []
16 ExtraData += ['xAOD::JetContainer/'+JetColl+'AntiKt2HIJets']
17 ExtraData += ['xAOD::JetContainer/'+JetColl+'AntiKt4HIJets']
18
19 acc.addSequence( seqAND("HION15Sequence") )
20 acc.getSequence("HION15Sequence").ExtraDataForDynamicConsumers = ExtraData
21 acc.getSequence("HION15Sequence").ProcessDynamicDataDependencies = True
22
23 #Trigger selection
24 filterList = []
25 from DerivationFrameworkHI import ListTriggers
26 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import xAODStringSkimmingToolCfg
27 from CoolConvUtilities.ParticleTypeUtil import getTypeForRun
28 info=getTypeForRun(flags.Input.RunNumbers[0])
29 isSmallSystem = False
30 if (info.getBeam1Type() < 11) or (info.getBeam2Type() < 11):
31 isSmallSystem = True
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:
36 filterList_trig = []
37 expression = 'count('+JetColl+'AntiKt4HIJets.pt >' + str(TriggerDict[key]) + '*GeV) >=1 || count('+JetColl+'AntiKt2HIJets.pt >' + str(TriggerDict[key]) + '*GeV) >=1 '
38
39 HION15StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
40 flags, name = "HION15StringSkimmingTool_"+key, expression = expression)), primary = True)
41 filterList_trig += [HION15StringSkimmingTool]
42
43 HION15TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(name = "HION7TriggerSkimmingTool_"+key, TriggerListOR = [key])
44 acc.addPublicTool(HION15TriggerSkimmingTool)
45 filterList_trig += [HION15TriggerSkimmingTool]
46
47 HION15SkimmingTool_trig = CompFactory.DerivationFramework.FilterCombinationAND(name="HION7SkimmingTool_trig_"+key, FilterList=filterList_trig)
48 acc.addPublicTool(HION15SkimmingTool_trig)
49 filterList += [HION15SkimmingTool_trig]
50
51 else:
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]
56
57 HION15SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(name="HION15SkimmingTool", FilterList=filterList)
58 acc.addPublicTool(HION15SkimmingTool, primary = True)
59
60 return(acc)
61
62def HION15KernelCfg(flags, name='HION15Kernel', **kwargs):
63 """Configure the derivation framework driving algorithm (kernel)"""
64 acc = ComponentAccumulator()
65
66 from DerivationFrameworkHI.HION7 import PhysAugmentationsHION7Cfg
67 acc.merge(PhysAugmentationsHION7Cfg(flags))
68 thinningTools = []
69 skimmingTool = acc.getPrimaryAndMerge(HION15SkimmingToolCfg(flags))
70 from DerivationFrameworkHI.HION7 import HION7GlobalAugmentationToolCfg
71 globalAugmentationTool = acc.getPrimaryAndMerge(HION7GlobalAugmentationToolCfg(flags))
72 augmentationTool=[globalAugmentationTool]
73
74 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName="HION15Sequence")
75
76 return acc
77
78
79def HION15Cfg(flags):
80
81 acc = ComponentAccumulator()
82
83 JetColl = flags.HeavyIon.HIJetPrefix
84 from DerivationFrameworkHI.HION7 import getDFJets
85 acc.merge(getDFJets(flags))
86
87 acc.merge(HION15KernelCfg(flags, name="HION15Kernel",StreamName = "StreamDAOD_HION15"))
88
89 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
90 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
91 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
92 from DerivationFrameworkHI import ListSlimming
93
94
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()
110 # update AppendToDictionary
111 extra_AppendToDictionary = {}
112 FtagBaseContent.update_AppendToDictionary_in_SlimmingHelper(HION15SlimmingHelper, flags, extra_AppendToDictionary)
113 # Add ExtraVariables
114 ExtraVars += ListSlimming.HION15ExtraVarForBtag(JetColl)
115 FtagBaseContent.add_ExtraVariables_to_SlimmingHelper(HION15SlimmingHelper, flags)
116
117 HION15SlimmingHelper.ExtraVariables = ExtraVars
118 HION15SlimmingHelper.AllVariables = AllVars
119
120 HION15ItemList = HION15SlimmingHelper.GetItemList()
121 HIJetRemovedBranches=ListSlimming.makeHIJetRemovedBranchList()
122 jet_var_str = '.-'.join ([''] + HIJetRemovedBranches)
123 jetRlist = flags.HeavyIon.Jet.RValues #Default [0.2,0.4]
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
128
129 acc.merge(OutputStreamCfg(flags, "DAOD_HION15", ItemList=HION15ItemList, AcceptAlgs=["HION15Kernel"]))
130 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION15", AcceptAlgs=["HION15Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
131
132 return acc
void print(char *figname, TCanvas *c1)
HION15SkimmingToolCfg(flags)
Skiming.
Definition HION15.py:11
HION15KernelCfg(flags, name='HION15Kernel', **kwargs)
Definition HION15.py:62
HION15Cfg(flags)
Definition HION15.py:79