4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.Enums
import MetadataCategory
7 from AthenaCommon.CFElements
import seqAND
12 from TriggerMenuMT.TriggerAPI.TriggerAPI
import TriggerAPI
13 from TriggerMenuMT.TriggerAPI.TriggerEnums
import TriggerPeriod, TriggerType
16 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
17 TriggerAPI.setConfigFlags(flags)
18 triggers = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, livefraction=0.8)
24 TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool
25 acc.addPublicTool(TriggerSkimmingTool(name,
27 TriggerListOR = triggers,
33 """Configure the derivation framework driving algorithm (kernel) for SCTVALID"""
41 SCTVALIDSequenceName=
'SCTVALIDSequence'
42 acc.addSequence(
seqAND(SCTVALIDSequenceName))
47 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import PrescaleToolCfg
50 flags, name=
"SCTxAOD_PrescaleTool", Prescale=flags.InDet.SCTxAODPrescale))
52 skimmingTools += [prescaleTool]
54 SCTVALIDKernelPresel = CompFactory.DerivationFramework.DerivationKernel(
"SCTVALIDKernelPresel",
55 SkimmingTools=skimmingTools)
56 acc.addEventAlgo(SCTVALIDKernelPresel, sequenceName=
"SCTVALIDSequence")
58 from InDetConfig.InDetPrepRawDataToxAODConfig
import InDetSCT_PrepDataToxAODCfg
61 WriteRDOinformation=
True,
64 UseTruthInfo=flags.Input.isMC),
65 sequenceName=SCTVALIDSequenceName)
68 from InDetConfig.InDetPrepRawDataToxAODConfig
import InDetSCT_RawDataToxAODCfg
70 sequenceName=SCTVALIDSequenceName)
75 if flags.Reco.EnableTracking
is True:
76 MSOSThinningSelectionString =
""
77 if flags.InDet.SCTxAODZmumuSkimming:
78 MSOSThinningSelectionString =
"InDetTrackParticles.pt>10*GeV"
79 from DerivationFrameworkInDet.InDetToolsConfig
import TrackStateOnSurfaceDecoratorCfg
81 DecorationPrefix =
"SCTVALID_",
86 SelectionString=MSOSThinningSelectionString)
88 augmentationTools.append(DFTSOS)
90 from DerivationFrameworkInDet.InDetToolsConfig
import EventInfoBSErrDecoratorCfg
92 augmentationTools.append(DFEI)
95 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg, CaloIsolationToolCfg
98 from CaloIdentifier
import SUBCALO
100 name =
"CaloIsoTool",
101 EMCaloNums = [SUBCALO.LAREM],
102 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
104 UseCaloExtensionCaching =
False,
105 saveOnlyRequestedCorrections =
True))
108 isoPar = ROOT.xAOD.Iso.IsolationType
109 from DerivationFrameworkInDet.InDetToolsConfig
import IsolationTrackDecoratorCfg
111 name =
"SCTVALID_IsolationTrackDecorator",
112 TrackIsolationTool = TrackIsoToolStd,
113 CaloIsolationTool = CaloIsoTool,
114 TargetContainer =
"InDetTrackParticles",
115 SelectionString =
"InDetTrackParticles.pt>10*GeV",
116 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20],
117 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20"],
118 Prefix =
"SCTVALID_"))
119 augmentationTools.append(IsolationTrackDecoratorTool)
121 from DerivationFrameworkInDet.InDetToolsConfig
import UnassociatedHitsGetterToolCfg
123 TrackCollection =
"CombinedInDetTracks",
124 PixelClusters =
"PixelClusters",
125 SCTClusterContainer =
"SCT_Clusters",
126 TRTDriftCircleContainer =
"TRT_DriftCircles"))
128 from DerivationFrameworkInDet.InDetToolsConfig
import UnassociatedHitsDecoratorCfg
130 name=
'SCTxAOD_unassociatedHitsDecorator',
131 UnassociatedHitsGetter = unassociatedHitsGetterTool))
132 augmentationTools.append(unassociatedHitsDecorator)
134 from DerivationFrameworkJetEtMiss.JetToolConfig
import DistanceInTrainToolCfg
136 augmentationTools.append(distanceInTrainTool)
141 if flags.InDet.SCTxAODZmumuSkimming:
142 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg, MuonTrackParticleThinningCfg
145 thinning_expression =
" && ".
join(
147 "(InDetTrackParticles.pt > 10*GeV)",
148 "(abs(InDetTrackParticles.eta) < 2.5)",
151 SCTVALID_TagAndProbeTrackParticleThinningTool = CompFactory.DerivationFramework.TagAndProbeTrackParticleThinning(name =
"SCTVALID_TagAndProbeTrackParticleThinningTool",
152 SelectionString = thinning_expression,
155 StreamName = kwargs[
'StreamName'])
156 acc.addPublicTool(SCTVALID_TagAndProbeTrackParticleThinningTool)
157 thinningTools.append(SCTVALID_TagAndProbeTrackParticleThinningTool)
161 name =
"SCTVALID_DTTrackParticleThinningTool",
162 StreamName = kwargs[
'StreamName'],
163 SelectionString =
"InDetDisappearingTrackParticles.pt>5*GeV",
164 InDetTrackParticlesKey =
"InDetDisappearingTrackParticles"))
165 thinningTools.append(SCTVALID_DTTrackParticleThinningTool)
169 name =
"SCTVALID_MuonTPThinningTool",
170 StreamName = kwargs[
'StreamName'],
172 thinningTools.append(SCTVALID_MuonTPThinningTool)
176 name =
"SCTVALIDTriggerSkimmingTool"))
178 skimmingTools.append(SCTVALIDTriggerSkimmingTool)
181 muonRequirements =
'( Muons.pt > 20*GeV ) && ( Muons.ptvarcone30 / Muons.pt < 0.15 ) && ( Muons.topoetcone20 / Muons.pt < 0.3 )'
182 muonExpression =
'( count('+muonRequirements+
') >= 1 )'
183 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import xAODStringSkimmingToolCfg
185 name =
"SCTVALIDSkimmingTool",
186 expression = muonExpression))
187 skimmingTools.append(SCTVALIDSkimmingTool)
189 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
191 AugmentationTools=augmentationTools,
192 SkimmingTools=skimmingTools,
193 ThinningTools=thinningTools,
194 OutputLevel=INFO), sequenceName=SCTVALIDSequenceName)
199 """Main config fragment for SCTVALID"""
204 name =
"SCTVALIDKernel",
205 StreamName =
'StreamDAOD_SCTVALID') )
210 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
211 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
212 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
214 "SCTVALIDSlimmingHelper",
215 NamesAndTypes = flags.Input.TypedCollections,
221 SmartCollections = []
224 SCTVALIDSlimmingHelper.AppendToDictionary.update({
225 "EventInfo":
"xAOD::EventInfo",
"EventInfoAux":
"xAOD::EventAuxInfo",
226 "Muons":
"xAOD::MuonContainer",
"MuonsAux":
"xAOD::MuonAuxContainer",
227 "Electrons":
"xAOD::ElectronContainer",
"ElectronsAux":
"xAOD::ElectronAuxContainer",
228 "PrimaryVertices":
"xAOD::VertexContainer",
"PrimaryVerticesAux":
"xAOD::VertexAuxContainer",
229 "GSFTrackParticles":
"xAOD::TrackParticleContainer",
230 "GSFTrackParticlesAux":
"xAOD::TrackParticleAuxContainer",
231 "InDetDisappearingTrackParticles":
"xAOD::TrackParticleContainer",
232 "InDetDisappearingTrackParticlesAux":
"xAOD::TrackParticleAuxContainer",
233 "MuonSpectrometerTrackParticles":
"xAOD::TrackParticleContainer",
234 "MuonSpectrometerTrackParticlesAux":
"xAOD::TrackParticleAuxContainer",
235 "AntiKt4EMPFlowJets":
"xAOD::JetContainer",
"AntiKt4EMPFlowJetsAux":
"xAOD::JetAuxContainer",
238 AllVariables += [
"EventInfo",
239 "InDetTrackParticles",
240 "InDetDisappearingTrackParticles",
241 "MuonSpectrometerTrackParticles"]
242 SmartCollections += [
"Muons",
"Electrons",
"AntiKt4EMPFlowJets"]
244 ExtraVariables += [
"PrimaryVertices.sumPt2.x.y.z.vertexType.nTrackParticles"]
246 excludedInDetTrackParticlesAuxData =
".-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
247 excludedGSFTrackParticlesAuxData =
".-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
248 excludedMuonSpectrometerTrackParticlesAuxData =
".-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition.-btagIp_d0.-btagIp_d0Uncertainty.-btagIp_z0SinTheta.-btagIp_z0SinThetaUncertainty.-eProbabilityNN.-btagIp_trackMomentum.-btagIp_trackDisplacement.-TRTdEdxUsedHits.-TRTdEdx.-TTVA_AMVFVertices_forReco.-TTVA_AMVFWeights_forReco.-JetFilter_TrackCompatibility_antikt4emtopo.-btagIp_invalidIp.-JetFilter_TrackCompatibility_antikt4empflow.-nBC_meas.-AssoClustersUFO"
251 StaticContent += [
"xAOD::TrackParticleContainer#InDetTrackParticles"]
252 StaticContent += [
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux" + excludedInDetTrackParticlesAuxData]
253 StaticContent += [
"xAOD::TrackParticleContainer#InDetDisappearingTrackParticles"]
254 StaticContent += [
"xAOD::TrackParticleAuxContainer#InDetDisappearingTrackParticlesAux" + excludedInDetTrackParticlesAuxData]
255 StaticContent += [
"xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles"]
256 StaticContent += [
"xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux" + excludedMuonSpectrometerTrackParticlesAuxData]
257 StaticContent += [
"xAOD::TrackParticleContainer#GSFTrackParticles"]
258 StaticContent += [
"xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux" + excludedGSFTrackParticlesAuxData]
261 StaticContent += [
"TileCellContainer#MBTSContainer"]
262 StaticContent += [
"BCM_RDOs#BCM_RDO_Container"]
264 SCTVALIDSlimmingHelper.AppendToDictionary.update(
266 "SCT_MSOSs":
"xAOD::TrackStateValidationContainer",
267 "SCT_MSOSsAux":
"xAOD::TrackStateValidationAuxContainer",
268 "SCT_Clusters":
"xAOD::TrackMeasurementValidationContainer",
269 "SCT_ClustersAux":
"xAOD::TrackMeasurementValidationAuxContainer",
270 "SCT_RawHits":
"xAOD::SCTRawHitValidationContainer",
271 "SCT_RawHitsAux":
"xAOD::SCTRawHitValidationAuxContainer"})
273 if flags.InDet.SCTxAODSaveOnlyAssociatedMSOS
is True:
274 AllVariables += [
"SCT_MSOSs"]
285 SCTVALIDSlimmingHelper.AppendToDictionary.update({
286 "TruthEvents":
"xAOD::TruthEventContainer",
287 "TruthEventsAux":
"xAOD::TruthEventAuxContainer",
288 "TruthParticles":
"xAOD::TruthParticleContainer",
289 "TruthParticlesAux":
"xAOD::TruthParticleAuxContainer",
290 "TruthVertices":
"xAOD::TruthVertexContainer",
291 "TruthVerticesAux":
"xAOD::TruthVertexAuxContainer"})
293 AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices"]
296 SCTVALIDSlimmingHelper.IncludeTriggerNavigation =
True
297 SCTVALIDSlimmingHelper.IncludeAdditionalTriggerContent =
True
299 SCTVALIDSlimmingHelper.AllVariables = AllVariables
300 SCTVALIDSlimmingHelper.StaticContent = StaticContent
301 SCTVALIDSlimmingHelper.SmartCollections = SmartCollections
302 SCTVALIDSlimmingHelper.ExtraVariables = ExtraVariables
305 SCTVALIDItemList = SCTVALIDSlimmingHelper.GetItemList()
307 ItemList=SCTVALIDItemList, AcceptAlgs=[
"SCTVALIDKernel"]))
309 flags,
"DAOD_SCTVALID",
310 AcceptAlgs=[
"SCTVALIDKernel"],
311 createMetadata=[MetadataCategory.CutFlowMetaData,
312 MetadataCategory.TriggerMenuMetaData]))