ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring Class Reference
Inheritance diagram for T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring:
Collaboration diagram for T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring:

Public Member Functions

def __init__ (self, flags, name="T2VertexBeamSpotToolMonitoring", detail=2)
 
def defineTimingHistos (self, detail)
 
def defineClusterHistos (self, detail)
 
def defineVertexHistos (self, detail)
 
def defineSplitVertexHistos (self, detail)
 
def makeHisto1D (self, name, type, xbins, xmin, xmax, title, path='EXPERT', opt=None, alias=None, **kw)
 
def makeLBNHisto1D (self, name, type, xbins, xmin, xmax, title, path='EXPERT', opt="", **kw)
 
def makeHisto2D (self, nameX, nameY, type, xbins, xmin, xmax, ybins, ymin, ymax, title, path='EXPERT', opt=None, alias=None, **kw)
 
def makeLBNHisto2D (self, nameX, nameY, type, xbins, xmin, xmax, ybins, ymin, ymax, title, path='EXPERT', opt="", **kw)
 
def makeProfile (self, nameX, nameY, xbins, xmin, xmax, title, path='EXPERT', opt=None, alias=None, **kw)
 
def makeLBNProfile (self, nameX, nameY, xbins, xmin, xmax, title, path='EXPERT', opt="", **kw)
 

Public Attributes

 monTool
 

Detailed Description

Definition at line 80 of file T2VertexBeamSpotMonitoring.py.

Constructor & Destructor Documentation

◆ __init__()

def T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring.__init__ (   self,
  flags,
  name = "T2VertexBeamSpotToolMonitoring",
  detail = 2 
)
Parameters
----------
detail : int
    Selects which level of detail to monitor. 0 will produce minimal
    set of histograms. 1 will make a reasonable set of histograms for
    online running. 2 (default) will make all possible histograms,
    this should be suitable for offline.

Definition at line 81 of file T2VertexBeamSpotMonitoring.py.

81  def __init__ (self, flags, name="T2VertexBeamSpotToolMonitoring", detail=2):
82  """
83  Parameters
84  ----------
85  detail : int
86  Selects which level of detail to monitor. 0 will produce minimal
87  set of histograms. 1 will make a reasonable set of histograms for
88  online running. 2 (default) will make all possible histograms,
89  this should be suitable for offline.
90  """
91  super(T2VertexBeamSpotToolMonitoring, self).__init__(flags, name)
92 
93  # monitored variables for execute():
94  # - nTotalTracks
95  # - nTotalPassedTracks
96  # - nTotalHighPTTracks
97  self.makeHisto1D('nTotalTracks', 'TH1F', 100, 0., 2000.,
98  title="nTotalTracks; N all tracks per event; Number of events")
99 
100  self.makeHisto1D('nTotalPassedTracks', 'TH1F', 100, 0., 1000.,
101  title="nTotalPassedTracks; N selected tracks per event; Number of events")
102 
103  self.makeHisto1D('nTotalHighPTTracks', 'TH1F', 100, 0., 1000.,
104  title="nTotalHighPTTracks; N high-P_{t} tracks per event; Number of events")
105 
106  self.defineTimingHistos(detail)
107  self.defineClusterHistos(detail)
108  self.defineVertexHistos(detail)
109  self.defineSplitVertexHistos(detail)
110 

Member Function Documentation

◆ defineClusterHistos()

def T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring.defineClusterHistos (   self,
  detail 
)

Definition at line 136 of file T2VertexBeamSpotMonitoring.py.

136  def defineClusterHistos(self, detail):
137  # cluster-related variables:
138  # - NClusters
139  # - ClusterZ
140  # - ClusterNTracks
141  # - ClusterNTracksUnused
142  # - ClusterDeltaZ0
143  # - ClusterZ0Pull
144 
145  if detail >= 2:
146  self.makeHisto1D('NClusters', 'TH1I', 30, 0., 60.,
147  title="NClusters; Number of clusters per event; Number of events")
148  self.makeHisto1D('ClusterNTracks', 'TH1I', 100, 0.0, 100.0,
149  title="ClusterNTracks; Number tracks per cluster; Number of events")
150  self.makeHisto1D('ClusterNTracksUnused', 'TH1I', 100, 0.0, 400.0,
151  title="ClusterNTracksUnused; Number of unused tracks per cluster; Number of events")
152  self.makeHisto2D('ClusterNTracks', 'ClusterNTracksUnused', 'TH2I', 50, 0.0, 50.0, 50, 0.0, 400.0,
153  title="Number of tracks in cluster unused vs used; Number of tracks per cluster; Number of unused tracks per cluster")
154  self.makeHisto1D('ClusterZ', 'TH1I', 100, -250.0, 250.0,
155  title="ClusterZ; Cluster Z position [mm]; Number of clusters")
156  self.makeHisto1D('ClusterDeltaZ0', 'TH1I', 100, -2.0, 2.0,
157  title="ClusterDeltaZ0; Delta of track Z0 and cluster Z position [mm]; Number of tracks")
158  self.makeHisto1D('ClusterZ0Pull', 'TH1I', 100, -10.0, 10.0,
159  title="ClusterZ0Pull; Pull of track Z0 with respect to cluster Z position; Number of tracks")
160  self.makeHisto1D('ClusterClusterDeltaZ0', 'TH1I', 200, -100.0, 100.0,
161  title="ClusterClusterDeltaZ0; Delta of cluster-cluster Z position [mm]; Number of clusters")
162 

