CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/RecoVertex/AdaptiveVertexFinder/interface/TracksClusteringFromDisplacedSeed.h

Go to the documentation of this file.
00001 #include <memory>
00002 
00003 #include "FWCore/Framework/interface/EDProducer.h"
00004 #include "FWCore/Framework/interface/Event.h"
00005 #include "FWCore/Framework/interface/MakerMacros.h"
00006 #include "FWCore/Utilities/interface/InputTag.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 
00009 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00010 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
00011 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
00012 
00013 #include "DataFormats/Common/interface/Handle.h"
00014 #include "DataFormats/TrackReco/interface/Track.h"
00015 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00016 #include "DataFormats/VertexReco/interface/Vertex.h"
00017 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00018 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00019 
00020 #include "TrackingTools/PatternTools/interface/TwoTrackMinimumDistance.h"
00021 #include "TrackingTools/IPTools/interface/IPTools.h"
00022 
00023 //#define VTXDEBUG
00024 
00025 class TracksClusteringFromDisplacedSeed {
00026     public:
00027     struct Cluster 
00028     { 
00029       GlobalPoint seedPoint;  
00030       reco::TransientTrack seedingTrack;
00031       std::vector<reco::TransientTrack> tracks;
00032     };
00033         TracksClusteringFromDisplacedSeed(const edm::ParameterSet &params);
00034         
00035         
00036         std::vector<Cluster> clusters(
00037           const reco::Vertex    &pv,
00038           const std::vector<reco::TransientTrack> & selectedTracks
00039          );
00040          
00041 
00042     private:
00043         bool trackFilter(const reco::TrackRef &track) const;
00044         std::pair<std::vector<reco::TransientTrack>,GlobalPoint> nearTracks(const reco::TransientTrack &seed, const std::vector<reco::TransientTrack> & tracks, const reco::Vertex & primaryVertex) const;
00045 
00046 //      unsigned int                            maxNTracks;
00047         double                                  min3DIPSignificance;
00048         double                                  min3DIPValue;
00049         double                                  clusterMaxDistance;
00050         double                                  clusterMaxSignificance;
00051         double                                  clusterScale;
00052         double                                  clusterMinAngleCosine;
00053 
00054 
00055 };
00056