![]() |
![]() |
00001 #ifndef RecoTracker_DuplicateTrackMerger_h 00002 #define RecoTracker_DuplicateTrackMerger_h 00003 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/Utilities/interface/InputTag.h" 00012 #include "DataFormats/Provenance/interface/ParameterSetID.h" 00013 #include "DataFormats/Candidate/interface/LeafCandidate.h" 00014 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00015 #include "DataFormats/TrackReco/interface/Track.h" 00016 #include "DataFormats/TrackReco/interface/TrackExtra.h" 00017 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00018 #include "DataFormats/VertexReco/interface/Vertex.h" 00019 #include "DataFormats/BeamSpot/interface/BeamSpot.h" 00020 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00021 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" 00022 #include "MagneticField/Engine/interface/MagneticField.h" 00023 #include "DataFormats/TrackCandidate/interface/TrackCandidate.h" 00024 #include "RecoTracker/TrackProducer/interface/TrackMerger.h" 00025 #include <vector> 00026 #include <algorithm> 00027 #include <string> 00028 #include <iostream> 00029 #include <map> 00030 00031 #include "CondFormats/EgammaObjects/interface/GBRForest.h" 00032 00033 namespace reco { namespace modules { 00034 class DuplicateTrackMerger : public edm::EDProducer { 00035 public: 00037 explicit DuplicateTrackMerger(const edm::ParameterSet& iPara); 00039 virtual ~DuplicateTrackMerger(); 00040 00041 typedef std::vector<std::pair<TrackCandidate,std::pair<reco::TrackRef,reco::TrackRef> > > CandidateToDuplicate; 00042 00043 protected: 00045 void produce( edm::Event &, const edm::EventSetup &) override; 00046 00047 private: 00049 GBRForest* forest_; 00050 00052 float tmva_ddsz_; 00053 float tmva_ddxy_; 00054 float tmva_dphi_; 00055 float tmva_dlambda_; 00056 float tmva_dqoverp_; 00057 float tmva_d3dr_; 00058 float tmva_d3dz_; 00059 float tmva_outer_nMissingInner_; 00060 float tmva_inner_nMissingOuter_; 00061 00062 float* gbrVals_; 00063 00065 edm::InputTag trackSource_; 00067 std::string dbFileName_; 00068 bool useForestFromDB_; 00069 std::string forestLabel_; 00071 double minDeltaR3d_; 00073 double minBDTG_; 00075 double minpT_; 00077 double minP_; 00079 double maxDCA_; 00081 double maxDPhi_; 00083 double maxDLambda_; 00085 double maxDdxy_; 00087 double maxDdsz_; 00089 double maxDQoP_; 00090 00091 edm::ESHandle<MagneticField> magfield_; 00092 00094 TrackMerger merger_; 00095 }; 00096 } 00097 } 00098 #endif