112def GepJetTaggerLRJAlgCfg(flags, name, **kwargs):
113
114
115
116 cfg = ComponentAccumulator()
117
118
119 kwargs['jetAlgName'] = 'JetTaggerLRJ'
120 kwargs['EnableLRJMaker'] = True
121
122
123 algo_version = kwargs.setdefault('LRJAlgoVersion', 3)
124 if algo_version not in (2, 3):
125 raise ValueError("LRJAlgoVersion must be 2 (BasicV2) or 3 (AdvancedV3)")
126 for prop, value in _LRJ_PRESETS[algo_version].items():
127 kwargs.setdefault(prop, value)
128
129
130 kwargs.setdefault('LRJSeedSource', LRJSeedSourceType.WTACone.value)
131 kwargs.setdefault('LRJConstSource', LRJConstSourceType.Towers.value)
132 kwargs.setdefault('LRJWTAConeSeedsKey', '')
133 kwargs.setdefault('jFexSRJetRoIs', 'L1_jFexSRJetRoISim')
134 kwargs.setdefault('LRJgFexSRJetRoIs', 'L1_gFexSRJetRoISim')
135
136
137 kwargs.setdefault('LRJJetR', 1.1)
138 kwargs.setdefault('LRJNSeedsInput', 10)
139 kwargs.setdefault('LRJNProtoSeeds', 6)
140 kwargs.setdefault('LRJNSeedsOutput', 2)
141 kwargs.setdefault('LRJEtBitLength', 13)
142 kwargs.setdefault('LRJDeltaRLutLength', 8)
143 kwargs.setdefault('LRJEnableEtWeightedMidpoint', False)
144 kwargs.setdefault('LRJSubjetEtThresholdGeV', 25.0)
145 kwargs.setdefault('LRJMinEtSeedPosOptCutGeV', 25.0)
146 kwargs.setdefault('LRJSeedEtCutGeV', 5.0)
147 kwargs.setdefault('LRJConstEtCutGeV', 2.0)
148
149
150 kwargs.setdefault('LRJPhiMin', -3.2)
151 kwargs.setdefault('LRJPhiMax', 3.2)
152 kwargs.setdefault('LRJEtaMin', -4.85)
153 kwargs.setdefault('LRJEtaMax', 4.95)
154 kwargs.setdefault('LRJEtMin', 0.0)
155 kwargs.setdefault('LRJEtMax', 1024.0)
156 kwargs.setdefault('LRJMassApproxMax', 512.0)
157 kwargs.setdefault('LRJInputEtToGeV', 1.0e-3)
158
159
160 kwargs.setdefault('LRJWriteSubstructure', True)
161 kwargs.setdefault('LRJWriteSubjetKinematics', True)
162 kwargs.setdefault('LRJWriteConstituentIndices', True)
163
164
165 if kwargs['LRJSeedSource'] not in LRJSeedSourceType.to_list():
166 raise ValueError(f"LRJSeedSource must be one of {LRJSeedSourceType.to_list()}")
167 if kwargs['LRJConstSource'] not in LRJConstSourceType.to_list():
168 raise ValueError(f"LRJConstSource must be one of {LRJConstSourceType.to_list()}")
169 if kwargs['LRJSeedSource'] == LRJSeedSourceType.WTACone.value \
170 and not kwargs['LRJWTAConeSeedsKey']:
171 raise ValueError("LRJWTAConeSeedsKey must be set when LRJSeedSource == 'WTACone'")
172
173 alg = CompFactory.GepJetAlg(name, **kwargs)
174
175 cfg.addEventAlgo(alg)
176
177 return cfg