◆ defineSplitVertexHistos()

def T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring.defineSplitVertexHistos (   self,
  detail 
)

Definition at line 418 of file T2VertexBeamSpotMonitoring.py.

418  def defineSplitVertexHistos(self, detail):
419  # split vertex-related variables:
420  # - SplitVertex1<param>Pass, where <param> is one of
421  # - NTrks X Y Z Xerr Yerr Zerr
422  # - SplitVertex2<param>Pass, same set of params
423  # - SplitVertexD<param>Pass, where <param> is one of
424  # - NTrks X Y Z Xerr Yerr Zerr Xpull Ypull Zpull
425 
426  if detail >= 1:
427  # Delta between the Split Vertex positions in X, Y, Z vs. Ntrk in vertex:
428  # allows to correct width for each vertex multiplicity
429  # Total number of bins: 150,000 -> 75,000
430  # 10 um bins in X and Y
431  # 2 mm bins in Z
432  self.makeLBNHisto2D('SplitVertexDNTrksPass', 'SplitVertexDXPass', 'TH2F', 100, 0.0, 50.0, 250, -1.25, 1.25,
433  title="Split Vertex DX vs. NTrks; N trk per split vertex; #Deltax between split vertices [mm]")
434  self.makeLBNHisto2D('SplitVertexDNTrksPass', 'SplitVertexDYPass', 'TH2F', 100, 0.0, 50.0, 250, -1.25, 1.25,
435  title="Split Vertex DY vs. NTrks; N trk per split vertex; #Deltay between split vertices [mm]")
436  self.makeLBNHisto2D('SplitVertexDNTrksPass', 'SplitVertexDZPass', 'TH2F', 100, 0.0, 50.0, 250, -2.5, 2.5,
437  title="Split Vertex DZ vs. NTrks; N trk per split vertex; #Deltaz between split vertices [mm]")
438  # same histograms, per run
439  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDXPass', 'TH2F', 100, 0.0, 50.0, 250, -1.25, 1.25,
440  title="Split Vertex DX vs. NTrks (runsummary); N trk per split vertex; #Deltax between split vertices [mm]",
441  alias="SplitVertexDXPass_vs_SplitVertexDNTrksPass_runsummary")
442  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDYPass', 'TH2F', 100, 0.0, 50.0, 250, -1.25, 1.25,
443  title="Split Vertex DY vs. NTrks (runsummary); N trk per split vertex; #Deltay between split vertices [mm]",
444  alias="SplitVertexDYPass_vs_SplitVertexDNTrksPass_runsummary")
445  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDZPass', 'TH2F', 100, 0.0, 50.0, 250, -2.5, 2.5,
446  title="Split Vertex DZ vs. NTrks (runsummary); N trk per split vertex; #Deltaz between split vertices [mm]",
447  alias="SplitVertexDZPass_vs_SplitVertexDNTrksPass_runsummary")
448 
449  # Pull in X, Y, Z vs. Ntrk in split vertices: Monitors quality of tracking information
450  # Total number of bins: 30,000
451  # 0.1 sigma bins
452  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDXpullPass', 'TH2F',
453  100, 0.0, 100.0, 100, -5.0, 5.0,
454  title="Acc. Split Vertex D X Pull vs. NTrks; N trk per vertex; Split Vertex x Pull")
455  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDYpullPass', 'TH2F',
456  100, 0.0, 100.0, 100, -5.0, 5.0,
457  title="Acc. Split Vertex D Y Pull vs. NTrks; N trk per vertex; Split Vertex y Pull")
458  self.makeHisto2D('SplitVertexDNTrksPass', 'SplitVertexDZpullPass', 'TH2F',
459  100, 0.0, 100.0, 100, -5.0, 5.0,
460  title="Acc. Split Vertex D Z Pull vs. NTrks; N trk per vertex; Split Vertex z Pull")
461 
462  # Split vertex properties
463  self.makeHisto2D('SplitVertex2NTrksPass', 'SplitVertex1NTrksPass', 'TH2F',
464  50, 0, 50, 50, 0, 50,
465  title="Split Vertex 2 NTrks vs Split Vertex 1 NTrks")
466 
467 

