CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
DoubleVertexFilter.cc File Reference
#include <memory>
#include <set>
#include "FWCore/Framework/interface/global/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"

Go to the source code of this file.

Classes

class  DoubleVertexFilter
 

Functions

static double computeSharedTracks (const reco::Vertex &pv, const reco::Vertex &sv)
 
static const
edm::ParameterSetDescriptionFillerPluginFactory::PMaker
< edm::ParameterSetDescriptionFiller
< DoubleVertexFilter > > 
s_filler__LINE__ ("DoubleVertexFilter")
 
static const
edm::MakerPluginFactory::PMaker
< edm::WorkerMaker
< DoubleVertexFilter > > 
s_maker__LINE__ ("DoubleVertexFilter")
 

Function Documentation

static double computeSharedTracks ( const reco::Vertex pv,
const reco::Vertex sv 
)
static

Definition at line 38 of file DoubleVertexFilter.cc.

References prof2calltree::count, pileupDistInMC::total, reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), and reco::Vertex::trackWeight().

Referenced by DoubleVertexFilter::produce().

40 {
41  std::set<reco::TrackRef> pvTracks;
42  for(std::vector<reco::TrackBaseRef>::const_iterator iter = pv.tracks_begin();
43  iter != pv.tracks_end(); iter++) {
44  if (pv.trackWeight(*iter) >= 0.5)
45  pvTracks.insert(iter->castTo<reco::TrackRef>());
46  }
47 
48  unsigned int count = 0, total = 0;
49  for(std::vector<reco::TrackBaseRef>::const_iterator iter = sv.tracks_begin();
50  iter != sv.tracks_end(); iter++) {
51  if (sv.trackWeight(*iter) >= 0.5) {
52  total++;
53  count += pvTracks.count(iter->castTo<reco::TrackRef>());
54  }
55  }
56 
57  return (double)count / (double)total;
58 }
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:44
float trackWeight(const TrackBaseRef &r) const
returns the weight with which a Track has contributed to the vertex-fit.
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:39
static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker<edm::ParameterSetDescriptionFiller< DoubleVertexFilter > > s_filler__LINE__ ( "DoubleVertexFilter"  )
static
static const edm::MakerPluginFactory ::PMaker< edm::WorkerMaker< DoubleVertexFilter > > s_maker__LINE__ ( "DoubleVertexFilter"  )
static