CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoEgamma/EgammaPhotonProducers/interface/ConversionTrackCandidateProducer.h

Go to the documentation of this file.
00001 #ifndef RecoEgamma_EgammaPhotonProducers_ConversionTrackCandidateProducer_h
00002 #define RecoEgamma_EgammaPhotonProducers_ConversionTrackCandidateProducer_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 "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.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 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00033 
00034 class OutInConversionSeedFinder;
00035 class InOutConversionSeedFinder;
00036 class OutInConversionTrackFinder;
00037 class InOutConversionTrackFinder;
00038 
00039 // ConversionTrackCandidateProducer inherits from EDProducer, so it can be a module:
00040 class ConversionTrackCandidateProducer : public edm::EDProducer {
00041 
00042  public:
00043 
00044   ConversionTrackCandidateProducer (const edm::ParameterSet& ps);
00045   ~ConversionTrackCandidateProducer();
00046 
00047 
00048   
00049   virtual void beginRun (edm::Run &, edm::EventSetup const & es);
00050   virtual void endRun (edm::Run &, edm::EventSetup const & es);
00051   virtual void produce(edm::Event& evt, const edm::EventSetup& es);
00052 
00053  private:
00054 
00055   int nEvt_;
00056   
00058   void setEventSetup( const edm::EventSetup& es ) ;
00059 
00060   std::string OutInTrackCandidateCollection_;
00061   std::string InOutTrackCandidateCollection_;
00062 
00063 
00064   std::string OutInTrackSuperClusterAssociationCollection_;
00065   std::string InOutTrackSuperClusterAssociationCollection_;
00066   
00067   edm::InputTag bcBarrelCollection_;
00068   edm::InputTag bcEndcapCollection_;
00069   edm::InputTag scHybridBarrelProducer_;
00070   edm::InputTag scIslandEndcapProducer_;
00071   edm::ParameterSet conf_;
00072   edm::InputTag hcalTowers_;
00073  
00074   double hOverEConeSize_;
00075   double maxHOverE_;
00076   double minSCEt_;
00077 
00078   edm::ESHandle<CaloGeometry> theCaloGeom_;  
00079 
00080   const NavigationSchool*       theNavigationSchool_;
00081   OutInConversionSeedFinder*  theOutInSeedFinder_;
00082   OutInConversionTrackFinder* theOutInTrackFinder_;
00083   InOutConversionSeedFinder*  theInOutSeedFinder_;
00084   InOutConversionTrackFinder* theInOutTrackFinder_;
00085 
00086 
00087   std::vector<edm::Ptr<reco::CaloCluster> > caloPtrVecOutIn_; 
00088   std::vector<edm::Ptr<reco::CaloCluster> > caloPtrVecInOut_; 
00089 
00090   std::vector<edm::Ref<reco::SuperClusterCollection> > vecOfSCRefForOutIn;  
00091   std::vector<edm::Ref<reco::SuperClusterCollection> > vecOfSCRefForInOut;  
00092   
00093   void buildCollections( const edm::Handle<edm::View<reco::CaloCluster> > & scHandle,
00094                          const edm::Handle<edm::View<reco::CaloCluster> > & bcHandle,
00095                          const edm::Handle<CaloTowerCollection> & hcalTowersHandle,
00096                          TrackCandidateCollection& outInTracks,
00097                          TrackCandidateCollection& inOutTracks,
00098                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecOI,
00099                          std::vector<edm::Ptr<reco::CaloCluster> >& vecRecIO
00100 );
00101 
00102 
00103 };
00104 #endif