◆ defineTimingHistos()

def T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring.defineTimingHistos (   self,
  detail 
)

Definition at line 111 of file T2VertexBeamSpotMonitoring.py.

111  def defineTimingHistos(self, detail):
112  # monitored timers:
113  # - TIME_SelectingTracks
114  # - TIME_SplitVertexReconstruction
115  # - TIME_toSortSplitTracks
116  # - TIME_toSortTracks
117  # - TIME_toVertexFitSplit
118  # - TIME_toZCluster
119  # - TIME_toZClusterSplit
120  # - TIME_VertexReconstruction
121 
122  timers = [
123  ("SelectingTracks", 10000.),
124  ("SplitVertexReconstruction", 10000.),
125  ("toSortSplitTracks", 10000.),
126  ("toSortTracks", 1000.),
127  ("toVertexFitSplit", 10000.),
128  ("toZCluster", 100.),
129  ("toZClusterSplit", 100.),
130  ("VertexReconstruction", 20000.),
131  ]
132  for timer, xmax in timers:
133  self.makeHisto1D('TIME_' + timer, 'TH1I', 50, 0., xmax,
134  title="Timing " + timer + "; time [#mus];")
135 

◆ defineVertexHistos()

def T2VertexBeamSpotMonitoring.T2VertexBeamSpotToolMonitoring.defineVertexHistos (   self,
  detail 
)

Definition at line 163 of file T2VertexBeamSpotMonitoring.py.

