CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef RecoEgamma_EgammaPhotonProducers_SoftConversionTrackCandidateProducer_h
00002 #define RecoEgamma_EgammaPhotonProducers_SoftConversionTrackCandidateProducer_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/MeasurementDet/interface/MeasurementTracker.h"
00021 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00022 #include "RecoEgamma/EgammaTools/interface/HoECalculator.h"
00023 #include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
00024 #include "TrackingTools/DetLayers/interface/NavigationSetter.h"
00025 #include "TrackingTools/DetLayers/interface/NavigationSchool.h"
00026 #include "RecoTracker/TkNavigation/interface/SimpleNavigationSchool.h"
00027 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00028 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
00029 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
00030 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00031 #include "DataFormats/Common/interface/View.h"
00032 
00033 class OutInConversionSeedFinder;
00034 class InOutConversionSeedFinder;
00035 class OutInConversionTrackFinder;
00036 class InOutConversionTrackFinder;
00037 
00038 // SoftConversionTrackCandidateProducer inherits from EDProducer, so it can be a module:
00039 class SoftConversionTrackCandidateProducer : public edm::EDProducer {
00040 
00041  public:
00042 
00043   SoftConversionTrackCandidateProducer (const edm::ParameterSet& ps);
00044   ~SoftConversionTrackCandidateProducer();
00045 
00046 
00047   virtual void beginRun (edm::Run& r, edm::EventSetup const & es);
00048   virtual void endRun (edm::Run& r, edm::EventSetup const & es);
00049   virtual void produce(edm::Event& evt, const edm::EventSetup& es);
00050 
00051  private:
00052 
00053   int nEvt_;
00054   
00056   void setEventSetup( const edm::EventSetup& es ) ;
00057 
00058   std::string clusterType_;
00059   edm::InputTag clusterBarrelCollection_;
00060   edm::InputTag clusterEndcapCollection_;
00061   std::string OutInTrackCandidateCollection_;
00062   std::string InOutTrackCandidateCollection_;
00063   std::string OutInTrackClusterAssociationCollection_;
00064   std::string InOutTrackClusterAssociationCollection_;
00065   
00066   edm::ParameterSet conf_;
00067 
00068   edm::ESHandle<CaloGeometry> theCaloGeom_;  
00069 
00070   const NavigationSchool*     theNavigationSchool_;
00071   OutInConversionSeedFinder*  theOutInSeedFinder_;
00072   OutInConversionTrackFinder* theOutInTrackFinder_;
00073   InOutConversionSeedFinder*  theInOutSeedFinder_;
00074   InOutConversionTrackFinder* theInOutTrackFinder_;
00075 
00076   void buildCollections( const edm::Handle<edm::View<reco::CaloCluster> >& clusterHandle,
00077                          TrackCandidateCollection& outInTracks,
00078                          TrackCandidateCollection& inOutTracks,
00079                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecOI,
00080                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecIO);
00081 
00082 };
00083 #endif