189def defineEfficiencyHistograms(monAlg, histGroup, GroupName, chain, flags):
190
191 def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax):
192 histGroup.defineHistogram(GroupName+'_'+xvariable+';'+xvariable,
193 title='All offline combined muon '+chain+';'+xlabel+';Events',
194 type='TH1F',path='',xbins=xbins,xmin=xmin,xmax=xmax)
195
196 histGroup.defineHistogram(GroupName+'_L1pass,'+GroupName+'_'+xvariable+';EffL1MU_'+xvariable+'_wrt_Probe',
197 title='L1MU Efficiency '+chain+';'+xlabel+';Efficiency',
198 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
199
200 if monAlg.doL2SA:
201 histGroup.defineHistogram(GroupName+'_L2SApass,'+GroupName+'_'+xvariable+';EffL2SA_'+xvariable+'_wrt_Upstream',
202 title='L2MuonSA Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
203 cutmask=GroupName+'_L1pass',
204 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
205
206 histGroup.defineHistogram(GroupName+'_L2SApass,'+GroupName+'_'+xvariable+';EffL2SA_'+xvariable+'_wrt_offlineCB',
207 title='L2MuonSA Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
208 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
209
210 if monAlg.doL2CB:
211 histGroup.defineHistogram(GroupName+'_L2CBpass,'+GroupName+'_'+xvariable+';EffL2CB_'+xvariable+'_wrt_Upstream',
212 title='L2muComb Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
213 cutmask=GroupName+'_L2SApass',
214 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
215
216 histGroup.defineHistogram(GroupName+'_L2CBpass,'+GroupName+'_'+xvariable+';EffL2CB_'+xvariable+'_wrt_offlineCB',
217 title='L2muComb Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
218 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
219
220 if monAlg.doEFSA:
221 histGroup.defineHistogram(GroupName+'_EFSApass,'+GroupName+'_'+xvariable+';EffEFSA_'+xvariable+'_wrt_Upstream',
222 title='EFSA Muon Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
223 cutmask=GroupName+'_L2CBpass',
224 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
225
226 histGroup.defineHistogram(GroupName+'_EFSApass,'+GroupName+'_'+xvariable+';EffEFSA_'+xvariable+'_wrt_offlineCB',
227 title='EFSA Muon Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
228 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
229
230 histGroup.defineHistogram(GroupName+'_EFSApass,'+GroupName+'_'+xvariable+';EffEFSA_'+xvariable+'_wrt_offlineCB_passedL2SA',
231 title='EFSA Muon Efficiency passed L2SA '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
232 cutmask=GroupName+'_L2SApass',
233 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
234
235 if monAlg.doEFCB:
236 histGroup.defineHistogram(GroupName+'_EFCBpass,'+GroupName+'_'+xvariable+';EffEFCB_'+xvariable+'_wrt_Upstream',
237 title='EFCB Muon Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
238 cutmask=GroupName+'_EFSApass',
239 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
240
241 histGroup.defineHistogram(GroupName+'_EFCBpass,'+GroupName+'_'+xvariable+';EffEFCB_'+xvariable+'_wrt_offlineCB',
242 title='EFCB Muon Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
243 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
244
245 histGroup.defineHistogram(GroupName+'_EFCBpass,'+GroupName+'_'+xvariable+';EffEFCB_'+xvariable+'_wrt_offlineCB_passedL2CB',
246 title='EFCB Muon Efficiency passed L2CB '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
247 cutmask=GroupName+'_L2CBpass',
248 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
249
250 if monAlg.doEFSAFS:
251 histGroup.defineHistogram(GroupName+'_EFSAFSpass,'+GroupName+'_'+xvariable+';EffEFSAFS_'+xvariable+'_wrt_Upstream',
252 title='EFSAFS Muon Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
253 cutmask=GroupName+'_EFCBpass',
254 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
255
256 histGroup.defineHistogram(GroupName+'_EFSAFSpass,'+GroupName+'_'+xvariable+';EffEFSAFS_'+xvariable+'_wrt_offlineCB',
257 title='EFSAFS Muon Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
258 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
259
260 histGroup.defineHistogram(GroupName+'_EFSAFSpass,'+GroupName+'_'+xvariable+';EffEFSAFS_'+xvariable+'_wrt_offlineCB_passedL2SA',
261 title='EFSAFS Muon Efficiency passed L2SA '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
262 cutmask=GroupName+'_L2SApass',
263 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
264
265 if monAlg.doEFCBFS:
266 histGroup.defineHistogram(GroupName+'_EFCBFSpass,'+GroupName+'_'+xvariable+';EffEFCBFS_'+xvariable+'_wrt_Upstream',
267 title='EFCBFS Muon Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
268 cutmask=GroupName+'_EFSAFSpass',
269 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
270
271 histGroup.defineHistogram(GroupName+'_EFCBFSpass,'+GroupName+'_'+xvariable+';EffEFCBFS_'+xvariable+'_wrt_offlineCB',
272 title='EFCBFS Muon Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
273 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
274
275 histGroup.defineHistogram(GroupName+'_EFCBFSpass,'+GroupName+'_'+xvariable+';EffEFCBFS_'+xvariable+'_wrt_offlineCB_passedL2CB',
276 title='EFCBFS Muon Efficiency passed L2CB '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
277 cutmask=GroupName+'_L2CBpass',
278 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
279
280
281 if monAlg.doEFIso:
282 histGroup.defineHistogram(GroupName+'_EFIsopass,'+GroupName+'_'+xvariable+';EffEFIso_'+xvariable+'_wrt_Upstream',
283 title='EFIso Muon Efficiency '+chain+' wrt Upstream;'+xlabel+';Efficiency',
284 cutmask=GroupName+'_EFCBpass',
285 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
286
287 histGroup.defineHistogram(GroupName+'_EFIsopass,'+GroupName+'_'+xvariable+';EffEFIso_'+xvariable+'_wrt_offlineCB',
288 title='EFIso Muon Efficiency '+chain+' wrt offlineCB;'+xlabel+';Efficiency',
289 type='TEfficiency', path='',xbins=xbins,xmin=xmin,xmax=xmax)
290
291
292 defineEachStepHistograms('muPt', 'p_{T} [GeV]', 50, 0.0, 100.)
293 defineEachStepHistograms('muEta', '#eta', 30, -3.0, 3.0)
294 defineEachStepHistograms('muPhi', '#phi', 30, -math.pi, math.pi)
295 if flags.GeoModel.Run >= LHCPeriod.Run4:
296 defineEachStepHistograms('averageMu', 'average pileup', 4, 100., 220.)
297 else:
298 defineEachStepHistograms('averageMu', 'average pileup', 4, 0., 80.)
299
300
301 histGroup.defineHistogram(GroupName+'_invmass;invmass',
302 title='invariant mass of tag & probe muon '+chain+';inv mass [GeV];Events',
303 type='TH1F',path='',xbins=40,xmin=0.,xmax=200.)
304