163  def defineVertexHistos(self, detail):
164 
165  # vertex-related variables:
166  # - Nvtx
167  # - NvtxPass
168  # - NvtxPassBCID
169  # - ClusterDeltaVertexZ
170  # - Vertex<param>, where <param> is one of
171  # - NTrks SumPt SumPt2 Mass Qual Chi2Prob X Y Z XZoom YZoom ZZoom Xerr Yerr Zerr XY Pull NTrksInVtx
172  # - Vertex<param>Pass, with the same <param>
173  # - Vertex<param>PassBCID, with the same <param>
174 
175  # Number of vertices
176  self.makeHisto1D('Nvtx', 'TH1F', 50, 0.0, 100.0,
177  title="Nvtx; N vertices per event; Number of events")
178  # per-LB
179  self.makeLBNHisto1D('NvtxPass', 'TH1I', 50, 0.0, 50.0,
180  title="NvtxPass; N accepted vertices per event; Number of events")
181 
182  if detail > 1:
183  self.makeHisto1D('ClusterDeltaVertexZ', 'TH1F', 100, -10.0, 10.0,
184  title="ClusterDeltaVertexZ; Delta of cluster Z position and Vertex Z position [mm]; Number of vertices")
185 
186  if detail >= 0:
187  # Beam position in X, Y, Z: provides mean position and can extract width (convoluted with vertexing precision)
188  # Total number of bins: 2500
189  # 10 um bins in X and Y
190  # 5 mm bins in Z
191  self.makeLBNHisto1D('VertexXPass','TH1F', 1000, -5.0, 5.0,
192  title="Acc. Vertex X; Vertex x [mm]; Number of vertices")
193  self.makeLBNHisto1D('VertexYPass','TH1F', 1000, -5.0, 5.0,
194  title="Acc. Vertex Y; Vertex y [mm]; Number of vertices")
195  self.makeLBNHisto1D('VertexZPass','TH1F', 500, -500.0, 500.0,
196  title="Acc. Vertex Z; Vertex z [mm]; Number of vertices")
197 
198  # Beam position in X, Y, Z with respect to the nominal position
199  # Total number of bins: 300
200  # 10 um bins in X and Y
201  # 5 mm bins in Z
202  self.makeLBNHisto1D('VertexXZoomPass','TH1F', 100, -0.500, 0.500,
203  title="Acc. Vertex X-X_{nominal}; Vertex X-X_{nominal} [mm]; Number of vertices")
204  self.makeLBNHisto1D('VertexYZoomPass','TH1F', 100, -0.500, 0.500,
205  title="Acc. Vertex Y-Y_{nominal}; Vertex Y-Y_{nominal} [mm]; Number of vertices")
206  self.makeLBNHisto1D('VertexZZoomPass','TH1F', 100, -250.0, 250.0,
207  title="Acc. Vertex Z-Z_{nominal}; Vertex Z-Z_{nominal} [mm]; Number of vertices")
208 
209  if detail >= 1:
210 
211  # Beam profile plots: X-Y, X-Z, Y-Z
212  # Total number of bins: 2700
213  # 100 um bins in X and Y
214  self.makeLBNHisto2D('VertexXPass', 'VertexYPass', 'TH2F', 50, -2.5, 2.5, 50, -2.5, 2.5,
215  title="Acc. Vertex Y vs X; Vertex X [mm]; Vertex Y [mm]")
216  self.makeLBNProfile('VertexZPass', 'VertexXPass', 100, -250.0, 250.0,
217  title="Acc. Vertex X vs Z; Vertex Z [mm]; Vertex X [mm]")
218  self.makeLBNProfile('VertexZPass', 'VertexYPass', 100, -250.0, 250.0,
219  title="Acc. Vertex Y vs Z; Vertex Z [mm]; Vertex Y [mm]")
220 
221  # Beam profile w.r.t. the nominal position: X - X_nominal , etc
222  # Total number of bins: 2700
223  # 50 um bins in X and Y
224  self.makeLBNHisto2D('VertexXZoomPass', 'VertexYZoomPass', 'TH2F', 50, -1.25, 1.25, 50, -1.25, 1.25,
225  title="Acc. Vertex Y-Y_{nominal} vs X-X_{nominal}; Vertex X-X_{nominal} [mm]; Vertex Y-Y_{nominal} [mm]")
226  self.makeLBNProfile('VertexZZoomPass', 'VertexXZoomPass', 100, -250.0, 250.0,
227  title="Acc. Vertex X-X_{nominal} vs Z-Z_{nominal}; Vertex Z-Z_{nominal} [mm]; Vertex X-X_{nominal} [mm]")
228  self.makeLBNProfile('VertexZZoomPass', 'VertexYZoomPass', 100, -250.0, 250.0,
229  title="Acc. Vertex Y-Y_{nominal} vs Z-Z_{nominal}; Vertex Z-Z_{nominal} [mm]; Vertex Y-Y_{nominal} [mm]")
230 
231  # Beam position in X, Y, Z vs. Ntrk in vertex: allows to correct width for each vertex multiplicity
232  # Total number of bins: 85,000 -> 105,000
233  # 10 um bins in X and Y
234  # 2 mm bins in Z
235  self.makeLBNHisto2D('VertexNTrksPass', 'VertexXPass', 'TH2F', 100, 0.0, 100.0, 400, -2.00, 2.00,
236  title="Acc. Vertex X vs. NTrks; N trk per vertex; Vertex x [mm]")
237  self.makeLBNHisto2D('VertexNTrksPass', 'VertexYPass', 'TH2F', 100, 0.0, 100.0, 400, -2.00, 2.00,
238  title="Acc. Vertex Y vs. NTrks; N trk per vertex; Vertex y [mm]")
239  self.makeLBNHisto2D('VertexNTrksPass', 'VertexZPass', 'TH2F', 100, 0.0, 100.0, 250, -250.0, 250.0,
240  title="Acc. Vertex Z vs. NTrks; N trk per vertex; Vertex z [mm]")
241 
242  self.makeProfile('VertexZPass', 'VertexNTrksPass', 100, -250.0, 250.0,
243  title="Acc. Vertex NTrks vs. Vertex Z; Vertex Z [mm]; N trk per vertex")
244  self.makeProfile('VertexZPass', 'VertexXerrPass', 100, -250.0, 250.0,
245  title="Vertex Xerr vs Z; Vertex Z [mm]; Vertex Xerr [mm]")
246  self.makeProfile('VertexZPass', 'VertexYerrPass', 100, -250.0, 250.0,
247  title="Vertex Yerr vs Z; Vertex Z [mm]; Vertex Yerr [mm]")
248 
249  self.makeProfile('VertexNTrksPass', 'VertexXerrPass', 100, 0.0, 100.0,
250  title="Acc. Vertex Xerr vs NTrks; Vertex N trks; Vertex Xerr [mm]")
251  self.makeProfile('VertexNTrksPass', 'VertexYerrPass', 100, 0.0, 100.0,
252  title="Acc. Vertex Yerr vs NTrks; Vertex N trks; Vertex Yerr [mm]")
253  self.makeProfile('VertexNTrksPass', 'VertexZerrPass', 100, 0.0, 100.0,
254  title="Acc. Vertex Zerr vs NTrks; Vertex N trks; Vertex Zerr [mm]")
255 
256  #---------------------------------------
257  # Per BCID, per luminosity block histograms
258  #---------------------------------------
259  # Total number of per-BCID, per-LBN bins:
260  # 552,420
261  #---------------------------------------
262 
263  if detail >= 1:
264 
265  # Bunch-to-bunch luminosity and bunch-profile information
266  # Total number of bins: 17,820 (5*3,564)
267  self.makeLBNProfile('BCID', 'TotalTracksPass', 3564, 0, 3564,
268  title="Acc. N Tracks vs BCID; BCID; N tracks vertices")
269  self.makeLBNProfile('BCID', 'NvtxPassBCID', 3564, 0, 3564,
270  title="Acc. N Vertices vs BCID; BCID; N accepted vertices")
271  self.makeLBNProfile('BCID', 'VertexXPassBCID', 3564, 0, 3564,
272  title="Acc. Vertex X vs BCID (profile); BCID; Vertex X [mm]")
273  self.makeLBNProfile('BCID', 'VertexYPassBCID', 3564, 0, 3564,
274  title="Acc. Vertex Y vs BCID (profile); BCID; Vertex Y [mm]")
275  self.makeLBNProfile('BCID', 'VertexZPassBCID', 3564, 0, 3564,
276  title="Acc. Vertex Z vs BCID (profile); BCID; Vertex Z [mm]")
277 
278  if detail >= 2:
279  # Bunch-to-bunch 2D histograms
280  # Total number of bins: 534,600 ((50+50+50) * 3,564)
281  # 20 um bins in X and Y (compared to 10 um for 1D version)
282  # 10 mm bins in Z (compared to 5 mm bins for 1D version)
283  self.makeLBNHisto2D('BCID', 'VertexXZoomPassBCID', 'TH2F', 3564, 0, 3564, 50, -0.5, 0.5,
284  title="Acc. Vertex X-X_{nominal} vs. BCID; BCID; Vertex X-X_{nominal} [mm]")
285  self.makeLBNHisto2D('BCID', 'VertexYZoomPassBCID', 'TH2F', 3564, 0, 3564, 50, -0.5, 0.5,
286  title="Acc. Vertex Y-Y_{nominal} vs. BCID; BCID; Vertex Y-Y_{nominal} [mm]")
287  self.makeLBNHisto2D('BCID', 'VertexZZoomPassBCID', 'TH2F', 3564, 0, 3564, 50, -250.0, 250.0,
288  title="Acc. Vertex Z-Z_{nominal} vs. BCID; BCID; Vertex Z-Z_{nominal} [mm]")
289 
290  if detail >= 3:
291 
292  # All Vertices parameters
293  #-------------------------------------------------------------------------------------------------
294  #Number of all vertices in an events
295  self.makeHisto1D('VertexNTrks', 'TH1F', 100, 0., 100.,
296  title="Vertex NTrks; N trk per vertex; Number of vertices")
297  self.makeHisto1D('VertexSumPt', 'TH1F', 100, 0., 100.,
298  title="Vertex SumPt; Vertex sum p_{T} [GeV]; Number of vertices")
299  self.makeHisto1D('VertexSumPt2', 'TH1F', 100, 0., 100.,
300  title="Vertex SumPt^2; Vertex sum p_{T}^{2} [GeV^{2}]; Number of vertices")
301  self.makeHisto1D('VertexQual', 'TH1F', 50, 0., 50.,
302  title="Vertex Qual; Vertex #chi^{2}/ndf; Number of vertices")
303  self.makeHisto1D('VertexMass', 'TH1F', 300, 0., 3000.,
304  title="Vertex mass; Vertex Mass; Number of vertices")
305  self.makeHisto1D('VertexChi2Prob', 'TH1F', 70, -0.2, 1.2,
306  title="Vertex Probability; Vertex #chi^{2} probability; Number of vertices")
307 
308  # Beam position in X, Y, Z: before vertex cleaning cuts
309  # Total number of bins: 1500
310  self.makeHisto1D('VertexX', 'TH1F', 500, -5.0, 5.0,
311  title="Vertex X; Vertex X [mm]; Number of vertices")
312  self.makeHisto1D('VertexXerr', 'TH1F', 50, 0., 0.5,
313  title="Vertex Xerr; Vertex x error [mm]; Number of vertices")
314  self.makeHisto1D('VertexY', 'TH1F', 500, -5.0, 5.0,
315  title="Vertex Y; Vertex Y [mm]; Number of vertices")
316  self.makeHisto1D('VertexYerr', 'TH1F', 50, 0., 0.5,
317  title="Vertex Yerr; Vertex y error [mm]; Number of vertices")
318  self.makeHisto1D('VertexZ', 'TH1F', 500, -250.0, 250.0,
319  title="Vertex Z; Vertex Z [mm]; Number of vertices")
320  self.makeHisto1D('VertexZerr', 'TH1F', 100, 0., 1.,
321  title="Vertex Zerr; Vertex z error [mm]; Number of vertices")
322 
323  self.makeHisto1D('VertexXZoom', 'TH1F', 100, -0.250, 0.250,
324  title="Vertex X-X_{nominal}; Vertex X-X_{nominal} [mm]; Number of vertices")
325  self.makeHisto1D('VertexYZoom', 'TH1F', 100, -0.250, 0.250,
326  title="Vertex Y-Y_{nominal}; Vertex Y-Y_{nominal} [mm]; Number of vertices")
327  self.makeHisto1D('VertexZZoom', 'TH1F', 100, -250., 250.,
328  title="Vertex Z-Z_{nominal}; Vertex Z-Z_{nominal} [mm]; Number of vertices")
329 
330  self.makeHisto1D('VertexPull', 'TH1F', 100, -5.0, 5.0,
331  title="Vertex 'pull'; Vertex Z_{PV} - Z_{seed} [mm]; Number of vertices")
332 
333  self.makeLBNHisto1D('VertexNTrksInVtx', 'TH1F', 50, 0, 50,
334  title="Acc. NTrks in vertex; Vertex number of tracks; Number of tracks in vertex track list")
335 
336  if detail >=3:
337 
338  # Passed Vertices parameters
339  #-------------------------------------------------------------------------------------------------
340 
341  self.makeLBNHisto1D('VertexNTrksPass', 'TH1F', 100, 0, 100,
342  title="Vertex NTrks; N trk per vertex; Number of vertices")
343  self.makeHisto1D('VertexSumPtPass', 'TH1F', 100, 0., 100.,
344  title="Vertex SumPt; Vertex sum p_{T} [GeV]; Number of vertices")
345  self.makeHisto1D('VertexSumPt2Pass', 'TH1F', 100, 0., 100.,
346  title="Vertex SumPt^2; Vertex sum p_{T}^{2} [GeV^{2}]; Number of vertices")
347  self.makeHisto1D('VertexQualPass', 'TH1F', 50, 0., 50.,
348  title="Vertex Qual; Vertex #chi^{2}/ndf; Number of vertices")
349  self.makeHisto1D('VertexMassPass', 'TH1F', 100, 0., 3000.,
350  title="Vertex mass; Vertex Mass; Number of vertices")
351  self.makeHisto1D('VertexChi2ProbPass', 'TH1F', 70, -0.2, 1.2,
352  title="Vertex Probability; Vertex #chi^{2} probability; Number of vertices")
353 
354  # Beam position in X, Y, Z: before vertex cleaning cuts
355  # Total number of bins: 1500
356  # self.makeHisto1D('VertexXPass', 'TH1F', 500, -5.0, 5.0,
357  # title="Vertex X; Vertex X [mm]; Number of vertices")
358  self.makeHisto1D('VertexXerrPass', 'TH1F', 50, 0., 0.5,
359  title="Vertex Xerr; Vertex x error [mm]; Number of vertices")
360  # self.makeHisto1D('VertexYPass', 'TH1F', 500, -5.0, 5.0,
361  # title="Vertex Y; Vertex Y [mm]; Number of vertices")
362  self.makeHisto1D('VertexYerrPass', 'TH1F', 50, 0., 0.5,
363  title="Vertex Yerr; Vertex y error [mm]; Number of vertices")
364  # self.makeHisto1D('VertexZPass', 'TH1F', 500, -250.0, 250.0,
365  # title="Vertex Z; Vertex Z [mm]; Number of vertices")
366  self.makeHisto1D('VertexZerrPass', 'TH1F', 100, 0., 1.,
367  title="Vertex Zerr; Vertex z error [mm]; Number of vertices")
368 
369  self.makeHisto1D('VertexXZoomPass', 'TH1F', 100, -0.250, 0.250,
370  title="Vertex X-X_{nominal}; Vertex X-X_{nominal} [mm]; Number of vertices")
371  self.makeHisto1D('VertexYZoomPass', 'TH1F', 100, -0.250, 0.250,
372  title="Vertex Y-Y_{nominal}; Vertex Y-Y_{nominal} [mm]; Number of vertices")
373  self.makeHisto1D('VertexZZoomPass', 'TH1F', 100, -250., 250.,
374  title="Vertex Z-Z_{nominal}; Vertex Z-Z_{nominal} [mm]; Number of vertices")
375 
376  self.makeHisto1D('VertexPullPass', 'TH1F', 100, -5.0, 5.0,
377  title="Vertex 'pull'; Vertex Z_{PV} - Z_{seed} [mm]; Number of vertices")
378 
379  self.makeLBNHisto1D('VertexNTrksInVtxPass', 'TH1F', 50, 0, 50,
380  title="Acc. NTrks in vertex; Vertex number of tracks; Number of tracks in vertex track list")
381 
382  #-------------------------------------------------------------------------------------------------
383 
384  if detail >= 3:
385 
386  # 2D Histos
387  self.makeHisto2D('VertexX', 'VertexY', 'TH2F', 50, -5.0, 5.0, 50, -5.0, 5.0,
388  title="Vertex Y vs X; Vertex X [mm]; Vertex Y [mm]")
389  self.makeHisto2D('VertexZ', 'VertexX', 'TH2F', 500, -250.0, 250.0, 50, -5.0, 5.0,
390  title="Vertex X vs Z; Vertex Z [mm]; Vertex X [mm]")
391  self.makeHisto2D('VertexZ', 'VertexY', 'TH2F', 500, -250.0, 250.0, 50, -5.0, 5.0,
392  title="Vertex Y vs Z; Vertex Z [mm]; Vertex Y [mm]")
393  self.makeHisto2D('VertexXZoom', 'VertexYZoom', 'TH2F', 100, -0.250, 0.250, 100, -0.250, 0.250,
394  title="Vertex Y-Y_{nominal} vs X-X_{nominal}; Vertex X-X_{nominal} [mm]; Vertex Y-Y_{nominal} [mm]")
395 
396  self.makeHisto2D('VertexZ', 'VertexXerr', 'TH2F', 500, -250.0, 250.0, 100, 0.0, 1.0,
397  title="Vertex Xerr vs Z; Vertex Z [mm]; Vertex Xerr [mm]")
398  self.makeHisto2D('VertexZ', 'VertexYerr', 'TH2F', 500, -250.0, 250.0, 100, 0.0, 1.0,
399  title="Vertex Yerr vs Z; Vertex Z [mm]; Vertex Yerr [mm]")
400 
401  if detail >= 2:
402  # X(Y) vs Xerr(Yerr) for Bayesian Inference method
403  self.makeHisto2D('VertexXZoomPass', 'VertexXerrPass', 'TH2F', 400, -0.200, 0.200, 100, 0.0, 0.100,
404  title="Vertex Xerr vs X-X_{nominal}; Vertex X-X_{nominal} [mm]; Vertex Xerr [mm]")
405  self.makeHisto2D('VertexYZoomPass', 'VertexYerrPass', 'TH2F', 400, -0.200, 0.200, 100, 0.0, 0.100,
406  title="Vertex Yerr vs Y-Y_{nominal}; Vertex Y-Y_{nominal} [mm]; Vertex Yerr [mm]")
407 
408  if detail >= 3:
409  # former validation
410  self.makeHisto2D('VertexNTrks', 'VertexXerr', 'TH2F', 25, 5.0, 30.0, 100, 0.0, 1.0,
411  title="Vertex Xerr vs NTrks; Vertex N trks; Vertex Xerr [mm]")
412  self.makeHisto2D('VertexNTrks', 'VertexYerr', 'TH2F', 25, 5.0, 30.0, 100, 0.0, 1.0,
413  title="Vertex Yerr vs NTrks; Vertex N trks; Vertex Yerr [mm]")
414  self.makeHisto2D('VertexNTrks', 'VertexZerr', 'TH2F', 50, 0.0, 50.0, 100, 0.0, 1.0,
415  title="Vertex Zerr vs NTrks; Vertex N trks; Vertex Zerr [mm]")
416 
417 

