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 "FWCore/Framework/interface/ESHandle.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00012 #include "DataFormats/EgammaReco/interface/PreshowerCluster.h" 00013 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00014 #include "RecoEcal/EgammaClusterAlgos/interface/PreshowerClusterAlgo.h" 00015 #include "CondFormats/ESObjects/interface/ESGain.h" 00016 #include "CondFormats/ESObjects/interface/ESMIPToGeVConstant.h" 00017 #include "CondFormats/ESObjects/interface/ESEEIntercalibConstants.h" 00018 #include "CondFormats/ESObjects/interface/ESMissingEnergyCalibration.h" 00019 #include "CondFormats/ESObjects/interface/ESChannelStatus.h" 00020 00021 class PreshowerClusterProducer : public edm::EDProducer { 00022 00023 public: 00024 00025 typedef math::XYZPoint Point; 00026 00027 explicit PreshowerClusterProducer (const edm::ParameterSet& ps); 00028 00029 ~PreshowerClusterProducer(); 00030 00031 virtual void produce( edm::Event& evt, const edm::EventSetup& es); 00032 void set(const edm::EventSetup& es); 00033 00034 private: 00035 00036 int nEvt_; // internal counter of events 00037 00038 //clustering parameters: 00039 edm::InputTag preshHitProducer_; // name of module/plugin/producer producing hits 00040 edm::InputTag endcapSClusterProducer_; // ditto SuperClusters 00041 00042 // name out output collections 00043 std::string preshClusterCollectionX_; 00044 std::string preshClusterCollectionY_; 00045 00046 int preshNclust_; 00047 float preshClustECut; 00048 double etThresh_; 00049 00050 // association parameters: 00051 std::string assocSClusterCollection_; // name of super cluster output collection 00052 00053 edm::ESHandle<ESGain> esgain_; 00054 edm::ESHandle<ESMIPToGeVConstant> esMIPToGeV_; 00055 edm::ESHandle<ESEEIntercalibConstants> esEEInterCalib_; 00056 edm::ESHandle<ESMissingEnergyCalibration> esMissingECalib_; 00057 edm::ESHandle<ESChannelStatus> esChannelStatus_; 00058 double mip_; 00059 double gamma0_; 00060 double gamma1_; 00061 double gamma2_; 00062 double gamma3_; 00063 double alpha0_; 00064 double alpha1_; 00065 double alpha2_; 00066 double alpha3_; 00067 double aEta_[4]; 00068 double bEta_[4]; 00069 00070 PreshowerClusterAlgo * presh_algo; // algorithm doing the real work 00071 // The set of used DetID's 00072 //std::set<DetId> used_strips; 00073 00074 00075 }; 00076 #endif 00077