00001 #ifndef RecoEgamma_EgammaPhotonProducers_SoftConversionProducer_h 00002 #define RecoEgamma_EgammaPhotonProducers_SoftConversionProducer_h 00003 00013 #include "FWCore/Framework/interface/EDProducer.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 #include "FWCore/Framework/interface/Event.h" 00016 #include "FWCore/Framework/interface/EventSetup.h" 00017 #include "FWCore/Framework/interface/ESHandle.h" 00018 00019 #include "MagneticField/Engine/interface/MagneticField.h" 00020 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" 00021 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h" 00022 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00023 00024 class ConversionTrackEcalImpactPoint; 00025 class ConversionTrackPairFinder; 00026 class ConversionVertexFinder; 00027 class SoftConversionProducer : public edm::EDProducer { 00028 00029 public: 00030 00031 typedef std::vector<std::pair<reco::TrackRef, reco::CaloClusterPtr> > TrackClusterMap; 00032 00033 SoftConversionProducer (const edm::ParameterSet& ps); 00034 ~SoftConversionProducer(); 00035 00036 00037 virtual void beginJob (edm::EventSetup const & es); 00038 virtual void endJob (); 00039 virtual void produce(edm::Event& evt, const edm::EventSetup& es); 00040 bool trackQualityCut(const reco::TrackRef& trk); 00041 bool NotAlreadyIn(const reco::Conversion& thisConv, 00042 const std::auto_ptr<reco::ConversionCollection>& outputColl) const; 00043 00044 private: 00045 00046 std::string conversionOITrackProducer_; 00047 std::string conversionIOTrackProducer_; 00048 00049 std::string outInTrackClusterAssociationCollection_; 00050 std::string inOutTrackClusterAssociationCollection_; 00051 00052 std::string clusterType_; 00053 edm::InputTag clusterBarrelCollection_; 00054 edm::InputTag clusterEndcapCollection_; 00055 00056 std::string softConversionCollection_; 00057 double trackMaxChi2_; 00058 double trackMinHits_; 00059 double clustersMaxDeltaEta_; 00060 double clustersMaxDeltaPhi_; 00061 00062 edm::ParameterSet conf_; 00063 edm::ESHandle<MagneticField> theMF_; 00064 edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker_; 00065 00066 ConversionTrackPairFinder* theTrackPairFinder_; 00067 ConversionVertexFinder* theVertexFinder_; 00068 ConversionTrackEcalImpactPoint* theEcalImpactPositionFinder_; 00069 00070 }; 00071 #endif