123 def makeTriggerSelectionAlg(self, config, decisionTool):
126 alg = config.createAlgorithm(
'CP::TrigEventSelectionAlg',
'TrigEventSelectionAlg' )
127 alg.tool =
'%s/%s' % \
128 ( decisionTool.getType(), decisionTool.getName() )
129 alg.triggers = self.triggerChainsForSelection
130 alg.selectionDecoration =
'trigPassed'
131 alg.noFilter = self.noFilter
134 for t
in self.triggerChainsForSelection :
135 t = t.replace(
".",
"p").
replace(
"-",
"_")
136 config.addOutputVar (
'EventInfo',
'trigPassed_' + t,
'trigPassed_' + t, noSys=
True)
139 triggerChainsForDeco =
list(
set(self.triggerChainsForDecoration) -
set(self.triggerChainsForSelection))
140 if triggerChainsForDeco :
141 alg = config.createAlgorithm(
'CP::TrigEventSelectionAlg',
'TrigEventSelectionAlgDeco' )
142 alg.tool =
'%s/%s' % \
143 ( decisionTool.getType(), decisionTool.getName() )
144 alg.triggers = triggerChainsForDeco
145 alg.selectionDecoration =
'trigPassed'
149 for t
in triggerChainsForDeco :
150 t = t.replace(
".",
"p").
replace(
"-",
"_")
151 config.addOutputVar (
'EventInfo',
'trigPassed_' + t,
'trigPassed_' + t, noSys=
True)
154 if (self.prescaleLumiCalcFiles
or self.prescaleLumiCalcFilesPerYear)
and (
155 self.unprescaleData
if config.dataType()
is DataType.Data
else self.prescaleMC
159 if self.prescaleLumiCalcFiles:
160 lumicalc_files = self.prescaleLumiCalcFiles
161 elif self.prescaleLumiCalcFilesPerYear:
162 from TriggerAnalysisAlgorithms.TriggerAnalysisSFConfig
import get_input_years, get_year_data
166 lumicalc_files.extend(
get_year_data(self.prescaleLumiCalcFilesPerYear, year))
168 prescale_triggers = self._get_lumicalc_triggers(lumicalc_files)
169 prescale_triggersAll = self.triggerChainsForSelection
172 prescale_triggers_output =
set(prescale_triggers)
173 if self.prescaleIncludeAllYearsPerRun
and self.prescaleLumiCalcFilesPerYear:
174 all_lumicalc_files = [
176 for lumicalc_year, lumicalc_values
in self.prescaleLumiCalcFilesPerYear.
items()
177 for lumicalc
in lumicalc_values
180 prescale_triggers_output.update(self._get_lumicalc_triggers(all_lumicalc_files))
181 prescale_triggersAll =
list(prescale_triggers_output)
183 if not self.prescaleTriggersFormula
and not prescale_triggersAll:
186 alg = config.createAlgorithm(
'CP::TrigPrescalesAlg',
'TrigPrescalesAlg' )
187 config.addPrivateTool(
'pileupReweightingTool',
'CP::PileupReweightingTool' )
188 alg.pileupReweightingTool.LumiCalcFiles = lumicalc_files
189 alg.selectionDecoration =
'trigPassed'
190 alg.prescaleMC = config.dataType()
is not DataType.Data
191 alg.prescaleDecoration = self.prescaleDecoration
192 if self.prescaleTriggersFormula !=
'':
193 alg.prescaleTriggersFormula = self.prescaleTriggersFormula
194 config.addOutputVar(
"EventInfo", alg.prescaleDecoration, alg.prescaleDecoration, noSys=
True)
196 alg.triggers = prescale_triggers
197 alg.triggersAll = prescale_triggersAll
200 for trigger
in prescale_triggers_output:
201 trigger = trigger.replace(
"-",
"_")
204 alg.prescaleDecoration +
"_" + trigger,
205 alg.prescaleDecoration +
"_" + trigger,