CMS 3D CMS Logo

PhotonProducer.h

Go to the documentation of this file.
00001 #ifndef RecoEgamma_EgammaPhotonProducers_PhotonProducer_h
00002 #define RecoEgamma_EgammaPhotonProducers_PhotonProducer_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 "DataFormats/Common/interface/Handle.h"
00018 #include "FWCore/Framework/interface/ESHandle.h"
00019 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00020 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00021 #include "DataFormats/EgammaCandidates/interface/Conversion.h"
00022 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00023 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00024 #include "DataFormats/EgammaCandidates/interface/Photon.h"
00025 #include "DataFormats/EgammaReco/interface/BasicClusterShapeAssociation.h"
00026 #include "RecoEcal/EgammaCoreTools/interface/PositionCalc.h"
00027 #include "DataFormats/EgammaReco/interface/ElectronPixelSeedFwd.h"
00028 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.h"
00029 #include "RecoEgamma/EgammaTools/interface/HoECalculator.h"
00030 #include "RecoEgamma/EgammaTools/interface/ConversionLikelihoodCalculator.h"
00031 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h"
00032 
00033 
00034 // PhotonProducer inherits from EDProducer, so it can be a module:
00035 class PhotonProducer : public edm::EDProducer {
00036 
00037  public:
00038 
00039   PhotonProducer (const edm::ParameterSet& ps);
00040   ~PhotonProducer();
00041 
00042   virtual void beginJob (edm::EventSetup const & es);
00043   virtual void produce(edm::Event& evt, const edm::EventSetup& es);
00044 
00045  private:
00046 
00047   void fillPhotonCollection(const edm::Handle<reco::SuperClusterCollection> & scHandle,
00048                             const CaloSubdetectorGeometry *geometry,
00049                             const CaloSubdetectorGeometry *geometryES,
00050                             const CaloTopology *topology,
00051                             const EcalRecHitCollection* hits,
00052                             HBHERecHitMetaCollection *mhbhe,
00053                             const edm::Handle<reco::ConversionCollection> & conversionHandle,
00054                             const reco::ElectronPixelSeedCollection& pixelSeeds,
00055                             math::XYZPoint & vtx,
00056                             reco::PhotonCollection & outputCollection,
00057                             int& iSC);
00058 
00059   reco::ConversionRef solveAmbiguity( const edm::Handle<reco::ConversionCollection> & conversionHandle, reco::SuperClusterRef& sc);
00060 
00061   double hOverE(const reco::SuperClusterRef & scRef, HBHERecHitMetaCollection *mhbhe);
00062 
00063   std::string PhotonCollection_;
00064   edm::InputTag scHybridBarrelProducer_;
00065   edm::InputTag scIslandEndcapProducer_;
00066   edm::InputTag scHybridBarrelCollection_;
00067   edm::InputTag scIslandEndcapCollection_;
00068 
00069   edm::InputTag barrelEcalHits_;
00070   edm::InputTag endcapEcalHits_;
00071 
00072 
00073   std::string conversionProducer_;
00074   std::string conversionCollection_;
00075 
00076 
00077   std::string hbheLabel_;
00078   std::string hbheInstanceName_;
00079   double hOverEConeSize_;
00080   double maxHOverE_;
00081   double minSCEt_;
00082   double minR9_;
00083   bool validConversions_;
00084   std::string pixelSeedProducer_;
00085   std::string vertexProducer_;
00086   bool usePrimaryVertex_;
00087   bool risolveAmbiguity_;
00088   edm::ParameterSet conf_;
00089 
00090   PositionCalc posCalculator_;
00091   std::string likelihoodWeights_;
00092 
00093   edm::ESHandle<CaloGeometry> theCaloGeom_;
00094   edm::ESHandle<CaloTopology> theCaloTopo_;
00095   HoECalculator  theHoverEcalc_;
00096   ConversionLikelihoodCalculator* theLikelihoodCalc_;
00097 
00098   bool validPixelSeeds_;
00099 
00100   //int nEvt_;
00101 
00102 };
00103 #endif

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