60def ditauRecoCfg(flags, inputJets: str, inputVertex: str, inputFSTracks: str, inputTracks: str, inputCells: str, inputClusters: str) -> ComponentAccumulator:
61 from .DitauConfigFlagsHLT import createDiTauConfigFlags
62 flags_ditau = createDiTauConfigFlags()
63
64 acc = ComponentAccumulator()
65 acc.merge(JetTVAAlgCfg(
66 flags,
67 inputTracks=inputFSTracks,
68 inputVertex=inputVertex,
69 ))
70 tools = [
71 acc.popToolsAndMerge(SeedJetBuilderCfg(flags, jetCollection=inputJets)),
72 acc.popToolsAndMerge(SubjetBuilderCfg(flags)),
73 acc.popToolsAndMerge(VertexFinderCfg(
74 flags,
75 TrackVertexAssociation = "HLT_JetTrackVtxAssoc_forDiTaus",
76 PrimVtxContainerName = inputVertex,
77 AssociatedTracks = "GhostTrack_ftf"
78 )),
79 acc.popToolsAndMerge(DiTauTrackFinderCfg(
80 flags,
81 TrackParticleContainer=inputTracks
82 )),
83 acc.popToolsAndMerge(DiTauConstituentFinderCfg(
84 flags,
85 UseRawConstit=False,
86 )),
87 acc.popToolsAndMerge(DiTauExtraVarDecoratorCfg(
88 flags,
89 ditauPtDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.ditau_pt",
90 fCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_core_lead",
91 fCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_core_subl",
92 fSubjetLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjet_lead",
93 fSubjetSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjet_subl",
94 fSubjetsDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjets",
95 fTrackLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_track_lead",
96 fTrackSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_track_subl",
97 RMaxLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_max_lead",
98 RMaxSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_max_subl",
99 nTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_track",
100 nTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_tracks_lead",
101 nTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_tracks_subl",
102 nIsotrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_isotrack",
103 RTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track",
104 RTrackCoreDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track_core",
105 RTrackAllDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track_all",
106 RIsotrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_isotrack",
107 RCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_core_lead",
108 RCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_core_subl",
109 RTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_tracks_lead",
110 RTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_tracks_subl",
111 MTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track",
112 MTrackCoreDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track_core",
113 MCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_core_lead",
114 MCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_core_subl",
115 MTrackAllDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track_all",
116 MTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_tracks_lead",
117 MTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_tracks_subl",
118 EFracSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.E_frac_subl",
119 EFracSubsublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.E_frac_subsubl",
120 RSubjetsSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_subjets_subl",
121 RSubjetsSubsublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_subjets_subsubl",
122 d0LeadtrackLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.d0_leadtrack_lead",
123 d0LeadtrackSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.d0_leadtrack_subl",
124 fIsotracksDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_isotracks",
125 )),
126 acc.popToolsAndMerge(DiTauOnnxScoreCalculatorCfg(
127 flags,
128 onnxModelPath = f"{flags_ditau.DiTau.CalibFolder}{flags_ditau.DiTau.DiTauIDModel}",
129 )),
130 ]
131
132 acc.addEventAlgo(CompFactory.DiTauBuilder(
133 "HLT_DiTauBuilder",
134 DiTauContainer = recordable(flags_ditau.DiTau.DiTauContainer[0]),
135 Tools = tools,
136 SeedJetName = inputJets,
137 minPt = flags_ditau.DiTau.JetSeedPt,
138 maxEta = flags_ditau.DiTau.MaxEta,
139 Rjet = flags_ditau.DiTau.Rjet,
140 Rsubjet = flags_ditau.DiTau.Rsubjet,
141 Rcore = flags_ditau.DiTau.Rcore,
142 ))
143 return acc
144