◆ makeHisto1D()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeHisto1D (   self,
  name,
  type,
  xbins,
  xmin,
  xmax,
  title,
  path = 'EXPERT',
  opt = None,
  alias = None,
**  kw 
)
inherited

Definition at line 16 of file T2VertexBeamSpotMonitoring.py.

16  def makeHisto1D(self, name, type, xbins, xmin, xmax, title, path='EXPERT', opt=None, alias=None, **kw):
17  if alias is not None:
18  name = f"{name};{alias}"
19  self.monTool.defineHistogram(
20  name, path=path, type=type, title=title, opt=opt,
21  xbins=xbins, xmin=xmin, xmax=xmax, **kw
22  )
23 

◆ makeHisto2D()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeHisto2D (   self,
  nameX,
  nameY,
  type,
  xbins,
  xmin,
  xmax,
  ybins,
  ymin,
  ymax,
  title,
  path = 'EXPERT',
  opt = None,
  alias = None,
**  kw 
)
inherited

Definition at line 30 of file T2VertexBeamSpotMonitoring.py.

30  def makeHisto2D(self, nameX, nameY, type, xbins, xmin, xmax,
31  ybins, ymin, ymax, title, path='EXPERT', opt=None, alias=None, **kw):
32  name = ", ".join([nameX, nameY])
33  if alias is not None:
34  name = f"{name};{alias}"
35  self.monTool.defineHistogram(
36  name, path=path, type=type, title=title, opt=opt,
37  xbins=xbins, xmin=xmin, xmax=xmax,
38  ybins=ybins, ymin=ymin, ymax=ymax,
39  **kw
40  )
41 

