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 and not flags.Overlay.DataOverlay:
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 DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
42 xAODStringSkimmingToolCfg)
43 acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
44 flags, name = "HION15StringSkimmingTool", expression = expression)), primary = True)
45
46 return(acc)
47
48def HION15KernelCfg(flags, name='HION15Kernel', **kwargs):
49 """Configure the derivation framework driving algorithm (kernel)"""
50 acc = ComponentAccumulator()
51
52 from DerivationFrameworkHI.HION7 import PhysAugmentationsHION7Cfg
53 acc.merge(PhysAugmentationsHION7Cfg(flags))
54 thinningTools = []
55 skimmingTool = acc.getPrimaryAndMerge(HION15SkimmingToolCfg(flags))
56 from DerivationFrameworkHI.HION7 import HION7GlobalAugmentationToolCfg
57 globalAugmentationTool = acc.getPrimaryAndMerge(HION7GlobalAugmentationToolCfg(flags))
58 augmentationTool=[globalAugmentationTool]
59
60 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName="HION15Sequence")
61
62 return acc
63
64
65def HION15Cfg(flags):
66
67 acc = ComponentAccumulator()
68
69 JetColl = flags.HeavyIon.HIJetPrefix
70 from DerivationFrameworkHI.HION7 import getDFJets
71 acc.merge(getDFJets(flags))
72
73 acc.merge(HION15KernelCfg(flags, name="HION15Kernel",StreamName = "StreamDAOD_HION15"))
74
75 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
76 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
77 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
78 from DerivationFrameworkHI import ListSlimming
79
80
82 HION15SlimmingHelper = SlimmingHelper("HION15SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
83 HION15SlimmingHelper.SmartCollections = ListSlimming.HION15SmartCollections()
84 AllVars = ListSlimming.HION15AllVarContent()
85 AllVars += ListSlimming.HION15ExtraContainersTrigger()
86 ExtraVars = ListSlimming.HION15BasicJetVars(JetColl)
87 from DerivationFrameworkFlavourTag import FtagBaseContent
88 if flags.Input.isMC or flags.Overlay.DataOverlay:
89 AllVars += ListSlimming.HION15AllVarTruthContent()
90 if flags.HeavyIon.doHIBTagging:
91 FtagBaseContent.add_truth_to_SlimmingHelper(HION15SlimmingHelper)
92 if flags.HeavyIon.doHIBTagging:
93 from DerivationFrameworkFlavourTag.FtagBaseContent import addCommonAugmentation
94 addCommonAugmentation(flags, acc, HION15SlimmingHelper, JetColl+"AntiKt4HIJets")
95 AllVars += ListSlimming.HION15AllVarFromFTAG1()
96 # update AppendToDictionary
97 extra_AppendToDictionary = {}
98 FtagBaseContent.update_AppendToDictionary_in_SlimmingHelper(HION15SlimmingHelper, flags, extra_AppendToDictionary)
99 # Add ExtraVariables
100 ExtraVars += ListSlimming.HION15ExtraVarForBtag(JetColl)
101 FtagBaseContent.add_ExtraVariables_to_SlimmingHelper(HION15SlimmingHelper, flags)
102
103 HION15SlimmingHelper.ExtraVariables = ExtraVars
104 HION15SlimmingHelper.AllVariables = AllVars
105
106 HION15ItemList = HION15SlimmingHelper.GetItemList()
107 HIJetRemovedBranches=ListSlimming.makeHIJetRemovedBranchList()
108 jet_var_str = '.-'.join ([''] + HIJetRemovedBranches)
109 jetRlist = flags.HeavyIon.Jet.RValues #Default [0.2,0.4]
110 for jetR in jetRlist:
111 output = ["xAOD::JetContainer#"+JetColl+"AntiKt"+str(jetR)+"HIJets",
112 "xAOD::JetAuxContainer#"+JetColl+"AntiKt"+str(jetR)+"HIJetsAux.-PseudoJet"+jet_var_str]
113 HION15ItemList += output
114
115 acc.merge(OutputStreamCfg(flags, "DAOD_HION15", ItemList=HION15ItemList, AcceptAlgs=["HION15Kernel"]))
116 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION15", AcceptAlgs=["HION15Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
117
118 return acc
void print(char *figname, TCanvas *c1)
HION15SkimmingToolCfg(flags)
Skiming.
Definition HION15.py:11
HION15KernelCfg(flags, name='HION15Kernel', **kwargs)
Definition HION15.py:48
HION15Cfg(flags)
Definition HION15.py:65