00001 #ifndef RECOMET_METPRODUCERS_BEAMHALOSUMMARYPRODUCER_H 00002 #define RECOMET_METPRODUCERS_BEAMHALOSUMMARYPRODUCER_H 00003 00004 /* 00005 [class]: BeamHaloSummaryProducer 00006 [authors]: R. Remington, The University of Florida 00007 [description]: EDProducer which runs BeamHalo Id/Flagging algorithms and stores BeamHaloSummary object to the event. Inspiration for this implementation was taken from HcalNoisInfoProducer.cc by J.P Chou 00008 [date]: October 15, 2009 00009 */ 00010 00011 00012 //Standard C++ classes 00013 #include <iostream> 00014 #include <string> 00015 #include <map> 00016 #include <vector> 00017 #include <utility> 00018 #include <ostream> 00019 #include <fstream> 00020 #include <algorithm> 00021 #include <cmath> 00022 #include <memory> 00023 #include <iomanip> 00024 #include <cstdlib> 00025 00026 // user include files 00027 #include "FWCore/Framework/interface/Frameworkfwd.h" 00028 #include "FWCore/Framework/interface/EDProducer.h" 00029 #include "FWCore/Framework/interface/Event.h" 00030 #include "FWCore/Framework/interface/MakerMacros.h" 00031 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00032 00033 #include "DataFormats/METReco/interface/CSCHaloData.h" 00034 #include "DataFormats/METReco/interface/EcalHaloData.h" 00035 #include "DataFormats/METReco/interface/HcalHaloData.h" 00036 #include "DataFormats/METReco/interface/GlobalHaloData.h" 00037 #include "DataFormats/METReco/interface/BeamHaloSummary.h" 00038 #include "DataFormats/EgammaCandidates/interface/Photon.h" 00039 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" 00040 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h" 00041 #include "DataFormats/Common/interface/Handle.h" 00042 #include "DataFormats/Common/interface/View.h" 00043 #include "DataFormats/Common/interface/TriggerResults.h" 00044 #include "FWCore/Framework/interface/Frameworkfwd.h" 00045 #include "FWCore/Framework/interface/Event.h" 00046 #include "FWCore/Framework/interface/MakerMacros.h" 00047 #include "FWCore/Framework/interface/EventSetup.h" 00048 #include "FWCore/Framework/interface/ESHandle.h" 00049 #include "FWCore/Framework/interface/EDProducer.h" 00050 00051 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00052 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00053 #include "FWCore/PluginManager/interface/ModuleDef.h" 00054 00055 namespace reco 00056 { 00057 class BeamHaloSummaryProducer : public edm::EDProducer { 00058 00059 public: 00060 explicit BeamHaloSummaryProducer(const edm::ParameterSet&); 00061 ~BeamHaloSummaryProducer(); 00062 00063 private: 00064 00065 virtual void beginJob() ; 00066 virtual void endJob() ; 00067 virtual void produce(edm::Event&, const edm::EventSetup&); 00068 virtual void beginRun(edm::Run&, const edm::EventSetup&); 00069 virtual void endRun(edm::Run&, const edm::EventSetup&); 00070 00071 edm::InputTag IT_CSCHaloData; 00072 edm::InputTag IT_EcalHaloData; 00073 edm::InputTag IT_HcalHaloData; 00074 edm::InputTag IT_GlobalHaloData; 00075 00076 float L_EcalPhiWedgeEnergy; 00077 int L_EcalPhiWedgeConstituents; 00078 float L_EcalPhiWedgeToF; 00079 float L_EcalPhiWedgeConfidence; 00080 float L_EcalShowerShapesRoundness; 00081 float L_EcalShowerShapesAngle; 00082 int L_EcalSuperClusterSize; 00083 float L_EcalSuperClusterEnergy; 00084 00085 float T_EcalPhiWedgeEnergy; 00086 int T_EcalPhiWedgeConstituents; 00087 float T_EcalPhiWedgeToF; 00088 float T_EcalPhiWedgeConfidence; 00089 float T_EcalShowerShapesRoundness; 00090 float T_EcalShowerShapesAngle; 00091 int T_EcalSuperClusterSize; 00092 float T_EcalSuperClusterEnergy; 00093 00094 float L_HcalPhiWedgeEnergy; 00095 int L_HcalPhiWedgeConstituents; 00096 float L_HcalPhiWedgeToF; 00097 float L_HcalPhiWedgeConfidence; 00098 00099 float T_HcalPhiWedgeEnergy; 00100 int T_HcalPhiWedgeConstituents; 00101 float T_HcalPhiWedgeToF; 00102 float T_HcalPhiWedgeConfidence; 00103 }; 00104 } 00105 00106 #endif 00107