00001 // -*- C++ -*- 00002 // 00003 // Package: miscalibExample 00004 // Class: miscalibExample 00005 // 00013 // 00014 // Original Author: Lorenzo AGOSTINO 00015 // Created: Tue Jul 18 12:17:01 CEST 2006 00016 // $Id: miscalibExample.cc,v 1.8 2010/01/14 22:21:39 wmtan Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 00023 // user include files 00024 #include "Calibration/EcalCalibAlgos/interface/miscalibExample.h" 00025 00026 00027 // 00028 00029 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00030 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00031 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00032 00033 00034 #include <iostream> 00035 #include <stdexcept> 00036 #include <vector> 00037 00038 00039 00040 // class declaration 00041 // 00042 /* 00043 class miscalibExample : public edm::EDAnalyzer { 00044 public: 00045 explicit miscalibExample(const edm::ParameterSet&); 00046 ~miscalibExample(); 00047 00048 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00049 virtual void beginJob(); 00050 virtual void endJob(); 00051 private: 00052 00053 00054 // ----------member data --------------------------- 00055 std::string rootfile_; 00056 std::string correctedHybridSuperClusterProducer_; 00057 std::string correctedHybridSuperClusterCollection_; 00058 std::string BarrelHitsCollection_; 00059 std::string ecalHitsProducer_ ; 00060 int read_events; 00061 00062 TH1F* scEnergy; 00063 }; 00064 00065 */ 00066 miscalibExample::miscalibExample(const edm::ParameterSet& iConfig) 00067 { 00068 00069 rootfile_ = iConfig.getUntrackedParameter<std::string>("rootfile","ecalSimpleTBanalysis.root"); 00070 correctedHybridSuperClusterProducer_ = iConfig.getParameter<std::string>("correctedHybridSuperClusterProducer"); 00071 correctedHybridSuperClusterCollection_ = iConfig.getParameter<std::string>("correctedHybridSuperClusterCollection"); 00072 00073 } 00074 00075 00076 miscalibExample::~miscalibExample() 00077 { 00078 00079 00080 } 00081 00082 //======================================================================== 00083 void 00084 miscalibExample::beginJob() { 00085 //======================================================================== 00086 00087 // Book histograms 00088 scEnergy = new TH1F("scEnergy","SuperCluster energy", 100, 20., 80.); 00089 read_events=0; 00090 00091 } 00092 00093 //======================================================================== 00094 void 00095 miscalibExample::endJob() { 00096 //======================================================================== 00097 00098 std::cout << "************* STATISTICS **************" << std::endl; 00099 std::cout << "Read Events: " << read_events << std::endl; 00100 00101 00103 00104 TFile f(rootfile_.c_str(),"RECREATE"); 00105 00106 scEnergy->Write(); 00107 f.Close(); 00108 00109 } 00110 00111 00112 00113 //================================================================================= 00114 void 00115 miscalibExample::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) 00116 { 00117 //================================================================================= 00118 using namespace edm; 00119 using namespace std; 00120 00121 read_events++; 00122 00123 // Get hybrid super clusters after energy correction 00124 00125 Handle<reco::SuperClusterCollection> pCorrectedHybridSuperClusters; 00126 iEvent.getByLabel(correctedHybridSuperClusterProducer_, correctedHybridSuperClusterCollection_, pCorrectedHybridSuperClusters); 00127 if (!pCorrectedHybridSuperClusters.isValid()) { 00128 LogError("EgammaSimpleAnalyzer") << "Error! can't get collection with label " << correctedHybridSuperClusterCollection_.c_str() ; 00129 } 00130 const reco::SuperClusterCollection* correctedHybridSuperClusters = pCorrectedHybridSuperClusters.product(); 00131 00132 00133 reco::SuperClusterCollection::const_iterator superClusterIt; 00134 for(superClusterIt=correctedHybridSuperClusters->begin(); superClusterIt!=correctedHybridSuperClusters->end(); superClusterIt++ ) 00135 { 00136 00137 scEnergy->Fill(superClusterIt->energy()); 00138 00139 } 00140 00141 } 00142 00143 //define this as a plug-in 00144 //DEFINE_FWK_MODULE(miscalibExample);