ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResolutionFromMC/MCResolutions/interface/MCResolutions.h
Revision: 1.10
Committed: Thu Jul 26 09:48:00 2012 UTC (12 years, 9 months ago) by kaussen
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +4 -0 lines
Error occurred while calculating annotation data.
Log Message:
Some code reduction

File Contents

# Content
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 #include "FWCore/Framework/interface/EventSetup.h"
18 #include "FWCore/Framework/interface/ESHandle.h"
19 #include "FWCore/Framework/interface/MakerMacros.h"
20 #include "FWCore/ParameterSet/interface/ParameterSet.h"
21 #include "FWCore/ServiceRegistry/interface/Service.h"
22 //#include "CommonTools/UtilAlgos/interface/TFileService.h"
23 #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 #include "DataFormats/Math/interface/deltaPhi.h"
29 #include "DataFormats/JetReco/interface/Jet.h"
30 #include "DataFormats/JetReco/interface/CaloJet.h"
31 #include "DataFormats/JetReco/interface/GenJet.h"
32 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
33 #include "DataFormats/PatCandidates/interface/Jet.h"
34
35 #include "TH1F.h"
36 #include "TH2F.h"
37 #include "TMath.h"
38 #include "TFile.h"
39
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 // b-Tagging
69 #include "DataFormats/BTauReco/interface/JetTag.h"
70
71 //
72 // class declaration
73 //
74
75 class MCResolutions: public edm::EDAnalyzer {
76 public:
77 explicit MCResolutions(const edm::ParameterSet&);
78 ~MCResolutions();
79
80 private:
81 virtual void beginJob();
82 virtual void analyze(const edm::Event&, const edm::EventSetup&);
83 virtual void endJob();
84 virtual void envSet(const edm::EventSetup&);
85
86 // ----------member data ---------------------------
87 edm::InputTag _jetTag;
88 edm::InputTag _muonTag;
89 edm::InputTag _genJetTag;
90 edm::InputTag _weightName;
91 edm::InputTag _EBRecHits;
92 edm::InputTag _EERecHits;
93
94 double _jetMultPtCut;
95 double _jetMultEtaCut;
96 double _deltaPhiDiJet;
97 double _absCut3rdJet;
98 double _relCut3rdJet;
99 double _deltaRMatch;
100 double _deltaRMatchVeto;
101 double _absPtVeto;
102 double _relPtVeto;
103 double _deltaRDeadECal;
104 double _GenJetPtCut;
105 int _maskedEcalChannelStatusThreshold;
106 std::string _fileName;
107
108 double weight;
109
110 // Channel status related
111 edm::ESHandle<EcalChannelStatus> ecalStatus; // these come from EventSetup
112 edm::ESHandle<CaloGeometry> geometry;
113 // Store DetId <==> vector<double> (eta, phi, theta)
114 std::map<DetId, std::vector<double> > EcalAllDeadChannelsValMap;
115 int getChannelStatusMaps();
116 bool mapsReady;
117 EcalTPGScale ecalScale;
118
119 // JetResponse in Pt and eta bins
120 int PtBin(const double& pt);
121 int EtaBin(const double& eta);
122
123 // Resize histo vectors
124 void ResizeHistoVector(std::vector<std::vector<TH1F*> > &histoVector);
125
126 // total
127 std::vector<std::vector<TH1F*> > h_tot_DiJet_JetResPt_Pt;
128 std::vector<std::vector<TH1F*> > h_tot_JetAll_JetResPt_Pt;
129 std::vector<std::vector<TH1F*> > h_tot_Jet1_JetResPt_Pt;
130 std::vector<std::vector<TH1F*> > h_tot_Jet2_JetResPt_Pt;
131 std::vector<std::vector<TH1F*> > h_tot_Jet3_JetResPt_Pt;
132 std::vector<std::vector<TH1F*> > h_tot_Jet4_JetResPt_Pt;
133 std::vector<std::vector<TH1F*> > h_tot_Jet5p_JetResPt_Pt;
134 // with btag
135 std::vector<std::vector<TH1F*> > h_b_DiJet_JetResPt_Pt;
136 std::vector<std::vector<TH1F*> > h_b_JetAll_JetResPt_Pt;
137 std::vector<std::vector<TH1F*> > h_b_Jet1_JetResPt_Pt;
138 std::vector<std::vector<TH1F*> > h_b_Jet2_JetResPt_Pt;
139 std::vector<std::vector<TH1F*> > h_b_Jet3_JetResPt_Pt;
140 std::vector<std::vector<TH1F*> > h_b_Jet4_JetResPt_Pt;
141 std::vector<std::vector<TH1F*> > h_b_Jet5p_JetResPt_Pt;
142 // without btag
143 std::vector<std::vector<TH1F*> > h_nob_DiJet_JetResPt_Pt;
144 std::vector<std::vector<TH1F*> > h_nob_JetAll_JetResPt_Pt;
145 std::vector<std::vector<TH1F*> > h_nob_Jet1_JetResPt_Pt;
146 std::vector<std::vector<TH1F*> > h_nob_Jet2_JetResPt_Pt;
147 std::vector<std::vector<TH1F*> > h_nob_Jet3_JetResPt_Pt;
148 std::vector<std::vector<TH1F*> > h_nob_Jet4_JetResPt_Pt;
149 std::vector<std::vector<TH1F*> > h_nob_Jet5p_JetResPt_Pt;
150 // in direction of dead ECAL cells
151 std::vector<std::vector<TH1F*> > h_dead_DiJet_JetResPt_Pt;
152 std::vector<std::vector<TH1F*> > h_dead_JetAll_JetResPt_Pt;
153 std::vector<std::vector<TH1F*> > h_dead_Jet1_JetResPt_Pt;
154 std::vector<std::vector<TH1F*> > h_dead_Jet2_JetResPt_Pt;
155 std::vector<std::vector<TH1F*> > h_dead_Jet3_JetResPt_Pt;
156 std::vector<std::vector<TH1F*> > h_dead_Jet4_JetResPt_Pt;
157 std::vector<std::vector<TH1F*> > h_dead_Jet5p_JetResPt_Pt;
158 // in direction of dead ECAL cells and with b tag
159 std::vector<std::vector<TH1F*> > h_deadb_DiJet_JetResPt_Pt;
160 std::vector<std::vector<TH1F*> > h_deadb_JetAll_JetResPt_Pt;
161 std::vector<std::vector<TH1F*> > h_deadb_Jet1_JetResPt_Pt;
162 std::vector<std::vector<TH1F*> > h_deadb_Jet2_JetResPt_Pt;
163 std::vector<std::vector<TH1F*> > h_deadb_Jet3_JetResPt_Pt;
164 std::vector<std::vector<TH1F*> > h_deadb_Jet4_JetResPt_Pt;
165 std::vector<std::vector<TH1F*> > h_deadb_Jet5p_JetResPt_Pt;
166
167 std::vector<double> PtBinEdges;
168 std::vector<double> EtaBinEdges;
169
170 TFile* hfile;
171
172 };
173
174 #endif