ATLAS Offline Software
Functions
JetTagMonitorAlgorithm Namespace Reference

Functions

def JetTagMonitorConfig (inputFlags)
 

Function Documentation

◆ JetTagMonitorConfig()

def JetTagMonitorAlgorithm.JetTagMonitorConfig (   inputFlags)
Function to configures some algorithms in the monitoring system.

Definition at line 14 of file JetTagMonitorAlgorithm.py.

14 def JetTagMonitorConfig(inputFlags):
15  '''Function to configures some algorithms in the monitoring system.'''
16 
17 
20  from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
21  result = ComponentAccumulator()
22 
23  # do not run monitoring in RAWtoESD
24  if inputFlags.DQ.Environment == 'tier0Raw':
25  return result
26 
27  # do not run in cosmics
28  from AthenaMonitoring.DQConfigFlags import DQDataType
29  if inputFlags.DQ.DataType is DQDataType.Cosmics:
30  return result
31 
32  # The following class will make a sequence, configure algorithms, and link
33  # them to GenericMonitoringTools
34  from AthenaMonitoring import AthMonitorCfgHelper
35  helper = AthMonitorCfgHelper(inputFlags,'JetTagAthMonitorCfg')
36 
37 
45  from AthenaConfiguration.ComponentFactory import CompFactory
46  from AthenaMonitoring.FilledBunchFilterToolConfig import FilledBunchFilterToolCfg
47  from AthenaMonitoring.BadLBFilterToolConfig import LArBadLBFilterToolCfg
48  from AthenaMonitoring.AtlasReadyFilterConfig import AtlasReadyFilterCfg
49 
50  jetTagMonAlg = helper.addAlgorithm(CompFactory.JetTagMonitorAlgorithm,'JetTagMonAlg',
51  addFilterTools = [FilledBunchFilterToolCfg(inputFlags),
52  LArBadLBFilterToolCfg(inputFlags),
53  AtlasReadyFilterCfg(inputFlags)])
54 
55  #anotherJetTagMonAlg = helper.addAlgorithm(JetTagMonitorAlgorithm,'AnotherJetTagMonAlg')
56 
57  # If for some really obscure reason you need to instantiate an algorithm
58  # yourself, the AddAlgorithm method will still configure the base
59  # properties and add the algorithm to the monitoring sequence.
60  # helper.AddAlgorithm(myExistingAlg)
61 
62 
65 
66  #objects collections
67  jetTagMonAlg.MuonsCollection = "Muons"
68  jetTagMonAlg.ElectronsCollection = "Electrons"
69  jetTagMonAlg.JetsCollection = "AntiKt4EMPFlowJets" #Standard jet collection
70 
71  #Skip jet filter selection in case of ion-ion or proton-ion collisions
72  if inputFlags.Reco.EnableHI:
73  if inputFlags.Tracking.doUPC:
74  jetTagMonAlg.SkipPreSelection = True
75  jetTagMonAlg.SkipJetFilter = True
76  else:
77  jetTagMonAlg.SkipPreSelection = True
78  jetTagMonAlg.SkipJetFilter = True
79  jetTagMonAlg.JetsCollection = "AntiKt4HIJets" #Heavy Ion jet collection
80 
81  #Early runs (Low number of bunchs): Temporary skipping 1 isolated lepton requirement
82  jetTagMonAlg.SkipPreSelection = True
83 
84  #Additional low-level taggers and extra plots (i.e. pu, pb, pc)
85  jetTagMonAlg.DoExtraTaggerHistos = True
86 
87  #general pT / eta cuts for jets
88  jetTagMonAlg.JetEtaCut = 2.5
89  jetTagMonAlg.JetPtCut = 20.0
90 
91  #soft muon pT cut for SMT jets
92  jetTagMonAlg.SoftMuonPtMin = 5.0
93  jetTagMonAlg.SoftMuonPtMax = 25.0
94 
95  #Track selection Tool, Loose WP: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/TrackingCPRecsEarly2018#Track_Selection
96  from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_Loose_Cfg
97  jetTagMonAlg.TrackSelectionTool = result.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(inputFlags))
98 
99  #Additional track selection for jet quality assessment
100  jetTagMonAlg.MinGoodTrackCut = 1
101  jetTagMonAlg.TrackPtCut = 1.0 #GeV
102  jetTagMonAlg.Trackd0Cut = 1.0 #mm
103  jetTagMonAlg.Trackz0sinCut = 1.5 #mm
104  jetTagMonAlg.TrackHitIBLCut = 1
105 
106  #lepton pT / eta cuts for TTbar events
107  jetTagMonAlg.ElectronPtCut = 25.0
108  jetTagMonAlg.MuonPtCut = 25.0
109  jetTagMonAlg.ElectronEtaCut = 2.47
110  jetTagMonAlg.MuonEtaCut = 2.5
111  jetTagMonAlg.ElectronEtaCrackLowCut = 1.37
112  jetTagMonAlg.ElectronEtaCrackHighCut = 1.52
113 
114  #isolation cuts corresponding to r21 FixedTightCut working point
115  jetTagMonAlg.ElectronTopoEtCone20Cut = 0.06
116  jetTagMonAlg.MuonTopoEtCone20Cut = 0.06
117  jetTagMonAlg.ElectronPtVarCone20Cut = 0.06
118  jetTagMonAlg.MuonPtVarCone30Cut = 0.06
119 
120  #JVT r22 recommendations: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/BTagRecommendationsRelease22#Default_Object_Recommendations_f
121  jetTagMonAlg.JVTCut = 0.5
122  jetTagMonAlg.JVTpTCut = 60.0
123  jetTagMonAlg.JVTetaCut = 2.4
124 
125  #Temporarily monitoring DL1dv01 while FTAG software is updated to make GN2v01 available also outside Derivations.
126  #Benchmarks from: https://ftag.docs.cern.ch/recommendations/algs/r22-preliminary/#preliminary-recommendation-as-of-07102023-superseded
127  jetTagMonAlg.TaggerName = "DL1dv01"
128 
129  jetTagMonAlg.WP60Cut = 4.854
130  jetTagMonAlg.WP70Cut = 3.493
131  jetTagMonAlg.WP77Cut = 2.456
132  jetTagMonAlg.WP85Cut = 0.948
133  jetTagMonAlg.cFraction = 0.018
134  MV_bins = 100
135  MV_start = -6.0
136  MV_stop = 14.0
137 
138 
141 
142  # Add a tool that doesn't have its own configuration function. In
143  # this jetTagging, no accumulator is returned, so no merge is necessary.
144  # from MyDomainPackage.MyDomainPackageConf import MyDomainTool
145  # jetTagMonAlg.MyDomainTool = MyDomainTool()
146 
147  # Add a generic monitoring tool (a "group" in old language). The returned
148  # object here is the standard GenericMonitoringTool.
149  GeneralGroup = helper.addGroup(jetTagMonAlg,'JetTagMonitor','JetTagging')
150  #AnotherGroup = helper.addGroup(anotherJetTagMonAlg,'JetTagMonitor')
151 
152 
156 
157  #General histograms: cutflow, run, PV, tracks, hits
158  GeneralGroup.defineHistogram('Cutflow_Event',
159  title='Event CutFlow;Pass;Events',
160  path='Shifter',
161  xbins=9,
162  xmin=-0.5,
163  xmax=8.5,
164  xlabels=["All", "Good LAr", "PV present",
165  "PV Tracks", "Iso lepton", ">= 1 El",
166  ">=1 Mu", "", ""]
167  )
168 
169  GeneralGroup.defineHistogram('Cutflow_Jet',
170  title='Jet CutFlow;Pass;Jets',
171  path='Shifter',
172  xbins=10,
173  xmin=-0.5,
174  xmax=9.5,
175  xlabels=["All", "Filter", "Kinematic",
176  "JVT", "Overlap", "Good",
177  "Suspect", "Bad", "", ""]
178  )
179 
180  GeneralGroup.defineHistogram('Run_lb',title='Lumi Block;LB;Events',path='Expert',xbins=1000,xmin=-0.5,xmax=999.5)
181  GeneralGroup.defineHistogram('Run_mu',title='Mu;<mu>;Events',path='Expert',xbins=100,xmin=0,xmax=100.0)
182  GeneralGroup.defineHistogram('PV_x',title='Primary vertices X position;X;Events',path='Expert',xbins=40,xmin=-2.0,xmax=2.0)
183  GeneralGroup.defineHistogram('PV_y',title='Primary vertices Y position;Y;Events',path='Expert',xbins=40,xmin=-2.0,xmax=2.0)
184  GeneralGroup.defineHistogram('PV_z',title='Primary vertices Z position;Z;Events',path='Expert',xbins=100,xmin=-250,xmax=250.0)
185 
186  GeneralGroup.defineHistogram('PV_n',title='Primary vertices;PV;Events',path='Shifter',xbins=100,xmin=0,xmax=100)
187  GeneralGroup.defineHistogram('PV_tracks_n',title='Number of tracks in PV;Tracks in PV;Number of tracks',path='Shifter',xbins=100,xmin=0,xmax=200)
188 
189  GeneralGroup.defineHistogram('Tracks_n',title='Track multiplicity;Tracks per event;Number of events',path='Shifter',xbins=150,xmin=0,xmax=1500)
190  GeneralGroup.defineHistogram('Hits_IBL',title='Number of IBL hits;Hits on track;Number of IBL hits on track',path='Shifter',xbins=5,xmin=0,xmax=5)
191  GeneralGroup.defineHistogram('Hits_Pixel',title='Number of Pixel hits;Hits on track;Number of Pixel hits on track',path='Shifter',xbins=10,xmin=0,xmax=10)
192  GeneralGroup.defineHistogram('Hits_SCT',title='Number of SCT hits;Hits on track;Number of SCT hits on track',path='Shifter',xbins=15,xmin=0,xmax=15)
193  GeneralGroup.defineHistogram('Hits_Si',title='Number of PIX+SCT hits;Hits on track;Number of PIX+SCT hits on track',path='Shifter',xbins=25,xmin=0,xmax=25)
194  GeneralGroup.defineHistogram('Hits_TRT',title='Number of TRT hits;Hits on track;Number of TRT hits on track',path='Shifter',xbins=100,xmin=0,xmax=100)
195  GeneralGroup.defineHistogram('Hits_ID',title='Number of ID hits;Hits on track;Number of ID hits on track',path='Shifter',xbins=150,xmin=0,xmax=150)
196 
197  GeneralGroup.defineHistogram('PV_n_on_mu',title='Primary vertices / <mu>;PV / <mu>;Events',path='Expert',xbins=100,xmin=0,xmax=10)
198  GeneralGroup.defineHistogram('PV_tracks_n_on_mu',title='Number of tracks in PV / <mu>;Tracks in PV / <mu>;Number of tracks',path='Expert',xbins=100,xmin=0,xmax=20)
199  GeneralGroup.defineHistogram('Tracks_n_on_mu',title='Track multiplicity / <mu>;Tracks per event / <mu>;Number of events',path='Expert',xbins=100,xmin=0,xmax=100)
200 
201  #Jet tracks hits and impact parameters (loose tracks)
202  GeneralGroup.defineHistogram('JetTracks_eta_loose_IBL,JetTracks_phi_loose_IBL;JetTracks_MAP_loose_IBL',title='2D MAP of loose tracks from jets with IBL hit;Track #eta;Track #phi',type='TH2F',path='JetTracks',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
203  GeneralGroup.defineHistogram('JetTracks_eta_loose_BL,JetTracks_phi_loose_BL;JetTracks_MAP_loose_BL',title='2D MAP of loose tracks from jets with BL hit;Track #eta;Track #phi',type='TH2F',path='JetTracks',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
204 
205  GeneralGroup.defineHistogram('JetTracks_Hits_IBL',title='Number of IBL hits on tracks in jets;Hits on track;Number of IBL hits on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
206  GeneralGroup.defineHistogram('JetTracks_Hits_IBL_expect',title='Number of IBL hits on tracks in jets;Hits on track;Number of IBL hits on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
207  GeneralGroup.defineHistogram('JetTracks_Hits_BL',title='Number of B-Layer hits on tracks in jets;Hits on track;Number of B-Layer hits on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
208  GeneralGroup.defineHistogram('JetTracks_Hits_BL_expect',title='Number of B-Layer hits on tracks in jets;Hits on track;Number of B-Layer hits on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
209 
210  GeneralGroup.defineHistogram('JetTracks_Hits_PIX',title='Number of Pixel hits on tracks in jets;Hits on track;Number of Pixel hits on track',path='JetTracks',xbins=10,xmin=0,xmax=10)
211  GeneralGroup.defineHistogram('JetTracks_Holes_PIX',title='Number of Pixel holes on tracks in jets;Holes on track;Number of Pixel holes on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
212  GeneralGroup.defineHistogram('JetTracks_Hits_SCT',title='Number of SCT hits on tracks in jets;Hits on track;Number of SCT hits on track',path='JetTracks',xbins=15,xmin=0,xmax=15)
213  GeneralGroup.defineHistogram('JetTracks_Holes_SCT',title='Number of SCT holes on tracks in jets;Holes on track;Number of SCT holes on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
214  GeneralGroup.defineHistogram('JetTracks_Hits_TRT',title='Number of TRT hits on tracks in jets;Hits on track;Number of TRT hits on track',path='JetTracks',xbins=100,xmin=0,xmax=100)
215  GeneralGroup.defineHistogram('JetTracks_Hits_Si',title='Number of Si (PIX+SCT) hits on tracks in jets;Hits on track;Number of Si (PIX+SCT) hits on track',path='JetTracks',xbins=20,xmin=0,xmax=20)
216  GeneralGroup.defineHistogram('JetTracks_Holes_Si',title='Number of Si (PIX+SCT) holes on tracks in jets;Holes on track;Number of Si (PIX+SCT) holes on track',path='JetTracks',xbins=5,xmin=0,xmax=5)
217 
218  GeneralGroup.defineHistogram('JetTracks_IP_d0',title='d_0 of tracks in jet;d_0;Tracks in jets',path='JetTracks',xbins=100,xmin=-5,xmax=5)
219  GeneralGroup.defineHistogram('JetTracks_IP_d0s',title='sigma d_0 of tracks in jet;sigma d_0;Tracks in jets',path='JetTracks',xbins=50,xmin=0,xmax=5)
220  GeneralGroup.defineHistogram('JetTracks_IP_d0si',title='significance d_0 of tracks in jet;significance d_0;Tracks in jets',path='JetTracks',xbins=100,xmin=-5,xmax=5)
221  GeneralGroup.defineHistogram('JetTracks_IP_z0',title='z_0 of tracks in jet;z_0;Tracks in jets',path='JetTracks',xbins=100,xmin=-5,xmax=5)
222  GeneralGroup.defineHistogram('JetTracks_IP_z0s',title='sigma z_0 of tracks in jet;sigma z_0;Tracks in jets',path='JetTracks',xbins=50,xmin=0,xmax=5)
223  GeneralGroup.defineHistogram('JetTracks_IP_z0si',title='significance z_0 of tracks in jet;significance z_0;Tracks in jets',path='JetTracks',xbins=100,xmin=-5,xmax=5)
224  GeneralGroup.defineHistogram('JetTracks_IP_z0sin',title='z0 #times sin (#theta) of tracks in jet;z0 #times sin (#theta);Tracks in jets',path='JetTracks',xbins=100,xmin=-5,xmax=5)
225 
226  #Jet quality selection (good, suspect, bad) based on its tracks
227  GeneralGroup.defineHistogram('JetTracks_n_0_all',title='Jet track multiplicity (all);Tracks;Number of tracks per jet',path='TracksInJetSelection',xbins=50,xmin=0,xmax=50)
228  GeneralGroup.defineHistogram('JetTracks_n_1_loose',title='Jet track multiplicity (loose);Tracks;Number of tracks per jet',path='TracksInJetSelection',xbins=50,xmin=0,xmax=50)
229  GeneralGroup.defineHistogram('JetTracks_n_2_kin',title='Jet track multiplicity (>1 GeV);Tracks;Number of tracks per jet',path='TracksInJetSelection',xbins=25,xmin=0,xmax=25)
230  GeneralGroup.defineHistogram('JetTracks_n_3_IP',title='Jet track multiplicity (IP cut);Tracks;Number of tracks per jet',path='TracksInJetSelection',xbins=25,xmin=0,xmax=25)
231  GeneralGroup.defineHistogram('JetTracks_n_4_IBL',title='Jet track multiplicity (I-BL hit);Tracks;Number of tracks per jet',path='TracksInJetSelection',xbins=25,xmin=0,xmax=25)
232 
233  GeneralGroup.defineHistogram('JetTracks_pT_0_all',title='pT of tracks in jet (all);pT [GeV];Tracks in jets',path='TracksInJetSelection',xbins=60,xmin=0,xmax=30)
234  GeneralGroup.defineHistogram('JetTracks_eta_0_all',title='#eta of tracks in jet (all);#eta;Tracks in jets',path='TracksInJetSelection',xbins=100,xmin=-2.5,xmax=2.5)
235  GeneralGroup.defineHistogram('JetTracks_phi_0_all',title='#phi of tracks in jet (all);#phi;Tracks in jets',path='TracksInJetSelection',xbins=100,xmin=-1*math.pi,xmax=math.pi)
236  GeneralGroup.defineHistogram('JetTracks_DR_0_all',title='DeltaR of tracks in jet (all);DeltaR;Tracks in jets',path='TracksInJetSelection',xbins=100,xmin=0,xmax=1)
237 
238  GeneralGroup.defineHistogram('JetTracks_pT_1_loose',title='pT of tracks in jet (loose);pT [GeV];Tracks in jets',path='TracksInJetSelection',xbins=60,xmin=0,xmax=30)
239  GeneralGroup.defineHistogram('JetTracks_eta_1_loose',title='#eta of tracks in jet (loose);#eta;Tracks in jets',path='TracksInJetSelection',xbins=100,xmin=-2.5,xmax=2.5)
240  GeneralGroup.defineHistogram('JetTracks_phi_1_loose',title='#phi of tracks in jet (loose);#phi;Tracks in jets',path='TracksInJetSelection',xbins=100,xmin=-1*math.pi,xmax=math.pi)
241 
242  #2D Map of selection of tracks in jets
243  GeneralGroup.defineHistogram('JetTracks_eta_0_all,JetTracks_phi_0_all;JetTracks_MAP_0_all',title='2D MAP of tracks from jets (all);Track #eta;Track #phi',type='TH2F',path='TracksInJetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
244  GeneralGroup.defineHistogram('JetTracks_eta_1_loose,JetTracks_phi_1_loose;JetTracks_MAP_1_loose',title='2D MAP of tracks from jets (loose);Track #eta;Track #phi',type='TH2F',path='TracksInJetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
245  GeneralGroup.defineHistogram('JetTracks_eta_2_kin,JetTracks_phi_2_kin;JetTracks_MAP_2_kin',title='2D MAP of tracks from jets (>1 GeV);Track #eta;Track #phi',type='TH2F',path='TracksInJetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
246  GeneralGroup.defineHistogram('JetTracks_eta_3_IP,JetTracks_phi_3_IP;JetTracks_MAP_3_IP',title='2D MAP of tracks from jets passed (IP sel);Track #eta;Track #phi',type='TH2F',path='TracksInJetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
247  GeneralGroup.defineHistogram('JetTracks_eta_4_IBL,JetTracks_phi_4_IBL;JetTracks_MAP_4_IBL',title='2D MAP of tracks from jets passed (I-BL hit);Track #eta;Track #phi',type='TH2F',path='TracksInJetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
248 
249  #Jets from ttbar events histograms
250  GeneralGroup.defineHistogram('Muon_pT',title='Muon pT;Muon pT;Events',path='TTbarEventSelection',xbins=100,xmin=0.0,xmax=200000.0)
251  GeneralGroup.defineHistogram('Electron_pT',title='Electron pT;Electron pT;Events',path='TTbarEventSelection',xbins=100,xmin=0.0,xmax=200000.0)
252 
253  GeneralGroup.defineHistogram('IsolatedMuons_n',title='Number of isolated Muons;Isolated muons;Number of events',path='TTbarEventSelection',xbins=3,xmin=-0.5,xmax=2.5)
254  GeneralGroup.defineHistogram('IsolatedElectrons_n',title='Number of isolated Electrons;Isolated electrons;Number of events',path='TTbarEventSelection',xbins=3,xmin=-0.5,xmax=2.5)
255 
256  GeneralGroup.defineHistogram('nTTbarGoodJets',title='Number of good jets in ttbar events;Good jets per event;Number of events',path='TTbarEventSelection',xbins=10,xmin=-0.5,xmax=9.5)
257 
258  GeneralGroup.defineHistogram('TTbarJets_n',title='Total number of ttbar jets;Number of jets;Number of events',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
259  GeneralGroup.defineHistogram('TTbarJets_n_60tag',title='Number of ttbar jets passing 60 tag WP; Jets passing 60 tag WP;Number of ttbar jets',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
260  GeneralGroup.defineHistogram('TTbarJets_n_70tag',title='Number of ttbar jets passing 70 tag WP; Jets passing 70 tag WP;Number of ttbar jets',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
261  GeneralGroup.defineHistogram('TTbarJets_n_77tag',title='Number of ttbar jets passing 77 tag WP; Jets passing 77 tag WP;Number of ttbar jets',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
262  GeneralGroup.defineHistogram('TTbarJets_n_85tag',title='Number of ttbar jets passing 85 tag WP; Jets passing 60 tag WP;Number of ttbar jets',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
263  GeneralGroup.defineHistogram('pass60n,TTbarJets_n',type='TEfficiency',title='TTbar jets 60 tag WP Efficiency;ttbar jets;60 tag WP Efficiency',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
264  GeneralGroup.defineHistogram('pass70n,TTbarJets_n',type='TEfficiency',title='TTbar jets 70 tag WP Efficiency;ttbar jets;70 tag WP Efficiency',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
265  GeneralGroup.defineHistogram('pass77n,TTbarJets_n',type='TEfficiency',title='TTbar jets 77 tag WP Efficiency;ttbar jets;77 tag WP Efficiency',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
266  GeneralGroup.defineHistogram('pass85n,TTbarJets_n',type='TEfficiency',title='TTbar jets 85 tag WP Efficiency;ttbar jets;85 tag WP Efficiency',path='TTbarEventSelection',xbins=1,xmin=-0.5,xmax=0.5)
267 
268  GeneralGroup.defineHistogram('TTbarJets_MV',title='MV of jets in ttbar events;Jet MV;Number of jets',path='JetTTbarEvents',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
269  GeneralGroup.defineHistogram('TTbarJets_pT',title='Number of ttbar jets vs pT;ttbar jet pT;Number of ttbar jets',path='JetTTbarEvents',xbins=40,xmin=0,xmax=200)
270  GeneralGroup.defineHistogram('TTbarJets_pT_60tag',title='Number of ttbar jets passing 60 tag WP vs pT;ttbar jet pT;Number of ttbar jets',path='JetTTbarEvents',xbins=40,xmin=0,xmax=200)
271  GeneralGroup.defineHistogram('TTbarJets_pT_70tag',title='Number of ttbar jets passing 70 tag WP vs pT;ttbar jet pT;Number of ttbar jets',path='JetTTbarEvents',xbins=40,xmin=0,xmax=200)
272  GeneralGroup.defineHistogram('TTbarJets_pT_77tag',title='Number of ttbar jets passing 77 tag WP vs pT;ttbar jet pT;Number of ttbar jets',path='JetTTbarEvents',xbins=40,xmin=0,xmax=200)
273  GeneralGroup.defineHistogram('TTbarJets_pT_85tag',title='Number of ttbar jets passing 85 tag WP vs pT;ttbar jet pT;Number of ttbar jets',path='JetTTbarEvents',xbins=40,xmin=0,xmax=200)
274  GeneralGroup.defineHistogram('pass60p,TTbarJets_pT',type='TEfficiency',title='TTbar jets 60 tag WP Efficiency vs pT;ttbar jet pT;60 tag WP Efficiency',path='JetTTbarEvents',xbins=40,xmin=0.0,xmax=200.0)
275  GeneralGroup.defineHistogram('pass70p,TTbarJets_pT',type='TEfficiency',title='TTbar jets 70 tag WP Efficiency vs pT;ttbar jet pT;70 tag WP Efficiency',path='JetTTbarEvents',xbins=40,xmin=0.0,xmax=200.0)
276  GeneralGroup.defineHistogram('pass77p,TTbarJets_pT',type='TEfficiency',title='TTbar jets 77 tag WP Efficiency vs pT;ttbar jet pT;77 tag WP Efficiency',path='JetTTbarEvents',xbins=40,xmin=0.0,xmax=200.0)
277  GeneralGroup.defineHistogram('pass85p,TTbarJets_pT',type='TEfficiency',title='TTbar jets 85 tag WP Efficiency vs pT;ttbar jet pT;85 tag WP Efficiency',path='JetTTbarEvents',xbins=40,xmin=0.0,xmax=200.0)
278 
279  # SMT jets histograms
280  GeneralGroup.defineHistogram('SoftMuons_n',title='Number of Soft Muons;Muons per event;Number of muons',path='SMTJetSelection',xbins=3,xmin=-0.5,xmax=2.5)
281  GeneralGroup.defineHistogram('SMTJets_n',title='Number of SMT Jets;Jets per event;Number of jets',path='SMTJetSelection',xbins=3,xmin=-0.5,xmax=2.5)
282 
283  GeneralGroup.defineHistogram('SMTJets_dr',title='DeltaR between jet and soft muon;DR;Number of SMT candidates',path='SMTJetSelection',xbins=40,xmin=0,xmax=0.4)
284  GeneralGroup.defineHistogram('SoftMuons_pT',title='pT of SMT Muons;Muon pT [GeV];Number of muons',path='SMTJetSelection',xbins=50,xmin=0,xmax=100)
285  GeneralGroup.defineHistogram('SMTJets_pT',title='pT of SMT Jets;Jet pT [GeV];Number of jets',path='SMTJetSelection',xbins=100,xmin=0,xmax=300)
286  GeneralGroup.defineHistogram('SMTJets_pTratio',title='pT ratio of SMT Jets (mu/jet);pT ratio;Number of SMT jets',path='SMTJetSelection',xbins=50,xmin=0,xmax=1)
287  GeneralGroup.defineHistogram('SMTJets_pTrel',title='pTrel of SMT Jets;pTrel;Number of jets',path='SMTJetSelection',xbins=50,xmin=0,xmax=5)
288  GeneralGroup.defineHistogram('SMTJets_MV',title='MV of SMT Jets;MV;Number of jets',path='SMTJetSelection',xbins=50,xmin=MV_start,xmax=MV_stop)
289 
290  #Distributions before jet selection (all jets from selected events)
291  GeneralGroup.defineHistogram('jet_n_all',title='Jet multiplicity (before selection);Number of jets;Events',path='Shifter',xbins=50,xmin=0,xmax=50)
292  GeneralGroup.defineHistogram('jet_pT_all',title='Jet pT (before selection);Jet pT [GeV];Jets',path='JetSelection',xbins=100,xmin=0.0,xmax=200.0)
293  GeneralGroup.defineHistogram('jet_eta_all',title='Jet eta (before selection);Jet #eta;Jets',path='JetSelection',xbins=100,xmin=-2.5,xmax=2.5)
294  GeneralGroup.defineHistogram('jet_phi_all',title='Jet phi (before selection);Jet #phi;Jets',path='JetSelection',xbins=100,xmin=-1*math.pi,xmax=math.pi)
295  GeneralGroup.defineHistogram('jet_MV_all',title='Jet MV (before selection);Jet MV;Jets',path='JetSelection',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
296 
297  #2D maps during jet selection
298  GeneralGroup.defineHistogram('jet_eta_all,jet_phi_all;jet_MAP_0_all',title='2D MAP of all jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
299  GeneralGroup.defineHistogram('jet_eta_filter,jet_phi_filter;jet_MAP_1_filter',title='2D MAP of jets passing basic filter;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=50,xmin=-2.5,xmax=2.5,ybins=100,ymin=-1*math.pi,ymax=math.pi)
300  GeneralGroup.defineHistogram('jet_eta_kin,jet_phi_kin;jet_MAP_2_kin',title='2D MAP of jets passing kinematic selection;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
301  GeneralGroup.defineHistogram('jet_eta_jvt,jet_phi_jvt;jet_MAP_3_jvt',title='2D MAP of jets passing JVT;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
302  GeneralGroup.defineHistogram('jet_eta_overlap,jet_phi_overlap;jet_MAP_4_overlap',title='2D MAP of not overlapping jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
303  GeneralGroup.defineHistogram('jet_eta_good,jet_phi_good;jet_MAP_5_good',title='2D MAP of good jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
304  GeneralGroup.defineHistogram('jet_eta_suspect,jet_phi_suspect;jet_MAP_6_suspect',title='2D MAP of suspect jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
305  GeneralGroup.defineHistogram('jet_eta_bad,jet_phi_bad;jet_MAP_7_bad',title='2D MAP of bad jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
306  GeneralGroup.defineHistogram('jet_eta_smt,jet_phi_smt;jet_MAP_X_smt',title='2D MAP of SMT jets;Jet #eta;Jet #phi',type='TH2F',path='JetSelection',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
307 
308  GeneralGroup.defineHistogram('jet_MV_2_beforeJVTCut',title='Jet MV before JVT cut;Jet MV;Jets',path='JetSelection',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
309  GeneralGroup.defineHistogram('jet_MV_3_afterJVTCut',title='Jet MV after JVT cut;Jet MV;Jets',path='JetSelection',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
310 
311  #Distributions for good jets (passing Good/Suspect/Bad selection)
312  GeneralGroup.defineHistogram('jet_pT_good',title='Good jets pT;Good Jet pT [GeV];Jets',path='Shifter',xbins=100,xmin=0.0,xmax=200.0)
313  GeneralGroup.defineHistogram('jet_eta_good',title='Good jets #eta;Good Jet #eta;Jets',path='Shifter',xbins=100,xmin=-2.5,xmax=2.5)
314  GeneralGroup.defineHistogram('jet_phi_good',title='Good jets #phi;Good Jet #phi;Jets',path='Shifter',xbins=100,xmin=-1*math.pi,xmax=math.pi)
315  GeneralGroup.defineHistogram('jet_MV_good',title='Good jets MV;Good Jet MV;Jets',path='Shifter',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
316 
317  #Extra Taggers plots
318  GeneralGroup.defineHistogram('jet_MV_pu_good',title='Good jets MV pu;Good Jet MV pu;Jets',path='Shifter',xbins=100,xmin=0,xmax=1.0)
319  GeneralGroup.defineHistogram('jet_MV_pc_good',title='Good jets MV pc;Good Jet MV pc;Jets',path='Shifter',xbins=100,xmin=0,xmax=1.0)
320  GeneralGroup.defineHistogram('jet_MV_pb_good',title='Good jets MV pb;Good Jet MV pb;Jets',path='Shifter',xbins=100,xmin=0,xmax=1.0)
321 
322 
323  #Good jet: tag weight histograms in bins: mu, pt, eta, phi
324  GeneralGroup.defineHistogram('jet_MV_mu_0_30',title='Jet MV in mu bin 1 : <mu> = [0,30];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
325  GeneralGroup.defineHistogram('jet_MV_mu_30_50',title='Jet MV in mu bin 2 : <mu> = [30,50];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
326  GeneralGroup.defineHistogram('jet_MV_mu_50_100',title='Jet MV in mu bin 3 : <mu> = [50,100];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
327 
328  GeneralGroup.defineHistogram('jet_MV_pt_0_20',title='Jet MV in pT bin 1 : pT = [0,20];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
329  GeneralGroup.defineHistogram('jet_MV_pt_20_40',title='Jet MV in pT bin 2 : pT = [20,40];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
330  GeneralGroup.defineHistogram('jet_MV_pt_40_70',title='Jet MV in pT bin 3 : pT = [40,70];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
331  GeneralGroup.defineHistogram('jet_MV_pt_70_100',title='Jet MV in pT bin 4 : pT = [70,100];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
332  GeneralGroup.defineHistogram('jet_MV_pt_100_150',title='Jet MV in pT bin 5 : pT = [100,150];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
333  GeneralGroup.defineHistogram('jet_MV_pt_150_200',title='Jet MV in pT bin 6 : pT = [150,200];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
334  GeneralGroup.defineHistogram('jet_MV_pt_200_1000',title='Jet MV in pT bin 7 : pT = [200,1000];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
335 
336  GeneralGroup.defineHistogram('jet_MV_eta_00_05',title='Jet MV in #eta bin 1 : #eta = [0.0,0.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
337  GeneralGroup.defineHistogram('jet_MV_eta_05_10',title='Jet MV in #eta bin 2 : #eta = [0.5,1.0];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
338  GeneralGroup.defineHistogram('jet_MV_eta_10_15',title='Jet MV in #eta bin 3 : #eta = [1.0,1.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
339  GeneralGroup.defineHistogram('jet_MV_eta_15_20',title='Jet MV in #eta bin 4 : #eta = [1.5,2.0];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
340  GeneralGroup.defineHistogram('jet_MV_eta_20_25',title='Jet MV in #eta bin 5 : #eta = [2.0,2.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
341 
342  GeneralGroup.defineHistogram('jet_MV_phi_00_05',title='Jet MV in #phi bin 1 : #phi = [0.0,0.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
343  GeneralGroup.defineHistogram('jet_MV_phi_05_10',title='Jet MV in #phi bin 2 : #phi = [0.5,1.0];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
344  GeneralGroup.defineHistogram('jet_MV_phi_10_15',title='Jet MV in #phi bin 3 : #phi = [1.0,1.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
345  GeneralGroup.defineHistogram('jet_MV_phi_15_20',title='Jet MV in #phi bin 4 : #phi = [1.5,2.0];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
346  GeneralGroup.defineHistogram('jet_MV_phi_20_25',title='Jet MV in #phi bin 5 : #phi = [2.0,2.5];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
347  GeneralGroup.defineHistogram('jet_MV_phi_25_31',title='Jet MV in #phi bin 6 : #phi = [2.5,3.1];Jet MV;Jets',path='JetTagger',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
348 
349  #Good jet: eta and phi distributions of jets passing WPs and efficiency
350  GeneralGroup.defineHistogram('jet_eta',title='Number of jets before passing tag vs #eta;Jet #eta;Number of jets',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
351  GeneralGroup.defineHistogram('jet_eta_60tag',title='Number of jets passing 60 tag WP vs #eta;Jet #eta;Number of jets',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
352  GeneralGroup.defineHistogram('jet_eta_70tag',title='Number of jets passing 70 tag WP vs #eta;Jet #eta;Number of jets',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
353  GeneralGroup.defineHistogram('jet_eta_77tag',title='Number of jets passing 77 tag WP vs #eta;Jet #eta;Number of jets',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
354  GeneralGroup.defineHistogram('jet_eta_85tag',title='Number of jets passing 85 tag WP vs #eta;Jet #eta;Number of jets',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
355  GeneralGroup.defineHistogram('pass60e,jet_eta',type='TEfficiency',title='Jets 60 tag WP Efficiency vs #eta;Jet #eta;60 tag WP Efficiency',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
356  GeneralGroup.defineHistogram('pass70e,jet_eta',type='TEfficiency',title='Jets 70 tag WP Efficiency vs #eta;Jet #eta;70 tag WP Efficiency',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
357  GeneralGroup.defineHistogram('pass77e,jet_eta',type='TEfficiency',title='Jets 77 tag WP Efficiency vs #eta;Jet #eta;77 tag WP Efficiency',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
358  GeneralGroup.defineHistogram('pass85e,jet_eta',type='TEfficiency',title='Jets 85 tag WP Efficiency vs #eta;Jet #eta;85 tag WP Efficiency',path='JetEtaPhi',xbins=20,xmin=-2.5,xmax=2.5)
359 
360  GeneralGroup.defineHistogram('jet_phi',title='Number of jets before passing tag vs #phi;Jet #phi;Number of jets',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
361  GeneralGroup.defineHistogram('jet_phi_60tag',title='Number of jets passing 60 tag WP vs #phi;Jet #phi;Number of jets',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
362  GeneralGroup.defineHistogram('jet_phi_70tag',title='Number of jets passing 70 tag WP vs #phi;Jet #phi;Number of jets',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
363  GeneralGroup.defineHistogram('jet_phi_77tag',title='Number of jets passing 77 tag WP vs #phi;Jet #phi;Number of jets',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
364  GeneralGroup.defineHistogram('jet_phi_85tag',title='Number of jets passing 85 tag WP vs #phi;Jet #phi;Number of jets',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
365  GeneralGroup.defineHistogram('pass60f,jet_phi',type='TEfficiency',title='Jets 60 tag WP Efficiency vs #phi;Jet #phi;60 tag WP Efficiency',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
366  GeneralGroup.defineHistogram('pass70f,jet_phi',type='TEfficiency',title='Jets 70 tag WP Efficiency vs #phi;Jet #phi;70 tag WP Efficiency',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
367  GeneralGroup.defineHistogram('pass77f,jet_phi',type='TEfficiency',title='Jets 77 tag WP Efficiency vs #phi;Jet #phi;77 tag WP Efficiency',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
368  GeneralGroup.defineHistogram('pass85f,jet_phi',type='TEfficiency',title='Jets 85 tag WP Efficiency vs #phi;Jet #phi;85 tag WP Efficiency',path='JetEtaPhi',xbins=24,xmin=-1*math.pi,xmax=math.pi)
369 
370  #Good jet: 2D MAP (eta/phi) and 2D TEfficiency of fraction of good jets
371  GeneralGroup.defineHistogram('jet_eta_60tag,jet_phi_60tag;jet_MAP_60tag',title='2D MAP of jets passing 60 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetEtaPhi',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
372  GeneralGroup.defineHistogram('jet_eta_70tag,jet_phi_70tag;jet_MAP_70tag',title='2D MAP of jets passing 70 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetEtaPhi',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
373  GeneralGroup.defineHistogram('jet_eta_77tag,jet_phi_77tag;jet_MAP_77tag',title='2D MAP of jets passing 77 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetEtaPhi',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
374  GeneralGroup.defineHistogram('jet_eta_85tag,jet_phi_85tag;jet_MAP_85tag',title='2D MAP of jets passing 85 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetEtaPhi',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
375 
376  #Suspect jet plots (same definition of good jet plots) --> jet quality from Suspect/Suspect/Bad selection)
377  GeneralGroup.defineHistogram('jet_pT_suspect',title='Suspect jets pT;Suspect Jet pT [GeV];Jets',path='JetSuspect',xbins=100,xmin=0.0,xmax=200.0)
378  GeneralGroup.defineHistogram('jet_eta_suspect',title='Suspect jets #eta;Suspect Jet #eta;Jets',path='JetSuspect',xbins=100,xmin=-2.5,xmax=2.5)
379  GeneralGroup.defineHistogram('jet_phi_suspect',title='Suspect jets #phi;Suspect Jet #phi;Jets',path='JetSuspect',xbins=100,xmin=-1*math.pi,xmax=math.pi)
380  GeneralGroup.defineHistogram('jet_MV_suspect',title='Suspect jets MV;Suspect Jet MV;Jets',path='JetSuspect',xbins=MV_bins,xmin=MV_start,xmax=MV_stop)
381 
382  GeneralGroup.defineHistogram('sus_jet_MV_pt_0_20',title='Suspect jet MV in pT bin 1 : pT = [0,20];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
383  GeneralGroup.defineHistogram('sus_jet_MV_pt_20_40',title='Suspect jet MV in pT bin 2 : pT = [20,40];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
384  GeneralGroup.defineHistogram('sus_jet_MV_pt_40_70',title='Suspect jet MV in pT bin 3 : pT = [40,70];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
385  GeneralGroup.defineHistogram('sus_jet_MV_pt_70_100',title='Suspect jet MV in pT bin 4 : pT = [70,100];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
386  GeneralGroup.defineHistogram('sus_jet_MV_pt_100_150',title='Suspect jet MV in pT bin 5 : pT = [100,150];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
387  GeneralGroup.defineHistogram('sus_jet_MV_pt_150_200',title='Suspect jet MV in pT bin 6 : pT = [150,200];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
388  GeneralGroup.defineHistogram('sus_jet_MV_pt_200_1000',title='Suspect jet MV in pT bin 7 : pT = [200,1000];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
389 
390  GeneralGroup.defineHistogram('sus_jet_MV_eta_00_05',title='Suspect jet MV in #eta bin 1 : #eta = [0.0,0.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
391  GeneralGroup.defineHistogram('sus_jet_MV_eta_05_10',title='Suspect jet MV in #eta bin 2 : #eta = [0.5,1.0];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
392  GeneralGroup.defineHistogram('sus_jet_MV_eta_10_15',title='Suspect jet MV in #eta bin 3 : #eta = [1.0,1.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
393  GeneralGroup.defineHistogram('sus_jet_MV_eta_15_20',title='Suspect jet MV in #eta bin 4 : #eta = [1.5,2.0];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
394  GeneralGroup.defineHistogram('sus_jet_MV_eta_20_25',title='Suspect jet MV in #eta bin 5 : #eta = [2.0,2.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
395 
396  GeneralGroup.defineHistogram('sus_jet_MV_phi_00_05',title='Suspect jet MV in #phi bin 1 : #phi = [0.0,0.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
397  GeneralGroup.defineHistogram('sus_jet_MV_phi_05_10',title='Suspect jet MV in #phi bin 2 : #phi = [0.5,1.0];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
398  GeneralGroup.defineHistogram('sus_jet_MV_phi_10_15',title='Suspect jet MV in #phi bin 3 : #phi = [1.0,1.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
399  GeneralGroup.defineHistogram('sus_jet_MV_phi_15_20',title='Suspect jet MV in #phi bin 4 : #phi = [1.5,2.0];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
400  GeneralGroup.defineHistogram('sus_jet_MV_phi_20_25',title='Suspect jet MV in #phi bin 5 : #phi = [2.0,2.5];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
401  GeneralGroup.defineHistogram('sus_jet_MV_phi_25_31',title='Suspect jet MV in #phi bin 6 : #phi = [2.5,3.1];Jet MV;Jets',path='JetSuspect',xbins=int(MV_bins/2),xmin=MV_start,xmax=MV_stop)
402 
403  GeneralGroup.defineHistogram('sus_jet_eta',title='Number of Suspect jets before passing tag vs #eta;Jet #eta;Number of jets',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
404  GeneralGroup.defineHistogram('sus_jet_eta_60tag',title='Number of Suspect jets passing 60 tag WP vs #eta;Jet #eta;Number of jets',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
405  GeneralGroup.defineHistogram('sus_jet_eta_70tag',title='Number of Suspect jets passing 70 tag WP vs #eta;Jet #eta;Number of jets',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
406  GeneralGroup.defineHistogram('sus_jet_eta_77tag',title='Number of Suspect jets passing 77 tag WP vs #eta;Jet #eta;Number of jets',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
407  GeneralGroup.defineHistogram('sus_jet_eta_85tag',title='Number of Suspect jets passing 85 tag WP vs #eta;Jet #eta;Number of jets',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
408  GeneralGroup.defineHistogram('pass60e,sus_jet_eta',type='TEfficiency',title='Suspect jets 60 tag WP Efficiency vs #eta;Jet #eta;60 tag WP Efficiency',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
409  GeneralGroup.defineHistogram('pass70e,sus_jet_eta',type='TEfficiency',title='Suspect jets 70 tag WP Efficiency vs #eta;Jet #eta;70 tag WP Efficiency',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
410  GeneralGroup.defineHistogram('pass77e,sus_jet_eta',type='TEfficiency',title='Suspect jets 77 tag WP Efficiency vs #eta;Jet #eta;77 tag WP Efficiency',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
411  GeneralGroup.defineHistogram('pass85e,sus_jet_eta',type='TEfficiency',title='Suspect jets 85 tag WP Efficiency vs #eta;Jet #eta;85 tag WP Efficiency',path='JetSuspect',xbins=20,xmin=-2.5,xmax=2.5)
412 
413  GeneralGroup.defineHistogram('sus_jet_phi',title='Number of Suspect jets before passing tag vs #phi;Jet #phi;Number of jets',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
414  GeneralGroup.defineHistogram('sus_jet_phi_60tag',title='Number of Suspect jets passing 60 tag WP vs #phi;Jet #phi;Number of jets',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
415  GeneralGroup.defineHistogram('sus_jet_phi_70tag',title='Number of Suspect jets passing 70 tag WP vs #phi;Jet #phi;Number of jets',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
416  GeneralGroup.defineHistogram('sus_jet_phi_77tag',title='Number of Suspect jets passing 77 tag WP vs #phi;Jet #phi;Number of jets',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
417  GeneralGroup.defineHistogram('sus_jet_phi_85tag',title='Number of Suspect jets passing 85 tag WP vs #phi;Jet #phi;Number of jets',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
418  GeneralGroup.defineHistogram('pass60f,sus_jet_phi',type='TEfficiency',title='Suspect jets 60 tag WP Efficiency vs #phi;Jet #phi;60 tag WP Efficiency',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
419  GeneralGroup.defineHistogram('pass70f,sus_jet_phi',type='TEfficiency',title='Suspect jets 70 tag WP Efficiency vs #phi;Jet #phi;70 tag WP Efficiency',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
420  GeneralGroup.defineHistogram('pass77f,sus_jet_phi',type='TEfficiency',title='Suspect jets 77 tag WP Efficiency vs #phi;Jet #phi;77 tag WP Efficiency',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
421  GeneralGroup.defineHistogram('pass85f,sus_jet_phi',type='TEfficiency',title='Suspect jets 85 tag WP Efficiency vs #phi;Jet #phi;85 tag WP Efficiency',path='JetSuspect',xbins=24,xmin=-1*math.pi,xmax=math.pi)
422 
423  GeneralGroup.defineHistogram('sus_jet_eta_60tag,sus_jet_phi_60tag;sus_jet_MAP_60tag',title='2D MAP of Suspect jets passing 60 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetSuspect',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
424  GeneralGroup.defineHistogram('sus_jet_eta_70tag,sus_jet_phi_70tag;sus_jet_MAP_70tag',title='2D MAP of Suspect jets passing 70 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetSuspect',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
425  GeneralGroup.defineHistogram('sus_jet_eta_77tag,sus_jet_phi_77tag;sus_jet_MAP_77tag',title='2D MAP of Suspect jets passing 77 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetSuspect',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
426  GeneralGroup.defineHistogram('sus_jet_eta_85tag,sus_jet_phi_85tag;sus_jet_MAP_85tag',title='2D MAP of Suspect jets passing 85 tag WP;Jet #eta;Jet #phi',type='TH2F',path='JetSuspect',xbins=25,xmin=-2.5,xmax=2.5,ybins=50,ymin=-1*math.pi,ymax=math.pi)
427 
428 
433  result.merge(helper.result())
434  return result
435 
436  # # Otherwise, merge with result object and return
437  # acc, seq = helper.result()
438  # result.merge(acc)
439  # return result, seq
440 
python.FilledBunchFilterToolConfig.FilledBunchFilterToolCfg
def FilledBunchFilterToolCfg(AthConfigFlags flags)
Definition: FilledBunchFilterToolConfig.py:9
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.InDetTrackSelectionToolConfig.InDetTrackSelectionTool_Loose_Cfg
def InDetTrackSelectionTool_Loose_Cfg(flags, name="InDetTrackSelectionTool_Loose", **kwargs)
Configs based on CutLevel Loose #####.
Definition: InDetTrackSelectionToolConfig.py:36
python.BadLBFilterToolConfig.LArBadLBFilterToolCfg
def LArBadLBFilterToolCfg(inputFlags, origDbTag=None)
Definition: BadLBFilterToolConfig.py:100
python.AtlasReadyFilterConfig.AtlasReadyFilterCfg
def AtlasReadyFilterCfg(flags)
Definition: AtlasReadyFilterConfig.py:10
JetTagMonitorAlgorithm.JetTagMonitorConfig
def JetTagMonitorConfig(inputFlags)
Definition: JetTagMonitorAlgorithm.py:14