File indexing completed on 2024-04-06 12:29:02
0001 #include <memory>
0002
0003 #include "FWCore/Framework/interface/Event.h"
0004 #include "FWCore/Framework/interface/MakerMacros.h"
0005 #include "FWCore/Utilities/interface/InputTag.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007
0008 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0009 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0010 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0011
0012 #include "DataFormats/Common/interface/Handle.h"
0013 #include "DataFormats/TrackReco/interface/Track.h"
0014 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0015 #include "DataFormats/VertexReco/interface/Vertex.h"
0016 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0017 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0018
0019 #include "TrackingTools/PatternTools/interface/TwoTrackMinimumDistance.h"
0020 #include "TrackingTools/IPTools/interface/IPTools.h"
0021
0022
0023
0024 class TracksClusteringFromDisplacedSeed {
0025 public:
0026 struct Cluster {
0027 GlobalPoint seedPoint;
0028 reco::TransientTrack seedingTrack;
0029 std::vector<reco::TransientTrack> tracks;
0030 };
0031 TracksClusteringFromDisplacedSeed(const edm::ParameterSet ¶ms);
0032
0033 std::vector<Cluster> clusters(const reco::Vertex &pv, const std::vector<reco::TransientTrack> &selectedTracks);
0034
0035 private:
0036 bool trackFilter(const reco::TrackRef &track) const;
0037 std::pair<std::vector<reco::TransientTrack>, GlobalPoint> nearTracks(const reco::TransientTrack &seed,
0038 const std::vector<reco::TransientTrack> &tracks,
0039 const reco::Vertex &primaryVertex) const;
0040
0041
0042 double max3DIPSignificance;
0043 double max3DIPValue;
0044 double min3DIPSignificance;
0045 double min3DIPValue;
0046 double clusterMaxDistance;
0047 double clusterMaxSignificance;
0048 double distanceRatio;
0049 double clusterMinAngleCosine;
0050 double maxTimeSignificance;
0051 };