CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoTracker/FinalTrackSelectors/interface/DuplicateTrackMerger.h

Go to the documentation of this file.
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