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)