00001 #ifndef _ReducedESRecHitCollectionProducer_H 00002 #define _ReducedESRecHitCollectionProducer_H 00003 00004 #include "FWCore/Framework/interface/MakerMacros.h" 00005 #include "FWCore/Framework/interface/EDProducer.h" 00006 #include "FWCore/Framework/interface/Event.h" 00007 #include "FWCore/Framework/interface/EDProducer.h" 00008 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "DataFormats/Common/interface/Handle.h" 00011 #include "DataFormats/DetId/interface/DetId.h" 00012 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00013 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00014 00015 #include <iostream> 00016 #include <vector> 00017 #include <string> 00018 #include <map> 00019 #include <set> 00020 00021 class EcalPreshowerGeometry; 00022 class CaloSubdetectorTopology; 00023 class ReducedESRecHitCollectionProducer : public edm::EDProducer { 00024 00025 public : 00026 00027 ReducedESRecHitCollectionProducer(const edm::ParameterSet& pset); 00028 virtual ~ReducedESRecHitCollectionProducer(); 00029 void beginRun (edm::Run &, const edm::EventSetup&); 00030 void produce(edm::Event & e, const edm::EventSetup& c); 00031 void collectIds(const ESDetId strip1, const ESDetId strip2, const int & row=0); 00032 00033 private : 00034 00035 const EcalPreshowerGeometry *geometry_p; 00036 CaloSubdetectorTopology *topology_p; 00037 00038 double scEtThresh_; 00039 00040 edm::InputTag InputRecHitES_; 00041 edm::InputTag InputSpuerClusterEE_; 00042 std::string OutputLabelES_; 00043 std::vector<edm::InputTag> interestingDetIdCollections_; 00044 00045 std::set<DetId> collectedIds_; 00046 00047 }; 00048 00049 #endif 00050 00051