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 expression = ""
24 #Trigger selection
25 from DerivationFrameworkHI import ListTriggers
26 from CoolConvUtilities.ParticleTypeUtil import getTypeForRun
27 info=getTypeForRun(flags.Input.RunNumbers[0])
28 isSmallSystem = False
29 if (info.getBeam1Type() < 11) or (info.getBeam2Type() < 11):
30 isSmallSystem = True
31 if not flags.Input.isMC:
32 print('project: ', flags.Input.ProjectName,', isSmallSystem: ', isSmallSystem)
33 TriggerDict = ListTriggers.GetTriggers(flags.Input.ProjectName, isSmallSystem)
34 for i, key in enumerate(TriggerDict):
35 expression = expression + '(' + key + ' && count('+JetColl+'AntiKt4HIJets.pt >' + str(TriggerDict[key]) + '*GeV) >=1 ) ' + '|| (' + key + ' && count('+JetColl+'AntiKt2HIJets.pt >' + str(TriggerDict[key]) + '*GeV) >=1 ) '
36 if not i == len(TriggerDict) - 1:
37 expression = expression + ' || '
38 else:
39 expression = expression + 'count('+JetColl+'AntiKt2HIJets.pt > 15000) > 1 || count('+JetColl+'AntiKt4HIJets.pt > 15000) > 1'
40
41 from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
42 tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
43 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION15StringSkimmingTool",
44 expression = expression,
45 TrigDecisionTool=tdt),
46 primary = True)
47
48 return(acc)
49
50def HION15KernelCfg(flags, name='HION15Kernel', **kwargs):
51 """Configure the derivation framework driving algorithm (kernel)"""
52 acc = ComponentAccumulator()
53
54 from DerivationFrameworkHI.HION7 import PhysAugmentationsHION7Cfg
55 acc.merge(PhysAugmentationsHION7Cfg(flags))
56 thinningTools = []
57 skimmingTool = acc.getPrimaryAndMerge(HION15SkimmingToolCfg(flags))
58 from DerivationFrameworkHI.HION7 import HION7GlobalAugmentationToolCfg
59 globalAugmentationTool = acc.getPrimaryAndMerge(HION7GlobalAugmentationToolCfg(flags))
60 augmentationTool=[globalAugmentationTool]
61
62 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName="HION15Sequence")
63
64 return acc
65
66
67def HION15Cfg(flags):
68
69 acc = ComponentAccumulator()
70
71 JetColl = flags.HeavyIon.HIJetPrefix
72 from DerivationFrameworkHI.HION7 import getDFJets
73 acc.merge(getDFJets(flags))
74
75 acc.merge(HION15KernelCfg(flags, name="HION15Kernel",StreamName = "StreamDAOD_HION15"))
76
77 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
78 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
79 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
80 from DerivationFrameworkHI import ListSlimming
81
82
84 HION15SlimmingHelper = SlimmingHelper("HION15SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
85 HION15SlimmingHelper.SmartCollections = ListSlimming.HION15SmartCollections()
86 AllVars = ListSlimming.HION15AllVarContent()
87 AllVars += ListSlimming.HION15ExtraContainersTrigger()
88 ExtraVars = ListSlimming.HION15BasicJetVars(JetColl)
89 from DerivationFrameworkFlavourTag import FtagBaseContent
90 if flags.Input.isMC:
91 AllVars += ListSlimming.HION15AllVarTruthContent()
92 if flags.HeavyIon.doHIBTagging:
93 FtagBaseContent.add_truth_to_SlimmingHelper(HION15SlimmingHelper)
94 if flags.HeavyIon.doHIBTagging:
95 from DerivationFrameworkFlavourTag.FtagBaseContent import addCommonAugmentation
96 addCommonAugmentation(flags, acc, HION15SlimmingHelper, JetColl+"AntiKt4HIJets")
97 AllVars += ListSlimming.HION15AllVarFromFTAG1()
98 # update AppendToDictionary
99 extra_AppendToDictionary = {}
100 FtagBaseContent.update_AppendToDictionary_in_SlimmingHelper(HION15SlimmingHelper, flags, extra_AppendToDictionary)
101 # Add ExtraVariables
102 ExtraVars += ListSlimming.HION15ExtraVarForBtag(JetColl)
103 FtagBaseContent.add_ExtraVariables_to_SlimmingHelper(HION15SlimmingHelper, flags)
104
105 HION15SlimmingHelper.ExtraVariables = ExtraVars
106 HION15SlimmingHelper.AllVariables = AllVars
107
108 HION15ItemList = HION15SlimmingHelper.GetItemList()
109 HIJetRemovedBranches=ListSlimming.makeHIJetRemovedBranchList()
110 jet_var_str = '.-'.join ([''] + HIJetRemovedBranches)
111 jetRlist = flags.HeavyIon.Jet.RValues #Default [0.2,0.4]
112 for jetR in jetRlist:
113 output = ["xAOD::JetContainer#"+JetColl+"AntiKt"+str(jetR)+"HIJets",
114 "xAOD::JetAuxContainer#"+JetColl+"AntiKt"+str(jetR)+"HIJetsAux.-PseudoJet"+jet_var_str]
115 HION15ItemList += output
116
117 acc.merge(OutputStreamCfg(flags, "DAOD_HION15", ItemList=HION15ItemList, AcceptAlgs=["HION15Kernel"]))
118 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION15", AcceptAlgs=["HION15Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
119
120 return acc
void print(char *figname, TCanvas *c1)
HION15SkimmingToolCfg(flags)
Skiming.
Definition HION15.py:11
HION15KernelCfg(flags, name='HION15Kernel', **kwargs)
Definition HION15.py:50
HION15Cfg(flags)
Definition HION15.py:67