CMS 3D CMS Logo

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 beginJob (edm::EventSetup const & es);
00048   virtual void produce(edm::Event& evt, const edm::EventSetup& es);
00049 
00050  private:
00051 
00052   int nEvt_;
00053   
00055   void setEventSetup( const edm::EventSetup& es ) ;
00056 
00057   std::string clusterType_;
00058   edm::InputTag clusterBarrelCollection_;
00059   edm::InputTag clusterEndcapCollection_;
00060   std::string OutInTrackCandidateCollection_;
00061   std::string InOutTrackCandidateCollection_;
00062   std::string OutInTrackClusterAssociationCollection_;
00063   std::string InOutTrackClusterAssociationCollection_;
00064   
00065   edm::ParameterSet conf_;
00066 
00067   edm::ESHandle<CaloGeometry> theCaloGeom_;  
00068 
00069   const NavigationSchool*     theNavigationSchool_;
00070   OutInConversionSeedFinder*  theOutInSeedFinder_;
00071   OutInConversionTrackFinder* theOutInTrackFinder_;
00072   InOutConversionSeedFinder*  theInOutSeedFinder_;
00073   InOutConversionTrackFinder* theInOutTrackFinder_;
00074 
00075   void buildCollections( const edm::Handle<edm::View<reco::CaloCluster> >& clusterHandle,
00076                          TrackCandidateCollection& outInTracks,
00077                          TrackCandidateCollection& inOutTracks,
00078                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecOI,
00079                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecIO);
00080 
00081 };
00082 #endif

Generated on Tue Jun 9 17:43:27 2009 for CMSSW by  doxygen 1.5.4