6 from AnaAlgorithm.AlgSequence
import AlgSequence
7 from AnaAlgorithm.DualUseConfig
import createAlgorithm, createService
8 from AnalysisAlgorithmsConfig.ConfigAccumulator
import DataType
11 forceEGammaFullSimConfig =
True
18 'PrimaryVertexSelectorAlg' )
19 algSeq.PrimaryVertexSelectorAlg.VertexContainer =
'PrimaryVertices'
20 algSeq.PrimaryVertexSelectorAlg.MinVertices = 1
23 sysService =
createService(
'CP::SystematicsSvc',
'SystematicsSvc', sequence = algSeq )
24 sysService.sigmaRecommended = 1
25 createService(
'CP::SelectionNameSvc',
'SelectionNameSvc', sequence = algSeq )
30 from AsgAnalysisAlgorithms.PileupAnalysisSequence
import \
31 makePileupAnalysisSequence
34 userPileupConfigs=prwfiles,
35 userLumicalcFiles=lumicalcfiles,
37 pileupSequence.configure( inputName = {}, outputName = {} )
38 algSeq += pileupSequence
41 from EgammaAnalysisAlgorithms.ElectronAnalysisSequence
import \
42 makeElectronAnalysisSequence
44 dataType,
'LooseLHElectron.Loose_VarRad',
45 recomputeLikelihood =
True,
46 forceFullSimConfig = forceEGammaFullSimConfig)
47 electronSequence.configure( inputName =
'Electrons',
48 outputName =
'AnalysisElectrons_%SYS%' )
49 algSeq += electronSequence
52 from EgammaAnalysisAlgorithms.PhotonAnalysisSequence
import \
53 makePhotonAnalysisSequence
55 dataType,
'Tight.FixedCutTight',
56 forceFullSimConfig = forceEGammaFullSimConfig)
57 photonSequence.configure( inputName =
'Photons',
58 outputName =
'AnalysisPhotons_%SYS%' )
59 algSeq += photonSequence
62 from MuonAnalysisAlgorithms.MuonAnalysisSequence
import makeMuonAnalysisSequence
64 muonSequence.configure( inputName =
'Muons',
65 outputName =
'AnalysisMuons_%SYS%' )
66 algSeq += muonSequence
69 jetContainer =
'AntiKt4EMPFlowJets'
70 from JetAnalysisAlgorithms.JetAnalysisSequence
import makeJetAnalysisSequence
72 jetSequence.configure( inputName = jetContainer,
73 outputName =
'AnalysisJets_%SYS%' )
85 from AsgAnalysisAlgorithms.OverlapAnalysisSequence
import \
86 makeOverlapAnalysisSequence
88 overlapSequence.configure(
90 'electrons' :
'AnalysisElectrons_%SYS%',
91 'photons' :
'AnalysisPhotons_%SYS%',
92 'muons' :
'AnalysisMuons_%SYS%',
93 'jets' :
'AnalysisJets_%SYS%',
97 'electrons' :
'AnalysisElectronsOR_%SYS%',
98 'photons' :
'AnalysisPhotonsOR_%SYS%',
99 'muons' :
'AnalysisMuonsOR_%SYS%',
100 'jets' :
'AnalysisJetsOR_%SYS%',
103 algSeq += overlapSequence
107 treeMaker.TreeName =
'particles'
109 ntupleMaker =
createAlgorithm(
'CP::AsgxAODNTupleMakerAlg',
'NTupleMaker' )
110 ntupleMaker.TreeName =
'particles'
111 ntupleMaker.Branches = [
112 'EventInfo.runNumber -> runNumber',
113 'EventInfo.eventNumber -> eventNumber',
114 'AnalysisElectrons_%SYS%.eta -> el_%SYS%_eta',
115 'AnalysisElectrons_%SYS%.phi -> el_%SYS%_phi',
116 'AnalysisElectrons_%SYS%.pt -> el_%SYS%_pt',
117 'AnalysisElectronsOR_%SYS%.eta -> el_OR_%SYS%_eta',
118 'AnalysisElectronsOR_%SYS%.phi -> el_OR_%SYS%_phi',
119 'AnalysisElectronsOR_%SYS%.pt -> el_OR_%SYS%_pt',
120 'AnalysisPhotons_%SYS%.eta -> ph_%SYS%_eta',
121 'AnalysisPhotons_%SYS%.phi -> ph_%SYS%_phi',
122 'AnalysisPhotons_%SYS%.pt -> ph_%SYS%_pt',
123 'AnalysisPhotonsOR_%SYS%.eta -> ph_OR_%SYS%_eta',
124 'AnalysisPhotonsOR_%SYS%.phi -> ph_OR_%SYS%_phi',
125 'AnalysisPhotonsOR_%SYS%.pt -> ph_OR_%SYS%_pt',
126 'AnalysisMuons_%SYS%.eta -> mu_%SYS%_eta',
127 'AnalysisMuons_%SYS%.phi -> mu_%SYS%_phi',
128 'AnalysisMuons_%SYS%.pt -> mu_%SYS%_pt',
129 'AnalysisMuonsOR_%SYS%.eta -> mu_OR_%SYS%_eta',
130 'AnalysisMuonsOR_%SYS%.phi -> mu_OR_%SYS%_phi',
131 'AnalysisMuonsOR_%SYS%.pt -> mu_OR_%SYS%_pt',
132 'AnalysisJets_%SYS%.eta -> jet_%SYS%_eta',
133 'AnalysisJets_%SYS%.phi -> jet_%SYS%_phi',
134 'AnalysisJets_%SYS%.pt -> jet_%SYS%_pt',
135 'AnalysisJetsOR_%SYS%.eta -> jet_OR_%SYS%_eta',
136 'AnalysisJetsOR_%SYS%.phi -> jet_OR_%SYS%_phi',
137 'AnalysisJetsOR_%SYS%.pt -> jet_OR_%SYS%_pt',
145 algSeq += ntupleMaker
147 treeFiller.TreeName =
'particles'
156 GRLFiles = [
'GoodRunsLists/data16_13TeV/20180129/data16_13TeV.periodAllYear_DetStatus-v89-pro21-01_DQDefects-00-02-04_PHYS_StandardGRL_All_Good_25ns.xml']
161 sysService =
createService(
'CP::SystematicsSvc',
'SystematicsSvc', sequence = algSeq )
162 sysService.sigmaRecommended = 1
163 createService(
'CP::SelectionNameSvc',
'SelectionNameSvc', sequence = algSeq )
166 from AsgAnalysisAlgorithms.EventSelectionAnalysisSequence
import \
167 makeEventSelectionAnalysisSequence
168 eventSelectionSequence = \
170 algSeq += eventSelectionSequence
174 treeMaker.TreeName =
'events'
176 ntupleMaker =
createAlgorithm(
'CP::AsgxAODNTupleMakerAlg',
'NTupleMaker' )
177 ntupleMaker.TreeName =
'events'
178 ntupleMaker.Branches = [
179 'EventInfo.runNumber -> runNumber',
180 'EventInfo.eventNumber -> eventNumber',
181 'Electrons.eta -> el_eta',
182 'Electrons.phi -> el_phi',
184 algSeq += ntupleMaker
186 treeFiller.TreeName =
'events'
197 sysService =
createService(
'CP::SystematicsSvc',
'SystematicsSvc', sequence = algSeq )
198 sysService.sigmaRecommended = 1
199 createService(
'CP::SelectionNameSvc',
'SelectionNameSvc', sequence = algSeq )
204 from AsgAnalysisAlgorithms.PileupAnalysisSequence
import \
205 makePileupAnalysisSequence
208 userPileupConfigs=prwfiles,
209 userLumicalcFiles=lumicalcfiles,
211 pileupSequence.configure( inputName = {}, outputName = {} )
212 algSeq += pileupSequence
215 from AsgAnalysisAlgorithms.GeneratorAnalysisSequence
import \
216 makeGeneratorAnalysisSequence
218 algSeq += generatorSequence
222 treeMaker.TreeName =
'events'
224 ntupleMaker =
createAlgorithm(
'CP::AsgxAODNTupleMakerAlg',
'NTupleMaker' )
225 ntupleMaker.TreeName =
'events'
226 ntupleMaker.Branches = [
227 'EventInfo.runNumber -> runNumber',
228 'EventInfo.eventNumber -> eventNumber',
229 'EventInfo.generatorWeight_%SYS% -> generatorWeight_%SYS%',
231 algSeq += ntupleMaker
233 treeFiller.TreeName =
'events'
239 """Return the PRW config files and lumicalc files for tests"""
240 if isinstance(dataType, str):
242 dataType = DataType.FullSim
243 elif dataType ==
"afii":
244 dataType = DataType.FastSim
248 if dataType
is DataType.Data:
252 if dataType
is DataType.FullSim:
254 "GoodRunsLists/data15_13TeV/20170619/PHYS_StandardGRL_All_Good_25ns_276262-284484_OflLumi-13TeV-008.root",
255 "GoodRunsLists/data16_13TeV/20180129/PHYS_StandardGRL_All_Good_25ns_297730-311481_OflLumi-13TeV-009.root",
258 "PileupReweighting/mc20_common/mc20a.284500.physlite.prw.v1.root"
262 "GoodRunsLists/data18_13TeV/20190318/ilumicalc_histograms_None_348885-364292_OflLumi-13TeV-010.root",
266 return prwfiles, lumicalcfiles
274 sysService =
createService(
'CP::SystematicsSvc',
'SystematicsSvc', sequence = algSeq )
275 sysService.sigmaRecommended = 1
276 createService(
'CP::SelectionNameSvc',
'SelectionNameSvc', sequence = algSeq )
281 from AsgAnalysisAlgorithms.PileupAnalysisSequence
import \
282 makePileupAnalysisSequence
285 userPileupConfigs=prwfiles,
286 userLumicalcFiles=lumicalcfiles,
288 pileupSequence.configure( inputName = {}, outputName = {} )
289 algSeq += pileupSequence
294 treeMaker.TreeName =
'events'
296 ntupleMaker =
createAlgorithm(
'CP::AsgxAODNTupleMakerAlg',
'NTupleMaker' )
297 ntupleMaker.TreeName =
'events'
298 ntupleMaker.Branches = [
299 'EventInfo.runNumber -> runNumber',
300 'EventInfo.eventNumber -> eventNumber',
304 algSeq += ntupleMaker
306 treeFiller.TreeName =
'events'