ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/JetResolutionFromMC/MCResolutions/interface/MCResolutions.h
Revision: 1.4
Committed: Fri Jan 14 10:20:41 2011 UTC (14 years, 3 months ago) by csander
Content type: text/plain
Branch: MAIN
Changes since 1.3: +13 -0 lines
Log Message:
A few changes: added dR comparison plot, update to new BE summary object (not working!?)

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