CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoParticleFlow/PFTracking/interface/PFElecTkProducer.h

Go to the documentation of this file.
00001 #ifndef PFElecTkProducer_H
00002 #define PFElecTkProducer_H
00003 
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/Framework/interface/MakerMacros.h"
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrackFwd.h"
00010 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h"
00011 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00012 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
00013 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateMode.h"
00014 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateTransform.h"
00015 class PFTrackTransformer;
00016 class GsfTrack;
00017 class MagneticField;
00018 class TrackerGeometry;
00019 class ConvBremPFTrackFinder;
00020 
00022 
00031 class PFElecTkProducer : public edm::EDProducer {
00032  public:
00033   
00035      explicit PFElecTkProducer(const edm::ParameterSet&);
00036 
00038      ~PFElecTkProducer();
00039 
00040    private:
00041       virtual void beginRun(edm::Run&,const edm::EventSetup&) ;
00042       virtual void endRun() ;
00043 
00045       virtual void produce(edm::Event&, const edm::EventSetup&);
00046 
00047     
00048       int FindPfRef(const reco::PFRecTrackCollection & PfRTkColl, 
00049                     reco::GsfTrack, bool);
00050       
00051       bool isFifthStep(reco::PFRecTrackRef pfKfTrack);
00052 
00053       bool applySelection(reco::GsfTrack);
00054       
00055       bool resolveGsfTracks(const std::vector<reco::GsfPFRecTrack> &GsfPFVec,
00056                             unsigned int ngsf,
00057                             std::vector<unsigned int> &secondaries);
00058 
00059       float selectSecondaries(const reco::GsfPFRecTrack primGsf,
00060                               const reco::GsfPFRecTrack secGsf); 
00061       
00062       // ----------member data ---------------------------
00063       reco::GsfPFRecTrack pftrack_;
00064       reco::GsfPFRecTrack secpftrack_;
00065       edm::ParameterSet conf_;
00066       edm::InputTag gsfTrackLabel_;
00067       edm::InputTag pfTrackLabel_;
00068       edm::InputTag primVtxLabel_;
00069       edm::InputTag pfEcalClusters_;
00070       edm::InputTag pfNuclear_;
00071       edm::InputTag pfConv_;
00072       edm::InputTag pfV0_;
00073       bool useNuclear_;
00074       bool useConversions_;
00075       bool useV0_;
00076 
00077 
00079       PFTrackTransformer *pfTransformer_;     
00080       const MultiTrajectoryStateMode *mtsMode_;
00081       MultiTrajectoryStateTransform  mtsTransform_;
00082       ConvBremPFTrackFinder *convBremFinder_;
00083 
00084 
00086       bool trajinev_;
00087       bool modemomentum_;
00088       bool applySel_;
00089       bool applyGsfClean_;
00090       bool useFifthStep_;
00091       bool useFifthStepSec_;
00092       double SCEne_;
00093       double detaGsfSC_;
00094       double dphiGsfSC_;
00095       double maxPtConvReco_;
00096       
00098       bool useConvBremFinder_;
00099       double mvaConvBremFinderID_;
00100       std::string path_mvaWeightFileConvBrem_;
00101 };
00102 #endif