V0Producer Offline Guide

Complete: 3


The default reconstruction sequence in CMSSW includes a step that reconstructs neutral strange hadrons (K0S and Lambda0, collectively known as V0 particles) using oppositely charged track pairs. The module responsible for this reconstruction is RecoVertex/V0Producer. Various selection cuts are applied, both before and after fitting the V0 decay vertex using the V0 daughter tracks.


Relevant classes

  • V0Producer - EDProducer module, functions as a wrapper for V0Fitter, the class containing the actual algorithm.
  • V0Fitter - Class containing V0 reconstruction algorithm.

Vertex Fitting Algorithm

  • KalmanVertexFitter - Vertex fitter using the Kalman filter algorithm. This is the preferred vertex fitting method for V0Producer. The KalmanVertexFitter can optionally smooth the tracks used to fit the vertex after the fitting operation, and V0Producer provides a configurable parameter to pass to the KalmanVertexFitter to choose this. Track smoothing is done by default in V0Producer.
  • AdaptiveVertexFitter - The AdaptiveVertexFitter is mainly used for fitting the primary vertex. It is well suited to vertices with large numbers of tracks, since it optimizes weighting of outlier tracks. For this reason, the AdaptiveVertexFitter is NOT recommended for use with V0Producer.
  • Much more information about available vertex fitting algorithms is available in SWGuideVertexFitting.

V0 candidate container class

  • reco::VertexCompositeCandidate - Candidate class used for storage of reconstructed V0 particles. This class inherits from reco::CompositeCandidate and also allows for storage of the covariance matrix corresponding to the reconstructed candidate's decay vertex.
  • A listing of available candidate collections available in CMSSW releases >= 3_1_1 can be found in SWGuideDataFormatRecoVertex.

Cuts to reduce combinatorics and improve V0 reconstruction timing

We apply a number of cuts to the reco::TrackCollection taken as input to V0Producer to reduce the number of vertex fits that must be carried out to create the collection of V0 candidate objects. They are listed below with their current default values.
  • Tracks can be selected using reco::TrackBase::TrackQuality. Default is 'loose'.
  • Track chi2 < 5.0
  • Number of valid hits on track >= 6
  • We calculate the distance of closest approach (and the point of closest approach) between each oppositely charged track pair using ClosestApproachInRPhi. This is a quick method for the PCA calculation. We use this PCA to calculate the momenta of both tracks at the PCA, and then make cuts:
    • di-pion mass of tracks at PCA < 0.6 GeV
    • Distance of closest approach for tracks < 1 cm

Cuts to reduce background

This list of cuts is applied after the fitting of the V0 vertex, to reduce background events and improve purity of the V0 collections.
  • Vertex normalized chi2 < 7.0
  • Significance of radial vertex position > 15
  • Inner hit of both daughter tracks must not lie inside 4 sigma (radially) from the reconstructed V0 vertex
  • Kshort mass must lie within +- 0.07 GeV of PDG K0S mass value
  • Lambda mass must lie within +- 0.05 GeV of PDG Lambda0 mass value

Using V0Producer

Including V0Producer in a python cfg file

The current python configuration interface to V0Producer is available here. Including V0Producer in your CMSSW config is as simple as adding the following:
process.v0 = cms.Path(process.generalV0Candidates)
This is generally not necessary, however, since the V0 collections are available by default in both the RECO and AOD collections since CMSSW_3_1_X.

Running on AOD

If you plan to run on AOD datasets, you will need to disable one of the V0Producer cuts. Specifically, V0Producer checks that there are no hits on either track that are used in the V0 vertex fit that lie inside the fitted vertex position (default is 4 sigma). This requires the full collection of hits, which are in TrackExtras. To disable this cut, insert the following after the above process.load statement:
process.generalV0Candidates.innerHitPosCut = cms.double(-1)

Using V0 candidates in your EDAnalyzer module

Getting V0 objects from Events is accomplished by doing the following:
#include "DataFormats/Candidate/interface/VertexCompositeCandidate.h"
#include "DataFormats/Candidate/interface/VertexCompositeCandidateFwd.h"


using namespace edm;
Handle<reco::VertexCompositeCandidateCollection> theKshorts;
Handle<reco::VertexCompositeCandidateCollection> theLambdas;

iEvent.getByLabel( edm::InputTag("generalV0Candidates:Kshort"), theKshorts );
iEvent.getByLabel( edm::InputTag("generalV0Candidates:Lambda"), theLambdas );
You can then access lots of physics information using the Candidate interface, which is described in detail in WorkBookParticleCandidates. Specific interface information for reco::VertexCompositeCandidate objects is available here.

Strangeness production paper (QCD-10-007)

V0Producer was used to reconstruct K0S and Lambda0 particles for the CMS paper on strangeness production at 900 GeV and 7 TeV. You can find the paper on the ArXiv here.

Reconstruction of V0 particles in 2009 data

Information and plots of various V0 quantities, including some other resonances with V0 daughters, can be found at the V0Variables wiki page.


Review status

Reviewer/Editor and Date (copy from screen) Comments
BrianDrell - 26-Feb-2010 Initial create of page from template
KatiLassilaPerini - 23 Jan 2007 created template page

Responsible: BrianDrell
Last reviewed by: Most recent reviewer

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2011-03-01 - BrianDrell
    • 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