Back to home page

Project CMSSW displayed by LXR

 
 

    


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 //#define VTXDEBUG
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 &params);
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   //    unsigned int                maxNTracks;
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 };