CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoEgamma/EgammaPhotonProducers/interface/SoftConversionProducer.h

Go to the documentation of this file.
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 beginRun (edm::Run& r, edm::EventSetup const & es);
00038   virtual void endRun(edm::Run &,  edm::EventSetup const&);
00039     
00040   virtual void produce(edm::Event& evt, const edm::EventSetup& es);
00041   bool trackQualityCut(const reco::TrackRef& trk);
00042   bool NotAlreadyIn(const reco::Conversion& thisConv,
00043                     const std::auto_ptr<reco::ConversionCollection>& outputColl) const;
00044 
00045  private:
00046 
00047   std::string conversionOITrackProducer_;
00048   std::string conversionIOTrackProducer_;
00049 
00050   std::string outInTrackClusterAssociationCollection_;
00051   std::string inOutTrackClusterAssociationCollection_;
00052 
00053   std::string clusterType_;
00054   edm::InputTag clusterBarrelCollection_;
00055   edm::InputTag clusterEndcapCollection_;
00056 
00057   std::string softConversionCollection_;
00058   double trackMaxChi2_;
00059   double trackMinHits_;
00060   double clustersMaxDeltaEta_;
00061   double clustersMaxDeltaPhi_;
00062   
00063   edm::ParameterSet conf_;
00064   edm::ESHandle<MagneticField> theMF_;
00065   edm::ESHandle<GeometricSearchTracker>       theGeomSearchTracker_;
00066  
00067   ConversionTrackPairFinder*      theTrackPairFinder_;
00068   ConversionVertexFinder*         theVertexFinder_;
00069   ConversionTrackEcalImpactPoint* theEcalImpactPositionFinder_;
00070 
00071 };
00072 #endif