Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PIXELVALID.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 # ====================================================================
3 # PIXELVALID.py
4 # Component accumulator version
5 # IMPORTANT: this is NOT an AOD based derived data type but one built
6 # during reconstruction from HITS or RAW. It consequently has to be
7 # run from Reco_tf
8 # ====================================================================
9 
10 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 from AthenaConfiguration.Enums import MetadataCategory
13 from AthenaCommon.CFElements import seqAND
14 from AthenaCommon.Constants import INFO
15 
16 # Main algorithm config
17 
18 def PIXELVALID_ANDToolCfg(flags, name='PIXELVALID_ANDTool'):
19  acc = ComponentAccumulator()
20 
21  sel_muon1 = 'Muons.pt > 25*GeV && Muons.ptcone40/Muons.pt < 0.3 && Muons.passesIDCuts'
22  sel_muon2 = 'Muons.pt > 20*GeV && Muons.ptcone40/Muons.pt < 0.3 && Muons.passesIDCuts'
23  draw_zmumu = '( count ( DRZmumuMass > 70*GeV && DRZmumuMass < 110*GeV ) >= 1 ) '
24  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (InvariantMassToolCfg,xAODStringSkimmingToolCfg,FilterCombinationANDCfg)
25  PIXELVALID_ZmumuMass = acc.getPrimaryAndMerge(InvariantMassToolCfg(
26  flags, name="PIXELVALID_ZmumuMass",
27  ContainerName = "Muon",
28  ObjectRequirements = sel_muon1,
29  SecondObjectRequirements = sel_muon2,
30  MassHypothesis = 105.66,
31  SecondMassHypothesis = 105.66,
32  StoreGateEntryName = "DRZmumuMass"))
33 
34  PIXELVALID_SkimmingTool = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
35  flags,
36  name="PIXELVALID_SkimmingTool",
37  expression=draw_zmumu))
38 
39  PIXELVALID_ANDTool = acc.getPrimaryAndMerge(FilterCombinationANDCfg(
40  flags,
41  name,
42  FilterList=[PIXELVALID_ZmumuMass,PIXELVALID_SkimmingTool]))
43 
44  acc.addPublicTool(PIXELVALID_ANDTool, primary=True)
45  return acc
46 
47 
48 def PIXELVALID_ZTAUTAUCfg(flags, name='PIXELVALID_ZTAUTAU'):
49  acc = ComponentAccumulator()
50 
51 # sel_mu = '(Muons.pt > 29*GeV) && Muons.passesIDCuts'
52  sel_mu = '(Muons.pt > 10*GeV) && Muons.passesIDCuts'
53  muRequirement = '( count( '+sel_mu+' ) == 1 )'
54 # sel_tau = '(TauJets.pt > 30.0*GeV) && (TauJets.RNNJetScoreSigTrans>0.55) && ( TauJets.nTracks == 3)'
55  sel_tau = '(TauJets.pt > 10.0*GeV)'
56 # tauRequirement = '( count( '+sel_tau+' ) == 1 )'
57  tauRequirement = '( count( '+sel_tau+' ) > 0 )'
58  draw_taumuh = muRequirement+' && '+tauRequirement
59  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (xAODStringSkimmingToolCfg)
60  PIXELVALID_ZTAUTAU = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(flags,
61  name="PIXELVALID_ZTAUTAU",
62  expression=draw_taumuh))
63 
64  acc.addPublicTool(PIXELVALID_ZTAUTAU, primary=True)
65  return acc
66 
67 
68 def PIXELVALIDKernelCommonCfg(flags, name='PIXELVALIDKernelCommon'):
69  acc = ComponentAccumulator()
70 
71  # ====================================================================
72  # AUGMENTATION TOOLS
73  # ====================================================================
74  augmentationTools = []
75 
76  # Add unbiased track parameters to track particles
77  from DerivationFrameworkInDet.InDetToolsConfig import (TrackToVertexWrapperCfg)
78  PIXELVALIDTrackToVertexWrapper = acc.getPrimaryAndMerge(TrackToVertexWrapperCfg(
79  flags,
80  name="PIXELVALIDTrackToVertexWrapper",
81  DecorationPrefix="PIXELVALID"))
82  augmentationTools.append(PIXELVALIDTrackToVertexWrapper)
83 
84  from DerivationFrameworkInDet.InDetToolsConfig import (UsedInVertexFitTrackDecoratorCfg)
85  PIXELVALIDUsedInFitDecorator = acc.getPrimaryAndMerge(UsedInVertexFitTrackDecoratorCfg(flags))
86  augmentationTools.append(PIXELVALIDUsedInFitDecorator)
87 
88  # @TODO eventually computed for other extra outputs. Possible to come up with a solution to use a common Z0AtPV if there is more than one client ?
89  from DerivationFrameworkInDet.InDetToolsConfig import TrackParametersAtPVCfg
90  DFCommonZ0AtPV = acc.getPrimaryAndMerge(TrackParametersAtPVCfg(
91  flags, name="PIXELVALID_DFCommonZ0AtPV",
92  Z0SGEntryName="PIXELVALIDInDetTrackZ0AtPV"))
93  augmentationTools.append(DFCommonZ0AtPV)
94 
95  from DerivationFrameworkInDet.PixelNtupleMakerConfig import (EventInfoPixelModuleStatusMonitoringCfg)
96  DFEI = acc.getPrimaryAndMerge(EventInfoPixelModuleStatusMonitoringCfg(flags))
97  augmentationTools.append(DFEI)
98 
99  # ====================================================================
100  # SKIMMING TOOLS
101  # ====================================================================
102 
103  skimmingTools = []
104  if flags.InDet.DRAWZSelection:
105  PIXELVALID_ANDTool = acc.getPrimaryAndMerge(PIXELVALID_ANDToolCfg(flags))
106  skimmingTools.append(PIXELVALID_ANDTool)
107 
108  if flags.InDet.PixelDumpMode==3:
109  PIXELVALID_ZTAUTAU = acc.getPrimaryAndMerge(PIXELVALID_ZTAUTAUCfg(flags))
110  skimmingTools.append(PIXELVALID_ZTAUTAU)
111 
112  # ====================================================================
113  # CREATE THE DERIVATION KERNEL ALGORITHM AND PASS THE ABOVE TOOLS
114  # ====================================================================
115  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
116  name,
117  AugmentationTools = augmentationTools,
118  SkimmingTools = skimmingTools,
119  ThinningTools = [],
120  RunSkimmingFirst = True))
121 
122  return acc
123 
124 
125 def PIXELVALIDThinningKernelCfg(flags, name="PIXELVALIDThinningKernel", StreamName=""):
126  acc = ComponentAccumulator()
127 
128  # ====================================================================
129  # THINNING TOOLS
130  # ====================================================================
131  thinningTools = []
132 
133  # MC truth thinning
134  if flags.Input.isMC:
135  from DerivationFrameworkInDet.InDetToolsConfig import (IDTRKVALIDTruthThinningToolCfg)
136  thinningTools.append(acc.getPrimaryAndMerge(IDTRKVALIDTruthThinningToolCfg(flags, StreamName=StreamName)))
137  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
138  name,
139  AugmentationTools=[],
140  ThinningTools=thinningTools,
141  OutputLevel=INFO))
142 
143  elif flags.InDet.PixelDumpMode == 5:
144  acc.addSequence( seqAND("PixelClusterThinningSequence") )
145  acc.getSequence("PixelClusterThinningSequence").ExtraDataForDynamicConsumers = ["xAOD::TrackMeasurementValidationContainer/PixelClusters"]
146  acc.getSequence("PixelClusterThinningSequence").ProcessDynamicDataDependencies = True
147  from DerivationFrameworkInDet.InDetToolsConfig import (PixelClusterThinningCfg)
148  thinningTools.append(acc.getPrimaryAndMerge(PixelClusterThinningCfg(flags, StreamName=StreamName)))
149  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
150  name,
151  AugmentationTools=[],
152  ThinningTools=thinningTools,
153  OutputLevel=INFO),
154  sequenceName="PixelClusterThinningSequence")
155 
156  return acc
157 
158 
159 def PIXELVALIDKernelCfg(flags, name="PIXELVALIDKernel", StreamName=""):
160  """Configure the derivation framework driving algorithm (kernel) for PIXELVALID"""
161  acc = ComponentAccumulator()
162 
163  PIXELVALIDSequenceName='PIXELVALIDSequence'
164  acc.addSequence(seqAND(PIXELVALIDSequenceName))
165 
166  acc.merge(PIXELVALIDKernelCommonCfg(flags),sequenceName=PIXELVALIDSequenceName)
167 
168  from InDetConfig.InDetPrepRawDataToxAODConfig import InDetPrepDataToxAODCfg
169  acc.merge(InDetPrepDataToxAODCfg(flags),sequenceName=PIXELVALIDSequenceName)
170 
171  # ====================================================================
172  # AUGMENTATION TOOLS
173  # ====================================================================
174  tsos_augmentationTools = []
175 
176  from DerivationFrameworkInDet.InDetToolsConfig import DFTrackStateOnSurfaceDecoratorCfg
177  DFTSOS = acc.getPrimaryAndMerge(DFTrackStateOnSurfaceDecoratorCfg(flags))
178  tsos_augmentationTools.append(DFTSOS)
179 
180  PixelStoreMode = flags.InDet.PixelDumpMode
181  if flags.InDet.PixelDumpMode==3:
182  PixelStoreMode = 1
183 
184 
185  if flags.InDet.PixelDumpMode < 4:
186  from DerivationFrameworkInDet.PixelNtupleMakerConfig import PixelNtupleMakerCfg
187  PixelMonitoringTool = acc.getPrimaryAndMerge(PixelNtupleMakerCfg(flags,
188  name = "PixelMonitoringTool",
189  StoreMode = PixelStoreMode))
190  tsos_augmentationTools.append(PixelMonitoringTool)
191 
192  # shared between IDTIDE and PIXELVALID
193  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
194  name,
195  AugmentationTools=tsos_augmentationTools,
196  ThinningTools=[],
197  OutputLevel=INFO))
198 
199  acc.merge(PIXELVALIDThinningKernelCfg(flags, StreamName=StreamName), sequenceName=PIXELVALIDSequenceName)
200 
201  return acc
202 
203 # Main config
204 def PixelVALIDCfg(flags):
205  """Main config fragment for PIXELVALID"""
206  acc = ComponentAccumulator()
207 
208  # Main algorithm (kernel)
209  if flags.Detector.GeometryID:
210  acc.merge(PIXELVALIDKernelCfg(flags, StreamName = 'StreamDAOD_PIXELVALID'))
211 
212  # =============================
213  # Define contents of the format
214  # =============================
215  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
216  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
217  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
218  PIXELVALIDSlimmingHelper = SlimmingHelper(
219  "PIXELVALIDSlimmingHelper",
220  NamesAndTypes = flags.Input.TypedCollections,
221  flags = flags)
222 
223  AllVariables = []
224  StaticContent = []
225  SmartCollections = []
226  ExtraVariables = []
227 
228  PixelStoreMode = flags.InDet.PixelDumpMode
229  if flags.InDet.PixelDumpMode==3:
230  PixelStoreMode = 1
231 
232  if flags.InDet.PixelDumpMode == 4:
233  PixelStoreMode = 3
234 
235  if flags.InDet.PixelDumpMode == 5:
236  PixelStoreMode = 4
237 
238  if PixelStoreMode==1:
239  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
240  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
241  "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
242  "Electrons": "xAOD::ElectronContainer",
243  "ElectronsAux": "xAOD::ElectronAuxContainer",
244  "Photons": "xAOD::PhotonContainer",
245  "PhotonsAux": "xAOD::PhotonAuxContainer",
246  "JetETMissNeutralParticleFlowObjects": "xAOD::FlowElementContainer",
247  "JetETMissNeutralParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
248  "JetETMissChargedParticleFlowObjects": "xAOD::FlowElementContainer",
249  "JetETMissChargedParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
250  "TauJets": "xAOD::TauJetContainer",
251  "TauJetsAux": "xAOD::TauJetAuxContainer",
252  "InDetTrackParticles": "xAOD::TrackParticleContainer",
253  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
254  "InDetLargeD0TrackParticles": "xAOD::TrackParticleContainer",
255  "InDetLargeD0TrackParticlesAux": "xAOD::TrackParticleAuxContainer",
256  "PixelMSOSs": "xAOD::TrackStateValidationContainer",
257  "PixelMSOSsAux": "xAOD::TrackStateValidationAuxContainer",
258  "Kt4EMTopoOriginEventShape": "xAOD::EventShape",
259  "Kt4EMTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
260  "Kt4LCTopoOriginEventShape": "xAOD::EventShape",
261  "Kt4LCTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
262  "NeutralParticleFlowIsoCentralEventShape": "xAOD::EventShape",
263  "NeutralParticleFlowIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
264  "NeutralParticleFlowIsoForwardEventShape": "xAOD::EventShape",
265  "NeutralParticleFlowIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
266  "TopoClusterIsoCentralEventShape": "xAOD::EventShape",
267  "TopoClusterIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
268  "TopoClusterIsoForwardEventShape": "xAOD::EventShape",
269  "TopoClusterIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
270  "MET_Calo": "xAOD::MissingETContainer",
271  "MET_CaloAux": "xAOD::MissingETAuxContainer",
272  "MET_Track": "xAOD::MissingETContainer",
273  "MET_TrackAux": "xAOD::MissingETAuxContainer",
274  "MET_LocHadTopo": "xAOD::MissingETContainer",
275  "MET_LocHadTopoRegions": "xAOD::MissingETContainer",
276  "MET_LocHadTopoAux": "xAOD::MissingETAuxContainer",
277  "MET_LocHadTopoRegionsAux": "xAOD::MissingETAuxContainer",
278  "MET_Core_AntiKt4LCTopo": "xAOD::MissingETContainer",
279  "MET_Reference_AntiKt4LCTopo": "xAOD::MissingETContainer",
280  "MET_Core_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer",
281  "MET_Reference_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer"})
282 
283  SmartCollections += ["Muons", "Electrons", "Photons"]
284 
285  AllVariables += ["EventInfo",
286  "JetETMissNeutralParticleFlowObjects",
287  "JetETMissChargedParticleFlowObjects",
288  "InDetTrackParticles",
289  "InDetLargeD0TrackParticles",
290  "PixelMSOSs",
291  "Kt4EMTopoOriginEventShape",
292  "Kt4LCTopoOriginEventShape",
293  "NeutralParticleFlowIsoCentralEventShape",
294  "NeutralParticleFlowIsoForwardEventShape",
295  "TopoClusterIsoCentralEventShape",
296  "TopoClusterIsoForwardEventShape"]
297 
298  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
299  "TauJets": "xAOD::TauJetContainer",
300  "TauJetsAux": "xAOD::TauJetAuxContainer",
301  "Kt4EMPFlowEventShape": "xAOD::EventShape",
302  "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
303  "PrimaryVertices": "xAOD::VertexContainer",
304  "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
305  "AntiKt4EMTopoJets": "xAOD::JetContainer",
306  "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
307  "AntiKt4EMPFlowJets": "xAOD::JetContainer",
308  "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer",
309  "BTagging_AntiKt4EMTopo": "xAOD::BTaggingContainer",
310  "BTagging_AntiKt4EMTopoAux": "xAOD::BTaggingAuxContainer",
311  "BTagging_AntiKt4EMPFlow": "xAOD::BTaggingContainer",
312  "BTagging_AntiKt4EMPFlowAux": "xAOD::BTaggingAuxContainer"})
313 
314  ExtraVariables += ["TauJets.ABS_ETA_LEAD_TRACK.ClusterTotalEnergy.ClustersMeanCenterLambda.ClustersMeanEMProbability.ClustersMeanFirstEngDens.ClustersMeanPresamplerFrac.ClustersMeanSecondLambda.EMFRACTIONATEMSCALE_MOVEE3.EMFracFixed.GhostMuonSegmentCount.LeadClusterFrac.NNDecayMode.NNDecayModeProb_1p0n.NNDecayModeProb_1p1n.NNDecayModeProb_1pXn.NNDecayModeProb_3p0n.NNDecayModeProb_3pXn.PFOEngRelDiff.PanTau_DecayModeExtended.TAU_ABSDELTAETA.TAU_ABSDELTAPHI.TAU_SEEDTRK_SECMAXSTRIPETOVERPT.UpsilonCluster.absipSigLeadTrk.chargedFELinks.etHotShotDR1.etHotShotDR1OverPtLeadTrk.etHotShotWin.etHotShotWinOverPtLeadTrk.etaCombined.hadLeakFracFixed.leadTrackProbHT.mCombined.mu.nConversionTracks.nFakeTracks.nModifiedIsolationTracks.nVtxPU.neutralFELinks.passThinning.phiCombined.ptCombined.ptIntermediateAxisEM.rho"]
315  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
316 
317  AllVariables += ["Kt4EMPFlowEventShape",
318  "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets",
319  "BTagging_AntiKt4EMTopo", "BTagging_AntiKt4EMPFlow"]
320 
321  if flags.Input.isMC:
322  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
323  "AntiKt4TruthJets": "xAOD::JetContainer",
324  "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
325  "JetInputTruthParticles": "xAOD::TruthParticleContainer",
326  "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
327  "TruthEvents": "xAOD::TruthEventContainer",
328  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
329  "TruthParticles": "xAOD::TruthParticleContainer",
330  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
331  "egammaTruthParticles": "xAOD::TruthParticleContainer",
332  "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
333  "MuonTruthParticles": "xAOD::TruthParticleContainer",
334  "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
335  "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
336  "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
337  "TruthVertices": "xAOD::TruthVertexContainer",
338  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
339  "MET_Truth": "xAOD::MissingETContainer",
340  "MET_TruthRegions": "xAOD::MissingETContainer",
341  "MET_TruthAux": "xAOD::MissingETAuxContainer",
342  "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
343 
344  AllVariables += ["AntiKt4TruthJets",
345  "JetInputTruthParticles",
346  "JetInputTruthParticlesNoWZ",
347  "TruthEvents",
348  "TruthParticles",
349  "egammaTruthParticles",
350  "MuonTruthParticles",
351  "LRTegammaTruthParticles",
352  "TruthVertices"]
353 
354  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
355  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
356  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
357  "WBosons", "ZBosons"]
358  for item in list_aux:
359  label = "TruthLabel"+item
360  labelAux = label+"Aux"
361  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
362  {label: "xAOD::TruthParticleContainer",
363  labelAux: "xAOD::TruthParticleAuxContainer"})
364  AllVariables += [label]
365  # End of isMC block
366 
367  # Trigger info is actually stored only when running on data...
368  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
369  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
370 
371  if PixelStoreMode==2:
372  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
373  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
374  "PixelMonitoringTrack": "xAOD::TrackParticleContainer",
375  "PixelMonitoringTrackAux": "xAOD::TrackParticleAuxContainer"})
376 
377  AllVariables += ["EventInfo",
378  "PixelMonitoringTrack"]
379 
380  if flags.Input.isMC:
381  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
382  "TruthEvents": "xAOD::TruthEventContainer",
383  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
384  "TruthParticles": "xAOD::TruthParticleContainer",
385  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer"})
386 
387  AllVariables += ["TruthEvents",
388  "TruthParticles"]
389 
390  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
391  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
392  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
393  "WBosons", "ZBosons"]
394  for item in list_aux:
395  label = "TruthLabel"+item
396  labelAux = label+"Aux"
397  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
398  {label: "xAOD::TruthParticleContainer",
399  labelAux: "xAOD::TruthParticleAuxContainer"})
400  AllVariables += [label]
401  # End of isMC block
402 
403 
404  if PixelStoreMode == 3:
405  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
406  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
407  "InDetTrackParticles": "xAOD::TrackParticleContainer",
408  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
409 
410  AllVariables += ["EventInfo",
411  "InDetTrackParticles"]
412 
413  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
414  "PrimaryVertices": "xAOD::VertexContainer",
415  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
416 
417  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
418 
419  if flags.Input.isMC:
420  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
421  "TruthEvents": "xAOD::TruthEventContainer",
422  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
423  "TruthParticles": "xAOD::TruthParticleContainer",
424  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
425  "TruthVertices": "xAOD::TruthVertexContainer",
426  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
427 
428  AllVariables += ["TruthEvents",
429  "TruthParticles",
430  "TruthVertices"]
431 
432  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
433  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
434  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
435  "WBosons", "ZBosons"]
436  for item in list_aux:
437  label = "TruthLabel"+item
438  labelAux = label+"Aux"
439  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
440  {label: "xAOD::TruthParticleContainer",
441  labelAux: "xAOD::TruthParticleAuxContainer"})
442  AllVariables += [label]
443  # End of isMC block
444 
445  # Trigger info is actually stored only when running on data...
446  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
447  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
448 
449 
450  if PixelStoreMode == 4:
451  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
452  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
453  "InDetTrackParticles": "xAOD::TrackParticleContainer",
454  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
455 
456  AllVariables += ["EventInfo",
457  "InDetTrackParticles"]
458 
459  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
460  "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
461  "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer"})
462 
463  ExtraVariables += ["PixelClusters.charge.layer.bec.phi_module.eta_module.eta_pixel_index.phi_pixel_index.nRDO.sizePhi.sizeZ.ToT"]
464 
465  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
466  "PrimaryVertices": "xAOD::VertexContainer",
467  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
468 
469  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
470 
471  if flags.Input.isMC:
472  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
473  "TruthEvents": "xAOD::TruthEventContainer",
474  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
475  "TruthParticles": "xAOD::TruthParticleContainer",
476  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
477  "TruthVertices": "xAOD::TruthVertexContainer",
478  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
479 
480  AllVariables += ["TruthEvents",
481  "TruthParticles",
482  "TruthVertices"]
483 
484  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
485  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
486  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
487  "WBosons", "ZBosons"]
488 
489  for item in list_aux:
490  label = "TruthLabel"+item
491  labelAux = label+"Aux"
492  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
493  {label: "xAOD::TruthParticleContainer",
494  labelAux: "xAOD::TruthParticleAuxContainer"})
495  AllVariables += [label]
496  # End of isMC block
497 
498  # Trigger info is actually stored only when running on data...
499  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
500  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
501 
502 
503  PIXELVALIDSlimmingHelper.AllVariables = AllVariables
504  PIXELVALIDSlimmingHelper.StaticContent = StaticContent
505  PIXELVALIDSlimmingHelper.SmartCollections = SmartCollections
506  PIXELVALIDSlimmingHelper.ExtraVariables = ExtraVariables
507 
508  # Output stream
509  PIXELVALIDItemList = PIXELVALIDSlimmingHelper.GetItemList()
510  acc.merge(OutputStreamCfg(flags, "DAOD_PIXELVALID",
511  ItemList=PIXELVALIDItemList, AcceptAlgs=["PIXELVALIDKernelCommon"]))
512 
513  if flags.InDet.PixelDumpMode == 4 or flags.InDet.PixelDumpMode == 5:
514  acc.merge(SetupMetaDataForStreamCfg(
515  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
516  createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TriggerMenuMetaData]))
517  else:
518  acc.merge(SetupMetaDataForStreamCfg(
519  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
520  createMetadata=[MetadataCategory.CutFlowMetaData]))
521 
522  return acc
python.InDetPrepRawDataToxAODConfig.InDetPrepDataToxAODCfg
def InDetPrepDataToxAODCfg(flags)
Definition: InDetPrepRawDataToxAODConfig.py:202
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
python.PixelNtupleMakerConfig.EventInfoPixelModuleStatusMonitoringCfg
def EventInfoPixelModuleStatusMonitoringCfg(flags, name="EventInfoPixelModuleStatusMonitoring", **kwargs)
Definition: PixelNtupleMakerConfig.py:23
python.DerivationFrameworkToolsConfig.FilterCombinationANDCfg
def FilterCombinationANDCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:59
python.PIXELVALID.PIXELVALIDThinningKernelCfg
def PIXELVALIDThinningKernelCfg(flags, name="PIXELVALIDThinningKernel", StreamName="")
Definition: PIXELVALID.py:125
python.InDetToolsConfig.TrackParametersAtPVCfg
def TrackParametersAtPVCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:399
python.PixelNtupleMakerConfig.PixelNtupleMakerCfg
def PixelNtupleMakerCfg(flags, name="PixelMonitoringTool", **kwargs)
Definition: PixelNtupleMakerConfig.py:12
python.PIXELVALID.PIXELVALID_ZTAUTAUCfg
def PIXELVALID_ZTAUTAUCfg(flags, name='PIXELVALID_ZTAUTAU')
Definition: PIXELVALID.py:48
python.PIXELVALID.PIXELVALID_ANDToolCfg
def PIXELVALID_ANDToolCfg(flags, name='PIXELVALID_ANDTool')
Definition: PIXELVALID.py:18
python.DerivationFrameworkToolsConfig.InvariantMassToolCfg
def InvariantMassToolCfg(ConfigFlags, name, **kwargs)
Invariant mass tool config.
Definition: DerivationFrameworkToolsConfig.py:44
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
python.InDetToolsConfig.TrackToVertexWrapperCfg
def TrackToVertexWrapperCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:604
python.InDetToolsConfig.PixelClusterThinningCfg
def PixelClusterThinningCfg(flags, name="PixelClusterThinningTool", **kwargs)
Definition: InDetToolsConfig.py:474
Constants
some useful constants -------------------------------------------------—
python.PIXELVALID.PIXELVALIDKernelCommonCfg
def PIXELVALIDKernelCommonCfg(flags, name='PIXELVALIDKernelCommon')
Definition: PIXELVALID.py:68
python.InDetToolsConfig.DFTrackStateOnSurfaceDecoratorCfg
def DFTrackStateOnSurfaceDecoratorCfg(flags, name="DFTrackStateOnSurfaceDecorator", **kwargs)
Definition: InDetToolsConfig.py:130
python.DerivationFrameworkToolsConfig.xAODStringSkimmingToolCfg
def xAODStringSkimmingToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:29
python.PIXELVALID.PixelVALIDCfg
def PixelVALIDCfg(flags)
Definition: PIXELVALID.py:204
python.InDetToolsConfig.IDTRKVALIDTruthThinningToolCfg
def IDTRKVALIDTruthThinningToolCfg(flags, name="IDTRKVALIDTruthThinningTool", **kwargs)
Definition: InDetToolsConfig.py:646
UsedInVertexFitTrackDecoratorConfig.UsedInVertexFitTrackDecoratorCfg
def UsedInVertexFitTrackDecoratorCfg(flags, trackCont='InDetTrackParticles', vtxCont='PrimaryVertices')
Definition: UsedInVertexFitTrackDecoratorConfig.py:32
python.PIXELVALID.PIXELVALIDKernelCfg
def PIXELVALIDKernelCfg(flags, name="PIXELVALIDKernel", StreamName="")
Definition: PIXELVALID.py:159
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1