00001 #ifndef RecoEcal_EgammaClusterProducers_PreshowerClusterProducer_h 00002 #define RecoEcal_EgammaClusterProducers_PreshowerClusterProducer_h 00003 00004 #include <memory> 00005 00006 #include "FWCore/Framework/interface/EDProducer.h" 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00010 00011 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00012 00013 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00014 00015 #include "DataFormats/EgammaReco/interface/PreshowerCluster.h" 00016 #include "RecoEcal/EgammaClusterAlgos/interface/PreshowerClusterAlgo.h" 00017 00018 00019 00020 class PreshowerClusterProducer : public edm::EDProducer { 00021 00022 public: 00023 00024 typedef math::XYZPoint Point; 00025 00026 explicit PreshowerClusterProducer (const edm::ParameterSet& ps); 00027 00028 ~PreshowerClusterProducer(); 00029 00030 virtual void produce( edm::Event& evt, const edm::EventSetup& es); 00031 00032 private: 00033 00034 int nEvt_; // internal counter of events 00035 00036 //clustering parameters: 00037 edm::InputTag preshHitProducer_; // name of module/plugin/producer producing hits 00038 edm::InputTag endcapSClusterProducer_; // ditto SuperClusters 00039 00040 // name out output collections 00041 std::string preshClusterCollectionX_; 00042 std::string preshClusterCollectionY_; 00043 00044 00045 int preshNclust_; 00046 float preshClustECut; 00047 double etThresh_; 00048 00049 // association parameters: 00050 std::string assocSClusterCollection_; // name of super cluster output collection 00051 00052 double calib_planeX_; 00053 double calib_planeY_; 00054 double mip_; 00055 double gamma_; 00056 00057 PreshowerClusterAlgo * presh_algo; // algorithm doing the real work 00058 // The set of used DetID's 00059 //std::set<DetId> used_strips; 00060 00061 PreshowerClusterAlgo::DebugLevel debugL; 00062 00063 }; 00064 #endif 00065