CMS 3D CMS Logo

MultiVertexFitter.h
Go to the documentation of this file.
1 #ifndef _MultiVertexFitter_H_
2 #define _MultiVertexFitter_H_
3 
4 #include <vector>
5 #include <set>
6 #include <utility>
7 #include <map>
14 
16 public:
37  float revive_below = -1.);
40 
41  typedef std::pair<reco::TransientTrack, float> TrackAndWeight;
42  typedef std::map<int, double> SeedToWeightMap;
43  typedef std::map<reco::TransientTrack, SeedToWeightMap> TrackAndSeedToWeightMap;
44 
50  std::vector<CachingVertex<5> > vertices(
51  const std::vector<std::vector<reco::TransientTrack> > &,
52  const std::vector<reco::TransientTrack> &primaries = std::vector<reco::TransientTrack>());
53 
61  std::vector<CachingVertex<5> > vertices(
62  const std::vector<std::vector<TrackAndWeight> > &,
63  const std::vector<reco::TransientTrack> &primaries = std::vector<reco::TransientTrack>());
64 
70  std::vector<CachingVertex<5> > vertices(
71  const std::vector<CachingVertex<5> > &,
72  const std::vector<reco::TransientTrack> &primaries = std::vector<reco::TransientTrack>());
73 
77  std::vector<CachingVertex<5> > vertices(
78  const std::vector<TransientVertex> &,
79  const std::vector<reco::TransientTrack> &primaries = std::vector<reco::TransientTrack>());
80 
81 private:
82  std::vector<CachingVertex<5> > fit();
83  void lostVertexClaimer();
84  void updateWeights();
85  bool updateSeeds();
86 
87  void clear();
88  void createSeed(const std::vector<reco::TransientTrack> &tracks);
89  void createSeed(const std::vector<TrackAndWeight> &tracks);
90  void createPrimaries(const std::vector<reco::TransientTrack> &tracks);
91  void printWeights() const;
92  void printWeights(const reco::TransientTrack &) const;
93  void printSeeds() const;
94 
95  int seedNr();
96  void resetSeedNr();
97 
98 private:
101 
102  // vertex seeds. Come with a seed number
103  // makes the weight table simpler, faster,
104  // and more reliable (I hope)
105  std::vector<std::pair<int, CachingVertex<5> > > theVertexStates;
108  std::vector<reco::TransientTrack> theTracks;
109  std::set<reco::TransientTrack> thePrimaries;
114 };
115 
116 #endif
MultiVertexFitter::printSeeds
void printSeeds() const
Definition: MultiVertexFitter.cc:530
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
MultiVertexFitter::theSeeder
LinearizationPointFinder * theSeeder
Definition: MultiVertexFitter.h:111
MultiVertexFitter::theReviveBelow
float theReviveBelow
Definition: MultiVertexFitter.h:107
CachingVertex< 5 >
DefaultMVFAnnealing
Definition: DefaultMVFAnnealing.h:6
MultiVertexFitter::thePrimaries
std::set< reco::TransientTrack > thePrimaries
Definition: MultiVertexFitter.h:109
MultiVertexFitter::updateWeights
void updateWeights()
Definition: MultiVertexFitter.cc:282
MultiVertexFitter::theWeights
TrackAndSeedToWeightMap theWeights
Definition: MultiVertexFitter.h:112
LinTrackCache.h
MultiVertexFitter::updateSeeds
bool updateSeeds()
Definition: MultiVertexFitter.cc:356
MultiVertexFitter
Definition: MultiVertexFitter.h:15
ReferenceCountingPointer
Definition: ReferenceCounted.h:60
MultiVertexFitter::theCache
LinTrackCache theCache
Definition: MultiVertexFitter.h:113
TransientTrack.h
MultiVertexFitter::vertices
std::vector< CachingVertex< 5 > > vertices(const std::vector< std::vector< reco::TransientTrack > > &, const std::vector< reco::TransientTrack > &primaries=std::vector< reco::TransientTrack >())
Definition: MultiVertexFitter.cc:233
MultiVertexFitter::lostVertexClaimer
void lostVertexClaimer()
Definition: MultiVertexFitter.cc:541
CachingVertex.h
DefaultLinearizationPointFinder.h
LinTrackCache
Definition: LinTrackCache.h:10
LinearizationPointFinder
Definition: LinearizationPointFinder.h:12
MultiVertexFitter::createPrimaries
void createPrimaries(const std::vector< reco::TransientTrack > &tracks)
Definition: MultiVertexFitter.cc:103
MultiVertexFitter::theVertexStates
std::vector< std::pair< int, CachingVertex< 5 > > > theVertexStates
Definition: MultiVertexFitter.h:105
MultiVertexFitter::SeedToWeightMap
std::map< int, double > SeedToWeightMap
Definition: MultiVertexFitter.h:42
MultiVertexFitter::~MultiVertexFitter
~MultiVertexFitter()
Definition: MultiVertexFitter.cc:277
MultiVertexFitter::seedNr
int seedNr()
Definition: MultiVertexFitter.cc:112
MultiVertexFitter::resetSeedNr
void resetSeedNr()
Definition: MultiVertexFitter.cc:114
AnnealingSchedule
Definition: AnnealingSchedule.h:6
MultiVertexFitter::fit
std::vector< CachingVertex< 5 > > fit()
Definition: MultiVertexFitter.cc:474
MultiVertexFitter::TrackAndSeedToWeightMap
std::map< reco::TransientTrack, SeedToWeightMap > TrackAndSeedToWeightMap
Definition: MultiVertexFitter.h:43
DefaultMVFAnnealing.h
MultiVertexFitter::theTracks
std::vector< reco::TransientTrack > theTracks
Definition: MultiVertexFitter.h:108
DefaultLinearizationPointFinder
Definition: DefaultLinearizationPointFinder.h:13
MultiVertexFitter::TrackAndWeight
std::pair< reco::TransientTrack, float > TrackAndWeight
Definition: MultiVertexFitter.h:41
MultiVertexFitter::theAssComp
AnnealingSchedule * theAssComp
Definition: MultiVertexFitter.h:110
MultiVertexFitter::theVertexStateNr
int theVertexStateNr
Definition: MultiVertexFitter.h:106
reco::TransientTrack
Definition: TransientTrack.h:19
MultiVertexFitter::clear
void clear()
Definition: MultiVertexFitter.cc:79
MultiVertexFitter::RefCountedLinearizedTrackState
ReferenceCountingPointer< LinearizedTrackState< 5 > > RefCountedLinearizedTrackState
Definition: MultiVertexFitter.h:100
MultiVertexFitter::MultiVertexFitter
MultiVertexFitter(const AnnealingSchedule &sched=DefaultMVFAnnealing(), const LinearizationPointFinder &seeder=DefaultLinearizationPointFinder(), float revive_below=-1.)
Definition: MultiVertexFitter.cc:266
MultiVertexFitter::printWeights
void printWeights() const
Definition: MultiVertexFitter.cc:520
MultiVertexFitter::createSeed
void createSeed(const std::vector< reco::TransientTrack > &tracks)
Definition: MultiVertexFitter.cc:91
GlobalPoint.h
MultiVertexFitter::RefCountedVertexTrack
CachingVertex< 5 >::RefCountedVertexTrack RefCountedVertexTrack
Definition: MultiVertexFitter.h:99