The SimpleVertexTree class

Complete: 3

Overview

The class SWGuideSimpleVertexTree produces a Root TTree containing the basic information to analyse the reconstructed vertices. As for now, no information of the tracks is included, but this will be added in time.

  • Simulated Vertex: Position
  • Reconstructed vertex: position, error, total chi^2, the chi^2 probability and number of degrees of freedom, number of used TransientTracks

Reported summary statistics

At the end of the job, some simple statistics are printed:

  Number of vertices fit: 5000
  Mean of Residual distribution X: -1.16979e-05
  Mean of Residual distribution Y: 6.54429e-06
  Mean of Residual distribution Z: 1.99276e-05
  RMS of Residual distribution X:  0.00179476
  RMS of Residual distribution Y:  0.00141025
  RMS of Residual distribution Z:  0.00141628
  Mean of Pull distribution X: -0.00629075
  Mean of Pull distribution Y: 0.00160147
  Mean of Pull distribution Z: 0.0130681
  RMS of Pull distribution X:  1.00777
  RMS of Pull distribution Y:  0.994121
  RMS of Pull distribution Z:  0.997755
  Average chi-square probability: 0.509143
  Average normalized chi-square : 0.989101

Using SimpleVertexTree objects

In your reconstruction code, at the beginning, instantiate it:

  theFile = new TFile("simpleVertexTree.root","RECREATE");  
  theFile->SetCompressionLevel(2);
  theTree = new SimpleVertexTree();

An optional name can be given in the constructor, which will be the name of the TTree produced. The default name is VertexFitter.

Once you have reconstrcuted the vertex, and found the simulated vertex, the only thing to be done is to call the method fill for each vertex:

theTree->fill(recVertex, simVertex);

Another way is to give also the complete vector of TransientTracks with which the fitter was called. This might help you to understand why certain features of your vertex fitter, since all the TransientTracks will be stored independently:

theTree->fill(recVertex, tTrackVector, simVertex);

And at the end of the job, all you have to do at the end of your job is to delete the

  delete theTree;
  delete theFile;

The name of the TTree is the name given in the constructor (or the default VertexFitter). The name of the histograms is first the name of the TTree, with appended "_ResX", "_PullX", etc...
For the default VertexFitter, the list of histograms would be VertexFitter_ResY, VertexFitter_ResZ, VertexFitter_PullX, VertexFitter_PullY, VertexFitter_PullZ, VertexFitter_ChiNorm, VertexFitter_ChiProb.

Analysis output

A simple root analysis is given in the test directory: SimpleVertexAnalysis. It produces several histograms:

  • ResX, ResY, ResZ: Resolutions
  • PullX, PullY, PullZ: Pulls
  • ChiNorm, ChiProb: nomalized chi^2 and the chi^2 probability.
  • RecTrk: Number of tracks of each vertex
  • weight: Sum of the weights with which each track has contributed in the fit (Robust fitters may downweigh some of the tracks)
  • SimTrk: Number of Sim Tracks of the associated Sim Vertex
  • Shared: Number of shared tracks between the RecVertex and the SimVertex
  • Ratio: Ratio of shared tracks (shared/nbr Tracks)

The name of each of these plots is appended with the TTree name. (e.g. ResX_VertexFitter)

At the beginning, compile the code:

.L SimpleVertexAnalysis.C++

Two constructors are provided, one for a single file:

t=new SimpleVertexAnalysis("simpleVertexTree.root","VertexFitter")=

and another for a series of files, of the type result_1.root, result_2.root, etc:

t=new SimpleVertexAnalysis("result",1,10,"VertexFitter")

For the study of the vertex (resolution, pulls, etc), to loop of the events and fill the histograms:

t->vertexLoop()

The main results out of the plots can be evaluated using three methods:

  • t->singleGaussianVertexResult() Fit of the residual and pull plots with a single Gaussian, and printout of the main results.
  • t->doubleGaussianVertexResult() Fit of the residual and pull plots with two Gaussians (one for the core, the other for the tails, and printout of the main results
  • t->vertexCoverage() Measurement of the coverage of the residual distributions (50%, 90% and 95% coverage)

To redraw the plots on the two page:

t->plotVertexResult("pvr_result")

and finally output the two pages into a ps file (called pvr_result.ps here)

t->psVertexResult("pvr_result")

Review Status

Editor/Reviewer and date Comments
Main.speer - 17 Jul 2006 Page author
JennyWilliams - 10 Apr 2007 general editing

Responsible: Main.speer (Thomas Speer)
Last reviewed by:

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2007-04-11 - JennyWilliams



 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback