ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResolutionFromMC/MCResolutions/interface/MCResolutions.h
Revision: 1.9
Committed: Wed Jul 25 09:44:33 2012 UTC (12 years, 9 months ago) by kaussen
Content type: text/plain
Branch: MAIN
Changes since 1.8: +15 -5 lines
Log Message:
Jet multiplicity bins extended from 1,2,3plus to 1,2,3,4,5plus

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.7 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 csander 1.8 // JetResponse in Pt and eta bins
120 csander 1.7 int PtBin(const double& pt);
121     int EtaBin(const double& eta);
122     // total
123     std::vector<std::vector<TH1F*> > h_tot_DiJet_JetResPt_Pt;
124 csander 1.8 std::vector<std::vector<TH1F*> > h_tot_JetAll_JetResPt_Pt;
125     std::vector<std::vector<TH1F*> > h_tot_Jet1_JetResPt_Pt;
126     std::vector<std::vector<TH1F*> > h_tot_Jet2_JetResPt_Pt;
127 kaussen 1.9 std::vector<std::vector<TH1F*> > h_tot_Jet3_JetResPt_Pt;
128     std::vector<std::vector<TH1F*> > h_tot_Jet4_JetResPt_Pt;
129     std::vector<std::vector<TH1F*> > h_tot_Jet5p_JetResPt_Pt;
130 csander 1.7 // with btag
131     std::vector<std::vector<TH1F*> > h_b_DiJet_JetResPt_Pt;
132 csander 1.8 std::vector<std::vector<TH1F*> > h_b_JetAll_JetResPt_Pt;
133     std::vector<std::vector<TH1F*> > h_b_Jet1_JetResPt_Pt;
134     std::vector<std::vector<TH1F*> > h_b_Jet2_JetResPt_Pt;
135 kaussen 1.9 std::vector<std::vector<TH1F*> > h_b_Jet3_JetResPt_Pt;
136     std::vector<std::vector<TH1F*> > h_b_Jet4_JetResPt_Pt;
137     std::vector<std::vector<TH1F*> > h_b_Jet5p_JetResPt_Pt;
138 csander 1.8 // without btag
139 csander 1.7 std::vector<std::vector<TH1F*> > h_nob_DiJet_JetResPt_Pt;
140 csander 1.8 std::vector<std::vector<TH1F*> > h_nob_JetAll_JetResPt_Pt;
141     std::vector<std::vector<TH1F*> > h_nob_Jet1_JetResPt_Pt;
142     std::vector<std::vector<TH1F*> > h_nob_Jet2_JetResPt_Pt;
143 kaussen 1.9 std::vector<std::vector<TH1F*> > h_nob_Jet3_JetResPt_Pt;
144     std::vector<std::vector<TH1F*> > h_nob_Jet4_JetResPt_Pt;
145     std::vector<std::vector<TH1F*> > h_nob_Jet5p_JetResPt_Pt;
146 csander 1.7 // in direction of dead ECAL cells
147     std::vector<std::vector<TH1F*> > h_dead_DiJet_JetResPt_Pt;
148 csander 1.8 std::vector<std::vector<TH1F*> > h_dead_JetAll_JetResPt_Pt;
149     std::vector<std::vector<TH1F*> > h_dead_Jet1_JetResPt_Pt;
150     std::vector<std::vector<TH1F*> > h_dead_Jet2_JetResPt_Pt;
151 kaussen 1.9 std::vector<std::vector<TH1F*> > h_dead_Jet3_JetResPt_Pt;
152     std::vector<std::vector<TH1F*> > h_dead_Jet4_JetResPt_Pt;
153     std::vector<std::vector<TH1F*> > h_dead_Jet5p_JetResPt_Pt;
154 csander 1.7 // in direction of dead ECAL cells and with b tag
155     std::vector<std::vector<TH1F*> > h_deadb_DiJet_JetResPt_Pt;
156 csander 1.8 std::vector<std::vector<TH1F*> > h_deadb_JetAll_JetResPt_Pt;
157     std::vector<std::vector<TH1F*> > h_deadb_Jet1_JetResPt_Pt;
158     std::vector<std::vector<TH1F*> > h_deadb_Jet2_JetResPt_Pt;
159 kaussen 1.9 std::vector<std::vector<TH1F*> > h_deadb_Jet3_JetResPt_Pt;
160     std::vector<std::vector<TH1F*> > h_deadb_Jet4_JetResPt_Pt;
161     std::vector<std::vector<TH1F*> > h_deadb_Jet5p_JetResPt_Pt;
162 csander 1.8
163 csander 1.7 std::vector<double> PtBinEdges;
164     std::vector<double> EtaBinEdges;
165 csander 1.2
166 csander 1.7 TFile* hfile;
167 csander 1.3
168 csander 1.1 };
169    
170     #endif