ATLAS Offline Software
Loading...
Searching...
No Matches
python.LLP1 Namespace Reference

Functions

 LLP1KernelCfg (flags, name='LLP1Kernel', **kwargs)
 LLP1Cfg (flags)

Variables

list LLP1VrtSecInclusiveSuffixes = []
list LLP1NewVSISuffixes = []

Function Documentation

◆ LLP1Cfg()

python.LLP1.LLP1Cfg ( flags)

Definition at line 920 of file LLP1.py.

920def LLP1Cfg(flags):
921 acc = ComponentAccumulator()
922
923 MergedElectronContainer = (
924 "StdWithLRTElectrons" if flags.Tracking.doLargeD0 else "Electrons")
925 MergedMuonContainer = "StdWithLRTMuons" if flags.Tracking.doLargeD0 else "Muons"
926 MergedMuonContainer_wZPH = (
927 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0 else "Muons_wZPH")
928
929 # Get the lists of triggers needed for trigger matching.
930 # This is needed at this scope (for the slimming) and further down in the config chain
931 # for actually configuring the matching, so we create it here and pass it down
932 # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
933 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
934 LLP1TriggerListsHelper = TriggerListsHelper(flags)
935
936 # Common augmentations
937 acc.merge(LLP1KernelCfg(flags, name="LLP1Kernel", StreamName = 'StreamDAOD_LLP1', TriggerListsHelper = LLP1TriggerListsHelper))
938
939
942 from IsolationSelection.IsolationSelectionConfig import IsoCloseByAlgsCfg
943 # We can't pass non-LRT containers to the LLP algorithm.
944 # Otherwise, if this is run in conjunction with PHYS, the decorations
945 # produced by the PHYS algorithm will be overwritten. To get those
946 # decorations produced when LLP1 is run alone, we schedule a separate
947 # algorithm for those but make it the same as the one in PHYS so that
948 # they'll be merged when both formats are used together.
949 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite = False,
950 stream_name = 'StreamDAOD_LLP1'))
951 contNames = [ MergedMuonContainer, MergedElectronContainer, "Photons" ]
952 acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1_LRTMerged",
953 isPhysLite = False, containerNames = contNames,
954 useSelTools = True, stream_name = 'StreamDAOD_LLP1',
955 isoDecSuffix = "CloseByCorr_LRT",
956 caloDecSuffix = '_LRT',
957 hasLRT = flags.Tracking.doLargeD0))
958 contNames = [ "ZeroPixelHitMuons" ]
959 acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1_ZeroPixelHitsMuons",
960 isPhysLite = False, containerNames = contNames,
961 stream_name = 'StreamDAOD_LLP1',
962 isoDecSuffix = "CloseByCorr_ZPH"))
963
964 if flags.Tracking.doLargeD0:
965 contNames = [ "LRTElectrons", "MuonsLRT" ]
966 acc.merge(IsoCloseByAlgsCfg(flags, suff = "_LLP1",
967 isPhysLite = False, containerNames = contNames,
968 useSelTools = True,
969 stream_name = 'StreamDAOD_LLP1', hasLRT = True))
970
971 # ============================
972 # Define contents of the format
973 # =============================
974 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
975 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
976 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
977
978 LLP1SlimmingHelper = SlimmingHelper("LLP1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
979
980 LLP1SlimmingHelper.SmartCollections = ["EventInfo",
981 "Electrons",
982 "Photons",
983 "Muons",
984 "PrimaryVertices",
985 "InDetTrackParticles",
986 "AntiKt4EMTopoJets",
987 "AntiKt4EMPFlowJets",
988 "MET_Baseline_AntiKt4EMTopo",
989 "MET_Baseline_AntiKt4EMPFlow",
990 "TauJets",
991 "TauJets_MuonRM",
992 "DiTauJets",
993 "DiTauJetsLowPt",
994 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
995 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
996 if flags.Tracking.doLargeD0:
997 LLP1SlimmingHelper.SmartCollections = ["LRTElectrons", "MuonsLRT",
998 "InDetLargeD0TrackParticles"]
999
1000 LLP1SlimmingHelper.AllVariables = ["InDetDisappearingTrackParticles",
1001 "MSDisplacedVertex",
1002 "MuonSpectrometerTrackParticles",
1003 "UnAssocMuonSegments",
1004 "MuonSegments",
1005 "MSonlyTracklets",
1006 "CombinedMuonTrackParticles",
1007 "ExtrapolatedMuonTrackParticles",
1008 "CombinedStauTrackParticles",
1009 "AntiKt4EMTopoJets",
1010 "egammaClusters",
1011 "ElectronRingSets",
1012 "ElectronCaloRings",
1013 "JetRingSets",
1014 "JetCaloRings",
1015 "SlowMuons",
1016 "EMOriginTopoClusters",
1017 "Staus",
1018 "METAssoc_AntiKt4EMTopo",
1019 "MET_Core_AntiKt4EMTopo",
1020 "METAssoc_AntiKt4EMPFlow",
1021 "MET_Core_AntiKt4EMPFlow",
1022 "InDetLowPtRoITrackParticles",
1023 "PixelClusters",
1024 "PixelMSOSs",
1025 "DisappearingPixelMSOSs",
1026 "LowPtRoIPixelMSOSs",
1027 "SCT_Clusters",
1028 "SCT_MSOSs",
1029 "DisappearingSCT_MSOSs",
1030 "LowPtRoISCT_MSOSs",
1031 "LVL1MuonRoIs",
1032 "NCB_MuonSegments"]
1033 if flags.Tracking.doLargeD0:
1034 LLP1SlimmingHelper.AllVariables = ["MuonSegments_LRT",
1035 "CombinedMuonsLRTTrackParticles",
1036 "ExtraPolatedMuonsLRTTrackParticles",
1037 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
1038
1039
1040 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
1041 StaticContent = []
1042 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
1043 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
1044 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
1045 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
1046 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
1047 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
1048 StaticContent += ["xAOD::JetContainer#AntiKt10EMTopoRCJets","xAOD::JetAuxContainer#AntiKt10EMTopoRCJetsAux.-PseudoJet"]
1049
1050 for wp in LLP1VrtSecInclusiveSuffixes:
1051 StaticContent += ["xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
1052 StaticContent += ["xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp + "Aux."]
1053
1054 for wp in LLP1NewVSISuffixes:
1055 StaticContent += ["xAOD::VertexContainer#NewVrtSecInclusive_SecondaryVertices" + wp]
1056 StaticContent += ["xAOD::VertexAuxContainer#NewVrtSecInclusive_SecondaryVertices" + wp + "Aux." + excludedVertexAuxData]
1057
1058 StaticContent += ["xAOD::VertexContainer#MuSAVertices"]
1059 StaticContent += ["xAOD::VertexAuxContainer#MuSAVerticesAux."]
1060 StaticContent += ["xAOD::TrackParticleContainer#MuSAExtrapolatedTrackParticles"]
1061 StaticContent += ["xAOD::TrackParticleAuxContainer#MuSAExtrapolatedTrackParticlesAux."]
1062
1063 if flags.Derivation.LLP.doMuSAValidation:
1064 StaticContent += ["xAOD::VertexContainer#JPsiMuSAVertices"]
1065 StaticContent += ["xAOD::VertexAuxContainer#JPsiMuSAVerticesAux."]
1066 StaticContent += ["xAOD::VertexContainer#JPsiVertices"]
1067 StaticContent += ["xAOD::VertexAuxContainer#JPsiVerticesAux."]
1068 StaticContent += ["xAOD::TrackParticleContainer#JPsiVerticesTracks"]
1069 StaticContent += ["xAOD::TrackParticleAuxContainer#JPsiVerticesTracksAux."]
1070 StaticContent += ["xAOD::TrackParticleContainer#JPsiMuSAExtrapolatedTrackParticles"]
1071 StaticContent += ["xAOD::TrackParticleAuxContainer#JPsiMuSAExtrapolatedTrackParticlesAux."]
1072 StaticContent += ["xAOD::VertexContainer#ValidationMuSAVertices"]
1073 StaticContent += ["xAOD::VertexAuxContainer#ValidationMuSAVerticesAux."]
1074 StaticContent += ["xAOD::TrackParticleContainer#ValidationMuSAExtrapolatedTrackParticles"]
1075 StaticContent += ["xAOD::TrackParticleAuxContainer#ValidationMuSAExtrapolatedTrackParticlesAux."]
1076
1077 LLP1SlimmingHelper.ExtraVariables += ["AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
1078 "Electrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1079 "Photons.DFCommonPhotonsIsEMMedium.DFCommonPhotonsIsEMMediumIsEMValue.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1080 "Muons.meanDeltaADCCountsMDT",
1081 "egammaClusters.phi_sampl.eta0.phi0",
1082 "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.GhostTrack.GhostTrackCount.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1083 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1084 "TruthPrimaryVertices.t.x.y.z.sumPt2",
1085 "PrimaryVertices.t.x.y.z.sumPt2.covariance",
1086 "InDetTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1087 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
1088 "InDetTrackParticles.numberOfIBLOverflowsdEdx.numberOfUsedHitsdEdx.pixeldEdx",
1089 "InDetTrackParticles.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfNextToInnermostPixelLayerHits.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits",
1090 "InDetTrackParticles.numberOfSCTOutliers.numberOfSCTSpoiltHits",
1091 "InDetTrackParticles.numberOfTRTHoles.numberOfTRTDeadStraws.numberOfTRTSharedHits.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.TRTdEdx.TRTdEdxUsedHits.hitPattern",
1092 "InDetTrackParticles.truthMatchProbability.truthOrigin.truthType",
1093 "InDetTrackParticles.TrkIsoPtPdEdx_ptcone20.TrkIsoPtPdEdx_ptcone30.TrkIsoPtPdEdx_ptcone40.TrkIsoPtTightPdEdx_ptcone20.TrkIsoPtTightPdEdx_ptcone30.TrkIsoPtTightPdEdx_ptcone40",
1094 "InDetTrackParticles.LLP1_ptcone20.LLP1_ptcone30.LLP1_ptcone40.LLP1_ptvarcone20.LLP1_ptvarcone30.LLP1_ptvarcone40.definingParametersCovMatrixDiag.definingParametersCovMatrixOffDiag",
1095 "InDetTrackParticles.LLP1_topoetcone20.LLP1_topoetcone30.LLP1_topoetcone40.LLP1_topoetcone20NonCoreCone.LLP1_topoetcone30NonCoreCone.LLP1_topoetcone40NonCoreCone",
1096 "InDetTrackParticles.LLP1_CaloCelldEta.LLP1_CaloCelldPhi.LLP1_CaloCelldR.LLP1_CaloCelldX.LLP1_CaloCelldY.LLP1_CaloCelldZ.LLP1_CaloCellE.LLP1_CaloCellEta.LLP1_CaloCellGain.LLP1_CaloCellID.LLP1_CaloCellPhi.LLP1_CaloCellProvenance.LLP1_CaloCellQuality.LLP1_CaloCellR.LLP1_CaloCellSampling.LLP1_CaloCellTime.LLP1_CaloCellX.LLP1_CaloCellY.LLP1_CaloCellZ.LLP1_CaloCellEneDiff.LLP1_CaloCellTimeDiff",
1097 "InDetTrackParticles.Reco_msosLink",
1098
1099 "InDetLargeD0TrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1100 "GSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
1101 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1102 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
1103 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1104 "EventInfo.DFCommonJets_eventClean_SuperLooseBadLLP.DFCommonJets_eventClean_SuperLooseBadLLP_EMTopo.DFCommonJets_eventClean_LooseBadLLP_EMTopo",
1105 "TauJets.dRmax.etOverPtLeadTrk.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1106 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
1107 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
1108 if flags.Tracking.doLargeD0:
1109 LLP1SlimmingHelper.ExtraVariables += [
1110 "LRTElectrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1111 "LRTegammaClusters.phi_sampl.eta0.phi0",
1112 "LRTGSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
1113 "AntiKt4EMTopoJets.GhostTrackLRT.GhostTrackLRTCount",
1114 ]
1115
1116
1117 # Isolation close by correction content for the LRT included corrections
1118 LLP1SlimmingHelper.ExtraVariables += ["Muons.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1119 "Electrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
1120 "Photons.topoetcone20_CloseByCorr_LRT.topoetcone40_CloseByCorr_LRT.ptcone20_CloseByCorr_LRT"]
1121 if flags.Tracking.doLargeD0:
1122 LLP1SlimmingHelper.ExtraVariables += [
1123 "MuonsLRT.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1124 "LRTElectrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT"]
1125
1126 VSITrackAuxVars = [
1127 "is_selected", "is_associated", "is_svtrk_final", "pt_wrtSV", "eta_wrtSV",
1128 "phi_wrtSV", "d0_wrtSV", "z0_wrtSV", "errP_wrtSV", "errd0_wrtSV",
1129 "errz0_wrtSV", "chi2_toSV"
1130 ]
1131
1132 for suffix in LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes:
1133 LLP1SlimmingHelper.ExtraVariables += [ "InDetTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
1134 LLP1SlimmingHelper.ExtraVariables += [ "GSFTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
1135 if flags.Tracking.doLargeD0:
1136 LLP1SlimmingHelper.ExtraVariables += [ "InDetLargeD0TrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
1137 LLP1SlimmingHelper.ExtraVariables += [ "LRTGSFTrackParticles." + '.'.join( [ var + suffix for var in VSITrackAuxVars] ) ]
1138
1139 LLP1SlimmingHelper.ExtraVariables.append('CaloCalTopoClusters.e_samplCaloCalTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1140 LLP1SlimmingHelper.AppendToDictionary["EMOriginTopoClusters"]='xAOD::CaloClusterContainer'
1141 LLP1SlimmingHelper.AppendToDictionary["EMOriginTopoClustersAux"]='xAOD::ShallowAuxContainer'
1142 LLP1SlimmingHelper.ExtraVariables.append('EMOriginTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1143
1144
1145 # Truth containers
1146 if flags.Input.isMC:
1147
1148 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
1149 addTruth3ContentToSlimmerTool(LLP1SlimmingHelper)
1150 LLP1SlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm','TruthPileupParticles','InTimeAntiKt4TruthJets','OutOfTimeAntiKt4TruthJets', 'AntiKt4TruthJets']
1151 LLP1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
1152 "Muons.TruthLink",
1153 "Photons.TruthLink"]
1154 if flags.Tracking.doLargeD0:
1155 LLP1SlimmingHelper.ExtraVariables += ["LRTElectrons.TruthLink",
1156 "MuonsLRT.TruthLink"]
1157
1158 if flags.Derivation.LLP.saveFullTruth:
1159 LLP1SlimmingHelper.ExtraVariables += ['TruthParticles', 'TruthVertices']
1160 StaticContent += ["xAOD::JetContainer#AntiKt10TruthRCJets","xAOD::JetAuxContainer#AntiKt10TruthRCJetsAux.-PseudoJet"]
1161
1162 # ZeroPixelHitMuons container
1163 StaticContent += ["xAOD::MuonContainer#ZeroPixelHitMuons", "xAOD::MuonAuxContainer#ZeroPixelHitMuonsAux."]
1164
1165 from DerivationFrameworkEGamma.PhotonsCPDetailedContent import (
1166 PhotonsCPDetailedContent,
1167 )
1168 LLP1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
1169
1170
1171 from DerivationFrameworkJetEtMiss.JetCommonConfig import addOriginCorrectedClustersToSlimmingTool
1172 addOriginCorrectedClustersToSlimmingTool(LLP1SlimmingHelper,writeLC=True,writeEM=True)
1173 LLP1SlimmingHelper.StaticContent = StaticContent
1174
1175 # Trigger content
1176 LLP1SlimmingHelper.IncludeTriggerNavigation = False
1177 LLP1SlimmingHelper.IncludeJetTriggerContent = False
1178 LLP1SlimmingHelper.IncludeMuonTriggerContent = False
1179 LLP1SlimmingHelper.IncludeEGammaTriggerContent = False
1180 LLP1SlimmingHelper.IncludeTauTriggerContent = False
1181 LLP1SlimmingHelper.IncludeEtMissTriggerContent = False
1182 LLP1SlimmingHelper.IncludeBJetTriggerContent = False
1183 LLP1SlimmingHelper.IncludeBPhysTriggerContent = False
1184 LLP1SlimmingHelper.IncludeMinBiasTriggerContent = False
1185
1186 # Trigger matching
1187 # Run 2
1188 if flags.Trigger.EDMVersion == 2:
1189 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
1190 from DerivationFrameworkLLP.LLPToolsConfig import LLP1TriggerMatchingToolRun2Cfg
1191 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1192 OutputContainerPrefix = "TrigMatch_",
1193 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesTau)
1194 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1195 OutputContainerPrefix = "TrigMatch_",
1196 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau)
1197 # Schedule additional pre-matching against LLP offline muons and electrons
1198 acc.merge(LLP1TriggerMatchingToolRun2Cfg(flags,
1199 name = "LRTTriggerMatchingTool_LLP1",
1200 OutputContainerPrefix = "LRTTrigMatch_LLP1_",
1201 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1202 InputElectrons=MergedElectronContainer,
1203 InputMuons=MergedMuonContainer_wZPH
1204 ))
1205 # And add the additional LLP trigger matching branches to the slimming helper
1206 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1207 OutputContainerPrefix = "LRTTrigMatch_LLP1_",
1208 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1209 InputElectrons=MergedElectronContainer,
1210 InputMuons=MergedMuonContainer_wZPH
1211 )
1212 # Run 3, or Run 2 with navigation conversion
1213 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
1214 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
1215 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(LLP1SlimmingHelper)
1216
1217 # Output stream
1218 LLP1ItemList = LLP1SlimmingHelper.GetItemList()
1219 acc.merge(OutputStreamCfg(flags, "DAOD_LLP1", ItemList=LLP1ItemList, AcceptAlgs=["LLP1Kernel"]))
1220 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_LLP1", AcceptAlgs=["LLP1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
1221
1222 return acc

◆ LLP1KernelCfg()

python.LLP1.LLP1KernelCfg ( flags,
name = 'LLP1Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for LLP1

Definition at line 18 of file LLP1.py.

18def LLP1KernelCfg(flags, name='LLP1Kernel', **kwargs):
19
20 """Configure the derivation framework driving algorithm (kernel) for LLP1"""
21 acc = ComponentAccumulator()
22
23 # Augmentations
24
25 # LRT track merge
26 MergedElectronContainer = "Electrons"
27 MergedGSFTrackCollection = "GSFTrackParticles"
28 MergedMuonContainer = "Muons"
29 MergedTrackCollection = "InDetTrackParticles"
30 MergedTrackletCollection = "InDetDisappearingTrackParticles"
31
32 if flags.Tracking.doLargeD0:
33 MergedTrackCollection = "InDetWithLRTTrackParticles"
34 from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
35 acc.merge(InDetLRTMergeCfg(flags))
36
37 MergedGSFTrackCollection = "InDetWithLRTGSFTrackParticles"
38 acc.merge(InDetLRTMergeCfg(
39 flags, name="GSFTrackMergerAlg",
40 InputTrackParticleLocations = ["GSFTrackParticles",
41 "LRTGSFTrackParticles"],
42 OutputTrackParticleLocation = MergedGSFTrackCollection,
43 OutputTrackParticleLocationCopy = MergedGSFTrackCollection))
44
45 if flags.Tracking.doTrackSegmentsDisappearing:
46 MergedTrackletCollection = "InDetDisappearingWithLRTTrackParticles"
47 acc.merge(InDetLRTMergeCfg(
48 flags, name="InDetDisappearingLRTMerge",
49 InputTrackParticleLocations = ["InDetDisappearingTrackParticles",
50 "InDetLargeD0TrackParticles"],
51 OutputTrackParticleLocation = MergedTrackletCollection))
52
53 # LRT muons merge
54 MergedMuonContainer = "StdWithLRTMuons"
55 from DerivationFrameworkLLP.LLPToolsConfig import LRTMuonMergerAlg
56 acc.merge(LRTMuonMergerAlg(flags,
57 PromptMuonLocation = "Muons",
58 LRTMuonLocation = "MuonsLRT",
59 OutputMuonLocation = MergedMuonContainer,
60 CreateViewCollection = True,
61 UseRun3WP = flags.GeoModel.Run >= LHCPeriod.Run3))
62
63 # LRT electrons merge
64 MergedElectronContainer = "StdWithLRTElectrons"
65 from DerivationFrameworkLLP.LLPToolsConfig import LRTElectronMergerAlg
66 acc.merge(LRTElectronMergerAlg(flags,
67 PromptElectronLocation = "Electrons",
68 LRTElectronLocation = "LRTElectrons",
69 OutputCollectionName = MergedElectronContainer,
70 isDAOD = False,
71 CreateViewCollection = True))
72
73
74 # Max Cell sum decoration tool
75 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
76 MaxCellDecoratorCfg, MaxCellDecoratorKernelCfg)
77
78 # Default configuration
79 acc.merge(MaxCellDecoratorKernelCfg(flags))
80
81 # Specific for LRTElectrons
82 if flags.Tracking.doLargeD0:
83 LLP1LRTMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
84 flags, name = "LLP1LRTMaxCellDecoratorTool",
85 SGKey_electrons = "LRTElectrons",
86 SGKey_egammaClusters = ("" if flags.GeoModel.Run >= LHCPeriod.Run3
87 else "egammaClusters"),
88 SGKey_photons = ''))
89 acc.addPublicTool(LLP1LRTMaxCellDecoratorTool)
90
91 # Vertex constraint tools
92 if flags.Tracking.doTrackSegmentsDisappearing:
93 from DerivationFrameworkLLP.LLPToolsConfig import TrackParametersKVUCfg
94 LLP1TrackParametersKVUTool = acc.popToolsAndMerge(TrackParametersKVUCfg(
95 flags, name = "LLP1TrackParametersKVU"))
96 acc.addPublicTool(LLP1TrackParametersKVUTool)
97
98 # Track isolation tools
99 import ROOT
100 isoPar = ROOT.xAOD.Iso.IsolationType
101 deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20]
102 deco_ptcones_suffix = ["ptcone40", "ptcone30", "ptcone20"]
103 deco_prefix = 'LLP1_'
104
105 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_Loose_Cfg
106 TrackSelectionToolStd = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
107 name = "TrackSelectionToolStd",
108 maxZ0SinTheta = 3.0,
109 minPt = 1000.))
110
111 TrackSelectionToolPdEdx = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
112 name = "TrackSelectionToolPdEdx",
113 maxD0 = 0.5,
114 maxZ0SinTheta = 3.0,
115 minPt = 1000.))
116
117 TrackSelectionToolPdEdxTight = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
118 name = "TrackSelectionToolPdEdxTight",
119 maxD0 = 0.5,
120 maxZ0SinTheta = 0.5,
121 minPt = 1000.))
122
123 from IsolationAlgs.IsoToolsConfig import TrackIsolationToolCfg, CaloIsolationToolCfg
124 TrackIsoToolStd = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
125 name = "TrackIsoToolStd",
126 TrackSelectionTool = TrackSelectionToolStd))
127 acc.addPublicTool(TrackIsoToolStd)
128
129 TrackIsoToolPdEdx = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
130 name = "TrackIsoToolPdEdx",
131 TrackSelectionTool = TrackSelectionToolPdEdx))
132 acc.addPublicTool(TrackIsoToolPdEdx)
133
134 TrackIsoToolPdEdxTight = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
135 name = "TrackIsoToolPdEdxTight",
136 TrackSelectionTool = TrackSelectionToolPdEdxTight))
137 acc.addPublicTool(TrackIsoToolPdEdxTight)
138
139 from CaloIdentifier import SUBCALO
140 CaloIsoTool = acc.popToolsAndMerge(CaloIsolationToolCfg(flags,
141 name = "CaloIsoTool",
142 EMCaloNums = [SUBCALO.LAREM],
143 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
144 UseEMScale = True,
145 UseCaloExtensionCaching = False,
146 saveOnlyRequestedCorrections = True))
147 acc.addPublicTool(CaloIsoTool)
148
149 from DerivationFrameworkInDet.InDetToolsConfig import IsolationTrackDecoratorCfg
150 LLP1IsolationTrackDecoratorTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
151 name = "LLP1IsolationTrackDecorator",
152 TrackIsolationTool = TrackIsoToolStd,
153 CaloIsolationTool = CaloIsoTool,
154 TargetContainer = "InDetTrackParticles",
155 SelectionString = "InDetTrackParticles.pt>10*GeV",
156 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
157 isoSuffix = ["ptcone40", "ptcone30", "ptcone20", "ptvarcone40", "ptvarcone30", "ptvarcone20", "topoetcone40", "topoetcone30", "topoetcone20"],
158 Prefix = deco_prefix))
159 acc.addPublicTool(LLP1IsolationTrackDecoratorTool)
160
161 if flags.Tracking.doTrackSegmentsDisappearing:
162 LLP1IsolationTrackDecoratorDTTool = acc.getPrimaryAndMerge(
163 IsolationTrackDecoratorCfg(
164 flags, name = "LLP1IsolationTrackDecoratorDT",
165 TrackIsolationTool = TrackIsoToolStd,
166 CaloIsolationTool = CaloIsoTool,
167 TargetContainer = "InDetDisappearingTrackParticles",
168 SelectionString = "InDetDisappearingTrackParticles.pt>10*GeV",
169 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20,
170 isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20,
171 isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
172 isoSuffix = ["ptcone40", "ptcone30", "ptcone20",
173 "ptvarcone40", "ptvarcone30", "ptvarcone20",
174 "topoetcone40", "topoetcone30", "topoetcone20"],
175 Prefix = deco_prefix))
176 acc.addPublicTool(LLP1IsolationTrackDecoratorDTTool)
177
178 LLP1IsolationTrackDecoratorPdEdxTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
179 name = "LLP1IsolationTrackDecoratorPdEdx",
180 TrackIsolationTool = TrackIsoToolPdEdx,
181 CaloIsolationTool = CaloIsoTool,
182 TargetContainer = "InDetTrackParticles",
183 iso = deco_ptcones,
184 Prefix = 'TrkIsoPtPdEdx_',
185 isoSuffix = deco_ptcones_suffix))
186 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTool)
187
188 if flags.Tracking.doTrackSegmentsDisappearing:
189 LLP1IsolationTrackDecoratorPdEdxDTTool = acc.getPrimaryAndMerge(
190 IsolationTrackDecoratorCfg(
191 flags, name = "LLP1IsolationTrackDecoratorPdEdxDT",
192 TrackIsolationTool = TrackIsoToolPdEdx,
193 CaloIsolationTool = CaloIsoTool,
194 TargetContainer = "InDetDisappearingTrackParticles",
195 iso = deco_ptcones,
196 Prefix = 'TrkIsoPtPdEdx_',
197 isoSuffix = deco_ptcones_suffix))
198 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxDTTool)
199
200 LLP1IsolationTrackDecoratorPdEdxTightTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
201 name = "LLP1IsolationTrackDecoratorPdEdxTight",
202 TrackIsolationTool = TrackIsoToolPdEdxTight,
203 CaloIsolationTool = CaloIsoTool,
204 TargetContainer = "InDetTrackParticles",
205 iso = deco_ptcones,
206 Prefix = 'TrkIsoPtTightPdEdx_',
207 isoSuffix = deco_ptcones_suffix))
208 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightTool)
209
210 if flags.Tracking.doTrackSegmentsDisappearing:
211 LLP1IsolationTrackDecoratorPdEdxTightDTTool = acc.getPrimaryAndMerge(
212 IsolationTrackDecoratorCfg(
213 flags, name = "LLP1IsolationTrackDecoratorPdEdxTightDT",
214 TrackIsolationTool = TrackIsoToolPdEdxTight,
215 CaloIsolationTool = CaloIsoTool,
216 TargetContainer = "InDetDisappearingTrackParticles",
217 iso = deco_ptcones,
218 Prefix = 'TrkIsoPtTightPdEdx_',
219 isoSuffix = deco_ptcones_suffix))
220 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightDTTool)
221
222 from DerivationFrameworkLLP.LLPToolsConfig import TrackParticleCaloCellDecoratorCfg
223 LLP1TrackParticleCaloCellDecoratorTool = acc.getPrimaryAndMerge(TrackParticleCaloCellDecoratorCfg(flags,
224 name = "LLP1TrackParticleCaloCellDecorator",
225 DecorationPrefix = "LLP1",
226 ContainerName = "InDetTrackParticles"))
227 acc.addPublicTool(LLP1TrackParticleCaloCellDecoratorTool)
228
229 augmentationTools = [ LLP1IsolationTrackDecoratorTool,
230 LLP1IsolationTrackDecoratorPdEdxTool,
231 LLP1IsolationTrackDecoratorPdEdxTightTool,
232 LLP1TrackParticleCaloCellDecoratorTool ]
233 if flags.Tracking.doLargeD0:
234 augmentationTools += [ LLP1LRTMaxCellDecoratorTool ]
235 if flags.Tracking.doTrackSegmentsDisappearing:
236 augmentationTools += [ LLP1TrackParametersKVUTool,
237 LLP1IsolationTrackDecoratorDTTool,
238 LLP1IsolationTrackDecoratorPdEdxDTTool,
239 LLP1IsolationTrackDecoratorPdEdxTightDTTool ]
240
241 # Specific for Taus
242 LLP1TauMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
243 flags,
244 name = "LLP1TauMaxCellDecoratorTool",
245 SGKey_taus = 'TauJets',
246 SGKey_electrons = '',
247 SGKey_photons = ''))
248 acc.addPublicTool(LLP1TauMaxCellDecoratorTool)
249
250 augmentationTools += [ LLP1TauMaxCellDecoratorTool ]
251
252 # Specific for Jets: AntiKt4EMTopoJets
253 LLP1AntiKt4EMTopoJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
254 flags,
255 name = "LLP1AntiKt4EMTopoJetMaxCellDecoratorTool",
256 SGKey_jets = 'AntiKt4EMTopoJets',
257 SGKey_taus = '',
258 SGKey_electrons = '',
259 SGKey_photons = ''))
260 acc.addPublicTool(LLP1AntiKt4EMTopoJetMaxCellDecoratorTool)
261
262 augmentationTools += [ LLP1AntiKt4EMTopoJetMaxCellDecoratorTool ]
263
264 # Specific for Jets: AntiKt4EMPFlowJets
265 LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
266 flags,
267 name = "LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool",
268 SGKey_jets = 'AntiKt4EMPFlowJets',
269 SGKey_taus = '',
270 SGKey_electrons = '',
271 SGKey_photons = ''))
272 acc.addPublicTool(LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool)
273
274 augmentationTools += [ LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool ]
275
276 # Reclustered jets definitions
277 from JetRecConfig.JetRecConfig import registerAsInputConstit, JetRecCfg
278 from JetRecConfig.StandardSmallRJets import AntiKt4Truth, AntiKt4EMTopo
279 from JetRecConfig.JetDefinition import JetDefinition
280 from JetRecConfig.StandardJetConstits import stdConstitDic as cst
281
282 registerAsInputConstit(AntiKt4EMTopo)
283 registerAsInputConstit(AntiKt4Truth)
284 cst.AntiKt4EMTopoJets.label = "EMTopoRC"
285 cst.AntiKt4TruthJets.label = "TruthRC"
286
287 AntiKt10RCEMTopo = JetDefinition( "AntiKt",1.0,cst.AntiKt4EMTopoJets,
288 ghostdefs = ["Track", "TrackLRT", "LCTopoOrigin"],
289 modifiers = ("Sort", "Filter:200000",),
290 standardRecoMode = True,
291 lock = True,
292 )
293 if flags.Input.isMC:
294 AntiKt10RCTruth = JetDefinition("AntiKt",1.0,cst.AntiKt4TruthJets,
295 ghostdefs = [],
296 modifiers = ("Sort", "Filter:200000",),
297 standardRecoMode = True,
298 lock = True
299 )
300
301 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
302 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
303 acc.merge(JetRecCfg(flags,AntiKt10RCEMTopo))
304 if flags.Input.isMC: acc.merge(JetRecCfg(flags,AntiKt10RCTruth))
305
306 if flags.Tracking.doLargeD0:
307 # MET with LRT in association map
308 from DerivationFrameworkJetEtMiss.METCommonConfig import METLRTCfg
309 acc.merge(METLRTCfg(flags, "AntiKt4EMTopo"))
310 acc.merge(METLRTCfg(flags, "AntiKt4EMPFlow"))
311
312 # LRT Egamma
313 from DerivationFrameworkEGamma.EGammaLRTConfig import EGammaLRTCfg
314 acc.merge(EGammaLRTCfg(flags))
315
316 from DerivationFrameworkLLP.LLPToolsConfig import LRTElectronLHSelectorsCfg
317 acc.merge(LRTElectronLHSelectorsCfg(flags))
318
319 # LRT Muons
320 from DerivationFrameworkMuons.MuonsCommonConfig import MuonsCommonCfg
321 acc.merge(MuonsCommonCfg(flags, suff="LRT"))
322
323 #Photon ID Selector
324 from DerivationFrameworkLLP.LLPToolsConfig import PhotonIsEMSelectorsCfg
325 acc.merge(PhotonIsEMSelectorsCfg(flags))
326
327 # Recover Zero Pixel Hit Muons
328 from DerivationFrameworkLLP.LLPToolsConfig import RecoverZeroPixelHitMuonsCfg
329 acc.merge(RecoverZeroPixelHitMuonsCfg(flags))
330
331 # flavor tagging
332 from BTagging.FlavorTaggingConfig import FlavorTaggingCfg
333 acc.merge(FlavorTaggingCfg(flags, 'AntiKt4EMTopoJets'))
334
335 # VrtSecInclusive
336 from VrtSecInclusive.VrtSecInclusiveConfig import VrtSecInclusiveCfg
337
338 # MuSAVtxFitter
339 from MuSAVtxFitter.MuSAVtxFitterConfig import MuSAVtxFitterConfig, MuSAVtxJPsiValidationAlgCfg, MuSAVtxFitterValidationConfig
340
341 acc.merge(VrtSecInclusiveCfg(flags,
342 name = "VrtSecInclusive",
343 AugmentingVersionString = "",
344 FillIntermediateVertices = False,
345 TrackLocation = MergedTrackCollection))
346 LLP1VrtSecInclusiveSuffixes.append("")
347
348 # short-lifetime VSI
349 shortLifetimeSuffix = "_shortLifetime"
350 acc.merge(VrtSecInclusiveCfg(flags,
351 name = "VrtSecInclusive_InDet"+shortLifetimeSuffix,
352 AugmentingVersionString = shortLifetimeSuffix,
353 FillIntermediateVertices = False,
354 TrackLocation = MergedTrackCollection,
355 twoTrkVtxFormingD0Cut = 1.0))
356 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeSuffix)
357
358 # short-lifetime VSI, nod0 for LRSM dHNL analysis
359 shortLifetimeNod0Suffix = "_shortLifetime_nod0"
360 acc.merge(VrtSecInclusiveCfg(flags,
361 name = "VrtSecInclusive_InDet"+shortLifetimeNod0Suffix,
362 AugmentingVersionString = shortLifetimeNod0Suffix,
363 FillIntermediateVertices = False,
364 TrackLocation = MergedTrackCollection,
365 twoTrkVtxFormingD0Cut = 0))
366 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeNod0Suffix)
367
368 # disappearing track + LRT VSI
369 if flags.Tracking.doTrackSegmentsDisappearing:
370 dissapearingSuffix = "_disappearing"
371 acc.merge(VrtSecInclusiveCfg(
372 flags, name = "VrtSecInclusive_"+dissapearingSuffix,
373 AugmentingVersionString = dissapearingSuffix,
374 FillIntermediateVertices = False,
375 TrackLocation = MergedTrackletCollection,
376 doReassembleVertices = True,
377 doMergeByShuffling = False,
378 doMergeFinalVerticesDistance= False,
379 doAssociateNonSelectedTracks= False,
380 DoPVcompatibility = True,
381 RemoveFake2TrkVrt = False,
382 PassThroughTrackSelection = True,
383 TruncateListOfWorkingVertices = False,
384 twoTrkVtxFormingD0Cut = 0.0,
385 SelVrtChi2Cut = 1000000.0,
386 twoTrVrtMaxPerigeeDist = 50.0,
387 twoTrVrtMinRadius = 50.0,
388 doDisappearingTrackVertexing= True))
389 LLP1VrtSecInclusiveSuffixes.append(dissapearingSuffix)
390
391 if flags.Input.isMC and flags.Derivation.LLP.doTrackSystematics:
392 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig import TrackSystematicsAlgCfg
393 TrackSystSuffix = "_TRK_EFF_LARGED0_GLOBAL__1down"
394 acc.merge(TrackSystematicsAlgCfg(
395 flags,
396 name=f"InDetTrackSystematicsAlg{TrackSystSuffix}",
397 InputTrackContainer = MergedTrackCollection,
398 OutputTrackContainer = f"{MergedTrackCollection}{TrackSystSuffix}"))
399 acc.merge(VrtSecInclusiveCfg(flags,
400 name = f"VrtSecInclusive{TrackSystSuffix}",
401 AugmentingVersionString = TrackSystSuffix,
402 FillIntermediateVertices = False,
403 TrackLocation = f"{MergedTrackCollection}{TrackSystSuffix}"))
404 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffix)
405
406 TrackSystSuffixShortLifetime = "_TRK_EFF_LARGED0_GLOBAL__1down_shortLifetime"
407 acc.merge(TrackSystematicsAlgCfg(
408 flags,
409 name=f"InDetTrackSystematicsAlg{TrackSystSuffixShortLifetime}",
410 InputTrackContainer = MergedTrackCollection,
411 OutputTrackContainer = f"{MergedTrackCollection}{TrackSystSuffixShortLifetime}"))
412 acc.merge(VrtSecInclusiveCfg(flags,
413 name = f"VrtSecInclusive{TrackSystSuffixShortLifetime}",
414 AugmentingVersionString = TrackSystSuffixShortLifetime,
415 FillIntermediateVertices = False,
416 TrackLocation = f"{MergedTrackCollection}{TrackSystSuffixShortLifetime}",
417 twoTrkVtxFormingD0Cut = 1.0))
418 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffixShortLifetime)
419
420 # LRT muons merge
421 MergedMuonContainer_wZPH = (
422 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0 else "Muons_wZPH")
423 from DerivationFrameworkLLP.LLPToolsConfig import ZeroPixelHitMuonMergerAlgCfg
424 acc.merge(ZeroPixelHitMuonMergerAlgCfg(flags,
425 InputMuonContainers = [MergedMuonContainer, "ZeroPixelHitMuons"],
426 OutputMuonLocation = MergedMuonContainer_wZPH))
427
428
429 # leptons-only VSI
430 LeptonsSuffix = "_Leptons"
431 acc.merge(VrtSecInclusiveCfg(flags,
432 name = "VrtSecInclusive_InDet"+LeptonsSuffix,
433 AugmentingVersionString = LeptonsSuffix,
434 FillIntermediateVertices = False,
435 TrackLocation = MergedTrackCollection,
436 twoTrkVtxFormingD0Cut = 1.0,
437 doSelectTracksFromMuons = True,
438 doRemoveCaloTaggedMuons = True,
439 doSelectTracksFromElectrons = True,
440 MuonLocation = MergedMuonContainer,
441 ElectronLocation = MergedElectronContainer))
442 LLP1VrtSecInclusiveSuffixes.append(LeptonsSuffix)
443
444 # track VSI
445 LepTrackSuffix = "_LepTrack"
446 acc.merge(VrtSecInclusiveCfg(flags,
447 name = "VrtSecInclusive_InDet"+LepTrackSuffix,
448 AugmentingVersionString = LepTrackSuffix,
449 FillIntermediateVertices = False,
450 TrackLocation = MergedTrackCollection,
451 MuonLocation = MergedMuonContainer,
452 ElectronLocation = MergedElectronContainer,
453 twoTrkVtxFormingD0Cut = 1.0,
454 doSelectIDAndGSFTracks = True,
455 doRemoveCaloTaggedMuons = True,
456 doRemoveNonLeptonVertices = True,
457 doAssociateNonSelectedTracks= False))
458 LLP1VrtSecInclusiveSuffixes.append(LepTrackSuffix)
459
460 # Small-d0 Muons VSI
461 BoostedMuonsSuffix = "_BoostedMuons"
462 acc.merge(VrtSecInclusiveCfg(flags,
463 name = "VrtSecInclusive_InDet"+BoostedMuonsSuffix,
464 AugmentingVersionString = BoostedMuonsSuffix,
465 FillIntermediateVertices = False,
466 TrackLocation = MergedTrackCollection,
467 twoTrkVtxFormingD0Cut = 0.0,
468 doSelectTracksFromMuons = True,
469 doRemoveCaloTaggedMuons = True,
470 doSelectTracksFromElectrons = False,
471 MuonLocation = MergedMuonContainer_wZPH,
472 do_PVvetoCut = False,
473 DoTwoTrSoftBtag = True,
474 TwoTrVrtMinDistFromPVCut = 0.5,
475 associatePtCut = 500.))
476 LLP1VrtSecInclusiveSuffixes.append(BoostedMuonsSuffix)
477
478
479 # Small-d0 Electrons VSI
480 BoostedElectronsSuffix = "_BoostedElectrons"
481 acc.merge(VrtSecInclusiveCfg(flags,
482 name = "VrtSecInclusive_InDet"+BoostedElectronsSuffix,
483 AugmentingVersionString = BoostedElectronsSuffix,
484 FillIntermediateVertices = False,
485 TrackLocation = MergedTrackCollection,
486 twoTrkVtxFormingD0Cut = 0.0,
487 doSelectTracksFromMuons = False,
488 doSelectTracksFromElectrons = True,
489 ElectronLocation = MergedElectronContainer,
490 do_PVvetoCut = False,
491 DoTwoTrSoftBtag = True,
492 TwoTrVrtMinDistFromPVCut = 0.5,
493 associatePtCut = 500.))
494 LLP1VrtSecInclusiveSuffixes.append(BoostedElectronsSuffix)
495
496
497 # MuSA Vertices
498 acc.merge(MuSAVtxFitterConfig(flags,
499 MuonContainerName=MergedMuonContainer))
500
501 if flags.Derivation.LLP.doMuSAValidation:
502 #Create JPsi tagged muon container
503 acc.merge(MuSAVtxJPsiValidationAlgCfg(flags,
504 MuonContainer=MergedMuonContainer,
505 JPsiMuonContainer="JPsiMuons"))
506
507 # JPsi validation MuSA Vertices
508 acc.merge(MuSAVtxFitterValidationConfig(flags,
509 name="MuSAVtxFitterValidationJPsi",
510 MuonContainerName="JPsiMuons"))
511 # all MSTPs validation MuSA Vertices
512 acc.merge(MuSAVtxFitterValidationConfig(flags,
513 MuonContainerName=MergedMuonContainer,
514 MuSAVtxContainerName="ValidationMuSAVertices",
515 MuSAExtrapolatedTracksName="ValidationMuSAExtrapolatedTrackParticles",
516 MSTPContainerName="MuonSpectrometerTrackParticles"))
517
518
519 # NewVSI: LepTrack variation
520 from NewVrtSecInclusiveTool.NewVrtSecInclusiveAlgConfig import NewVrtSecInclusiveAlgLLPCfg
521 from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig import DVFinderToolCfg
522 IDAndGSFSuffix = "_IDAndGSF_LepTrack"
523
524 NVSILepTrack_Tool = acc.popToolsAndMerge(DVFinderToolCfg(flags,FillHist=False,AugmentingVersionString=IDAndGSFSuffix,MaxZVrt=1000.,AntiPileupSigRCut=2.))
525 acc.merge(NewVrtSecInclusiveAlgLLPCfg(flags,
526 algname = "NVSI"+IDAndGSFSuffix,
527 AugmentingVersionString = IDAndGSFSuffix,
528 ElectronContainer = MergedElectronContainer,
529 MuonContainer = MergedMuonContainer,
530 TrackParticleContainer = MergedTrackCollection,
531 GSFTrackParticleContainer = MergedGSFTrackCollection,
532 BVertexContainerName = "NewVrtSecInclusive_SecondaryVertices"+IDAndGSFSuffix,
533 AddIDTracks = True,
534 AddGSFTracks = True,
535 RemoveNonLepVertices = True,
536 BVertexTool = NVSILepTrack_Tool))
537 LLP1NewVSISuffixes.append(IDAndGSFSuffix)
538
539 # bad jet cleaning
540 jet_clean_prefix="DFCommonJets_"
541 jet_clean_container="AntiKt4EMTopoJets"
542 jet_clean_level="SuperLooseBadLLP"
543 from JetSelectorTools.JetSelectorToolsConfig import EventCleaningToolCfg, JetCleaningToolCfg
544 LLP1JetCleanSuperLLPTool = acc.popToolsAndMerge(JetCleaningToolCfg(flags,
545 "LLP1JetCleanSuperLLP",
546 jet_clean_container,
547 jet_clean_level,
548 False))
549 acc.addPublicTool(LLP1JetCleanSuperLLPTool)
550
551 LLP1EventCleanSuperLLPTool = acc.popToolsAndMerge(EventCleaningToolCfg(flags,
552 "LLP1EventCleanSuperLLP",
553 jet_clean_level))
554 LLP1EventCleanSuperLLPTool.JetCleanPrefix = jet_clean_prefix
555 LLP1EventCleanSuperLLPTool.OrDecorator = "passOR_EMTopo"
556 LLP1EventCleanSuperLLPTool.JetContainer = jet_clean_container
557 LLP1EventCleanSuperLLPTool.JetCleaningTool = LLP1JetCleanSuperLLPTool
558 acc.addPublicTool(LLP1EventCleanSuperLLPTool)
559
560 LLP1EventCleanAlg = CompFactory.EventCleaningTestAlg(
561 "LLP1JetCleanDecoratorSuperLLP",
562 EventCleaningTool = LLP1EventCleanSuperLLPTool,
563 JetCollectionName = jet_clean_container,
564 EventCleanPrefix = jet_clean_prefix,
565 CleaningLevel = jet_clean_level,
566 doEvent = True)
567
568 # Sequence for decorator locking.
569 # See comments in JetCommonConfig.AddEventCleanFlagsCfg.
570 acc.addSequence(CompFactory.AthSequencer('EventCleanSeq', Sequential=True))
571 acc.addEventAlgo(LLP1EventCleanAlg, 'EventCleanSeq')
572
573
574
575 from DerivationFrameworkLLP.LLPToolsConfig import AugmentationToolLeadingJetsCfg
576 augmentationToolLeadingJets = acc.getPrimaryAndMerge(AugmentationToolLeadingJetsCfg(flags))
577 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, AugmentationTools = [augmentationToolLeadingJets]))
578
579 # Thinning tools...
580 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg, EgammaTrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
581 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import GenericObjectThinningCfg
582 from DerivationFrameworkTau.TauCommonConfig import TauThinningCfg
583
584 # Inner detector tracks need to have greater than 10 GeV of pT
585 LLP1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
586 flags,
587 name = "LLP1TrackParticleThinningTool",
588 StreamName = kwargs['StreamName'],
589 SelectionString = "InDetTrackParticles.pt>10*GeV",
590 InDetTrackParticlesKey = "InDetTrackParticles"))
591
592 # Keep all GSF LRT Tracks
593 if flags.Tracking.doLargeD0:
594 LLP1LRTGSFTrackParticleThinningTool = acc.getPrimaryAndMerge(
595 TrackParticleThinningCfg(
596 flags, name = "LLP1LRTGSFTrackParticleThinningTool",
597 StreamName = kwargs['StreamName'],
598 SelectionString = "LRTGSFTrackParticles.pt>0*GeV",
599 InDetTrackParticlesKey = "LRTGSFTrackParticles"))
600
601 # Pixel tracklets need to have greater than 5 GeV of pT
602 if flags.Tracking.doTrackSegmentsDisappearing:
603 LLP1DTTrackParticleThinningTool = acc.getPrimaryAndMerge(
604 TrackParticleThinningCfg(
605 flags, name = "LLP1DTTrackParticleThinningTool",
606 StreamName = kwargs['StreamName'],
607 SelectionString = "InDetDisappearingTrackParticles.pt>5*GeV",
608 InDetTrackParticlesKey = "InDetDisappearingTrackParticles"))
609
610 # Include inner detector tracks associated with electrons
611 LLP1ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
612 flags,
613 name = "LLP1ElectronTPThinningTool",
614 StreamName = kwargs['StreamName'],
615 SGKey = "Electrons",
616 InDetTrackParticlesKey = "InDetTrackParticles"))
617
618 # Include inner detector tracks associated with LRT electrons
619 if flags.Tracking.doLargeD0:
620 LLP1LRTElectronTPThinningTool = acc.getPrimaryAndMerge(
621 EgammaTrackParticleThinningCfg(
622 flags, name = "LLP1LRTElectronTPThinningTool",
623 StreamName = kwargs['StreamName'],
624 SGKey = "LRTElectrons",
625 InDetTrackParticlesKey = "InDetLargeD0TrackParticles",
626 GSFTrackParticlesKey = "LRTGSFTrackParticles"))
627
628 # Include inner detector tracks associated with muons
629 LLP1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
630 flags,
631 name = "LLP1MuonTPThinningTool",
632 StreamName = kwargs['StreamName'],
633 MuonKey = "Muons",
634 InDetTrackParticlesKey = "InDetTrackParticles"))
635
636 # Include LRT inner detector tracks associated with LRT muons
637 if flags.Tracking.doLargeD0:
638 LLP1LRTMuonTPThinningTool = acc.getPrimaryAndMerge(
639 MuonTrackParticleThinningCfg(
640 flags, name = "LLP1LRTMuonTPThinningTool",
641 StreamName = kwargs['StreamName'],
642 MuonKey = "MuonsLRT",
643 InDetTrackParticlesKey = "InDetLargeD0TrackParticles"))
644
645 # GSF tracks associated to photons
646 LLP1PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
647 flags,
648 name = "LLP1PhotonTPThinningTool",
649 StreamName = kwargs['StreamName'],
650 SGKey = "Photons",
651 InDetTrackParticlesKey = "",
652 GSFConversionVerticesKey = "GSFConversionVertices",
653 GSFTrackParticlesKey = "GSFTrackParticles",
654 BestMatchOnly = True,
655 BestVtxMatchOnly = True))
656
657 # Tau-related containers: taus, tau tracks and associated ID tracks, neutral PFOs, secondary vertices
658 tau_thinning_expression = f"TauJets.pt >= {flags.Tau.MinPtDAOD}"
659 LLP1TauJetsThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
660 flags,
661 name = "LLP1TauJetThinningTool",
662 StreamName = kwargs['StreamName'],
663 Taus = "TauJets",
664 TauTracks = "TauTracks",
665 TrackParticles = "InDetTrackParticles",
666 TauNeutralPFOs = "TauNeutralParticleFlowObjects",
667 TauSecondaryVertices = "TauSecondaryVertices",
668 SelectionString = tau_thinning_expression))
669
670 # Only keep tau tracks (and associated ID tracks) classified as charged tracks
671 LLP1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
672 flags,
673 name = "LLP1TauTPThinningTool",
674 StreamName = kwargs['StreamName'],
675 TauKey = "TauJets",
676 InDetTrackParticlesKey = "InDetTrackParticles",
677 DoTauTracksThinning = True,
678 TauTracksKey = "TauTracks"))
679
680 tau_murm_thinning_expression = tau_thinning_expression.replace('TauJets', 'TauJets_MuonRM')
681 LLP1TauJetMuonRMParticleThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
682 flags,
683 name = "LLP1TauJets_MuonRMThinningTool",
684 StreamName = kwargs['StreamName'],
685 Taus = "TauJets_MuonRM",
686 TauTracks = "TauTracks_MuonRM",
687 TrackParticles = "InDetTrackParticles",
688 TauNeutralPFOs = "TauNeutralParticleFlowObjects_MuonRM",
689 TauSecondaryVertices = "TauSecondaryVertices_MuonRM",
690 SelectionString = tau_murm_thinning_expression))
691
692 # ID tracks associated with high-pt di-tau
693 LLP1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
694 flags,
695 name = "LLP1DiTauTPThinningTool",
696 StreamName = kwargs['StreamName'],
697 DiTauKey = "DiTauJets",
698 InDetTrackParticlesKey = "InDetTrackParticles"))
699
700
701 LLP1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
702 flags,
703 name = "LLP1DiTauLowPtThinningTool",
704 StreamName = kwargs['StreamName'],
705 ContainerName = "DiTauJetsLowPt",
706 SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
707
708 # ID tracks associated with low-pt ditau
709 LLP1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
710 flags,
711 name = "LLP1DiTauLowPtTPThinningTool",
712 StreamName = kwargs['StreamName'],
713 DiTauKey = "DiTauJetsLowPt",
714 InDetTrackParticlesKey = "InDetTrackParticles",
715 SelectionString = "DiTauJetsLowPt.nSubjets > 1"))
716
717
718 # ID Tracks associated with secondary vertices
719 from DerivationFrameworkLLP.LLPToolsConfig import VSITrackParticleThinningCfg
720 LLP1VSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
721 name = "LLP1VSITPThinningTool",
722 StreamName = kwargs['StreamName'],
723 InDetTrackParticlesKey = "InDetTrackParticles",
724 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
725
726 if flags.Tracking.doLargeD0:
727 LLP1LRTVSITPThinningTool = acc.getPrimaryAndMerge(
728 VSITrackParticleThinningCfg(
729 flags, name = "LLP1LRTVSITPThinningTool",
730 StreamName = kwargs['StreamName'],
731 InDetTrackParticlesKey = "InDetLargeD0TrackParticles",
732 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
733
734 LLP1GSFVSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
735 name = "LLP1GSFVSITPThinningTool",
736 StreamName = kwargs['StreamName'],
737 InDetTrackParticlesKey = "GSFTrackParticles",
738 AugVerStrings = [IDAndGSFSuffix]))
739
740 # ID Tracks associated with jets
741 from DerivationFrameworkLLP.LLPToolsConfig import JetTrackParticleThinningCfg, JetLargeD0TrackParticleThinningCfg
742 LLP1JetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(flags,
743 name = "LLP1JetTPThinningTool",
744 StreamName = kwargs['StreamName'],
745 JetKey = "AntiKt4EMTopoJets",
746 SelectionString = "(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
747 InDetTrackParticlesKey = "InDetTrackParticles"))
748
749 LLP1FatJetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg( flags,
750 name = "LLP1FatJetTPThinningTool",
751 StreamName = kwargs['StreamName'],
752 JetKey = "AntiKt10EMTopoRCJets",
753 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
754 InDetTrackParticlesKey = "InDetTrackParticles",
755 ))
756
757 # LRT Tracks associated with jets
758 if flags.Tracking.doLargeD0:
759 LLP1LRTJetTPThinningTool = acc.getPrimaryAndMerge(
760 JetLargeD0TrackParticleThinningCfg(
761 flags, name = "LLP1LRTJetTPThinningTool",
762 StreamName = kwargs['StreamName'],
763 JetKey = "AntiKt4EMTopoJets",
764 SelectionString = "(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
765 InDetTrackParticlesKey = "InDetLargeD0TrackParticles"))
766
767 LLP1LRTFatJetTPThinningTool = acc.getPrimaryAndMerge(
768 JetLargeD0TrackParticleThinningCfg(
769 flags, name = "LLP1LRTFatJetTPThinningTool",
770 StreamName = kwargs['StreamName'],
771 JetKey = "AntiKt10EMTopoRCJets",
772 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
773 InDetTrackParticlesKey = "InDetLargeD0TrackParticles"))
774
775 # high dE/dx and low pT tracks
776 from DerivationFrameworkLLP.LLPToolsConfig import PixeldEdxTrackParticleThinningCfg
777 LLP1PixeldEdxTrackParticleThinningTool = acc.getPrimaryAndMerge(PixeldEdxTrackParticleThinningCfg(
778 flags,
779 name = "LLP1PixeldEdxTrackParticleThinningTool",
780 StreamName = kwargs['StreamName'],
781 InDetTrackParticlesKey = "InDetTrackParticles"))
782
783
784 #Thinning CaloCalTopoClusters associated to AntiKt4EMTopoJets
785 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import JetCaloClusterThinningCfg
786
787 LLP1CCThinningTool = acc.getPrimaryAndMerge(JetCaloClusterThinningCfg(
788 flags,
789 name = "LLP1CCTool",
790 StreamName = kwargs['StreamName'],
791 SGKey = "AntiKt4EMTopoJets",
792 TopoClCollectionSGKey = "CaloCalTopoClusters",
793 AdditionalClustersKey = ["EMOriginTopoClusters","LCOriginTopoClusters"]
794 ))
795
796
797 # Finally the kernel itself
798 thinningTools = [LLP1TrackParticleThinningTool,
799 LLP1ElectronTPThinningTool,
800 LLP1MuonTPThinningTool,
801 LLP1PhotonTPThinningTool,
802 LLP1TauJetsThinningTool,
803 LLP1TauTPThinningTool,
804 LLP1TauJetMuonRMParticleThinningTool,
805 LLP1DiTauTPThinningTool,
806 LLP1DiTauLowPtThinningTool,
807 LLP1DiTauLowPtTPThinningTool,
808 LLP1VSITPThinningTool,
809 LLP1GSFVSITPThinningTool,
810 LLP1JetTPThinningTool,
811 LLP1FatJetTPThinningTool,
812 LLP1PixeldEdxTrackParticleThinningTool,
813 LLP1CCThinningTool]
814
815 if flags.Tracking.doLargeD0:
816 thinningTools += [ LLP1LRTJetTPThinningTool,
817 LLP1LRTFatJetTPThinningTool,
818 LLP1LRTGSFTrackParticleThinningTool,
819 LLP1LRTElectronTPThinningTool,
820 LLP1LRTMuonTPThinningTool,
821 LLP1LRTVSITPThinningTool ]
822
823 if flags.Tracking.doTrackSegmentsDisappearing:
824 thinningTools += [ LLP1DTTrackParticleThinningTool ]
825
826
827 # Additionnal augmentations
828
829 # Compute RC substructure variables from energy clusters
830 from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
831 LLP1RCJetSubstructureClustTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
832 name = "LLP1RCJetSubstructureClustTrimAugTool",
833 StreamName = kwargs['StreamName'],
834 JetContainerKey = "AntiKt10EMTopoRCJets",
835 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
836 GhostConstitNames = ["GhostLCTopoOrigin"],
837 Suffix = "clusterTrim",
838 Grooming = "Trimming",
839 RClusTrim = 0.2,
840 PtFracTrim = 0.05
841 ))
842 RCSubstructureClusterTrimAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureClusterTrimAug", AugmentationTools = [LLP1RCJetSubstructureClustTrimAugTool])
843 acc.addEventAlgo(RCSubstructureClusterTrimAug)
844
845 LLP1RCJetSubstructureClustSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
846 name = "LLP1RCJetSubstructureClustSDAugTool",
847 StreamName = kwargs['StreamName'],
848 JetContainerKey = "AntiKt10EMTopoRCJets",
849 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
850 GhostConstitNames = ["GhostLCTopoOrigin"],
851 Suffix = "clusterSoftDrop",
852 Grooming = "SoftDrop",
853 BetaSoft = 1.0,
854 ZcutSoft = 0.1
855 ))
856 RCSubstructureClusterSDAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureClusterSDAug", AugmentationTools = [LLP1RCJetSubstructureClustSDAugTool])
857 acc.addEventAlgo(RCSubstructureClusterSDAug)
858
859 # Compute RC substructure variables from tracks
860 ghostConstitNames = ["GhostTrack"]
861 if flags.Tracking.doLargeD0:
862 ghostConstitNames = ["GhostTrackLRT"]
863
864 from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
865 LLP1RCJetSubstructureTrackTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
866 name = "LLP1RCJetSubstructureTrackTrimAugTool",
867 StreamName = kwargs['StreamName'],
868 JetContainerKey = "AntiKt10EMTopoRCJets",
869 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
870 GhostConstitNames = ghostConstitNames,
871 Suffix = "trackTrim",
872 Grooming = "Trimming",
873 RClusTrim = 0.2,
874 PtFracTrim = 0.05
875 ))
876 RCSubstructureTrackTrimAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureTrackTrimAug", AugmentationTools = [LLP1RCJetSubstructureTrackTrimAugTool])
877 acc.addEventAlgo(RCSubstructureTrackTrimAug)
878
879 from DerivationFrameworkLLP.LLPToolsConfig import RCJetSubstructureAugCfg
880 LLP1RCJetSubstructureTrackSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
881 name = "LLP1RCJetSubstructureTrackSDAugTool",
882 StreamName = kwargs['StreamName'],
883 JetContainerKey = "AntiKt10EMTopoRCJets",
884 SelectionString = "(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
885 GhostConstitNames = ghostConstitNames,
886 Suffix = "trackSoftDrop",
887 Grooming = "SoftDrop",
888 BetaSoft = 1.0,
889 ZcutSoft = 0.1
890 ))
891 RCSubstructureTrackSDAug = CompFactory.DerivationFramework.CommonAugmentation("RCSubstructureTrackSDAug", AugmentationTools = [LLP1RCJetSubstructureTrackSDAugTool])
892 acc.addEventAlgo(RCSubstructureTrackSDAug)
893
894
895
896 # Skimming
897 skimmingTools = []
898
899 if flags.Trigger.EDMVersion >= 0:
900 from DerivationFrameworkLLP.LLPToolsConfig import LLP1TriggerSkimmingToolCfg
901 LLP1TriggerSkimmingTool = acc.getPrimaryAndMerge(LLP1TriggerSkimmingToolCfg(
902 flags, name = "LLP1TriggerSkimmingTool",
903 TriggerListsHelper = kwargs['TriggerListsHelper']))
904
905 skimmingTools.append(LLP1TriggerSkimmingTool)
906
907 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
908 acc.addEventAlgo(DerivationKernel(name,
909 SkimmingTools = skimmingTools,
910 ThinningTools = thinningTools,
911 AugmentationTools = augmentationTools))
912
913 return acc
914
915
916
917
918
919

Variable Documentation

◆ LLP1NewVSISuffixes

list python.LLP1.LLP1NewVSISuffixes = []

Definition at line 15 of file LLP1.py.

◆ LLP1VrtSecInclusiveSuffixes

list python.LLP1.LLP1VrtSecInclusiveSuffixes = []

Definition at line 14 of file LLP1.py.