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 ¶ms); 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