CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoVertex/TertiaryTracksVertexFinder/interface/ConfigurableTertiaryTracksVertexFinder.h

Go to the documentation of this file.
00001 
00002 #ifndef _ConfigurableTertiaryTracksVertexFinder_H_
00003 #define _ConfigurableTertiaryTracksVertexFinder_H_
00004 
00005 #include "RecoVertex/VertexPrimitives/interface/VertexReconstructor.h"
00006 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h"
00007 #include "RecoVertex/VertexPrimitives/interface/VertexUpdator.h"
00008 #include "RecoVertex/VertexPrimitives/interface/VertexTrackCompatibilityEstimator.h"
00009 #include <vector>
00010 
00011 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
00012 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00013 
00014 #include "RecoVertex/TrimmedKalmanVertexFinder/interface/ConfigurableTrimmedVertexFinder.h"
00015 
00016 #include "RecoVertex/TertiaryTracksVertexFinder/interface/AddTvTrack.h"
00017 
00018 class V0SvFilter;
00019 class Flight2DSvFilter;
00020 
00021 class ConfigurableTertiaryTracksVertexFinder : public VertexReconstructor {
00022 
00023   public:
00024 
00025   ConfigurableTertiaryTracksVertexFinder(const VertexFitter<5> * vf, 
00026     const VertexUpdator<5> * vu, const VertexTrackCompatibilityEstimator<5> * ve);
00027 
00028   virtual ~ConfigurableTertiaryTracksVertexFinder();
00029 
00030   virtual std::vector<TransientVertex> 
00031     vertices(const std::vector<reco::TransientTrack> &) const; 
00032 
00033   virtual std::vector<TransientVertex> 
00034     vertices(const std::vector<reco::TransientTrack> &, const TransientVertex& pv) const; 
00035  
00036   virtual ConfigurableTertiaryTracksVertexFinder * clone() const {
00037     return new ConfigurableTertiaryTracksVertexFinder(*this);
00038   }
00039 
00040 
00041   //inline void setPrimaryVertex(TransientVertex& ThePrimaryVertex) { 
00042   //  thePrimaryVertex = & ThePrimaryVertex; 
00043   //}
00044 
00045   // for TDR studies
00046   //std::vector<pair<reco::TransientTrack,double> > getTrackInfo()  {
00047   //  return TrackInfo;
00048   //}
00049   //std::vector<pair<reco::TransientTrack,double*> > getTrackInfo2() {
00050   //  return TrackInfo2;
00051   //}
00052 
00053   AddTvTrack::TrackInfoVector getTrackInfo() { return theTrackInfoVector; }
00054 
00055   private:
00056 
00057   std::vector<TransientVertex> reconstruct(
00058     const std::vector<reco::TransientTrack> & tracks, 
00059     const TransientVertex& pv) const; 
00060 
00061   static const bool debug = false;
00062 
00063   ConfigurableTrimmedVertexFinder* theTKVF;
00064   V0SvFilter* theV0SvFilter;
00065   Flight2DSvFilter* theFlight2DSvFilter;
00066 
00067   double theMinTrackPt,theMaxVtxMass;
00068   double theK0sMassWindow;
00069   double theMaxSigOnDistTrackToB;
00070   double theMaxInPvFrac;
00071 
00072   // parameters for Flight2DSvFilter
00073   double theMaxDist2D,theMinDist2D,theMinSign2D;
00074   int theMinTracks;
00075 
00076   //  TransientVertex* thePrimaryVertex;
00077 
00078   // TDR Studies
00079   //static std::vector<pair<reco::TransientTrack,double> > TrackInfo;
00080   //static std::vector<pair<reco::TransientTrack,double* > > TrackInfo2;
00081   //std::vector<pair<reco::TransientTrack,double> > TrackInfo;
00082   //std::vector<pair<reco::TransientTrack,double* > > TrackInfo2;
00083   mutable AddTvTrack::TrackInfoVector theTrackInfoVector;
00084 
00085 };
00086 
00087 #endif