◆ makeLBNHisto1D()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeLBNHisto1D (   self,
  name,
  type,
  xbins,
  xmin,
  xmax,
  title,
  path = 'EXPERT',
  opt = "",
**  kw 
)
inherited

Definition at line 24 of file T2VertexBeamSpotMonitoring.py.

24  def makeLBNHisto1D(self, name, type, xbins, xmin, xmax, title, path='EXPERT', opt="", **kw):
25  opt = _LBN_OPTIONS + " " + opt if opt else _LBN_OPTIONS
26  self.makeHisto1D(
27  name, type, xbins, xmin, xmax, title, path=path, opt=opt, **kw,
28  )
29 

◆ makeLBNHisto2D()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeLBNHisto2D (   self,
  nameX,
  nameY,
  type,
  xbins,
  xmin,
  xmax,
  ybins,
  ymin,
  ymax,
  title,
  path = 'EXPERT',
  opt = "",
**  kw 
)
inherited

Definition at line 42 of file T2VertexBeamSpotMonitoring.py.

42  def makeLBNHisto2D(self, nameX, nameY, type, xbins, xmin, xmax,
43  ybins, ymin, ymax, title, path='EXPERT', opt="", **kw):
44  opt = _LBN_OPTIONS + " " + opt if opt else _LBN_OPTIONS
45  self.makeHisto2D(
46  nameX, nameY, type, xbins, xmin, xmax, ybins, ymin, ymax, title,
47  path=path, opt=opt, **kw,
48  )
49 

