ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResolutionFromMC/MCResolutions/interface/MCResolutions.h
Revision: 1.5
Committed: Mon Jan 17 15:33:49 2011 UTC (14 years, 3 months ago) by csander
Content type: text/plain
Branch: MAIN
Changes since 1.4: +11 -5 lines
Log Message:
new version

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