00001 #ifndef RecoEcal_EgammaClusterProducers_PreshowerClusterShapeProducer_h 00002 #define RecoEcal_EgammaClusterProducers_PreshowerClusterShapeProducer_h 00003 00004 // $Author: argiro $ 00005 // $Id: PreshowerClusterShapeProducer.h,v 1.4 2011/07/18 18:05:40 argiro Exp $ 00006 // $Date: 2011/07/18 18:05:40 $ 00007 00008 #include <memory> 00009 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/Framework/interface/EventSetup.h" 00013 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00014 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 00017 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00018 00019 #include "DataFormats/EgammaReco/interface/PreshowerClusterShape.h" 00020 #include "RecoEcal/EgammaClusterAlgos/interface/EndcapPiZeroDiscriminatorAlgo.h" 00021 00022 // authors A. Kyriakis, D. Maletic 00023 00024 class PreshowerClusterShapeProducer : public edm::EDProducer { 00025 00026 public: 00027 00028 typedef math::XYZPoint Point; 00029 00030 explicit PreshowerClusterShapeProducer (const edm::ParameterSet& ps); 00031 00032 ~PreshowerClusterShapeProducer(); 00033 00034 virtual void produce( edm::Event& evt, const edm::EventSetup& es); 00035 00036 private: 00037 00038 int nEvt_; // internal counter of events 00039 00040 //clustering parameters: 00041 00042 edm::InputTag preshHitProducer_; // name of module/plugin/producer producing hits 00043 edm::InputTag endcapSClusterProducer_; // likewise for producer of endcap superclusters 00044 00045 // std::string photonCorrCollectionProducer_; 00046 // std::string correctedPhotonCollection_; 00047 00048 std::string PreshowerClusterShapeCollectionX_; 00049 std::string PreshowerClusterShapeCollectionY_; 00050 00051 EndcapPiZeroDiscriminatorAlgo * presh_pi0_algo; // algorithm doing the real work 00052 00053 }; 00054 #endif 00055