ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/LJMet/Utils/src/PlotReco.cc
Revision: 1.3
Committed: Sun Dec 6 21:06:12 2009 UTC (15 years, 4 months ago) by kukartse
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +44 -2 lines
Error occurred while calculating annotation data.
Log Message:
*** empty log message ***

File Contents

# Content
1 // -*- C++ -*-
2 //
3 // Package: PlotReco
4 // Class: PlotReco
5 //
6 /**\class PlotReco PlotReco.h LJMet/Utils/interface/PlotReco.h
7
8 Description: quick look at the RECO data
9
10 Implementation:
11 Keep this class as simple and fast as possible
12 */
13 //
14 // Original Author: "Gena Kukartsev"
15 // Created: Tue Nov 10 13:39:12 CDT 2009
16 // $Id: PlotReco.cc,v 1.2 2009/12/02 19:42:47 kukartse Exp $
17 //
18 //
19
20 #include "LJMet/Utils/interface/PlotReco.h"
21 #include "FWCore/Framework/interface/TriggerNames.h"
22 #include "DataFormats/Common/interface/TriggerResults.h"
23 #include "DataFormats/PatCandidates/interface/Jet.h"
24 #include "DataFormats/PatCandidates/interface/Electron.h"
25 #include "DataFormats/PatCandidates/interface/Muon.h"
26 #include "DataFormats/PatCandidates/interface/MET.h"
27 #include "DataFormats/PatCandidates/interface/TriggerPath.h"
28 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
29 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
30 #include "DataFormats/Math/interface/deltaR.h"
31 #include "FWCore/ServiceRegistry/interface/Service.h"
32 #include "PhysicsTools/UtilAlgos/interface/TFileService.h"
33
34 using namespace edm;
35
36 PlotReco::PlotReco(const edm::ParameterSet& iConfig){
37 std::cout << "=======>: PlotReco::PlotReco()" << std::endl;
38
39 //
40 //_____ init TFileService, needed for the output root file
41 //
42 edm::Service<TFileService> fs;
43 _tree = fs->make<TTree>("ttljets", "ttljets", 64000000);
44
45 irun = 0;
46 ievent = 0;
47 ilumi = 0;
48 njets = 0;
49 jet1_pt = -1.0;
50 jet1_eta = -1.0;
51 jet1_phi = -1.0;
52 }
53
54
55 PlotReco::~PlotReco()
56 {
57 std::cout << "=======>: PlotReco::~PlotReco()" << std::endl;
58 }
59
60
61 void PlotReco::init_leaves(void){
62 ievent = ilumi = irun = njets = -1;
63 jet1_pt = jet1_eta = jet1_phi = -10.0;
64 jet_pt.clear();
65 jet_eta.clear();
66 jet_phi.clear();
67 track_pt.clear();
68 track_eta.clear();
69 track_phi.clear();
70 }
71
72 void
73 PlotReco::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
74 {
75 std::cout << "=======>: PlotReco::analyze()" << std::endl;
76
77 // tree leaves cleanup
78 init_leaves();
79
80 //
81 //_____ event book keeping
82 //
83 irun = (unsigned int)iEvent.id().run();
84 // this will work starting with CMSSW_340:
85 //unsigned int ilumi = (unsigned int)iEvent.id().luminosityBlock();
86 ilumi = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
87 ievent = (unsigned int)iEvent.id().event();
88 cout << std::endl << "===> Provenance: " << std::endl;
89 cout << "Run, lumi, event: " << irun << ", " << ilumi << ", "<< ievent << std::endl;
90 //
91 //_____ check PAT jets _______________________________________________
92 //
93 std::cout << std::endl << "===> Check PAT jets: " << std::endl;
94 Handle< vector< reco::CaloJet > > jets;
95 iEvent . getByLabel( "kt4CaloJets", jets );
96 njets = jets->size();
97 cout << "jet collection size: "<< njets << endl;
98 if (njets>0){
99 jet1_pt = (*jets)[0].pt();
100 jet1_eta = (*jets)[0].eta();
101 jet1_phi = (*jets)[0].phi();
102 cout << "pT= " << jet1_pt << ", eta=" << jet1_eta << std::endl;
103 }
104 for(std::vector<reco::CaloJet>::const_iterator jet = jets->begin();
105 jet != jets->end();
106 ++jet){
107 jet_pt.push_back(jet->pt());
108 }
109 //
110 //_____ check trigger
111 //
112 cout << std::endl << "===> Check trigger: " << std::endl;
113 Handle<TriggerResults> hltresults;
114 iEvent.getByLabel("TriggerResults", hltresults);
115 int ntrigs=hltresults->size();
116 edm::TriggerNames triggerNames_;
117 triggerNames_.init(*hltresults);
118 for (int itrig = 0; itrig < ntrigs; ++itrig) {
119 cout << "Trigger name and number: " << triggerNames_.triggerName(itrig) << ", " << itrig;
120 cout << " passed: " << hltresults->accept(itrig) << endl;
121 }
122 //
123 //_____ check Beam spot _____________________________________________________
124 //
125 cout << std::endl << "===> Check Beam spot: " << std::endl;
126 Handle< reco::BeamSpot > beamSpotHandle;
127 iEvent . getByLabel( "offlineBeamSpot", beamSpotHandle);
128 reco::BeamSpot beamSpot;
129 if ( beamSpotHandle.isValid() ){
130 beamSpot = *beamSpotHandle;
131 cout << "beam spot present in the Event..." << std::endl;
132 }
133 else{
134 edm::LogInfo("TtLJetsAnalyzer")
135 << "No beam spot available in the event \n";
136 }
137 cout << beamSpot.x0() << " " << beamSpot.y0() << " " << beamSpot.z0() << std::endl;
138 //
139 //_____ tracking ____________________________________________________________
140 //
141 //
142 Handle<std::vector<reco::Track> > generalTracks;
143 iEvent.getByLabel("generalTracks", generalTracks);
144 for(std::vector<reco::Track>::const_iterator track = generalTracks->begin();
145 track != generalTracks->end();
146 ++track){
147 double gTrackPt = track->pt();
148 double gTrackEta = track->eta();
149 double gTrackPhi = track->phi();
150 cout << gTrackPt << endl;
151 cout << gTrackPt << endl;
152 cout << gTrackPt << endl<<endl;
153 }
154 //vector<reco::Track> "globalCosmicMuons" "" "EXPRESS."
155 //vector<reco::Track> "globalMuons" "" "EXPRESS."
156 //vector<reco::Track> "globalSETMuons" "" "EXPRESS."
157 //vector<reco::Track> "pixelTracks" "" "EXPRESS."
158 //vector<reco::Track> "standAloneMuons" "" "EXPRESS."
159 //
160 //_____ fill the tree
161 _tree -> Fill();
162 }
163
164
165 void
166 PlotReco::beginJob()
167 {
168 std::cout << "=======>: PlotReco::beginJob()" << std::endl;
169
170 _tree -> Branch("event", &ievent, "event/I" );
171 _tree -> Branch("lumi", &ilumi, "lumi/I" );
172 _tree -> Branch("run", &irun, "run/I" );
173 _tree -> Branch("njets", &njets, "njets/I" );
174 _tree -> Branch("jet_pt", &jet_pt );
175 _tree -> Branch("jet1_pt", &jet1_pt, "jet1_pt/D" );
176 _tree -> Branch("jet1_eta", &jet1_eta, "jet1_eta/D" );
177 _tree -> Branch("jet1_phi", &jet1_phi, "jet1_phi/D" );
178 }
179
180
181 void
182 PlotReco::endJob() {
183 std::cout << "=======>: PlotReco::endJob()" << std::endl;
184 }
185
186
187
188 //define this as a plug-in
189 DEFINE_FWK_MODULE(PlotReco);