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
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 kukartse 1.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 kukartse 1.3 // $Id: PlotReco.cc,v 1.2 2009/12/02 19:42:47 kukartse Exp $
17 kukartse 1.1 //
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 kukartse 1.2 #include "FWCore/ServiceRegistry/interface/Service.h"
32     #include "PhysicsTools/UtilAlgos/interface/TFileService.h"
33 kukartse 1.1
34     using namespace edm;
35    
36     PlotReco::PlotReco(const edm::ParameterSet& iConfig){
37     std::cout << "=======>: PlotReco::PlotReco()" << std::endl;
38 kukartse 1.2
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 kukartse 1.1 }
53    
54    
55     PlotReco::~PlotReco()
56     {
57     std::cout << "=======>: PlotReco::~PlotReco()" << std::endl;
58     }
59    
60    
61 kukartse 1.3 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 kukartse 1.1 void
73     PlotReco::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
74     {
75     std::cout << "=======>: PlotReco::analyze()" << std::endl;
76 kukartse 1.3
77     // tree leaves cleanup
78     init_leaves();
79    
80 kukartse 1.1 //
81     //_____ event book keeping
82     //
83 kukartse 1.2 irun = (unsigned int)iEvent.id().run();
84 kukartse 1.1 // this will work starting with CMSSW_340:
85     //unsigned int ilumi = (unsigned int)iEvent.id().luminosityBlock();
86 kukartse 1.2 ilumi = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
87     ievent = (unsigned int)iEvent.id().event();
88 kukartse 1.1 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 kukartse 1.2 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 kukartse 1.1 }
104 kukartse 1.3 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 kukartse 1.1 //
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 kukartse 1.3 //
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 kukartse 1.2 //_____ fill the tree
161     _tree -> Fill();
162 kukartse 1.1 }
163    
164    
165     void
166     PlotReco::beginJob()
167     {
168     std::cout << "=======>: PlotReco::beginJob()" << std::endl;
169 kukartse 1.2
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 kukartse 1.3 _tree -> Branch("jet_pt", &jet_pt );
175 kukartse 1.2 _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 kukartse 1.1 }
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);