ATLAS Offline Software
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 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import MetadataCategory
7 from 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 
50 def 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 
67 def 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
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
python.HION15.HION15Cfg
def HION15Cfg(flags)
Definition: HION15.py:67
python.HION7.HION7GlobalAugmentationToolCfg
def HION7GlobalAugmentationToolCfg(flags)
Definition: HION7.py:123
python.ParticleTypeUtil.getTypeForRun
def getTypeForRun(run, quiet=False)
Definition: ParticleTypeUtil.py:24
python.FtagBaseContent.addCommonAugmentation
def addCommonAugmentation(flags, cfg, helper, target="AntiKt4EMPFlowJets")
Definition: FtagBaseContent.py:176
python.HION7.getDFJets
def getDFJets(flags)
Definition: HION7.py:66
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:26
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
python.CFElements.seqAND
def seqAND(name, subs=[], invert=False)
Definition: CFElements.py:27
python.HION15.HION15SkimmingToolCfg
def HION15SkimmingToolCfg(flags)
Skiming.
Definition: HION15.py:11
str
Definition: BTagTrackIpAccessor.cxx:11
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION7.PhysAugmentationsHION7Cfg
def PhysAugmentationsHION7Cfg(flags)
in place of common PhysCommonAugmentations:
Definition: HION7.py:11
python.HION15.HION15KernelCfg
def HION15KernelCfg(flags, name='HION15Kernel', **kwargs)
Definition: HION15.py:50