ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResolutionFromMC/MCResolutions/interface/MCResolutions.h
Revision: 1.6
Committed: Fri Jan 21 08:02:26 2011 UTC (14 years, 3 months ago) by csander
Content type: text/plain
Branch: MAIN
CVS Tags: V_CMSSW38X
Changes since 1.5: +2 -1 lines
Log Message:
Update to 3_8_7; removed some histos; moved to PAT; added algorithmic parton matching

File Contents

# User Rev Content
1 csander 1.1 #ifndef MCResolutions_H
2     #define MCResolutions_H
3    
4     // system include files
5     #include <memory>
6     #include <string>
7     #include <vector>
8     #include <map>
9     //#include <cassert>
10     #include <cmath>
11     #include <iostream>
12    
13     // user include files
14     #include "FWCore/Framework/interface/Frameworkfwd.h"
15     #include "FWCore/Framework/interface/EDAnalyzer.h"
16     #include "FWCore/Framework/interface/Event.h"
17 csander 1.2 #include "FWCore/Framework/interface/EventSetup.h"
18     #include "FWCore/Framework/interface/ESHandle.h"
19 csander 1.1 #include "FWCore/Framework/interface/MakerMacros.h"
20     #include "FWCore/ParameterSet/interface/ParameterSet.h"
21     #include "FWCore/ServiceRegistry/interface/Service.h"
22 csander 1.3 //#include "CommonTools/UtilAlgos/interface/TFileService.h"
23 csander 1.1 #include "FWCore/Utilities/interface/EDMException.h"
24     #include "FWCore/MessageLogger/interface/MessageLogger.h"
25    
26     #include "DataFormats/Math/interface/LorentzVector.h"
27     #include "DataFormats/Math/interface/deltaR.h"
28 csander 1.5 #include "DataFormats/Math/interface/deltaPhi.h"
29 csander 1.1 #include "DataFormats/JetReco/interface/Jet.h"
30     #include "DataFormats/JetReco/interface/CaloJet.h"
31     #include "DataFormats/JetReco/interface/GenJet.h"
32 csander 1.4 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
33 csander 1.6 #include "DataFormats/PatCandidates/interface/Jet.h"
34 csander 1.1
35     #include "TH1F.h"
36     #include "TH2F.h"
37     #include "TMath.h"
38 csander 1.3 #include "TFile.h"
39 csander 1.1
40     // Ecal
41     #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
42     #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
43     #include "DataFormats/DetId/interface/DetId.h"
44     #include "DataFormats/EcalDetId/interface/EBDetId.h"
45     #include "DataFormats/EcalDetId/interface/EEDetId.h"
46    
47     #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h"
48     #include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h"
49    
50     #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
51     #include "CalibCalorimetry/EcalTPGTools/interface/EcalTPGScale.h"
52     #include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h"
53     #include "Geometry/Records/interface/IdealGeometryRecord.h"
54    
55     #include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h"
56     #include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h"
57     #include "Geometry/CaloTopology/interface/CaloTopology.h"
58    
59     // Geometry
60     #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
61     #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
62     #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
63     #include "Geometry/Records/interface/CaloGeometryRecord.h"
64    
65     #include "Geometry/CaloTopology/interface/CaloTowerConstituentsMap.h"
66     #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
67    
68 csander 1.2 // b-Tagging
69     #include "DataFormats/BTauReco/interface/JetTag.h"
70    
71 csander 1.1 //
72     // class declaration
73     //
74    
75 csander 1.2 class MCResolutions : public edm::EDAnalyzer {
76 csander 1.1 public:
77     explicit MCResolutions(const edm::ParameterSet&);
78     ~MCResolutions();
79    
80    
81     private:
82     virtual void beginJob() ;
83     virtual void analyze(const edm::Event&, const edm::EventSetup&);
84     virtual void endJob() ;
85 csander 1.2 virtual void envSet(const edm::EventSetup&);
86 csander 1.1
87     // ----------member data ---------------------------
88     edm::InputTag _jetTag;
89     edm::InputTag _muonTag;
90     edm::InputTag _genJetTag;
91     edm::InputTag _weightName;
92     edm::InputTag _EBRecHits;
93     edm::InputTag _EERecHits;
94 csander 1.2 edm::InputTag _bTag;
95 csander 1.1
96 csander 1.3 double _jetMultPtCut;
97     double _jetMultEtaCut;
98 csander 1.1 double _deltaPhiDiJet;
99     double _absCut3rdJet;
100     double _relCut3rdJet;
101     double _deltaRMatch;
102     double _deltaRMatchVeto;
103     double _absPtVeto;
104     double _relPtVeto;
105     double _deltaRDeadECal;
106 csander 1.2 double _GenJetPtCut;
107     double _bTagCut;
108     double _bTagDeltaR;
109 csander 1.6 std::string _Bid;
110 csander 1.2 int _maskedEcalChannelStatusThreshold;
111 csander 1.3 std::string _fileName;
112 csander 1.1
113     double weight;
114    
115 csander 1.2 // Channel status related
116     edm::ESHandle<EcalChannelStatus> ecalStatus; // these come from EventSetup
117     edm::ESHandle<CaloGeometry> geometry;
118 csander 1.1 // Store DetId <==> vector<double> (eta, phi, theta)
119     std::map<DetId, std::vector<double> > EcalAllDeadChannelsValMap;
120 csander 1.2 int getChannelStatusMaps();
121     bool mapsReady;
122     EcalTPGScale ecalScale;
123    
124     // JetResponse in Pt/E and eta bins
125     int EBin(const double& e);
126     int PtBin(const double& pt);
127     int EtaBin(const double& eta);
128     // total
129 csander 1.5 std::vector<std::vector<TH1F*> > h_tot_DiJet_JetResPt_Pt;
130     std::vector<std::vector<TH1F*> > h_tot_DiJet_JetResPt_E;
131 csander 1.3 std::vector<std::vector<TH1F*> > h_tot_NJetAll_JetResPt_Pt;
132     std::vector<std::vector<TH1F*> > h_tot_NJetAll_JetResPt_E;
133     std::vector<std::vector<TH1F*> > h_tot_NJet2_JetResPt_Pt;
134     std::vector<std::vector<TH1F*> > h_tot_NJet2_JetResPt_E;
135     std::vector<std::vector<TH1F*> > h_tot_NJet3_JetResPt_Pt;
136     std::vector<std::vector<TH1F*> > h_tot_NJet3_JetResPt_E;
137     std::vector<std::vector<TH1F*> > h_tot_NJet4_JetResPt_Pt;
138     std::vector<std::vector<TH1F*> > h_tot_NJet4_JetResPt_E;
139     std::vector<std::vector<TH1F*> > h_tot_NJet5p_JetResPt_Pt;
140     std::vector<std::vector<TH1F*> > h_tot_NJet5p_JetResPt_E;
141 csander 1.2 // with btag
142 csander 1.5 std::vector<std::vector<TH1F*> > h_b_DiJet_JetResPt_Pt;
143     std::vector<std::vector<TH1F*> > h_b_DiJet_JetResPt_E;
144 csander 1.3 std::vector<std::vector<TH1F*> > h_b_NJetAll_JetResPt_Pt;
145     std::vector<std::vector<TH1F*> > h_b_NJetAll_JetResPt_E;
146     std::vector<std::vector<TH1F*> > h_b_NJet2_JetResPt_Pt;
147     std::vector<std::vector<TH1F*> > h_b_NJet2_JetResPt_E;
148     std::vector<std::vector<TH1F*> > h_b_NJet3_JetResPt_Pt;
149     std::vector<std::vector<TH1F*> > h_b_NJet3_JetResPt_E;
150     std::vector<std::vector<TH1F*> > h_b_NJet4_JetResPt_Pt;
151     std::vector<std::vector<TH1F*> > h_b_NJet4_JetResPt_E;
152     std::vector<std::vector<TH1F*> > h_b_NJet5p_JetResPt_Pt;
153     std::vector<std::vector<TH1F*> > h_b_NJet5p_JetResPt_E;
154 csander 1.4 // with btag
155 csander 1.5 std::vector<std::vector<TH1F*> > h_nob_DiJet_JetResPt_Pt;
156     std::vector<std::vector<TH1F*> > h_nob_DiJet_JetResPt_E;
157 csander 1.4 std::vector<std::vector<TH1F*> > h_nob_NJetAll_JetResPt_Pt;
158     std::vector<std::vector<TH1F*> > h_nob_NJetAll_JetResPt_E;
159     std::vector<std::vector<TH1F*> > h_nob_NJet2_JetResPt_Pt;
160     std::vector<std::vector<TH1F*> > h_nob_NJet2_JetResPt_E;
161     std::vector<std::vector<TH1F*> > h_nob_NJet3_JetResPt_Pt;
162     std::vector<std::vector<TH1F*> > h_nob_NJet3_JetResPt_E;
163     std::vector<std::vector<TH1F*> > h_nob_NJet4_JetResPt_Pt;
164     std::vector<std::vector<TH1F*> > h_nob_NJet4_JetResPt_E;
165     std::vector<std::vector<TH1F*> > h_nob_NJet5p_JetResPt_Pt;
166     std::vector<std::vector<TH1F*> > h_nob_NJet5p_JetResPt_E;
167 csander 1.2 // in direction of dead ECAL cells
168 csander 1.5 std::vector<std::vector<TH1F*> > h_dead_DiJet_JetResPt_Pt;
169     std::vector<std::vector<TH1F*> > h_dead_DiJet_JetResPt_E;
170 csander 1.3 std::vector<std::vector<TH1F*> > h_dead_NJetAll_JetResPt_Pt;
171     std::vector<std::vector<TH1F*> > h_dead_NJetAll_JetResPt_E;
172     std::vector<std::vector<TH1F*> > h_dead_NJet2_JetResPt_Pt;
173     std::vector<std::vector<TH1F*> > h_dead_NJet2_JetResPt_E;
174     std::vector<std::vector<TH1F*> > h_dead_NJet3_JetResPt_Pt;
175     std::vector<std::vector<TH1F*> > h_dead_NJet3_JetResPt_E;
176     std::vector<std::vector<TH1F*> > h_dead_NJet4_JetResPt_Pt;
177     std::vector<std::vector<TH1F*> > h_dead_NJet4_JetResPt_E;
178     std::vector<std::vector<TH1F*> > h_dead_NJet5p_JetResPt_Pt;
179     std::vector<std::vector<TH1F*> > h_dead_NJet5p_JetResPt_E;
180     // in direction of dead ECAL cells and with b tag
181 csander 1.5 std::vector<std::vector<TH1F*> > h_deadb_DiJet_JetResPt_Pt;
182     std::vector<std::vector<TH1F*> > h_deadb_DiJet_JetResPt_E;
183 csander 1.3 std::vector<std::vector<TH1F*> > h_deadb_NJetAll_JetResPt_Pt;
184     std::vector<std::vector<TH1F*> > h_deadb_NJetAll_JetResPt_E;
185     std::vector<std::vector<TH1F*> > h_deadb_NJet2_JetResPt_Pt;
186     std::vector<std::vector<TH1F*> > h_deadb_NJet2_JetResPt_E;
187     std::vector<std::vector<TH1F*> > h_deadb_NJet3_JetResPt_Pt;
188     std::vector<std::vector<TH1F*> > h_deadb_NJet3_JetResPt_E;
189     std::vector<std::vector<TH1F*> > h_deadb_NJet4_JetResPt_Pt;
190     std::vector<std::vector<TH1F*> > h_deadb_NJet4_JetResPt_E;
191     std::vector<std::vector<TH1F*> > h_deadb_NJet5p_JetResPt_Pt;
192     std::vector<std::vector<TH1F*> > h_deadb_NJet5p_JetResPt_E;
193 csander 1.2 std::vector<double> EBinEdges;
194     std::vector<double> PtBinEdges;
195     std::vector<double> EtaBinEdges;
196    
197 csander 1.3 TFile* hfile;
198    
199 csander 1.1 };
200    
201     #endif