◆ makeLBNProfile()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeLBNProfile (   self,
  nameX,
  nameY,
  xbins,
  xmin,
  xmax,
  title,
  path = 'EXPERT',
  opt = "",
**  kw 
)
inherited

Definition at line 59 of file T2VertexBeamSpotMonitoring.py.

59  def makeLBNProfile(self, nameX, nameY, xbins, xmin, xmax, title, path='EXPERT', opt="", **kw):
60  opt = _LBN_OPTIONS + " " + opt if opt else _LBN_OPTIONS
61  self.makeProfile(
62  nameX, nameY, xbins, xmin, xmax, title, path=path, opt=opt, **kw,
63  )
64 
65 

◆ makeProfile()

def T2VertexBeamSpotMonitoring.BaseMonitoringTool.makeProfile (   self,
  nameX,
  nameY,
  xbins,
  xmin,
  xmax,
  title,
  path = 'EXPERT',
  opt = None,
  alias = None,
**  kw 
)
inherited

Definition at line 50 of file T2VertexBeamSpotMonitoring.py.

50  def makeProfile(self, nameX, nameY, xbins, xmin, xmax, title, path='EXPERT', opt=None, alias=None, **kw):
51  name = ", ".join([nameX, nameY])
52  if alias is not None:
53  name = f"{name};{alias}"
54  self.monTool.defineHistogram(
55  name, path=path, type="TProfile", title=title, opt=opt,
56  xbins=xbins, xmin=xmin, xmax=xmax, **kw,
57  )
58 

Member Data Documentation

◆ monTool

T2VertexBeamSpotMonitoring.BaseMonitoringTool.monTool
inherited

Definition at line 14 of file T2VertexBeamSpotMonitoring.py.


The documentation for this class was generated from the following file:
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
GenericMonitoringTool.defineHistogram
def defineHistogram(flags, varname, type='TH1F', path=None, title=None, weight=None, xbins=100, xmin=0, xmax=1, xlabels=None, ybins=None, ymin=None, ymax=None, ylabels=None, zmin=None, zmax=None, zlabels=None, opt=None, convention=None, cutmask=None, treedef=None, merge=None)
Generate histogram definition string for the GenericMonitoringTool.Histograms property.
Definition: GenericMonitoringTool.py:306