Go to the documentation of this file.00001 #ifndef RecoParticleFlow_PFClusterShapeProducer_PFClusterShapeProducer_h_
00002 #define RecoParticleFlow_PFClusterShapeProducer_PFClusterShapeProducer_h_
00003
00004
00005 #include <memory>
00006 #include <vector>
00007
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "FWCore/Framework/interface/EDProducer.h"
00010
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/MakerMacros.h"
00013
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015
00016 #include "DataFormats/Common/interface/Handle.h"
00017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00018 #include "FWCore/Utilities/interface/Exception.h"
00019
00020 #include "DataFormats/ParticleFlowReco/interface/PFClusterFwd.h"
00021 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
00022
00023 #include "DataFormats/EgammaReco/interface/ClusterShape.h"
00024 #include "DataFormats/EgammaReco/interface/ClusterShapeFwd.h"
00025
00026 #include "RecoParticleFlow/PFClusterShapeProducer/interface/PFClusterShapeAlgo.h"
00027
00028 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00029 #include "Geometry/CaloTopology/interface/EcalBarrelTopology.h"
00030 #include "Geometry/CaloTopology/interface/EcalEndcapTopology.h"
00031
00032
00033 class PFClusterShapeProducer : public edm::EDProducer
00034 {
00035 public:
00036
00037 explicit PFClusterShapeProducer(const edm::ParameterSet &);
00038
00039 ~PFClusterShapeProducer();
00040
00041 virtual void produce(edm::Event & ev, const edm::EventSetup & es);
00042
00043 private:
00044
00045 std::string shapesLabel_;
00046
00047 edm::InputTag inputTagPFClustersECAL_;
00048 edm::InputTag inputTagPFRecHitsECAL_;
00049
00050 PFClusterShapeAlgo * csAlgo_p;
00051
00052 edm::Handle<reco::PFClusterCollection>
00053 getClusterCollection(edm::Event & evt);
00054
00055 edm::Handle<reco::PFRecHitCollection>
00056 getRecHitCollection(edm::Event & evt);
00057 };
00058
00059 #endif