1 |
jueugste |
1.1 |
|
2 |
|
|
#define analysisClass_cxx
|
3 |
|
|
#include "analysisClass.h"
|
4 |
|
|
|
5 |
|
|
#include <TH2.h>
|
6 |
|
|
#include <TF2.h>
|
7 |
|
|
#include <TH1F.h>
|
8 |
|
|
#include <TStyle.h>
|
9 |
|
|
#include <TCanvas.h>
|
10 |
|
|
#include <TLorentzVector.h>
|
11 |
|
|
#include <TVector2.h>
|
12 |
|
|
#include <TVector3.h>
|
13 |
|
|
#include <TTree.h>
|
14 |
|
|
|
15 |
jueugste |
1.6 |
// avg. inst. lumi.
|
16 |
|
|
#include "readLumiInfo/readLumiInfo.h"
|
17 |
|
|
|
18 |
jueugste |
1.1 |
analysisClass::analysisClass(string * inputList, string * cutFile, string * treeName, string * outputFileName, string * cutEfficFile)
|
19 |
|
|
:baseClass(inputList, cutFile, treeName, outputFileName, cutEfficFile)
|
20 |
|
|
{
|
21 |
|
|
std::cout << "analysisClass::analysisClass(): begins " << std::endl;
|
22 |
|
|
|
23 |
|
|
std::cout << "analysisClass::analysisClass(): ends " << std::endl;
|
24 |
|
|
}
|
25 |
|
|
|
26 |
|
|
analysisClass::~analysisClass()
|
27 |
|
|
{
|
28 |
|
|
std::cout << "analysisClass::~analysisClass(): begins " << std::endl;
|
29 |
|
|
|
30 |
|
|
std::cout << "analysisClass::~analysisClass(): ends " << std::endl;
|
31 |
|
|
}
|
32 |
|
|
|
33 |
|
|
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
void analysisClass::Loop()
|
37 |
|
|
{
|
38 |
|
|
std::cout << "analysisClass::Loop() begins" <<std::endl;
|
39 |
|
|
|
40 |
|
|
if (fChain == 0) return;
|
41 |
|
|
|
42 |
|
|
|
43 |
|
|
double PtCorrection = 1.; //0.99;
|
44 |
|
|
|
45 |
|
|
|
46 |
|
|
int counterSize=15;
|
47 |
|
|
int* counter = new int[counterSize];
|
48 |
|
|
memset(counter,0,counterSize*sizeof(int));
|
49 |
|
|
|
50 |
|
|
int El_counterSize=15;
|
51 |
|
|
int* El_count = new int[El_counterSize];
|
52 |
|
|
memset(El_count,0,El_counterSize*sizeof(int));
|
53 |
|
|
|
54 |
|
|
FILE *out=fopen("out.txt","w");
|
55 |
|
|
FILE *out_Z=fopen("out_z.txt","w");
|
56 |
|
|
fprintf(out_Z,"Run \tEvent \tLS \tDiLeptonMass \tPt_1 \tPt2 \tEta_1 \tEta_2 \tDiLeptonPt \tsumJetPt \n");
|
57 |
|
|
|
58 |
jueugste |
1.6 |
// open the *.root file containing the lumi info
|
59 |
|
|
// readLumiInfo a("readLumiInfo/lumiByLSRun2010.root");
|
60 |
|
|
|
61 |
jueugste |
1.1 |
|
62 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
63 |
|
|
// Analysis input parameters
|
64 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
65 |
|
|
int workingPoint = 80; // -1 takes hard coded values (which are the old robust tight values...)
|
66 |
jueugste |
1.2 |
double sampleSize=-1;
|
67 |
jueugste |
1.1 |
|
68 |
jueugste |
1.5 |
bool isdata;
|
69 |
|
|
bool useElectronTiggers = true;
|
70 |
|
|
|
71 |
|
|
|
72 |
jueugste |
1.1 |
|
73 |
|
|
bool ethIDandIso = false;
|
74 |
|
|
|
75 |
|
|
bool writeIdPlots=true;
|
76 |
|
|
bool writeN1Plots=true;
|
77 |
|
|
bool writeWenuPlots=true;
|
78 |
|
|
bool applyDeltaCorrection=false;
|
79 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
80 |
|
|
|
81 |
|
|
double Pi=2*acos(0); // pi=3.14159...
|
82 |
|
|
|
83 |
|
|
int MAXE=6;
|
84 |
|
|
|
85 |
|
|
vector<double> WorkingPointCuts;
|
86 |
|
|
vector<double> EthCuts;
|
87 |
|
|
|
88 |
|
|
|
89 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
90 |
|
|
// Index vectors
|
91 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
92 |
|
|
vector<int> i_preselected;
|
93 |
|
|
vector<int> i_isolated;
|
94 |
|
|
vector<int> i_identified;
|
95 |
|
|
vector<int> i_goodElectrons;
|
96 |
|
|
vector<int> i_goodBarrelElectrons;
|
97 |
|
|
vector<int> i_goodEndcapElectrons;
|
98 |
|
|
|
99 |
|
|
vector<int> i_jets;
|
100 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
101 |
|
|
|
102 |
|
|
|
103 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
104 |
|
|
// tree variables
|
105 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
106 |
|
|
// TTree *subTree;
|
107 |
|
|
TTree *subTree = new TTree("tree", "tree");
|
108 |
|
|
|
109 |
|
|
int tRun;
|
110 |
|
|
int tEvent;
|
111 |
|
|
int tLumiSection;
|
112 |
|
|
// electrons
|
113 |
|
|
int ElMax = 20;
|
114 |
|
|
int tElN;
|
115 |
|
|
double tElPt[ElMax];
|
116 |
|
|
double tElPx[ElMax];
|
117 |
|
|
double tElPy[ElMax];
|
118 |
|
|
double tElPz[ElMax];
|
119 |
jueugste |
1.3 |
double tElE[ElMax];
|
120 |
jueugste |
1.1 |
double tElEta[ElMax];
|
121 |
|
|
double tElPhi[ElMax];
|
122 |
|
|
int tElCharge[ElMax];
|
123 |
jueugste |
1.3 |
double tElDz[ElMax];
|
124 |
jueugste |
1.1 |
// MET
|
125 |
|
|
double tCaloMet;
|
126 |
|
|
double tTcMet;
|
127 |
|
|
double tPfMet;
|
128 |
|
|
// mass
|
129 |
|
|
double tElPfMt[ElMax];
|
130 |
|
|
double tElCaloMt[ElMax];
|
131 |
|
|
double tElTcMt[ElMax];
|
132 |
jueugste |
1.2 |
// HF stuff
|
133 |
|
|
double tSumEHF_minus;
|
134 |
|
|
double tSumEHF_plus;
|
135 |
jueugste |
1.4 |
double tSumEHF_Aminus;
|
136 |
|
|
double tSumEHF_Aplus;
|
137 |
|
|
double tSumEHF_Bminus;
|
138 |
|
|
double tSumEHF_Bplus;
|
139 |
jueugste |
1.2 |
double tSumETHF_minus;
|
140 |
|
|
double tSumETHF_plus;
|
141 |
jueugste |
1.3 |
int tNtowers_plus;
|
142 |
|
|
int tNtowers_minus;
|
143 |
jueugste |
1.5 |
// calo towers
|
144 |
|
|
int TowMax = 1000;
|
145 |
|
|
int tCaloTowersN;
|
146 |
|
|
double tCaloTowersE[TowMax];
|
147 |
jueugste |
1.6 |
double tCaloTowersEt[TowMax];
|
148 |
|
|
double tCaloTowersEta[TowMax];
|
149 |
jueugste |
1.5 |
double tCaloTowersEmE[TowMax];
|
150 |
|
|
double tCaloTowersHadE[TowMax];
|
151 |
|
|
int tCaloTowersHasEB[TowMax];
|
152 |
|
|
int tCaloTowersHasEE[TowMax];
|
153 |
|
|
int tCaloTowersHasHB[TowMax];
|
154 |
|
|
int tCaloTowersHasHE[TowMax];
|
155 |
|
|
int tCaloTowersHasHF[TowMax];
|
156 |
|
|
int tCaloTowersId[TowMax];
|
157 |
jueugste |
1.2 |
|
158 |
jueugste |
1.1 |
// jets
|
159 |
|
|
int JetMax = 20;
|
160 |
|
|
int tJetN;
|
161 |
|
|
double tJetPt[JetMax];
|
162 |
|
|
double tJetEta[JetMax];
|
163 |
|
|
double tJetPhi[JetMax];
|
164 |
|
|
|
165 |
jueugste |
1.2 |
// diffractive variables
|
166 |
|
|
double tEtaMax;
|
167 |
|
|
double tEtaMin;
|
168 |
|
|
double tEminusPz;
|
169 |
|
|
double tEplusPz;
|
170 |
jueugste |
1.3 |
double tSumE;
|
171 |
|
|
double tSumPz;
|
172 |
|
|
|
173 |
jueugste |
1.6 |
// PFlow candidates
|
174 |
|
|
int PfMax = 1000;
|
175 |
|
|
int tPfN;
|
176 |
|
|
double tPfE[PfMax];
|
177 |
|
|
double tPfEt[PfMax];
|
178 |
|
|
double tPfEta[PfMax];
|
179 |
|
|
double tPfPt[PfMax];
|
180 |
|
|
|
181 |
jueugste |
1.3 |
|
182 |
|
|
// vertices
|
183 |
|
|
int VertexMax = 25;
|
184 |
|
|
int tVertexN;
|
185 |
jueugste |
1.6 |
// int tVertexNdof[VertexMax];
|
186 |
|
|
double tVertexNdof[VertexMax];
|
187 |
jueugste |
1.5 |
double tVertexChi2[VertexMax];
|
188 |
jueugste |
1.3 |
double tVertexX[VertexMax];
|
189 |
|
|
double tVertexY[VertexMax];
|
190 |
|
|
double tVertexZ[VertexMax];
|
191 |
jueugste |
1.6 |
int tVertexTrackIndex[25][400];
|
192 |
|
|
// float tVertexTrackWeight[25][400];
|
193 |
|
|
|
194 |
|
|
// pile-up
|
195 |
|
|
int tPUnumInteractions;
|
196 |
|
|
double tPUzPositions[15];
|
197 |
jueugste |
1.3 |
|
198 |
|
|
// beam spot
|
199 |
|
|
double tBeamSpotX;
|
200 |
|
|
double tBeamSpotY;
|
201 |
|
|
double tBeamSpotZ;
|
202 |
|
|
|
203 |
|
|
// Tracks
|
204 |
jueugste |
1.6 |
int TrackMax = 400;
|
205 |
jueugste |
1.3 |
int tTracksN;
|
206 |
jueugste |
1.6 |
double tTrackPt[TrackMax];
|
207 |
|
|
double tTrackPx[TrackMax];
|
208 |
|
|
double tTrackPy[TrackMax];
|
209 |
|
|
double tTrackPz[TrackMax];
|
210 |
|
|
double tTrackDzBs[TrackMax];
|
211 |
|
|
double tTrackEta[TrackMax];
|
212 |
|
|
double tTrackPhi[TrackMax];
|
213 |
|
|
// double tTrackdsz[TrackMax];
|
214 |
|
|
// double tTrackdxy[TrackMax];
|
215 |
|
|
|
216 |
jueugste |
1.3 |
|
217 |
jueugste |
1.1 |
|
218 |
|
|
// tRun = -999;
|
219 |
|
|
// tEvent = -999;
|
220 |
|
|
// tLumiSection = -999;
|
221 |
|
|
|
222 |
|
|
// double *tElPt = new double[ElMax];
|
223 |
|
|
// memset(tElPt, 0, ElMax*sizeof(double));
|
224 |
|
|
|
225 |
|
|
// int MAXWcounter=16;
|
226 |
|
|
// int *Wcounter = new int[MAXWcounter];
|
227 |
|
|
// memset(Wcounter,0,MAXWcounter*sizeof(int));
|
228 |
|
|
|
229 |
|
|
|
230 |
|
|
// Run infos
|
231 |
|
|
subTree->Branch("Run" ,&tRun, "Run/I");
|
232 |
|
|
subTree->Branch("Event" ,&tEvent, "Event/I");
|
233 |
|
|
subTree->Branch("LumiSection" ,&tLumiSection, "LumiSection/I");
|
234 |
|
|
// electrons
|
235 |
|
|
subTree->Branch("ElN", &tElN, "ElN/I");
|
236 |
|
|
subTree->Branch("ElPt", &tElPt, "ElPt[ElN]/D");
|
237 |
|
|
subTree->Branch("ElPx", &tElPx, "ElPx[ElN]/D");
|
238 |
|
|
subTree->Branch("ElPy", &tElPy, "ElPy[ElN]/D");
|
239 |
|
|
subTree->Branch("ElPz", &tElPz, "ElPz[ElN]/D");
|
240 |
jueugste |
1.3 |
subTree->Branch("ElE", &tElE, "ElE[ElN]/D");
|
241 |
jueugste |
1.1 |
subTree->Branch("ElEta", &tElEta, "ElEta[ElN]/D");
|
242 |
|
|
subTree->Branch("ElPhi", &tElPhi, "ElPhi[ElN]/D");
|
243 |
|
|
subTree->Branch("ElCharge", &tElCharge, "ElCharge[ElN]/I");
|
244 |
jueugste |
1.3 |
subTree->Branch("ElDz", &tElDz, "ElDz[ElN]/D");
|
245 |
jueugste |
1.1 |
|
246 |
|
|
subTree->Branch("PfMet", &tPfMet, "PfMet/D");
|
247 |
|
|
subTree->Branch("CaloMet", &tCaloMet, "CaloMet/D");
|
248 |
|
|
subTree->Branch("TcMet", &tTcMet, "TcMet/D");
|
249 |
|
|
|
250 |
|
|
subTree->Branch("ElPfMt", &tElPfMt, "ElPfMt[ElN]/D");
|
251 |
|
|
subTree->Branch("ElCaloMt", &tElCaloMt, "ElCaloMt[ElN]/D");
|
252 |
|
|
subTree->Branch("ElTcMt", &tElTcMt, "ElTcMt[ElN]/D");
|
253 |
|
|
|
254 |
jueugste |
1.2 |
subTree->Branch("SumEHF_minus", &tSumEHF_minus,"SumEHF_minus/D");
|
255 |
|
|
subTree->Branch("SumEHF_plus", &tSumEHF_plus, "SumEHF_plus/D");
|
256 |
jueugste |
1.4 |
subTree->Branch("SumEHF_Aminus", &tSumEHF_Aminus,"SumEHF_Aminus/D");
|
257 |
|
|
subTree->Branch("SumEHF_Aplus", &tSumEHF_Aplus, "SumEHF_Aplus/D");
|
258 |
|
|
subTree->Branch("SumEHF_Bminus", &tSumEHF_Bminus,"SumEHF_Bminus/D");
|
259 |
|
|
subTree->Branch("SumEHF_Bplus", &tSumEHF_Bplus, "SumEHF_Bplus/D");
|
260 |
jueugste |
1.2 |
subTree->Branch("SumETHF_minus", &tSumETHF_minus,"SumETHF_minus/D");
|
261 |
|
|
subTree->Branch("SumETHF_plus", &tSumETHF_plus,"SumETHF_plus/D");
|
262 |
jueugste |
1.3 |
subTree->Branch("Ntowers_plus", &tNtowers_plus,"Ntowers_plus/I");
|
263 |
|
|
subTree->Branch("Ntowers_minus", &tNtowers_minus,"Ntowers_minus/I");
|
264 |
jueugste |
1.2 |
|
265 |
jueugste |
1.5 |
subTree->Branch("CaloTowersN", &tCaloTowersN, "CaloTowersN/I");
|
266 |
jueugste |
1.6 |
subTree->Branch("CaloTowersE", &tCaloTowersE, "CaloTowersE[CaloTowersN]/D");
|
267 |
|
|
subTree->Branch("CaloTowersEt", &tCaloTowersEt, "CaloTowersEt[CaloTowersN]/D");
|
268 |
|
|
subTree->Branch("CaloTowersEta", &tCaloTowersEta, "CaloTowersEta[CaloTowersN]/D");
|
269 |
jueugste |
1.5 |
subTree->Branch("CaloTowersEmE", &tCaloTowersEmE, "CaloTowersEmE[CaloTowersN]/D");
|
270 |
|
|
subTree->Branch("CaloTowersHadE", &tCaloTowersHadE, "CaloTowersHadE[CaloTowersN]/D");
|
271 |
|
|
subTree->Branch("CaloTowersHasEB", &tCaloTowersHasEB, "CaloTowersHasEB[CaloTowersN]/I");
|
272 |
|
|
subTree->Branch("CaloTowersHasEE", &tCaloTowersHasEE, "CaloTowersHasEE[CaloTowersN]/I");
|
273 |
|
|
subTree->Branch("CaloTowersHasHB", &tCaloTowersHasHB, "CaloTowersHasHB[CaloTowersN]/I");
|
274 |
|
|
subTree->Branch("CaloTowersHasHE", &tCaloTowersHasHE, "CaloTowersHasHE[CaloTowersN]/I");
|
275 |
|
|
subTree->Branch("CaloTowersHasHF", &tCaloTowersHasHF, "CaloTowersHasHF[CaloTowersN]/I");
|
276 |
|
|
subTree->Branch("CaloTowersId", &tCaloTowersId, "CaloTowersId[CaloTowersN]/I");
|
277 |
|
|
|
278 |
|
|
|
279 |
jueugste |
1.2 |
subTree->Branch("JetN", &tJetN, "JetN/I");
|
280 |
|
|
subTree->Branch("JetPt", &tJetPt, "JetPt[JetN]/D");
|
281 |
|
|
subTree->Branch("JetEta", &tJetEta, "JetEta[JetN]/D");
|
282 |
|
|
subTree->Branch("JetPhi", &tJetPhi, "JetPhi[JetN]/D");
|
283 |
|
|
|
284 |
|
|
subTree->Branch("EtaMax", &tEtaMax, "EtaMax/D");
|
285 |
|
|
subTree->Branch("EtaMin", &tEtaMin, "EtaMin/D");
|
286 |
|
|
|
287 |
|
|
subTree->Branch("EminusPz", &tEminusPz, "EminusPz/D");
|
288 |
|
|
subTree->Branch("EplusPz", &tEplusPz, "EplusPz/D");
|
289 |
jueugste |
1.3 |
subTree->Branch("SumE", &tSumE, "SumE/D");
|
290 |
|
|
subTree->Branch("SumPz", &tSumPz, "SumPz/D");
|
291 |
|
|
|
292 |
jueugste |
1.6 |
// pflow
|
293 |
|
|
subTree->Branch("PfN", &tPfN, "PfN/I");
|
294 |
|
|
subTree->Branch("PfE", &tPfE, "PfE[PfN]/D");
|
295 |
|
|
subTree->Branch("PfEt", &tPfEt, "PfEt[PfN]/D");
|
296 |
|
|
subTree->Branch("PfEta", &tPfEta, "PfEta[PfN]/D");
|
297 |
|
|
subTree->Branch("PfPt", &tPfPt, "PfPt[PfN]/D");
|
298 |
|
|
|
299 |
|
|
|
300 |
|
|
|
301 |
jueugste |
1.3 |
subTree->Branch("VertexN", &tVertexN, "VertexN/I");
|
302 |
jueugste |
1.6 |
// subTree->Branch("VertexNdof", &tVertexNdof, "VertexNdof[VertexN]/I");
|
303 |
|
|
subTree->Branch("VertexNdof", &tVertexNdof, "VertexNdof[VertexN]/D");
|
304 |
jueugste |
1.5 |
subTree->Branch("VertexChi2", &tVertexChi2, "VertexChi2[VertexN]/I");
|
305 |
jueugste |
1.3 |
subTree->Branch("VertexX", &tVertexX, "VertexX[VertexN]/D");
|
306 |
|
|
subTree->Branch("VertexY", &tVertexY, "VertexY[VertexN]/D");
|
307 |
|
|
subTree->Branch("VertexZ", &tVertexZ, "VertexZ[VertexN]/D");
|
308 |
jueugste |
1.6 |
subTree->Branch("VertexTrackIndex", &tVertexTrackIndex , "VertexTrackIndex[25][400]/I");
|
309 |
|
|
// subTree->Branch("VertexTrackWeight", &fTVertexTrackWeight , "VertexTrackWeight[25][400]/F");
|
310 |
|
|
|
311 |
|
|
// pile-up
|
312 |
|
|
subTree->Branch("PUnumInteractions", &tPUnumInteractions, "PUnumInteractions/I");
|
313 |
|
|
subTree->Branch("PUzPositions", &tPUzPositions, "PUzPositions[PUnumInteractions]/D");
|
314 |
jueugste |
1.3 |
|
315 |
jueugste |
1.5 |
|
316 |
jueugste |
1.3 |
subTree->Branch("BeamSpotX", &tBeamSpotX, "BeamSpotX/D");
|
317 |
|
|
subTree->Branch("BeamSpotY", &tBeamSpotY, "BeamSpotY/D");
|
318 |
|
|
subTree->Branch("BeamSpotZ", &tBeamSpotZ, "BeamSpotZ/D");
|
319 |
|
|
|
320 |
|
|
|
321 |
|
|
|
322 |
jueugste |
1.6 |
subTree->Branch("TracksN", &tTracksN, "TracksN/I");
|
323 |
|
|
subTree->Branch("TrackPt", &tTrackPt, "TrackPt[TracksN]/D");
|
324 |
|
|
subTree->Branch("TrackPx", &tTrackPx, "TrackPx[TracksN]/D");
|
325 |
|
|
subTree->Branch("TrackPy", &tTrackPy, "TrackPy[TracksN]/D");
|
326 |
|
|
subTree->Branch("TrackPz", &tTrackPz, "TrackPz[TracksN]/D");
|
327 |
|
|
subTree->Branch("TrackDzBs", &tTrackDzBs, "TrackDzBs[TracksN]/D");
|
328 |
|
|
subTree->Branch("TrackEta", &tTrackEta, "TrackEta[TracksN]/D");
|
329 |
|
|
subTree->Branch("TrackPhi", &tTrackPhi, "TrackPhi[TracksN]/D");
|
330 |
|
|
// subTree->Branch("Trackdsz", &tTrackdsz, "Trackdsz[TracksN]/D");
|
331 |
|
|
// subTree->Branch("Trackdxy", &tTrackdxy, "Trackdxy[TracksN]/D");
|
332 |
|
|
// subTree->Branch("", &, "[]/D");
|
333 |
|
|
|
334 |
jueugste |
1.2 |
|
335 |
|
|
// subTree->Branch("");
|
336 |
|
|
// subTree->Branch("");
|
337 |
|
|
// subTree->Branch("");
|
338 |
|
|
// subTree->Branch("");
|
339 |
|
|
// subTree->Branch("");
|
340 |
|
|
// subTree->Branch("");
|
341 |
|
|
// subTree->Branch("");
|
342 |
jueugste |
1.1 |
|
343 |
|
|
// double tElN;
|
344 |
|
|
// double tElPt;
|
345 |
|
|
// double tElPx;
|
346 |
|
|
// double tElPy;
|
347 |
|
|
// double tElPz;
|
348 |
|
|
// double tElEta;
|
349 |
|
|
// double tElPhi;
|
350 |
|
|
|
351 |
|
|
|
352 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
353 |
|
|
|
354 |
|
|
|
355 |
|
|
|
356 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
357 |
|
|
// Electron Cuts
|
358 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
359 |
|
|
|
360 |
|
|
// ETH ID
|
361 |
|
|
double ETH_oneOverEminusOneOverP_B=0.005;
|
362 |
|
|
double ETH_deltaEtaMax_B=0.004;
|
363 |
|
|
double ETH_deltaPhiMax_B=0.02;
|
364 |
|
|
double ETH_iso_B=0.1;
|
365 |
|
|
int ETH_missingHits_B=1;
|
366 |
|
|
double ETH_oneOverEminusOneOverP_E=0.007;
|
367 |
|
|
double ETH_deltaEtaMax_E=0.006;
|
368 |
|
|
double ETH_deltaPhiMax_E=0.02;
|
369 |
|
|
double ETH_iso_E=0.1;
|
370 |
|
|
int ETH_missingHits_E=1;
|
371 |
|
|
|
372 |
|
|
|
373 |
|
|
int debug=0;
|
374 |
|
|
int debug2=0;
|
375 |
|
|
int debug3=0;
|
376 |
|
|
int debug4=0;
|
377 |
|
|
|
378 |
|
|
|
379 |
|
|
vector<int> diff_run;
|
380 |
|
|
vector<int> diff_event;
|
381 |
|
|
vector<int> diff_ls;
|
382 |
|
|
vector<double> diff_sumehf_plus;
|
383 |
|
|
vector<double> diff_sumehf_minus;
|
384 |
|
|
vector<double> diff_sumethf_plus;
|
385 |
|
|
vector<double> diff_sumethf_minus;
|
386 |
|
|
vector<double> diff_ntowershf_plus;
|
387 |
|
|
vector<double> diff_ntowershf_minus;
|
388 |
|
|
|
389 |
|
|
vector<int> sel_WOjet_run;
|
390 |
|
|
vector<int> sel_WOjet_event;
|
391 |
|
|
vector<int> sel_WOjet_ls;
|
392 |
|
|
vector<int> sel_ZOjet_run;
|
393 |
|
|
vector<int> sel_ZOjet_event;
|
394 |
|
|
vector<int> sel_ZOjet_ls;
|
395 |
|
|
|
396 |
jueugste |
1.5 |
int previousRun = 0;
|
397 |
|
|
bool firstEvent=true;
|
398 |
jueugste |
1.1 |
// fill the eth cuts vector
|
399 |
|
|
EthCuts.push_back(ETH_deltaPhiMax_B);
|
400 |
|
|
EthCuts.push_back(ETH_deltaEtaMax_B);
|
401 |
|
|
EthCuts.push_back(ETH_oneOverEminusOneOverP_B);
|
402 |
|
|
EthCuts.push_back(ETH_iso_B);
|
403 |
|
|
EthCuts.push_back(ETH_missingHits_B);
|
404 |
|
|
EthCuts.push_back(ETH_deltaPhiMax_E);
|
405 |
|
|
EthCuts.push_back(ETH_deltaEtaMax_E);
|
406 |
|
|
EthCuts.push_back(ETH_oneOverEminusOneOverP_E);
|
407 |
|
|
EthCuts.push_back(ETH_iso_E);
|
408 |
|
|
EthCuts.push_back(ETH_missingHits_E);
|
409 |
|
|
|
410 |
|
|
|
411 |
|
|
|
412 |
|
|
|
413 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
414 |
|
|
// read the cut values from include/workingPoints.txt
|
415 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
416 |
|
|
|
417 |
|
|
// check if it is a possible working point
|
418 |
|
|
if(workingPoint>0 && (
|
419 |
|
|
workingPoint!=60 &&
|
420 |
|
|
workingPoint!=70 &&
|
421 |
|
|
workingPoint!=80 &&
|
422 |
|
|
workingPoint!=85 &&
|
423 |
|
|
workingPoint!=90 &&
|
424 |
|
|
workingPoint!=95 )
|
425 |
|
|
) {
|
426 |
|
|
cerr<<"ERROR: "<<workingPoint<<" is NOT a valid working point!!!"<<endl;
|
427 |
|
|
exit(0);
|
428 |
|
|
}
|
429 |
|
|
// read the file
|
430 |
|
|
if(workingPoint>0) {
|
431 |
|
|
const char *file="include/workingPoints.txt";
|
432 |
|
|
cout<<"Opening file: "<<file<<"..."<<endl;
|
433 |
|
|
ifstream toread (file);
|
434 |
|
|
if(!toread.is_open()) {
|
435 |
|
|
cerr<<"File "<<file<<" not found!!"<<endl;
|
436 |
|
|
//goto END;
|
437 |
|
|
}
|
438 |
|
|
else {
|
439 |
|
|
cout<<"File opened..."<<endl;
|
440 |
|
|
}
|
441 |
|
|
|
442 |
|
|
// build the working point variable
|
443 |
|
|
char wpB [20];
|
444 |
|
|
char wpE [20];
|
445 |
|
|
sprintf(wpB,"B%d",workingPoint);
|
446 |
|
|
sprintf(wpE,"E%d",workingPoint);
|
447 |
|
|
|
448 |
|
|
|
449 |
|
|
// read every line in the file
|
450 |
|
|
if(toread.is_open()) {
|
451 |
|
|
string line;
|
452 |
|
|
float value;
|
453 |
|
|
char name[100];
|
454 |
|
|
//cout<<"Reading working point input file"<<endl;
|
455 |
|
|
while(!toread.eof()) {
|
456 |
|
|
getline (toread, line);
|
457 |
|
|
|
458 |
|
|
if(line.substr(0,1)=="#") continue;
|
459 |
|
|
//cout<<line<<endl;
|
460 |
|
|
|
461 |
|
|
char wp[20];
|
462 |
|
|
float v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10;
|
463 |
|
|
sscanf (line.c_str(), "%s\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f", wp, &v0, &v1, &v2, &v3, &v4, &v5, &v6, &v7, &v8, &v9, &v10);
|
464 |
|
|
// barrel values
|
465 |
|
|
if(!strcmp(wp, wpB)) {
|
466 |
|
|
WorkingPointCuts.push_back(v0); // 0 see
|
467 |
|
|
WorkingPointCuts.push_back(v1); // 1 dphi
|
468 |
|
|
WorkingPointCuts.push_back(v2); // 2 deta
|
469 |
|
|
WorkingPointCuts.push_back(v3); // 3 hoe
|
470 |
|
|
WorkingPointCuts.push_back(v4); // 4 tkIso
|
471 |
|
|
WorkingPointCuts.push_back(v5); // 5 ecalIso
|
472 |
|
|
WorkingPointCuts.push_back(v6); // 6 hcalIso
|
473 |
|
|
WorkingPointCuts.push_back(v7); // 7 combIso
|
474 |
|
|
}
|
475 |
|
|
// endcap values
|
476 |
|
|
if(!strcmp(wp, wpE)) {
|
477 |
|
|
WorkingPointCuts.push_back(v0); // 8 see
|
478 |
|
|
WorkingPointCuts.push_back(v1); // 9 dphi
|
479 |
|
|
WorkingPointCuts.push_back(v2); // 10 deta
|
480 |
|
|
WorkingPointCuts.push_back(v3); // 11 hoe
|
481 |
|
|
WorkingPointCuts.push_back(v4); // 12 tkIso
|
482 |
|
|
WorkingPointCuts.push_back(v5); // 13 ecalIso
|
483 |
|
|
WorkingPointCuts.push_back(v6); // 14 hcalIso
|
484 |
|
|
WorkingPointCuts.push_back(v7); // 15 combIso
|
485 |
|
|
WorkingPointCuts.push_back(v8); // 16 hits
|
486 |
|
|
WorkingPointCuts.push_back(v9); // 17 dist
|
487 |
|
|
}
|
488 |
|
|
|
489 |
|
|
} // read line
|
490 |
|
|
} // read file
|
491 |
|
|
} // get working points
|
492 |
|
|
|
493 |
|
|
cout<<WorkingPointCuts[4]<<endl;
|
494 |
|
|
cout<<WorkingPointCuts[5]<<endl;
|
495 |
|
|
cout<<WorkingPointCuts[6]<<endl;
|
496 |
|
|
cout<<WorkingPointCuts[7]<<endl;
|
497 |
|
|
cout<<WorkingPointCuts[8]<<endl;
|
498 |
|
|
cout<<WorkingPointCuts[9]<<endl;
|
499 |
|
|
|
500 |
|
|
|
501 |
|
|
cout<<"Running the analysis with working point "<<workingPoint<<endl;
|
502 |
|
|
cout<<"Value for barrel / endcap"<<endl;
|
503 |
|
|
char *cutName[8] = {"sigmaIetaIeta", "delta phi at vtx", "delta eta at vtx", "H/E", "trkIso", "ecalIso", "hcalIso", "# inner hits"};
|
504 |
|
|
for(int i=0; i< 8;i++) {
|
505 |
|
|
cout<<cutName[i]<<" < "<<WorkingPointCuts[i]<<" / "<<WorkingPointCuts[8+i]<<endl;
|
506 |
|
|
}
|
507 |
|
|
|
508 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
509 |
|
|
|
510 |
|
|
|
511 |
|
|
|
512 |
jueugste |
1.5 |
// --------------------------------------------------------------------------------------------------------------------
|
513 |
|
|
// number of events
|
514 |
|
|
// this histogram is filled for normalization purposes i.e. to keep track of the MC sample sizes
|
515 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
516 |
|
|
TH1I *h_numberOfEvents;
|
517 |
|
|
h_numberOfEvents=new TH1I("numberOfEvents", "numberOfEvents", 1, -0.01, 1.01);
|
518 |
|
|
TH1I *h_HLTInfo;
|
519 |
|
|
h_HLTInfo = new TH1I("HLTInfo", "HLTInfo", 6, -.5, 5.5);
|
520 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(1, "No trigger found");
|
521 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(2, "Ele15_SW");
|
522 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(2, "Ele15_LW");
|
523 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(2, "Ele15_SW_CaloEleId");
|
524 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(2, "Ele17_SW_TightEleId");
|
525 |
|
|
h_HLTInfo->GetXaxis()->SetBinLabel(2, "Ele17_SW_CaloEleId");
|
526 |
|
|
|
527 |
jueugste |
1.1 |
// --------------------------------------------------------------------------------------------------------------------
|
528 |
|
|
|
529 |
|
|
|
530 |
|
|
|
531 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
532 |
|
|
// Electron plots
|
533 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
534 |
|
|
char name [50];
|
535 |
|
|
int nbins=12;
|
536 |
|
|
double start=0.;
|
537 |
|
|
double end=120.;
|
538 |
|
|
TH1D *hs_El_ElPt[MAXE];
|
539 |
|
|
TH1D *hs_El_ElEta[MAXE];
|
540 |
|
|
TH1D *hs_El_ElPhi[MAXE];
|
541 |
|
|
TH1D *hs_El_ElDeltaPhi[MAXE];
|
542 |
|
|
TH1D *hs_El_ElDeltaEta[MAXE];
|
543 |
|
|
TH1D *hs_El_ElOneOverEminusOneOverP[MAXE];
|
544 |
|
|
TH1D *hs_El_ElMet[MAXE];
|
545 |
|
|
TH1D *hs_El_ElTransMass[MAXE];
|
546 |
|
|
TH1D *hs_El_ElCharge[MAXE];
|
547 |
|
|
TH1D *hs_El_Njets[MAXE];
|
548 |
|
|
TH1D *hs_El_ElEthIso[MAXE];
|
549 |
|
|
TH1D *hs_El_ElTrkIso[MAXE];
|
550 |
|
|
TH1D *hs_El_ElEcalIso[MAXE];
|
551 |
|
|
TH1D *hs_El_ElHcalIso[MAXE];
|
552 |
|
|
TH1D *hs_El_ElCombIso[MAXE];
|
553 |
|
|
TH1D *hs_El_ElHoverE[MAXE];
|
554 |
|
|
TH1D *hs_El_ElSigmaIetaIeta[MAXE];
|
555 |
|
|
TH1D *hs_El_ElNumberOfMissingInnerHits[MAXE];
|
556 |
|
|
for(int i=0; i<MAXE; i++) {
|
557 |
|
|
sprintf(name,"s_El_ElPt_%d",i);
|
558 |
|
|
hs_El_ElPt[i]=new TH1D(name, name, 60, 0, 120);
|
559 |
|
|
hs_El_ElPt[i]->SetXTitle("p_{T} [GeV]");
|
560 |
|
|
hs_El_ElPt[i]->SetYTitle("events / 2 GeV");
|
561 |
|
|
sprintf(name,"s_El_ElEta_%d",i);
|
562 |
|
|
hs_El_ElEta[i]=new TH1D(name, name, 25, -2.5, 2.5);
|
563 |
|
|
hs_El_ElEta[i]->SetXTitle("#eta");
|
564 |
|
|
hs_El_ElEta[i]->SetYTitle("events / 0.2");
|
565 |
|
|
sprintf(name,"s_El_ElPhi_%d",i);
|
566 |
|
|
hs_El_ElPhi[i]=new TH1D(name, name, 30, -Pi,Pi);
|
567 |
|
|
hs_El_ElPhi[i]->SetXTitle("#phi");
|
568 |
|
|
hs_El_ElPhi[i]->SetYTitle("events / 0.21");
|
569 |
|
|
sprintf(name,"s_El_ElDeltaPhi_%d",i);
|
570 |
|
|
hs_El_ElDeltaPhi[i]=new TH1D(name, name, 30, -0.05001, 0.05001);
|
571 |
|
|
hs_El_ElDeltaPhi[i]->SetXTitle("#Delta #phi");
|
572 |
|
|
hs_El_ElDeltaPhi[i]->SetYTitle("events / bin");
|
573 |
|
|
sprintf(name,"s_El_ElDeltaEta_%d",i);
|
574 |
|
|
hs_El_ElDeltaEta[i]=new TH1D(name, name, 30, -0.05001, 0.05001);
|
575 |
|
|
hs_El_ElDeltaEta[i]->SetXTitle("#Delta #eta");
|
576 |
|
|
hs_El_ElDeltaEta[i]->SetYTitle("events / bin");
|
577 |
|
|
sprintf(name,"s_El_ElMet_%d",i);
|
578 |
|
|
hs_El_ElMet[i]=new TH1D(name, name, 60, 0, 120);
|
579 |
|
|
hs_El_ElMet[i]->SetXTitle("#slash{E}_{T} [GeV]");
|
580 |
|
|
hs_El_ElMet[i]->SetYTitle("events / 2 GeV");
|
581 |
|
|
sprintf(name,"s_El_ElTransMass_%d",i);
|
582 |
|
|
hs_El_ElTransMass[i]=new TH1D(name, name, 60, 0, 120);
|
583 |
|
|
hs_El_ElTransMass[i]->SetXTitle("m_{T} [GeV]");
|
584 |
|
|
hs_El_ElTransMass[i]->SetYTitle("events / 2 GeV");
|
585 |
|
|
sprintf(name,"s_El_ElCharge_%d",i);
|
586 |
|
|
hs_El_ElCharge[i]=new TH1D(name, name, 2, -2, 2);
|
587 |
|
|
hs_El_ElCharge[i]->SetXTitle("Charge");
|
588 |
|
|
hs_El_ElCharge[i]->SetYTitle("events / bin");
|
589 |
|
|
sprintf(name,"s_El_Njets_%d",i);
|
590 |
|
|
hs_El_Njets[i]=new TH1D(name, name, 10, 0, 10);
|
591 |
|
|
hs_El_Njets[i]->SetXTitle("number of jets");
|
592 |
|
|
hs_El_Njets[i]->SetYTitle("events / bin");
|
593 |
|
|
sprintf(name,"s_El_ElOneOverEminusOneOverP_%d",i);
|
594 |
|
|
hs_El_ElOneOverEminusOneOverP[i]=new TH1D(name, name, 30, -0.01, 0.5);
|
595 |
|
|
hs_El_ElOneOverEminusOneOverP[i]->SetXTitle("|1/E-1/p|");
|
596 |
|
|
hs_El_ElOneOverEminusOneOverP[i]->SetYTitle("events / bin");
|
597 |
|
|
sprintf(name,"s_El_ElEthIso_%d",i);
|
598 |
|
|
// hs_El_ElEthIso[i]=new TH1D(name, name, 50, -0.01, 5.);
|
599 |
|
|
hs_El_ElEthIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
|
600 |
|
|
hs_El_ElEthIso[i]->SetXTitle("ETH Iso");
|
601 |
|
|
hs_El_ElEthIso[i]->SetYTitle("events / bin");
|
602 |
|
|
sprintf(name,"s_El_ElTrkIso_%d",i);
|
603 |
|
|
// hs_El_ElTrkIso[i]=new TH1D(name, name, 100, -0.01, 50.);
|
604 |
|
|
hs_El_ElTrkIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
|
605 |
|
|
hs_El_ElTrkIso[i]->SetXTitle("Trk Iso");
|
606 |
|
|
hs_El_ElTrkIso[i]->SetYTitle("events / bin");
|
607 |
|
|
sprintf(name,"s_El_ElEcalIso_%d",i);
|
608 |
|
|
hs_El_ElEcalIso[i]=new TH1D(name, name, 20, -0.01, 1.1);
|
609 |
|
|
// hs_El_ElEcalIso[i]=new TH1D(name, name, 40, -0.01, 20.);
|
610 |
|
|
hs_El_ElEcalIso[i]->SetXTitle("ECAL Iso");
|
611 |
|
|
hs_El_ElEcalIso[i]->SetYTitle("events / bin");
|
612 |
|
|
sprintf(name,"s_El_ElHcalIso_%d",i);
|
613 |
|
|
hs_El_ElHcalIso[i]=new TH1D(name, name, 20, -0.01, 10.);
|
614 |
|
|
hs_El_ElHcalIso[i]->SetXTitle("HCAL Iso");
|
615 |
|
|
hs_El_ElHcalIso[i]->SetYTitle("events / bin");
|
616 |
|
|
|
617 |
|
|
sprintf(name,"s_El_ElCombIso_%d",i);
|
618 |
|
|
hs_El_ElCombIso[i]=new TH1D(name, name, 20, -0.01, 3.1);
|
619 |
|
|
hs_El_ElCombIso[i]->SetXTitle("Combined Iso");
|
620 |
|
|
hs_El_ElCombIso[i]->SetYTitle("events / bin");
|
621 |
|
|
|
622 |
|
|
sprintf(name,"s_El_ElHoverE_%d",i);
|
623 |
|
|
hs_El_ElHoverE[i]=new TH1D(name, name, 30, -0.01, 0.5);
|
624 |
|
|
hs_El_ElHoverE[i]->SetXTitle("H/E");
|
625 |
|
|
hs_El_ElHoverE[i]->SetYTitle("events / bin");
|
626 |
|
|
sprintf(name,"s_El_ElSigmaIetaIeta_%d",i);
|
627 |
|
|
hs_El_ElSigmaIetaIeta[i]=new TH1D(name, name, 50, -0.01, 0.08);
|
628 |
|
|
hs_El_ElSigmaIetaIeta[i]->SetXTitle("#sigma_{i#eta i#eta}");
|
629 |
|
|
hs_El_ElSigmaIetaIeta[i]->SetYTitle("events / bin");
|
630 |
|
|
sprintf(name,"s_El_ElNumberOfMissingInnerHits_%d",i);
|
631 |
|
|
hs_El_ElNumberOfMissingInnerHits[i]=new TH1D(name, name, 10, 0., 10.);
|
632 |
|
|
hs_El_ElNumberOfMissingInnerHits[i]->SetXTitle("Number of missing inner hits");
|
633 |
|
|
hs_El_ElNumberOfMissingInnerHits[i]->SetYTitle("events / bin");
|
634 |
|
|
}
|
635 |
|
|
|
636 |
|
|
TH1D *hc_El_counter;
|
637 |
|
|
hc_El_counter=new TH1D("c_El_counter", "c_El_counter",15, 0, 15);
|
638 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(1,"# e preselection");
|
639 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(2,"# e presel, barrel");
|
640 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(3,"# e see");
|
641 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(4,"# e dphi");
|
642 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(5,"# e deta");
|
643 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(6,"# e hoe");
|
644 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(7,"# e combIso");
|
645 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(8,"# e conversion");
|
646 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(9,"# e presel, endcap");
|
647 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(10,"# e see");
|
648 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(11,"# e dphi");
|
649 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(12,"# e deta");
|
650 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(13,"# e hoe");
|
651 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(14,"# e combIso");
|
652 |
|
|
hc_El_counter->GetXaxis()->SetBinLabel(15,"# e conversion");
|
653 |
|
|
|
654 |
|
|
|
655 |
|
|
|
656 |
|
|
|
657 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
658 |
|
|
|
659 |
|
|
|
660 |
|
|
|
661 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
662 |
|
|
// Electron ID N-1 plots
|
663 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
664 |
|
|
int MAXN=4;
|
665 |
|
|
TH1D *hn1_El_ElDeltaPhi[MAXN];
|
666 |
|
|
TH1D *hn1_El_ElDeltaEta[MAXN];
|
667 |
|
|
TH1D *hn1_El_ElOneOverEminusOneOverP[MAXN];
|
668 |
|
|
TH1D *hn1_El_ElEthIso[MAXN];
|
669 |
|
|
TH1D *hn1_El_ElCombIso[MAXN];
|
670 |
|
|
TH1D *hn1_El_ElHoverE[MAXN];
|
671 |
|
|
TH1D *hn1_El_ElSigmaIetaIeta[MAXN];
|
672 |
|
|
TH1D *hn1_El_ElNumberOfMissingInnerHits[MAXN];
|
673 |
|
|
|
674 |
|
|
|
675 |
|
|
for(int i=0; i<MAXN;i++) {
|
676 |
|
|
sprintf(name,"n1_El_ElDeltaPhi_%d",i);
|
677 |
|
|
hn1_El_ElDeltaPhi[i]=new TH1D(name, name, 30, -0.05001, 0.05001); // plotting absolut value
|
678 |
|
|
// hn1_El_ElDeltaPhi[i]=new TH1D(name, name, 15, -0.05001, 0.05001); // plotting real value
|
679 |
|
|
hn1_El_ElDeltaPhi[i]->SetXTitle("#Delta #phi");
|
680 |
|
|
hn1_El_ElDeltaPhi[i]->SetYTitle("events / bin");
|
681 |
|
|
sprintf(name,"n1_El_ElDeltaEta_%d",i);
|
682 |
|
|
hn1_El_ElDeltaEta[i]=new TH1D(name, name, 30, -0.02001, 0.02001); // plotting absolut value
|
683 |
|
|
// hn1_El_ElDeltaEta[i]=new TH1D(name, name, 15, -0.05001, 0.05001); // plotting real value
|
684 |
|
|
hn1_El_ElDeltaEta[i]->SetXTitle("#Delta #eta");
|
685 |
|
|
hn1_El_ElDeltaEta[i]->SetYTitle("events / bin");
|
686 |
|
|
sprintf(name,"n1_El_ElOneOverEminusOneOverP_%d",i);
|
687 |
|
|
hn1_El_ElOneOverEminusOneOverP[i]=new TH1D(name, name, 15, -0.0001, 0.05001);
|
688 |
|
|
hn1_El_ElOneOverEminusOneOverP[i]->SetXTitle("|1/E-1/p|");
|
689 |
|
|
hn1_El_ElOneOverEminusOneOverP[i]->SetYTitle("events / bin");
|
690 |
|
|
sprintf(name,"n1_El_ElEthIso_%d",i);
|
691 |
|
|
hn1_El_ElEthIso[i]=new TH1D(name, name, 50, -0.01, 5.);
|
692 |
|
|
hn1_El_ElEthIso[i]->SetXTitle("Isolation");
|
693 |
|
|
hn1_El_ElEthIso[i]->SetYTitle("events / bin");
|
694 |
|
|
|
695 |
|
|
|
696 |
|
|
sprintf(name,"n1_El_ElCombIso_%d",i);
|
697 |
|
|
hn1_El_ElCombIso[i]=new TH1D(name, name, 20, -0.01, 0.5);
|
698 |
|
|
// hn1_El_ElCombIso[i]=new TH1D(name, name, 20, -0.01, 10.);
|
699 |
|
|
hn1_El_ElCombIso[i]->SetXTitle("Combined Iso");
|
700 |
|
|
hn1_El_ElCombIso[i]->SetYTitle("events / bin");
|
701 |
|
|
|
702 |
|
|
sprintf(name,"n1_El_ElHoverE_%d",i);
|
703 |
|
|
hn1_El_ElHoverE[i]=new TH1D(name, name, 30, -0.01, 0.2);
|
704 |
|
|
hn1_El_ElHoverE[i]->SetXTitle("H/E");
|
705 |
|
|
hn1_El_ElHoverE[i]->SetYTitle("events / bin");
|
706 |
|
|
sprintf(name,"n1_El_ElSigmaIetaIeta_%d",i);
|
707 |
|
|
hn1_El_ElSigmaIetaIeta[i]=new TH1D(name, name, 50, -0.01, 0.08);
|
708 |
|
|
hn1_El_ElSigmaIetaIeta[i]->SetXTitle("#sigma_{i#eta i#eta}");
|
709 |
|
|
hn1_El_ElSigmaIetaIeta[i]->SetYTitle("events / bin");
|
710 |
|
|
sprintf(name,"n1_El_ElNumberOfMissingInnerHits_%d",i);
|
711 |
|
|
hn1_El_ElNumberOfMissingInnerHits[i]=new TH1D(name, name, 10, 0., 10.);
|
712 |
|
|
hn1_El_ElNumberOfMissingInnerHits[i]->SetXTitle("Number of missing inner hits");
|
713 |
|
|
hn1_El_ElNumberOfMissingInnerHits[i]->SetYTitle("events / bin");
|
714 |
|
|
|
715 |
|
|
|
716 |
|
|
}
|
717 |
|
|
|
718 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
719 |
|
|
|
720 |
|
|
|
721 |
|
|
|
722 |
|
|
|
723 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
724 |
|
|
// W Selection plots
|
725 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
726 |
|
|
int MAXS=21;
|
727 |
|
|
TH1D *hs_W_ElPt[MAXS];
|
728 |
|
|
TH1D *hs_W_ElEta[MAXS];
|
729 |
|
|
TH1D *hs_W_ElPhi[MAXS];
|
730 |
|
|
TH1D *hs_W_ElDeltaPhi[MAXS];
|
731 |
|
|
TH1D *hs_W_ElMet[MAXS];
|
732 |
|
|
TH1D *hs_W_ElTransMass[MAXS];
|
733 |
|
|
TH1D *hs_W_ElCharge[MAXS];
|
734 |
|
|
TH1D *hs_W_Njets[MAXS];
|
735 |
|
|
TH1D *hs_W_jetPt[MAXS];
|
736 |
|
|
for(int i=0; i<MAXS; i++) {
|
737 |
|
|
sprintf(name,"s_W_ElPt_%d",i);
|
738 |
|
|
hs_W_ElPt[i]=new TH1D(name, name, 60, 0, 120);
|
739 |
|
|
hs_W_ElPt[i]->SetXTitle("p_{T} [GeV]");
|
740 |
|
|
hs_W_ElPt[i]->SetYTitle("events / 2 GeV");
|
741 |
|
|
sprintf(name,"s_W_ElEta_%d",i);
|
742 |
|
|
hs_W_ElEta[i]=new TH1D(name, name, 50, -5., 5.);
|
743 |
|
|
hs_W_ElEta[i]->SetXTitle("#eta");
|
744 |
|
|
hs_W_ElEta[i]->SetYTitle("events / 0.2");
|
745 |
|
|
sprintf(name,"s_W_ElPhi_%d",i);
|
746 |
|
|
hs_W_ElPhi[i]=new TH1D(name, name, 30, -Pi,Pi);
|
747 |
|
|
hs_W_ElPhi[i]->SetXTitle("#phi");
|
748 |
|
|
hs_W_ElPhi[i]->SetYTitle("events / 0.21");
|
749 |
|
|
sprintf(name,"s_W_ElDeltaPhi_%d",i);
|
750 |
|
|
hs_W_ElDeltaPhi[i]=new TH1D(name, name, 15, 0., Pi);
|
751 |
|
|
hs_W_ElDeltaPhi[i]->SetXTitle("#Delta #phi_{e,#slash{E}_{T}}");
|
752 |
|
|
hs_W_ElDeltaPhi[i]->SetYTitle("events / bin");
|
753 |
|
|
sprintf(name,"s_W_ElMet_%d",i);
|
754 |
|
|
hs_W_ElMet[i]=new TH1D(name, name, 60, 0, 120);
|
755 |
|
|
hs_W_ElMet[i]->SetXTitle("#slash{E}_{T} [GeV]");
|
756 |
|
|
hs_W_ElMet[i]->SetYTitle("events / 2 GeV");
|
757 |
|
|
sprintf(name,"s_W_ElTransMass_%d",i);
|
758 |
|
|
hs_W_ElTransMass[i]=new TH1D(name, name, 100, 0, 200);
|
759 |
|
|
hs_W_ElTransMass[i]->SetXTitle("m_{T} [GeV]");
|
760 |
|
|
hs_W_ElTransMass[i]->SetYTitle("events / 2 GeV");
|
761 |
|
|
sprintf(name,"s_W_ElCharge_%d",i);
|
762 |
|
|
hs_W_ElCharge[i]=new TH1D(name, name, 2, -2, 2);
|
763 |
|
|
hs_W_ElCharge[i]->SetXTitle("Charge");
|
764 |
|
|
hs_W_ElCharge[i]->SetYTitle("events / bin");
|
765 |
|
|
sprintf(name,"s_W_Njets_%d",i);
|
766 |
|
|
hs_W_Njets[i]=new TH1D(name, name, 10, 0, 10);
|
767 |
|
|
hs_W_Njets[i]->SetXTitle("number of jets");
|
768 |
|
|
hs_W_Njets[i]->SetYTitle("events / bin");
|
769 |
|
|
sprintf(name,"s_W_jetPt_%d",i);
|
770 |
|
|
hs_W_jetPt[i]=new TH1D(name, name, 40, 0, 200);
|
771 |
|
|
hs_W_jetPt[i]->SetXTitle("p_{T} [GeV]");
|
772 |
|
|
hs_W_jetPt[i]->SetYTitle("events / bin");
|
773 |
|
|
}
|
774 |
|
|
|
775 |
|
|
int MAXWcounter=16;
|
776 |
|
|
int *Wcounter = new int[MAXWcounter];
|
777 |
|
|
memset(Wcounter,0,MAXWcounter*sizeof(int));
|
778 |
|
|
|
779 |
|
|
|
780 |
|
|
TH1D *hc_W_counter;
|
781 |
|
|
hc_W_counter=new TH1D("c_W_counter", "c_W_counter",16, 0, 16 );
|
782 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(1,"# e, N jets, Preselection");
|
783 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(2,"# W, N jets");
|
784 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(3,"# W+, N jets");
|
785 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(4,"# W-, N jets");
|
786 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(5,"# e, 0 jets, Preselection");
|
787 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(6,"# W, 0 jets");
|
788 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(7,"# W+, 0 jets");
|
789 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(8,"# W-, 0 jets");
|
790 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(9,"# e, 1 jet, Preselection");
|
791 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(10,"# W, 1 jet");
|
792 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(11,"# W+, 1 jet");
|
793 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(12,"# W-, 1 jet");
|
794 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(13,"# e, >1 jets, Preselection");
|
795 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(14,"# W, >1 jets");
|
796 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(15,"# W+, >1 jets");
|
797 |
|
|
hc_W_counter->GetXaxis()->SetBinLabel(16,"# W-, >1jets");
|
798 |
|
|
|
799 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
800 |
|
|
|
801 |
|
|
|
802 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
803 |
|
|
// Z plots
|
804 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
805 |
|
|
int MAXZ=1;
|
806 |
|
|
TH1D *h_Z_invMass[MAXZ];
|
807 |
|
|
TH1D *h_Z_invMass2[MAXZ];
|
808 |
|
|
TH1D *h_Z_ptAll[MAXZ];
|
809 |
|
|
TH1D *h_Z_etaAll[MAXZ];
|
810 |
|
|
TH1D *h_Z_phiAll[MAXZ];
|
811 |
|
|
TH1D *h_Z_deltaPhi[MAXZ];
|
812 |
|
|
TH1D *h_Z_ptDiLepton[MAXZ];
|
813 |
|
|
TH1D *h_Z_ptDiLepton2[MAXZ];
|
814 |
|
|
TH1D *h_Z_etaDiLepton[MAXZ];
|
815 |
|
|
TH1D *h_Z_phiDiLepton[MAXZ];
|
816 |
|
|
|
817 |
|
|
TH1D *h_Z_leadingJetPt[MAXZ];
|
818 |
|
|
TH1D *h_Z_summedJetPt[MAXZ];
|
819 |
|
|
TH1D *h_Z_leadingJetEta[MAXZ];
|
820 |
|
|
TH1D *h_Z_summedJetEta[MAXZ];
|
821 |
|
|
TH1D *h_Z_leadingJetPhi[MAXZ];
|
822 |
|
|
TH1D *h_Z_summedJetPhi[MAXZ];
|
823 |
|
|
TH1D *h_Z_nJets[MAXZ];
|
824 |
|
|
TH1D *h_Z_leadingJetDeltaPt[MAXZ];
|
825 |
|
|
TH1D *h_Z_leadingJetDeltaEta[MAXZ];
|
826 |
|
|
TH1D *h_Z_leadingJetDeltaPhi[MAXZ];
|
827 |
|
|
TH1D *h_Z_summedJetDeltaPt[MAXZ];
|
828 |
|
|
TH1D *h_Z_summedJetDeltaEta[MAXZ];
|
829 |
|
|
TH1D *h_Z_summedJetDeltaPhi[MAXZ];
|
830 |
|
|
TH1D *h_Z_recoilPt[MAXZ];
|
831 |
|
|
TH1D *h_Z_recoilEta[MAXZ];
|
832 |
|
|
TH1D *h_Z_recoilPhi[MAXZ];
|
833 |
|
|
TH1D *h_Z_metPt[MAXZ];
|
834 |
|
|
TH1D *h_Z_metPhi[MAXZ];
|
835 |
|
|
|
836 |
|
|
|
837 |
|
|
|
838 |
|
|
for(int i=0; i<MAXZ; i++) {
|
839 |
|
|
sprintf(name,"h_Z_invMass_%d",i);
|
840 |
|
|
h_Z_invMass[i] = new TH1D(name,name,100,0,200);
|
841 |
|
|
h_Z_invMass[i]->SetXTitle("m_{ee} [GeV]");
|
842 |
|
|
h_Z_invMass[i]->SetYTitle("events / bin");
|
843 |
|
|
|
844 |
|
|
sprintf(name,"h_Z_invMass2_%d",i);
|
845 |
|
|
h_Z_invMass2[i] = new TH1D(name,name,30,60,120);
|
846 |
|
|
h_Z_invMass2[i]->SetXTitle("m_{ee} [GeV]");
|
847 |
|
|
h_Z_invMass2[i]->SetYTitle("events / bin");
|
848 |
|
|
|
849 |
|
|
sprintf(name,"h_Z_ptAll_%d",i);
|
850 |
|
|
h_Z_ptAll[i] = new TH1D(name,name,20,0,200);
|
851 |
|
|
h_Z_ptAll[i]->SetXTitle("p_{T} [GeV]");
|
852 |
|
|
h_Z_ptAll[i]->SetYTitle("events / bin");
|
853 |
|
|
sprintf(name,"h_Z_etaAll_%d",i);
|
854 |
|
|
h_Z_etaAll[i] = new TH1D(name,name,12,-3.,3.);
|
855 |
|
|
h_Z_etaAll[i]->SetXTitle("#eta");
|
856 |
|
|
h_Z_etaAll[i]->SetYTitle("events / bin");
|
857 |
|
|
sprintf(name,"h_Z_phiAll_%d",i);
|
858 |
|
|
h_Z_phiAll[i] = new TH1D(name,name,30,-Pi,Pi);
|
859 |
|
|
h_Z_phiAll[i]->SetXTitle("#phi");
|
860 |
|
|
h_Z_phiAll[i]->SetYTitle("events / bin");
|
861 |
|
|
sprintf(name,"h_Z_deltaPhi_%d",i);
|
862 |
|
|
h_Z_deltaPhi[i] = new TH1D(name,name,15,0,Pi);
|
863 |
|
|
h_Z_deltaPhi[i]->SetXTitle("#Delta #phi_{ee}");
|
864 |
|
|
h_Z_deltaPhi[i]->SetYTitle("events / bin");
|
865 |
|
|
|
866 |
|
|
sprintf(name,"h_Z_ptDiLepton_%d",i);
|
867 |
|
|
h_Z_ptDiLepton[i] = new TH1D(name,name,40,0,200);
|
868 |
|
|
h_Z_ptDiLepton[i]->SetXTitle("p_{T} [GeV]");
|
869 |
|
|
h_Z_ptDiLepton[i]->SetYTitle("events / bin");
|
870 |
|
|
|
871 |
|
|
sprintf(name,"h_Z_ptDiLepton2_%d",i);
|
872 |
|
|
h_Z_ptDiLepton2[i] = new TH1D(name,name,50,0,50);
|
873 |
|
|
h_Z_ptDiLepton2[i]->SetXTitle("p_{T} [GeV]");
|
874 |
|
|
h_Z_ptDiLepton2[i]->SetYTitle("events / bin");
|
875 |
|
|
|
876 |
|
|
sprintf(name,"h_Z_etaDiLepton_%d",i);
|
877 |
|
|
h_Z_etaDiLepton[i] = new TH1D(name,name,16,-8.,8.);
|
878 |
|
|
h_Z_etaDiLepton[i]->SetXTitle("#eta");
|
879 |
|
|
h_Z_etaDiLepton[i]->SetYTitle("events / bin");
|
880 |
|
|
sprintf(name,"h_Z_phiDiLepton_%d",i);
|
881 |
|
|
h_Z_phiDiLepton[i] = new TH1D(name,name,30,-Pi,Pi);
|
882 |
|
|
h_Z_phiDiLepton[i]->SetXTitle("#phi");
|
883 |
|
|
h_Z_phiDiLepton[i]->SetYTitle("events / bin");
|
884 |
|
|
|
885 |
|
|
|
886 |
|
|
sprintf(name,"h_Z_leadingJetPt_%d",i);
|
887 |
|
|
h_Z_leadingJetPt[i] = new TH1D(name,name,20,0,200);
|
888 |
|
|
h_Z_leadingJetPt[i]->SetXTitle("p_{T} [GeV]");
|
889 |
|
|
h_Z_leadingJetPt[i]->SetYTitle("events / bin");
|
890 |
|
|
sprintf(name,"h_Z_summedJetPt_%d",i);
|
891 |
|
|
h_Z_summedJetPt[i] = new TH1D(name,name,20,0,200);
|
892 |
|
|
h_Z_summedJetPt[i]->SetXTitle("p_{T} [GeV]");
|
893 |
|
|
h_Z_summedJetPt[i]->SetYTitle("events / bin");
|
894 |
|
|
sprintf(name,"h_Z_leadingJetEta_%d",i);
|
895 |
|
|
h_Z_leadingJetEta[i] = new TH1D(name,name,12,-3,3);
|
896 |
|
|
h_Z_leadingJetEta[i]->SetXTitle("#eta");
|
897 |
|
|
h_Z_leadingJetEta[i]->SetYTitle("events / bin");
|
898 |
|
|
sprintf(name,"h_Z_summedJetEta_%d",i);
|
899 |
|
|
h_Z_summedJetEta[i] = new TH1D(name,name,16,-8,8);
|
900 |
|
|
h_Z_summedJetEta[i]->SetXTitle("#eta");
|
901 |
|
|
h_Z_summedJetEta[i]->SetYTitle("events / bin");
|
902 |
|
|
sprintf(name,"h_Z_leadingJetPhi_%d",i);
|
903 |
|
|
h_Z_leadingJetPhi[i] = new TH1D(name,name,30,-Pi,Pi);
|
904 |
|
|
h_Z_leadingJetPhi[i]->SetXTitle("#phi");
|
905 |
|
|
h_Z_leadingJetPhi[i]->SetYTitle("events / bin");
|
906 |
|
|
sprintf(name,"h_Z_summedJetPhi_%d",i);
|
907 |
|
|
h_Z_summedJetPhi[i] = new TH1D(name,name,30,-Pi,Pi);
|
908 |
|
|
h_Z_summedJetPhi[i]->SetXTitle("#phi");
|
909 |
|
|
h_Z_summedJetPhi[i]->SetYTitle("events / bin");
|
910 |
|
|
|
911 |
|
|
sprintf(name,"h_Z_nJets_%d",i);
|
912 |
|
|
h_Z_nJets[i] = new TH1D(name,name,11,0,11);
|
913 |
|
|
h_Z_nJets[i]->SetXTitle("jet number");
|
914 |
|
|
h_Z_nJets[i]->SetYTitle("events / bin");
|
915 |
|
|
|
916 |
|
|
sprintf(name,"h_Z_leadingJetDeltaPt_%d",i);
|
917 |
|
|
h_Z_leadingJetDeltaPt[i] = new TH1D(name,name,60,-150,150);
|
918 |
|
|
h_Z_leadingJetDeltaPt[i]->SetXTitle("#Delta p_{T,jZ} [GeV]");
|
919 |
|
|
h_Z_leadingJetDeltaPt[i]->SetYTitle("events / bin");
|
920 |
|
|
sprintf(name,"h_Z_leadingJetDeltaEta_%d",i);
|
921 |
|
|
h_Z_leadingJetDeltaEta[i] = new TH1D(name,name,16,-8,8);
|
922 |
|
|
h_Z_leadingJetDeltaEta[i]->SetXTitle("#Delta #eta_{jZ}");
|
923 |
|
|
h_Z_leadingJetDeltaEta[i]->SetYTitle("events / bin");
|
924 |
|
|
sprintf(name,"h_Z_leadingJetDeltaPhi_%d",i);
|
925 |
|
|
h_Z_leadingJetDeltaPhi[i] = new TH1D(name,name,15,0,Pi);
|
926 |
|
|
h_Z_leadingJetDeltaPhi[i]->SetXTitle("#Delta #phi_{jZ}");
|
927 |
|
|
h_Z_leadingJetDeltaPhi[i]->SetYTitle("events / bin");
|
928 |
|
|
|
929 |
|
|
sprintf(name,"h_Z_summedJetDeltaPt_%d",i);
|
930 |
|
|
h_Z_summedJetDeltaPt[i] = new TH1D(name,name,60,-150,150);
|
931 |
|
|
h_Z_summedJetDeltaPt[i]->SetXTitle("#Delta p_{T,jZ} [GeV]");
|
932 |
|
|
h_Z_summedJetDeltaPt[i]->SetYTitle("events / bin");
|
933 |
|
|
sprintf(name,"h_Z_summedJetDeltaEta_%d",i);
|
934 |
|
|
h_Z_summedJetDeltaEta[i] = new TH1D(name,name,16,-8,8);
|
935 |
|
|
h_Z_summedJetDeltaEta[i]->SetXTitle("#Delta #eta_{jZ}");
|
936 |
|
|
h_Z_summedJetDeltaEta[i]->SetYTitle("events / bin");
|
937 |
|
|
sprintf(name,"h_Z_summedJetDeltaPhi_%d",i);
|
938 |
|
|
h_Z_summedJetDeltaPhi[i] = new TH1D(name,name,15,0,Pi);
|
939 |
|
|
h_Z_summedJetDeltaPhi[i]->SetXTitle("#Delta #phi_{jZ}");
|
940 |
|
|
h_Z_summedJetDeltaPhi[i]->SetYTitle("events / bin");
|
941 |
|
|
|
942 |
|
|
sprintf(name,"h_Z_recoilPt_%d",i);
|
943 |
|
|
h_Z_recoilPt[i] = new TH1D(name,name,20,0,200);
|
944 |
|
|
h_Z_recoilPt[i]->SetXTitle("p_{T,j+Z} [GeV]");
|
945 |
|
|
h_Z_recoilPt[i]->SetYTitle("events / bin");
|
946 |
|
|
sprintf(name,"h_Z_recoilEta_%d",i);
|
947 |
|
|
h_Z_recoilEta[i] = new TH1D(name,name,16,-8,8);
|
948 |
|
|
h_Z_recoilEta[i]->SetXTitle("#eta_{j+Z}");
|
949 |
|
|
h_Z_recoilEta[i]->SetYTitle("events / bin");
|
950 |
|
|
sprintf(name,"h_Z_recoilPhi_%d",i);
|
951 |
|
|
h_Z_recoilPhi[i] = new TH1D(name,name,30,-Pi,Pi);
|
952 |
|
|
h_Z_recoilPhi[i]->SetXTitle("#phi_{j+Z}");
|
953 |
|
|
h_Z_recoilPhi[i]->SetYTitle("events / bin");
|
954 |
|
|
|
955 |
|
|
sprintf(name,"h_Z_metPt_%d",i);
|
956 |
|
|
h_Z_metPt[i] = new TH1D(name,name,20,0,200);
|
957 |
|
|
h_Z_metPt[i]->SetXTitle("#slash{E}_{T} [GeV]");
|
958 |
|
|
h_Z_metPt[i]->SetYTitle("events / bin");
|
959 |
|
|
sprintf(name,"h_Z_metPhi_%d",i);
|
960 |
|
|
h_Z_metPhi[i] = new TH1D(name,name,30,-Pi,Pi);
|
961 |
|
|
h_Z_metPhi[i]->SetXTitle("#phi_{#slash{E}_{T}}");
|
962 |
|
|
h_Z_metPhi[i]->SetYTitle("events / bin");
|
963 |
|
|
|
964 |
|
|
// TH2D *h_Z_summedJetDeltaPhi_VS_deltaPhi("summedJetDeltaPhi_VS_deltaPhi", "summedJetDeltaPhi_VS_deltaPhi", 30,-Pi,Pi,15,0,Pi);
|
965 |
|
|
|
966 |
|
|
}
|
967 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
968 |
|
|
|
969 |
|
|
|
970 |
|
|
|
971 |
|
|
////////////////////////////////////////////////////////////////////
|
972 |
|
|
////////////////////Loop over entries starts here //////////////////
|
973 |
|
|
////////////////////////////////////////////////////////////////////
|
974 |
|
|
|
975 |
|
|
|
976 |
|
|
|
977 |
|
|
|
978 |
|
|
TH1D *h_jetPt = new TH1D("h_jetPt", "jet_Pt",100,0,100);
|
979 |
|
|
|
980 |
|
|
/////////initialize variables
|
981 |
|
|
|
982 |
|
|
Long64_t nentries = fChain->GetEntriesFast();
|
983 |
|
|
std::cout << "analysisClass::Loop(): nentries = " << nentries << std::endl;
|
984 |
|
|
|
985 |
|
|
////// The following ~7 lines have been taken from rootNtupleClass->Loop() /////
|
986 |
|
|
////// If the root version is updated and rootNtupleClass regenerated, /////
|
987 |
|
|
////// these lines may need to be updated. /////
|
988 |
|
|
Long64_t nb = 0;
|
989 |
|
|
|
990 |
|
|
|
991 |
|
|
for (Long64_t jentry=0; jentry<nentries;jentry++) { // loop over all events (entries) in the tree/chain
|
992 |
|
|
|
993 |
|
|
|
994 |
|
|
Long64_t ientry = fChain->LoadTree(jentry); // ientry: this is a counter over each single file in the input list
|
995 |
|
|
|
996 |
|
|
if (ientry < 0) {cerr<<"WARNING: ientry = "<<ientry<<" is smaller than 0! (this is ok if the end of the file is reached...)"<<endl; break; }
|
997 |
|
|
|
998 |
|
|
nb=fChain->GetEntry(jentry);
|
999 |
|
|
//fChain->GetEntry(jentry);
|
1000 |
|
|
|
1001 |
|
|
if(jentry < 10 || jentry%1000 == 0) {
|
1002 |
|
|
std::cout << "analysisClass::Loop(): Events processed = " << jentry << std::endl;
|
1003 |
|
|
}
|
1004 |
|
|
|
1005 |
|
|
if(sampleSize!=-1 && sampleSize==jentry) {
|
1006 |
|
|
goto END;
|
1007 |
|
|
}
|
1008 |
|
|
h_numberOfEvents->Fill(1);
|
1009 |
|
|
|
1010 |
|
|
////////////////////////////////////////////////////////////////////
|
1011 |
|
|
////////////////////// User's code starts here /////////////////////
|
1012 |
|
|
////////////////////////////////////////////////////////////////////
|
1013 |
|
|
|
1014 |
|
|
// check the methods defined in baseClass and clean it up!!
|
1015 |
|
|
|
1016 |
jueugste |
1.5 |
|
1017 |
|
|
|
1018 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
1019 |
|
|
// the MC samples have always run number ==1,
|
1020 |
|
|
// exploit this fact to set the isdata flag
|
1021 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
1022 |
|
|
if(firstEvent) {
|
1023 |
|
|
firstEvent=false;
|
1024 |
|
|
cout<<"check run number "<<Run<<endl;
|
1025 |
|
|
if(Run!=1) isdata=true;
|
1026 |
|
|
else if(Run==1) isdata=false;
|
1027 |
|
|
if(isdata) cout<<"Running over real data!!!"<<endl;
|
1028 |
|
|
else if(!isdata) cout<<"Running over MC!!!"<<endl;
|
1029 |
|
|
}
|
1030 |
|
|
// --------------------------------------------------------------------------------------------------------------------
|
1031 |
|
|
|
1032 |
|
|
|
1033 |
|
|
|
1034 |
|
|
// check for every event if a new run has started and get the trigger info
|
1035 |
|
|
if(Run != previousRun) {
|
1036 |
|
|
previousRun = Run;
|
1037 |
|
|
cout<<"Now processing run number: "<<Run<<endl;
|
1038 |
|
|
GetHLTNames(Run);
|
1039 |
|
|
cout<<"got them..."<<endl;
|
1040 |
|
|
}
|
1041 |
|
|
|
1042 |
|
|
|
1043 |
jueugste |
1.1 |
|
1044 |
|
|
i_preselected.clear();
|
1045 |
|
|
i_isolated.clear();
|
1046 |
|
|
i_identified.clear();
|
1047 |
|
|
i_goodElectrons.clear();
|
1048 |
|
|
i_goodBarrelElectrons.clear();
|
1049 |
|
|
i_goodEndcapElectrons.clear();
|
1050 |
|
|
i_jets.clear();
|
1051 |
|
|
|
1052 |
|
|
// reset the branch arrays
|
1053 |
jueugste |
1.2 |
tRun = -999;
|
1054 |
|
|
tEvent = -999;
|
1055 |
|
|
tLumiSection = -999;
|
1056 |
|
|
|
1057 |
jueugste |
1.1 |
tElN = 0;
|
1058 |
|
|
memset(tElPt, -999.999, ElMax*sizeof(double));
|
1059 |
|
|
memset(tElPx, -999.999, ElMax*sizeof(double));
|
1060 |
|
|
memset(tElPy, -999.999, ElMax*sizeof(double));
|
1061 |
|
|
memset(tElPz, -999.999, ElMax*sizeof(double));
|
1062 |
jueugste |
1.3 |
memset(tElE, -999.999, ElMax*sizeof(double));
|
1063 |
jueugste |
1.1 |
memset(tElEta, -999.999, ElMax*sizeof(double));
|
1064 |
|
|
memset(tElPhi, -999.999, ElMax*sizeof(double));
|
1065 |
|
|
memset(tElCharge, -999, ElMax*sizeof(int));
|
1066 |
jueugste |
1.3 |
memset(tElDz, -999, ElMax*sizeof(double));
|
1067 |
jueugste |
1.1 |
|
1068 |
jueugste |
1.3 |
tPfMet = -999.999;
|
1069 |
jueugste |
1.1 |
tCaloMet = -999.999;
|
1070 |
jueugste |
1.3 |
tTcMet = -999.999;
|
1071 |
jueugste |
1.1 |
|
1072 |
|
|
memset(tElPfMt, -999.999, ElMax*sizeof(double));
|
1073 |
|
|
memset(tElCaloMt, -999.999, ElMax*sizeof(double));
|
1074 |
|
|
memset(tElTcMt, -999.999, ElMax*sizeof(double));
|
1075 |
|
|
|
1076 |
jueugste |
1.2 |
tSumEHF_minus = -999.999;
|
1077 |
|
|
tSumEHF_plus = -999.999;
|
1078 |
jueugste |
1.4 |
tSumEHF_Aminus = -999.999;
|
1079 |
|
|
tSumEHF_Aplus = -999.999;
|
1080 |
|
|
tSumEHF_Bminus = -999.999;
|
1081 |
|
|
tSumEHF_Bplus = -999.999;
|
1082 |
jueugste |
1.2 |
tSumETHF_minus = -999.999;
|
1083 |
|
|
tSumETHF_plus = -999.999;
|
1084 |
jueugste |
1.3 |
tNtowers_plus = 0.;
|
1085 |
|
|
tNtowers_minus = 0.;
|
1086 |
jueugste |
1.2 |
|
1087 |
jueugste |
1.5 |
tCaloTowersN = 0;
|
1088 |
|
|
memset(tCaloTowersE, -999.999, TowMax*sizeof(double));
|
1089 |
jueugste |
1.6 |
memset(tCaloTowersEt, -999.999, TowMax*sizeof(double));
|
1090 |
|
|
memset(tCaloTowersEta, -999.999, TowMax*sizeof(double));
|
1091 |
jueugste |
1.5 |
memset(tCaloTowersEmE, -999.999, TowMax*sizeof(double));
|
1092 |
|
|
memset(tCaloTowersHadE, -999.999, TowMax*sizeof(double));
|
1093 |
|
|
memset(tCaloTowersHasEB, -999.999, TowMax*sizeof(int));
|
1094 |
|
|
memset(tCaloTowersHasEE, -999.999, TowMax*sizeof(int));
|
1095 |
|
|
memset(tCaloTowersHasHB, -999.999, TowMax*sizeof(int));
|
1096 |
|
|
memset(tCaloTowersHasHE, -999.999, TowMax*sizeof(int));
|
1097 |
|
|
memset(tCaloTowersHasHF, -999.999, TowMax*sizeof(int));
|
1098 |
|
|
memset(tCaloTowersId, -999.999, TowMax*sizeof(int));
|
1099 |
|
|
|
1100 |
|
|
|
1101 |
jueugste |
1.2 |
tJetN = 0;
|
1102 |
|
|
memset(tJetPt, -999.999, ElMax*sizeof(double));
|
1103 |
|
|
memset(tJetEta, -999.999, ElMax*sizeof(double));
|
1104 |
jueugste |
1.5 |
memset(tJetPhi, -999.999, ElMax*sizeof(double));
|
1105 |
jueugste |
1.2 |
|
1106 |
jueugste |
1.4 |
tEtaMax = -9.9;
|
1107 |
|
|
tEtaMin = 9.9;
|
1108 |
jueugste |
1.2 |
tEminusPz = 0.;
|
1109 |
|
|
tEplusPz = 0.;
|
1110 |
jueugste |
1.3 |
|
1111 |
|
|
tSumE = 0.;
|
1112 |
|
|
tSumPz = 0.;
|
1113 |
jueugste |
1.2 |
|
1114 |
jueugste |
1.6 |
// pflow
|
1115 |
|
|
tPfN = 0;
|
1116 |
|
|
memset(tPfE, -999.999, 1000*sizeof(double));
|
1117 |
|
|
memset(tPfEt, -999.999, 1000*sizeof(double));
|
1118 |
|
|
memset(tPfEta, -999.999, 1000*sizeof(double));
|
1119 |
|
|
memset(tPfPt, -999.999, 1000*sizeof(double));
|
1120 |
|
|
|
1121 |
jueugste |
1.1 |
|
1122 |
jueugste |
1.3 |
tVertexN = 0;
|
1123 |
jueugste |
1.6 |
// memset(tVertexNdof, -999.999, 25*sizeof(int));
|
1124 |
|
|
memset(tVertexNdof, -999.999, 25*sizeof(double));
|
1125 |
jueugste |
1.5 |
memset(tVertexChi2, -999.999, 25*sizeof(double));
|
1126 |
jueugste |
1.3 |
memset(tVertexX, -999.999, 25*sizeof(double));
|
1127 |
|
|
memset(tVertexY, -999.999, 25*sizeof(double));
|
1128 |
|
|
memset(tVertexZ, -999.999, 25*sizeof(double));
|
1129 |
jueugste |
1.6 |
// reset the vertex tracks array
|
1130 |
|
|
// FIXME: hardcoded array size!!!
|
1131 |
|
|
for (int ivtx=0;ivtx<25;++ivtx)
|
1132 |
|
|
{
|
1133 |
|
|
for (int itrk=0;itrk<400;++itrk)
|
1134 |
|
|
{
|
1135 |
|
|
tVertexTrackIndex[ivtx][itrk]=-1;
|
1136 |
|
|
// fTVertexTrackWeight[ivtx][itrk]=-1;
|
1137 |
|
|
}
|
1138 |
|
|
}
|
1139 |
|
|
|
1140 |
|
|
//pile-up
|
1141 |
|
|
tPUnumInteractions = 0;
|
1142 |
|
|
memset(tPUzPositions, -999.999, 15*sizeof(double));
|
1143 |
jueugste |
1.3 |
|
1144 |
|
|
tBeamSpotX = -999.999;
|
1145 |
|
|
tBeamSpotY = -999.999;
|
1146 |
|
|
tBeamSpotZ = -999.999;
|
1147 |
|
|
|
1148 |
|
|
tTracksN = 0;
|
1149 |
jueugste |
1.6 |
memset(tTrackPt, -999.999, TrackMax*sizeof(double));
|
1150 |
|
|
memset(tTrackPx, -999.999, TrackMax*sizeof(double));
|
1151 |
|
|
memset(tTrackPy, -999.999, TrackMax*sizeof(double));
|
1152 |
|
|
memset(tTrackPz, -999.999, TrackMax*sizeof(double));
|
1153 |
|
|
memset(tTrackDzBs, -999.999, TrackMax*sizeof(double));
|
1154 |
|
|
memset(tTrackEta, -999.999, TrackMax*sizeof(double));
|
1155 |
|
|
memset(tTrackPhi, -999.999, TrackMax*sizeof(double));
|
1156 |
|
|
// memset(tTrackdsz, -999.999, 1000*sizeof(double));
|
1157 |
|
|
// memset(tTrackdxy, -999.999, 1000*sizeof(double));
|
1158 |
|
|
|
1159 |
|
|
|
1160 |
jueugste |
1.3 |
|
1161 |
jueugste |
1.4 |
// --------------------------------------------------------------------------------
|
1162 |
jueugste |
1.1 |
// get the MET
|
1163 |
|
|
// --------------------------------------------------------------------------------
|
1164 |
|
|
double met;
|
1165 |
|
|
double metPhi;
|
1166 |
|
|
double delPhiMet;
|
1167 |
|
|
met=PFMET;
|
1168 |
|
|
metPhi=PFMETphi;
|
1169 |
|
|
|
1170 |
|
|
// --------------------------------------------------------------------------------
|
1171 |
jueugste |
1.4 |
// get the muons
|
1172 |
|
|
// --------------------------------------------------------------------------------
|
1173 |
jueugste |
1.5 |
// for(int m=0; m<NMus; m++) {
|
1174 |
jueugste |
1.4 |
|
1175 |
jueugste |
1.5 |
// cout<<MuPt[m]<<endl;
|
1176 |
jueugste |
1.4 |
|
1177 |
jueugste |
1.5 |
// }
|
1178 |
jueugste |
1.4 |
|
1179 |
|
|
// --------------------------------------------------------------------------------
|
1180 |
|
|
|
1181 |
|
|
|
1182 |
|
|
// --------------------------------------------------------------------------------
|
1183 |
jueugste |
1.1 |
// loop over all electrons in one event
|
1184 |
|
|
// --------------------------------------------------------------------------------
|
1185 |
|
|
for(int i=0; i<NEles; i++) {
|
1186 |
|
|
|
1187 |
|
|
// --------------------------------------------------------------------------------
|
1188 |
|
|
// get the indices of the electrons in each event
|
1189 |
|
|
// --------------------------------------------------------------------------------
|
1190 |
|
|
bool pre=false;
|
1191 |
|
|
bool iso=false;
|
1192 |
|
|
bool id=false;
|
1193 |
|
|
|
1194 |
|
|
if(ElectronPreselection(i)==0) {i_preselected.push_back(i); debug++; pre=true;}
|
1195 |
|
|
|
1196 |
|
|
if(!ethIDandIso) {
|
1197 |
|
|
|
1198 |
|
|
// if(WPElectronID(i, iso, WorkingPointCuts)==0) {i_isolated.push_back(); iso=true;}
|
1199 |
|
|
// else continue;
|
1200 |
jueugste |
1.6 |
if(WPElectronID(i, all, WorkingPointCuts)==0) {i_identified.push_back(i); debug2++; id=true;}
|
1201 |
|
|
// if(ElIDsimpleWP80relIso[i] == 7) {i_identified.push_back(i); debug2++; id=true;}
|
1202 |
jueugste |
1.1 |
|
1203 |
jueugste |
1.6 |
cout<<WPElectronID(i, all, WorkingPointCuts)<<endl;
|
1204 |
|
|
|
1205 |
|
|
if(ElIDsimpleWP80relIso[i] == 5) cout<<WPElectronID(i, all, WorkingPointCuts)<<endl;
|
1206 |
|
|
|
1207 |
|
|
if(id==true) cout<<ElPt[i]<<endl;
|
1208 |
|
|
|
1209 |
|
|
|
1210 |
jueugste |
1.1 |
if(pre==true && id==true && (fabs(ElSCEta[i]) < 1.4442 || fabs(ElSCEta[i]) > 1.566) && fabs(ElSCEta[i]) < 2.5) {i_goodElectrons.push_back(i);}
|
1211 |
|
|
// fiducial cuts
|
1212 |
|
|
if(fabs(ElSCEta[i]) < 1.4442 && pre==true && id==true) {i_goodBarrelElectrons.push_back(i);}
|
1213 |
|
|
if(fabs(ElSCEta[i]) > 1.566 && fabs(ElSCEta[i]) < 2.5 && pre==true && id==true) {i_goodEndcapElectrons.push_back(i);}
|
1214 |
|
|
}
|
1215 |
|
|
|
1216 |
|
|
if(ethIDandIso) {
|
1217 |
|
|
if(ETHElectronID(i, all)) {i_identified.push_back(i); debug2++; id=true;}
|
1218 |
|
|
if(fabs(ElSCEta[i]) < 1.4442 && pre==true && id==true) {i_goodBarrelElectrons.push_back(i);}
|
1219 |
|
|
if(fabs(ElSCEta[i]) > 1.566 && fabs(ElSCEta[i]) < 2.5 && pre==true && id==true) {i_goodEndcapElectrons.push_back(i);}
|
1220 |
|
|
|
1221 |
|
|
}
|
1222 |
|
|
// --------------------------------------------------------------------------------
|
1223 |
|
|
|
1224 |
jueugste |
1.6 |
|
1225 |
jueugste |
1.1 |
// the N-1 plots
|
1226 |
|
|
// if(fabs(accEta)<etaBarrelMax) {
|
1227 |
|
|
// if(WPElectronID(i, see, WorkingPointCuts)==0) hn1_El_ElSigmaIetaIeta[2]->Fill(See);
|
1228 |
|
|
// if(WPElectronID(i, dphi, WorkingPointCuts)==0) hn1_El_ElDeltaPhi[2]->Fill(delPhi);
|
1229 |
|
|
// if(WPElectronID(i, deta, WorkingPointCuts)==0) hn1_El_ElDeltaEta[2]->Fill(delEta);
|
1230 |
|
|
// if(WPElectronID(i, hoe, WorkingPointCuts)==0) hn1_El_ElHoverE[2]->Fill(Hoe);
|
1231 |
|
|
// if(WPElectronID(i, combiso, WorkingPointCuts)==0) hn1_El_ElCombIso[2]->Fill(combIso_B);
|
1232 |
|
|
// if(WPElectronID(i, conversion, WorkingPointCuts)==0) hn1_El_ElNumberOfMissingInnerHits[2]->Fill(missingHits);
|
1233 |
|
|
// }
|
1234 |
|
|
// if(fabs(accEta)>etaEndcapMin && fabs(accEta)<etaEndcapMax) {
|
1235 |
|
|
// if(WPElectronID(i, see, WorkingPointCuts)==0) hn1_El_ElSigmaIetaIeta[3]->Fill(See);
|
1236 |
|
|
// if(WPElectronID(i, dphi, WorkingPointCuts)==0) hn1_El_ElDeltaPhi[3]->Fill(delPhi);
|
1237 |
|
|
// if(WPElectronID(i, deta, WorkingPointCuts)==0) hn1_El_ElDeltaEta[3]->Fill(delEta);
|
1238 |
|
|
// if(WPElectronID(i, hoe, WorkingPointCuts)==0) hn1_El_ElHoverE[3]->Fill(Hoe);
|
1239 |
|
|
// if(WPElectronID(i, combiso, WorkingPointCuts)==0) hn1_El_ElCombIso[3]->Fill(combIso_E);
|
1240 |
|
|
// if(WPElectronID(i, conversion, WorkingPointCuts)==0) hn1_El_ElNumberOfMissingInnerHits[3]->Fill(missingHits);
|
1241 |
|
|
// }
|
1242 |
|
|
|
1243 |
|
|
|
1244 |
|
|
|
1245 |
|
|
} // loop over all electrons in one event
|
1246 |
|
|
|
1247 |
|
|
|
1248 |
|
|
|
1249 |
|
|
// ******************************************************************************
|
1250 |
|
|
// this is the actual code
|
1251 |
|
|
// ******************************************************************************
|
1252 |
|
|
|
1253 |
|
|
double etaMax_B = 1.4442;
|
1254 |
|
|
double etaMin_E = 1.566;
|
1255 |
|
|
double etaMax_E = 2.5;
|
1256 |
|
|
|
1257 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1258 |
|
|
// check fiducial region of the preselected electrons
|
1259 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1260 |
|
|
for(int i=0; i<i_preselected.size(); i++) {
|
1261 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) < 1.4442) {
|
1262 |
|
|
debug3++;
|
1263 |
|
|
|
1264 |
|
|
}
|
1265 |
|
|
}
|
1266 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1267 |
|
|
|
1268 |
|
|
|
1269 |
|
|
|
1270 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1271 |
|
|
// HLT Trigger
|
1272 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1273 |
|
|
bool isTriggered = false;
|
1274 |
jueugste |
1.5 |
if(isdata && useElectronTiggers) {
|
1275 |
|
|
int Photon15_L1R = getHLTtriggerBit("HLT_Photon15_L1R");
|
1276 |
|
|
int Photon15_Cleaned_L1R = getHLTtriggerBit("HLT_Photon15_Cleaned_L1R");
|
1277 |
|
|
int Photon20_Cleaned_L1R = getHLTtriggerBit("HLT_Photon20_Cleaned_L1R");
|
1278 |
|
|
int Ele10_LW_L1R = getHLTtriggerBit("HLT_Ele10_LW_L1R");
|
1279 |
|
|
int Ele10_SW_L1R = getHLTtriggerBit("HLT_Ele10_SW_L1R");
|
1280 |
|
|
int Ele15_SW_L1R = getHLTtriggerBit("HLT_Ele15_SW_L1R");
|
1281 |
|
|
int Ele15_SW_CaloEleId_L1R = getHLTtriggerBit("HLT_Ele15_SW_CaloEleId_L1R");
|
1282 |
|
|
int Ele15_SW_TightEleId_L1R = getHLTtriggerBit("HLT_Ele15_SW_TightEleId_L1R");
|
1283 |
|
|
int Ele17_SW_CaloEleId_L1R = getHLTtriggerBit("HLT_Ele17_SW_CaloEleId_L1R");
|
1284 |
|
|
int Ele17_SW_EleId_L1R = getHLTtriggerBit("HLT_Ele17_SW_EleId_L1R");
|
1285 |
jueugste |
1.6 |
int Ele17_SW_TightEleId_L1R = getHLTtriggerBit("HLT_Ele17_SW_TightEleId_L1R");
|
1286 |
jueugste |
1.5 |
int Ele17_SW_TighterEleId_L1R_v1 = getHLTtriggerBit("HLT_Ele17_SW_TighterEleId_L1R_v1");
|
1287 |
jueugste |
1.6 |
int Ele17_SW_TighterEleId_L1R_v2 = getHLTtriggerBit("HLT_Ele17_SW_TighterEleId_L1R_v2");
|
1288 |
|
|
int Ele17_SW_TighterEleId_L1R_v3 = getHLTtriggerBit("HLT_Ele17_SW_TighterEleId_L1R_v3");
|
1289 |
jueugste |
1.5 |
|
1290 |
|
|
// check if at least one trigger was found
|
1291 |
|
|
if(Photon15_L1R == -1 &&
|
1292 |
|
|
Photon15_Cleaned_L1R == -1 &&
|
1293 |
|
|
Photon20_Cleaned_L1R == -1 &&
|
1294 |
|
|
Ele10_LW_L1R == -1 &&
|
1295 |
|
|
Ele10_SW_L1R == -1 &&
|
1296 |
|
|
Ele15_SW_L1R == -1 &&
|
1297 |
|
|
Ele15_SW_CaloEleId_L1R == -1 &&
|
1298 |
|
|
Ele15_SW_TightEleId_L1R == -1 &&
|
1299 |
|
|
Ele17_SW_CaloEleId_L1R == -1 &&
|
1300 |
|
|
Ele17_SW_EleId_L1R == -1 &&
|
1301 |
jueugste |
1.6 |
Ele17_SW_TightEleId_L1R == -1 &&
|
1302 |
|
|
Ele17_SW_TighterEleId_L1R_v1 == -1 &&
|
1303 |
|
|
Ele17_SW_TighterEleId_L1R_v2 == -1 &&
|
1304 |
|
|
Ele17_SW_TighterEleId_L1R_v3 == -1
|
1305 |
jueugste |
1.5 |
) {
|
1306 |
|
|
cerr<<"None of the trigger bits found!!!"<<endl;
|
1307 |
|
|
h_HLTInfo->Fill(0);
|
1308 |
|
|
}
|
1309 |
|
|
|
1310 |
|
|
// if(isdata && Run < 141956 && HLTResults[Ele15_LW] == 1) isTriggered=true;
|
1311 |
|
|
// if(isdata && Run >= 141956 && HLTResults[Ele15_SW_CaloEleId] == 1) isTriggered=true;
|
1312 |
|
|
//cout<<"HLT result: "<<HLTResults[Ele17_SW_CaloEleId]<<endl;
|
1313 |
|
|
// if(isdata && HLTResults[Ele17_SW_CaloEleId]==1) isTriggered=true;
|
1314 |
|
|
if(isdata && (
|
1315 |
jueugste |
1.6 |
HLTResults[Photon15_L1R] == 1 ||
|
1316 |
|
|
HLTResults[Photon15_Cleaned_L1R] == 1 ||
|
1317 |
|
|
HLTResults[Photon20_Cleaned_L1R] == 1 ||
|
1318 |
|
|
HLTResults[Ele10_LW_L1R] == 1 ||
|
1319 |
|
|
HLTResults[Ele10_SW_L1R] == 1 ||
|
1320 |
|
|
HLTResults[Ele15_SW_L1R] == 1 ||
|
1321 |
|
|
HLTResults[Ele15_SW_CaloEleId_L1R] == 1 ||
|
1322 |
|
|
HLTResults[Ele15_SW_TightEleId_L1R] == 1 ||
|
1323 |
|
|
HLTResults[Ele17_SW_CaloEleId_L1R] == 1 ||
|
1324 |
|
|
HLTResults[Ele17_SW_EleId_L1R] == 1 ||
|
1325 |
|
|
HLTResults[Ele17_SW_TightEleId_L1R] == 1 ||
|
1326 |
|
|
HLTResults[Ele17_SW_TighterEleId_L1R_v1] == 1 ||
|
1327 |
|
|
HLTResults[Ele17_SW_TighterEleId_L1R_v2] == 1 ||
|
1328 |
|
|
HLTResults[Ele17_SW_TighterEleId_L1R_v3] == 1
|
1329 |
jueugste |
1.5 |
)) isTriggered=true;
|
1330 |
|
|
}
|
1331 |
|
|
|
1332 |
|
|
else if(isdata && !useElectronTiggers) {
|
1333 |
|
|
int HLT_ZeroBias = getHLTtriggerBit("HLT_ZeroBias");
|
1334 |
|
|
if(isdata && (
|
1335 |
|
|
HLTResults[HLT_ZeroBias]==1
|
1336 |
|
|
)) isTriggered=true;
|
1337 |
jueugste |
1.1 |
}
|
1338 |
jueugste |
1.5 |
|
1339 |
jueugste |
1.1 |
else if(!isdata) {
|
1340 |
jueugste |
1.5 |
int Ele15 = getHLTtriggerBit("HLT_Ele15_LW_L1R");
|
1341 |
|
|
//cout<<"HLT result: "<<HLTResults[ Ele15]<<endl;
|
1342 |
|
|
if(HLTResults[Ele15]==1) isTriggered=true;
|
1343 |
jueugste |
1.1 |
}
|
1344 |
jueugste |
1.5 |
// //if(HLTResults(Ele15_SW)==1) isTriggered=true;
|
1345 |
|
|
// // if(isdata && Run < 141956 && HLTResults[Ele15_LW] == 1) isTriggered=true;
|
1346 |
|
|
// // if(isdata && Run >= 141956 && HLTResults[Ele15_SW_CaloEleId] == 1) isTriggered=true;
|
1347 |
|
|
// // if(!isdata && HLTResults[Ele15_SW]==1) isTriggered=true;
|
1348 |
|
|
|
1349 |
jueugste |
1.6 |
isTriggered=true;
|
1350 |
|
|
|
1351 |
|
|
// cout<<"here0"<<endl;
|
1352 |
|
|
|
1353 |
jueugste |
1.5 |
|
1354 |
jueugste |
1.1 |
//--------------------------------------------------------------------------------------------------------------------
|
1355 |
|
|
|
1356 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1357 |
|
|
// get the number of jets per event */*
|
1358 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1359 |
|
|
int nJets=0;
|
1360 |
jueugste |
1.2 |
for(int j=0; j<PFNJets; j++) {
|
1361 |
jueugste |
1.1 |
double scale = 1; //JScale[j];
|
1362 |
jueugste |
1.2 |
double jpx = PFJPx[j] / scale;
|
1363 |
|
|
double jpy = PFJPy[j] / scale;
|
1364 |
|
|
double jpz = PFJPz[j] / scale;
|
1365 |
|
|
double jpt = PFJPt[j] / scale;
|
1366 |
|
|
double jeta = PFJEta[j];
|
1367 |
jueugste |
1.1 |
TVector3 jet;
|
1368 |
|
|
jet.SetXYZ(jpx, jpy, jpz);
|
1369 |
|
|
double deltar;
|
1370 |
|
|
bool notMatched=true;
|
1371 |
|
|
// match jet with an electron
|
1372 |
|
|
for(int e=0; e<i_goodElectrons.size(); e++) {
|
1373 |
|
|
TVector3 el;
|
1374 |
|
|
el.SetXYZ(ElPx[i_goodElectrons[e]], ElPy[i_goodElectrons[e]], ElPz[i_goodElectrons[e]]);
|
1375 |
|
|
deltar = jet.DeltaR(el);
|
1376 |
|
|
if(fabs(deltar) < 0.3) notMatched=false;
|
1377 |
|
|
}
|
1378 |
|
|
// apply loose jet ID
|
1379 |
|
|
bool jetID=false;
|
1380 |
|
|
if(JEMfrac[j] > 0.01 &&
|
1381 |
|
|
JID_HPD[j] < 0.989 &&
|
1382 |
|
|
JID_n90Hits[j] > 1) jetID=true;
|
1383 |
|
|
// check if matched and good jet
|
1384 |
|
|
if(notMatched && jpt > 30 && fabs(jeta) < 2.5 && jetID) {
|
1385 |
|
|
nJets++;
|
1386 |
|
|
i_jets.push_back(j);
|
1387 |
|
|
}
|
1388 |
|
|
} // end: number of jets
|
1389 |
|
|
|
1390 |
|
|
|
1391 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1392 |
|
|
|
1393 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1394 |
|
|
// check if diffractive event
|
1395 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1396 |
|
|
bool isDiffractive=false;
|
1397 |
jueugste |
1.3 |
// if(SumEHF_minus == 0 || SumEHF_plus == 0 ||
|
1398 |
|
|
// SumETHF_minus == 0 || SumETHF_plus == 0 ) {
|
1399 |
|
|
// isDiffractive=true;
|
1400 |
|
|
// }
|
1401 |
jueugste |
1.1 |
|
1402 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1403 |
|
|
|
1404 |
|
|
|
1405 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1406 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1407 |
|
|
// ELECTRONS and general things
|
1408 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1409 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1410 |
|
|
|
1411 |
|
|
// count total number of events
|
1412 |
|
|
El_count[0]++;
|
1413 |
|
|
|
1414 |
|
|
if(!isTriggered) continue;
|
1415 |
|
|
|
1416 |
|
|
// count triggered events
|
1417 |
|
|
El_count[1]++;
|
1418 |
|
|
|
1419 |
|
|
// cout<<"bla"<<endl;
|
1420 |
|
|
|
1421 |
|
|
// if(i_preselected.size() > 0) {
|
1422 |
|
|
// tRun = Run;
|
1423 |
|
|
// tEvent = Event;
|
1424 |
|
|
// tLumiSection = LumiSection;
|
1425 |
|
|
|
1426 |
|
|
// }
|
1427 |
|
|
|
1428 |
|
|
// cout<<tRun<<endl;
|
1429 |
|
|
// cout<<tEvent<<endl;
|
1430 |
|
|
// cout<<tLumiSection<<endl;
|
1431 |
|
|
|
1432 |
|
|
|
1433 |
jueugste |
1.6 |
// cout<<"here1"<<endl;
|
1434 |
|
|
|
1435 |
|
|
|
1436 |
jueugste |
1.1 |
// look at preselected electrons
|
1437 |
|
|
for(int i=0; i< i_preselected.size(); i++) {
|
1438 |
|
|
// calculate the variables to fill
|
1439 |
|
|
double deltaPhiElMet=deltaPhi(ElPhi[i_preselected[i]], PFMETphi);
|
1440 |
|
|
double mt = transverseMass(ElPt[i_preselected[i]] * PtCorrection, met, deltaPhiElMet);
|
1441 |
|
|
int charge = ElCharge[i_preselected[i]];
|
1442 |
jueugste |
1.3 |
int dz = ElDzBS[i_preselected[i]];
|
1443 |
jueugste |
1.1 |
double pt = ElPt[i_preselected[i]] * PtCorrection;
|
1444 |
|
|
double phi = ElPhi[i_preselected[i]];
|
1445 |
|
|
double eta = ElEta[i_preselected[i]];
|
1446 |
|
|
double Hoe=ElHcalOverEcal[i_preselected[i]];
|
1447 |
|
|
double trkIso = ElDR03TkSumPt[i_preselected[i]];
|
1448 |
|
|
double ecalIso = ElDR03EcalRecHitSumEt[i_preselected[i]];
|
1449 |
|
|
double hcalIso = ElDR03HcalTowerSumEt[i_preselected[i]];
|
1450 |
|
|
double combIso_B=(trkIso + max(0., ecalIso - 1.) + hcalIso) / ( ElPt[i_preselected[i]] * PtCorrection);
|
1451 |
|
|
double combIso_E=(trkIso + ecalIso + hcalIso) / (ElPt[i_preselected[i]] * PtCorrection);
|
1452 |
|
|
double See=ElSigmaIetaIeta[i_preselected[i]];
|
1453 |
|
|
double missingHits=ElNumberOfMissingInnerHits[i_preselected[i]];
|
1454 |
|
|
double dEtaCorrection=0;
|
1455 |
|
|
double dPhiCorrection=0;
|
1456 |
|
|
if(isdata==true && applyDeltaCorrection==true) {
|
1457 |
|
|
dEtaCorrection=detaCorrections(ElSCEta[i_preselected[i]], ElPhi[i_preselected[i]]);
|
1458 |
|
|
dPhiCorrection=dphiCorrections(ElSCEta[i_preselected[i]], ElPhi[i_preselected[i]]);
|
1459 |
|
|
}
|
1460 |
|
|
double delPhi=ElDeltaPhiSuperClusterAtVtx[i_preselected[i]]-dphiCorrections(ElEta[i_preselected[i]], ElPhi[i_preselected[i]]);
|
1461 |
|
|
double delEta=ElDeltaEtaSuperClusterAtVtx[i_preselected[i]]-detaCorrections(ElEta[i_preselected[i]], ElPhi[i_preselected[i]]);
|
1462 |
|
|
|
1463 |
|
|
// barrel
|
1464 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) < etaMax_B) {
|
1465 |
|
|
hs_El_ElTransMass[0]->Fill(mt);
|
1466 |
|
|
hs_El_ElPt[0]->Fill(pt);
|
1467 |
|
|
hs_El_ElPhi[0]->Fill(phi);
|
1468 |
|
|
hs_El_ElEta[0]->Fill(eta);
|
1469 |
|
|
hs_El_ElMet[0]->Fill(met);
|
1470 |
|
|
hs_El_ElCharge[0]->Fill(charge);
|
1471 |
|
|
hs_El_Njets[0]->Fill(nJets);
|
1472 |
|
|
El_count[2]++;
|
1473 |
|
|
}
|
1474 |
|
|
// endcap
|
1475 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) > etaMin_E && fabs(ElSCEta[i_preselected[i]]) < etaMax_E) {
|
1476 |
|
|
hs_El_ElTransMass[1]->Fill(mt);
|
1477 |
|
|
hs_El_ElPt[1]->Fill(pt);
|
1478 |
|
|
hs_El_ElPhi[1]->Fill(phi);
|
1479 |
|
|
hs_El_ElEta[1]->Fill(eta);
|
1480 |
|
|
hs_El_ElMet[1]->Fill(met);
|
1481 |
|
|
hs_El_ElCharge[1]->Fill(charge);
|
1482 |
|
|
hs_El_Njets[1]->Fill(nJets);
|
1483 |
|
|
El_count[3]++;
|
1484 |
|
|
}
|
1485 |
|
|
// barrel + endcap
|
1486 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) < etaMax_B || (fabs(ElSCEta[i_preselected[i]]) > etaMin_E && fabs(ElSCEta[i_preselected[i]]) < etaMax_E)) {
|
1487 |
|
|
hs_El_ElTransMass[2]->Fill(mt);
|
1488 |
|
|
hs_El_ElPt[2]->Fill(pt);
|
1489 |
|
|
hs_El_ElPhi[2]->Fill(phi);
|
1490 |
|
|
hs_El_ElEta[2]->Fill(eta);
|
1491 |
|
|
hs_El_ElMet[2]->Fill(met);
|
1492 |
|
|
hs_El_ElCharge[2]->Fill(charge);
|
1493 |
|
|
hs_El_Njets[2]->Fill(nJets);
|
1494 |
|
|
El_count[4]++;
|
1495 |
|
|
}
|
1496 |
|
|
|
1497 |
|
|
// make the N-1 ID & isolation plots (VBTF WP)
|
1498 |
|
|
if(fabs(ElSCEta[i_preselected[i]])<etaMax_B) {
|
1499 |
|
|
if(WPElectronID(i_preselected[i], see, WorkingPointCuts)==0) hn1_El_ElSigmaIetaIeta[0]->Fill(See);
|
1500 |
|
|
if(WPElectronID(i_preselected[i], dphi, WorkingPointCuts)==0) hn1_El_ElDeltaPhi[0]->Fill(delPhi);
|
1501 |
|
|
if(WPElectronID(i_preselected[i], deta, WorkingPointCuts)==0) hn1_El_ElDeltaEta[0]->Fill(delEta);
|
1502 |
|
|
if(WPElectronID(i_preselected[i], hoe, WorkingPointCuts)==0) hn1_El_ElHoverE[0]->Fill(Hoe);
|
1503 |
|
|
if(WPElectronID(i_preselected[i], combiso, WorkingPointCuts)==0) hn1_El_ElCombIso[0]->Fill(combIso_B);
|
1504 |
|
|
if(WPElectronID(i_preselected[i], conversion, WorkingPointCuts)==0) hn1_El_ElNumberOfMissingInnerHits[0]->Fill(missingHits);
|
1505 |
|
|
}
|
1506 |
|
|
if(fabs(ElSCEta[i_preselected[i]])>etaMin_E && fabs(ElSCEta[i_preselected[i]])<etaMax_E) {
|
1507 |
|
|
if(WPElectronID(i_preselected[i], see, WorkingPointCuts)==0) hn1_El_ElSigmaIetaIeta[1]->Fill(See);
|
1508 |
|
|
if(WPElectronID(i_preselected[i], dphi, WorkingPointCuts)==0) hn1_El_ElDeltaPhi[1]->Fill(delPhi);
|
1509 |
|
|
if(WPElectronID(i_preselected[i], deta, WorkingPointCuts)==0) hn1_El_ElDeltaEta[1]->Fill(delEta);
|
1510 |
|
|
if(WPElectronID(i_preselected[i], hoe, WorkingPointCuts)==0) hn1_El_ElHoverE[1]->Fill(Hoe);
|
1511 |
|
|
if(WPElectronID(i_preselected[i], combiso, WorkingPointCuts)==0) hn1_El_ElCombIso[1]->Fill(combIso_E);
|
1512 |
|
|
if(WPElectronID(i_preselected[i], conversion, WorkingPointCuts)==0) hn1_El_ElNumberOfMissingInnerHits[1]->Fill(missingHits);
|
1513 |
|
|
}
|
1514 |
|
|
|
1515 |
|
|
// look at IDed and isolated Electrons
|
1516 |
|
|
// barrel
|
1517 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) < etaMax_B &&
|
1518 |
|
|
WPElectronID(i_preselected[i], all, WorkingPointCuts)==0) {
|
1519 |
|
|
hs_El_ElTransMass[3]->Fill(mt);
|
1520 |
|
|
hs_El_ElPt[3]->Fill(pt);
|
1521 |
|
|
hs_El_ElPhi[3]->Fill(phi);
|
1522 |
|
|
hs_El_ElEta[3]->Fill(eta);
|
1523 |
|
|
hs_El_ElMet[3]->Fill(met);
|
1524 |
|
|
hs_El_ElCharge[3]->Fill(charge);
|
1525 |
|
|
hs_El_Njets[3]->Fill(nJets);
|
1526 |
|
|
El_count[5]++;
|
1527 |
|
|
}
|
1528 |
|
|
// endcap
|
1529 |
|
|
if(fabs(ElSCEta[i_preselected[i]]) > etaMin_E && fabs(ElSCEta[i_preselected[i]]) < etaMax_E &&
|
1530 |
|
|
WPElectronID(i_preselected[i], all, WorkingPointCuts)==0) {
|
1531 |
|
|
hs_El_ElTransMass[1]->Fill(mt);
|
1532 |
|
|
hs_El_ElPt[4]->Fill(pt);
|
1533 |
|
|
hs_El_ElPhi[4]->Fill(phi);
|
1534 |
|
|
hs_El_ElEta[4]->Fill(eta);
|
1535 |
|
|
hs_El_ElMet[4]->Fill(met);
|
1536 |
|
|
hs_El_ElCharge[4]->Fill(charge);
|
1537 |
|
|
hs_El_Njets[4]->Fill(nJets);
|
1538 |
|
|
El_count[6]++;
|
1539 |
|
|
}
|
1540 |
|
|
// barrel + endcap
|
1541 |
|
|
if( (fabs(ElSCEta[i_preselected[i]]) < etaMax_B || (fabs(ElSCEta[i_preselected[i]]) > etaMin_E && fabs(ElSCEta[i_preselected[i]]) < etaMax_E) ) &&
|
1542 |
|
|
WPElectronID(i_preselected[i], all, WorkingPointCuts)==0) {
|
1543 |
|
|
hs_El_ElTransMass[5]->Fill(mt);
|
1544 |
|
|
hs_El_ElPt[5]->Fill(pt);
|
1545 |
|
|
hs_El_ElPhi[5]->Fill(phi);
|
1546 |
|
|
hs_El_ElEta[5]->Fill(eta);
|
1547 |
|
|
hs_El_ElMet[5]->Fill(met);
|
1548 |
|
|
hs_El_ElCharge[5]->Fill(charge);
|
1549 |
|
|
hs_El_Njets[5]->Fill(nJets);
|
1550 |
|
|
El_count[7]++;
|
1551 |
|
|
}
|
1552 |
|
|
|
1553 |
|
|
// fill also the ETH ID&Iso N-1 plots at some point...
|
1554 |
|
|
|
1555 |
|
|
}
|
1556 |
|
|
|
1557 |
|
|
|
1558 |
|
|
|
1559 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1560 |
|
|
// count the good leptons - pt > 10 / 25 GeV
|
1561 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1562 |
|
|
int nLeptons10_B=0;
|
1563 |
|
|
int nLeptons25_B=0;
|
1564 |
|
|
for(int i=0; i<i_goodBarrelElectrons.size(); i++) {
|
1565 |
|
|
if(ElPt[i_goodBarrelElectrons[i]] > 10) nLeptons10_B++;
|
1566 |
|
|
if(ElPt[i_goodBarrelElectrons[i]] > 25) nLeptons25_B++;
|
1567 |
|
|
}
|
1568 |
|
|
int nLeptons10_E=0;
|
1569 |
|
|
int nLeptons25_E=0;
|
1570 |
|
|
for(int i=0; i<i_goodEndcapElectrons.size(); i++) {
|
1571 |
|
|
if(ElPt[i_goodEndcapElectrons[i]] > 10) nLeptons10_E++;
|
1572 |
|
|
if(ElPt[i_goodEndcapElectrons[i]] > 25) nLeptons25_E++;
|
1573 |
|
|
}
|
1574 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1575 |
|
|
|
1576 |
|
|
|
1577 |
|
|
|
1578 |
jueugste |
1.5 |
// cout<<"# vertices: "<<NVrtx<<endl;
|
1579 |
|
|
// for(int jvert=0; jvert<25; jvert++) {
|
1580 |
|
|
// if(VrtxTrkIndex[jvert][0] != -1) cout<<jvert<<". vertex: ----------------"<<endl;
|
1581 |
|
|
|
1582 |
|
|
|
1583 |
|
|
// double dphi = 0;
|
1584 |
|
|
// for(int jtrk=0; jtrk<25; jtrk++) {
|
1585 |
|
|
// if(VrtxTrkIndex[jvert][jtrk] != -1) cout<<VrtxTrkIndex[jvert][jtrk]<<", pt= "<< TrkPt[VrtxTrkIndex[jvert][jtrk]] <<", phi= "<<TrkPhi[VrtxTrkIndex[jvert][jtrk]]<<endl;
|
1586 |
|
|
// }
|
1587 |
|
|
// }
|
1588 |
|
|
|
1589 |
|
|
|
1590 |
jueugste |
1.6 |
// cout<<"here2"<<endl;
|
1591 |
jueugste |
1.5 |
|
1592 |
jueugste |
1.2 |
//--------------------------------------------------------------------------------------------------------------------
|
1593 |
jueugste |
1.3 |
// Fill the Tree
|
1594 |
jueugste |
1.2 |
//--------------------------------------------------------------------------------------------------------------------
|
1595 |
jueugste |
1.3 |
|
1596 |
jueugste |
1.6 |
// cout<<i_goodElectrons.size()<<endl;
|
1597 |
|
|
|
1598 |
jueugste |
1.3 |
if(i_goodElectrons.size() < 1) continue;
|
1599 |
|
|
|
1600 |
jueugste |
1.6 |
// cout<<"here2a"<<endl;
|
1601 |
|
|
|
1602 |
|
|
|
1603 |
jueugste |
1.3 |
|
1604 |
jueugste |
1.2 |
// general info
|
1605 |
jueugste |
1.1 |
tRun = Run;
|
1606 |
|
|
tEvent = Event;
|
1607 |
|
|
tLumiSection = LumiSection;
|
1608 |
|
|
|
1609 |
jueugste |
1.6 |
// get the inst. lumi.
|
1610 |
|
|
// double avgInstLumi;
|
1611 |
|
|
// avgInstLumi = a.getDeliveredInstLumi(Run, LumiSection);
|
1612 |
|
|
// cout<<"avg. inst. lumi.: "<<avgInstLumi<<endl;
|
1613 |
|
|
|
1614 |
|
|
|
1615 |
jueugste |
1.2 |
// Electrons
|
1616 |
|
|
tElN = i_goodElectrons.size();
|
1617 |
jueugste |
1.1 |
for(int i=0; i<i_goodElectrons.size(); i++) {
|
1618 |
jueugste |
1.6 |
|
1619 |
|
|
// if(ElIDsimpleWP80relIso[i_goodElectrons[i]] != 7) cout<<ElIDsimpleWP80relIso[i_goodElectrons[i]]<<"/"<<ElPt[i_goodElectrons[i]]<<endl;
|
1620 |
|
|
|
1621 |
jueugste |
1.1 |
tElPt[i] = ElPt[i_goodElectrons[i]];
|
1622 |
|
|
tElPx[i] = ElPx[i_goodElectrons[i]];
|
1623 |
|
|
tElPy[i] = ElPy[i_goodElectrons[i]];
|
1624 |
|
|
tElPz[i] = ElPz[i_goodElectrons[i]];
|
1625 |
jueugste |
1.3 |
tElE[i] = ElE[i_goodElectrons[i]];
|
1626 |
jueugste |
1.1 |
tElEta[i] = ElEta[i_goodElectrons[i]];
|
1627 |
|
|
tElPhi[i] = ElPhi[i_goodElectrons[i]];
|
1628 |
|
|
tElCharge[i] = ElCharge[i_goodElectrons[i]];
|
1629 |
jueugste |
1.3 |
tElDz[i] = ElDzBS[i_goodElectrons[i]];
|
1630 |
jueugste |
1.1 |
tElPfMt[i] = transverseMass(ElPt[i_goodElectrons[i]], PFMET, deltaPhi(ElPhi[i_goodElectrons[i]], PFMETphi));
|
1631 |
|
|
tElCaloMt[i] = transverseMass(ElPt[i_goodElectrons[i]], RawMET, deltaPhi(ElPhi[i_goodElectrons[i]], RawMETphi));
|
1632 |
|
|
tElTcMt[i] = transverseMass(ElPt[i_goodElectrons[i]], TCMET, deltaPhi(ElPhi[i_goodElectrons[i]], TCMETphi));
|
1633 |
|
|
}
|
1634 |
jueugste |
1.6 |
|
1635 |
|
|
// cout<<"here3"<<endl;
|
1636 |
jueugste |
1.1 |
|
1637 |
jueugste |
1.6 |
|
1638 |
jueugste |
1.2 |
// different Met
|
1639 |
jueugste |
1.1 |
tPfMet = PFMET;
|
1640 |
|
|
tCaloMet = RawMET;
|
1641 |
|
|
tTcMet = TCMET;
|
1642 |
|
|
|
1643 |
jueugste |
1.2 |
// HF variables
|
1644 |
jueugste |
1.3 |
|
1645 |
|
|
double SumEHF_minus = 0.;
|
1646 |
|
|
double SumEHF_plus = 0.;
|
1647 |
jueugste |
1.4 |
double SumEHF_Aminus = 0.;
|
1648 |
|
|
double SumEHF_Aplus = 0.;
|
1649 |
|
|
double SumEHF_Bminus = 0.;
|
1650 |
|
|
double SumEHF_Bplus = 0.;
|
1651 |
jueugste |
1.3 |
double SumETHF_minus = 0.;
|
1652 |
|
|
double SumETHF_plus = 0.;
|
1653 |
|
|
int Ntowers_plus = 0.;
|
1654 |
|
|
int Ntowers_minus = 0.;
|
1655 |
|
|
|
1656 |
jueugste |
1.4 |
double SumE = 0.;
|
1657 |
jueugste |
1.3 |
double minusPz = 0.;
|
1658 |
|
|
double plusPz = 0.;
|
1659 |
|
|
|
1660 |
|
|
double CaloTowersEMin_EB = 1.5;
|
1661 |
|
|
double CaloTowersEMin_EE = 2.5; // cut on ET !!!!!!!!!!!!!!!!!!
|
1662 |
|
|
double CaloTowersEMin_HB = 1.5;
|
1663 |
|
|
double CaloTowersEMin_HE = 2.;
|
1664 |
|
|
double CaloTowersEMin_HF = 4.;
|
1665 |
|
|
|
1666 |
jueugste |
1.6 |
|
1667 |
|
|
// cout<<"here4"<<endl;
|
1668 |
|
|
|
1669 |
|
|
|
1670 |
jueugste |
1.5 |
tCaloTowersN = NCaloTowers;
|
1671 |
jueugste |
1.3 |
for(int j=0; j<NCaloTowers; j++) {
|
1672 |
jueugste |
1.5 |
|
1673 |
|
|
// get all calo towers
|
1674 |
|
|
tCaloTowersE[j] = CaloTowersE[j];
|
1675 |
jueugste |
1.6 |
tCaloTowersEt[j] = CaloTowersE[j] * sin(CaloTowersTheta[j]);
|
1676 |
|
|
tCaloTowersEta[j] = CaloTowersEta[j];
|
1677 |
jueugste |
1.5 |
tCaloTowersEmE[j] = CaloTowersEmE[j];
|
1678 |
|
|
tCaloTowersHadE[j] = CaloTowersHadE[j];
|
1679 |
|
|
tCaloTowersHasEB[j] = CaloTowersHasEB[j];
|
1680 |
|
|
tCaloTowersHasEE[j] = CaloTowersHasEE[j];
|
1681 |
|
|
tCaloTowersHasHB[j] = CaloTowersHasHB[j];
|
1682 |
|
|
tCaloTowersHasHE[j] = CaloTowersHasHE[j];
|
1683 |
|
|
tCaloTowersHasHF[j] = CaloTowersHasHF[j];
|
1684 |
|
|
tCaloTowersId[j] = CaloTowersId[j];
|
1685 |
|
|
|
1686 |
jueugste |
1.3 |
// is the tower on the plus or minus side?
|
1687 |
|
|
int zside = (CaloTowersId[j]&0x2000)?(1):(-1);
|
1688 |
|
|
|
1689 |
jueugste |
1.4 |
// int zside = 0;
|
1690 |
|
|
// if(CaloTowersEta[j]>0) zside = 1;
|
1691 |
|
|
// if(CaloTowersEta[j]<0) zside = -1;
|
1692 |
|
|
|
1693 |
|
|
|
1694 |
jueugste |
1.3 |
if(CaloTowersHasHF[j]==1 /*&& !CaloTowersHasHE[j]*/) {
|
1695 |
jueugste |
1.4 |
if(CaloTowersE[j] >= CaloTowersEMin_HF) {
|
1696 |
jueugste |
1.3 |
if(zside>0) {
|
1697 |
|
|
SumEHF_plus += CaloTowersE[j];
|
1698 |
|
|
SumETHF_plus += CaloTowersE[j] * sin(CaloTowersTheta[j]);
|
1699 |
|
|
Ntowers_plus++;
|
1700 |
jueugste |
1.4 |
|
1701 |
|
|
if(fabs(CaloTowersEta[j]) >= 3 && fabs(CaloTowersEta[j]) <=4) {
|
1702 |
|
|
SumEHF_Aplus += CaloTowersE[j];
|
1703 |
|
|
}
|
1704 |
|
|
if(fabs(CaloTowersEta[j]) >= 4 && fabs(CaloTowersEta[j]) <=5) {
|
1705 |
|
|
SumEHF_Bplus += CaloTowersE[j];
|
1706 |
|
|
}
|
1707 |
|
|
|
1708 |
jueugste |
1.3 |
}
|
1709 |
|
|
if(zside<0) {
|
1710 |
|
|
SumEHF_minus += CaloTowersE[j];
|
1711 |
|
|
SumETHF_minus += CaloTowersE[j] * sin(CaloTowersTheta[j]);
|
1712 |
|
|
Ntowers_minus++;
|
1713 |
jueugste |
1.4 |
|
1714 |
|
|
if(fabs(CaloTowersEta[j]) >= 3 && fabs(CaloTowersEta[j]) <=4) {
|
1715 |
|
|
SumEHF_Aminus += CaloTowersE[j];
|
1716 |
|
|
}
|
1717 |
|
|
if(fabs(CaloTowersEta[j]) >= 4 && fabs(CaloTowersEta[j]) <=5) {
|
1718 |
|
|
SumEHF_Bminus += CaloTowersE[j];
|
1719 |
|
|
}
|
1720 |
|
|
|
1721 |
jueugste |
1.3 |
}
|
1722 |
|
|
}
|
1723 |
|
|
}
|
1724 |
|
|
|
1725 |
|
|
// calculate E \pm p_{z}
|
1726 |
|
|
if( (CaloTowersHasEB[j]==1 && CaloTowersEmE[j] > CaloTowersEMin_EB ) ||
|
1727 |
|
|
(CaloTowersHasEE[j]==1 && CaloTowersEmE[j] /* * sin(CaloTowersTheta[j])*/ > CaloTowersEMin_EE ) || // cut on ET, not on energy
|
1728 |
|
|
(CaloTowersHasHB[j]==1 && CaloTowersHadE[j] > CaloTowersEMin_HB ) ||
|
1729 |
|
|
(CaloTowersHasHE[j]==1 && CaloTowersHadE[j] > CaloTowersEMin_HE ) ||
|
1730 |
jueugste |
1.4 |
(CaloTowersHasHF[j]==1 && CaloTowersHadE[j] > CaloTowersEMin_HF) ) {
|
1731 |
jueugste |
1.3 |
|
1732 |
|
|
tSumE += CaloTowersE[j];
|
1733 |
|
|
tSumPz += CaloTowersE[j] * cos(CaloTowersTheta[j]);
|
1734 |
|
|
|
1735 |
|
|
SumE += CaloTowersE[j];
|
1736 |
|
|
if(zside > 0) plusPz += CaloTowersE[j] * cos(CaloTowersTheta[j]);
|
1737 |
|
|
if(zside < 0) minusPz += CaloTowersE[j] * cos(CaloTowersTheta[j]);
|
1738 |
|
|
|
1739 |
|
|
}
|
1740 |
|
|
|
1741 |
|
|
}
|
1742 |
|
|
|
1743 |
|
|
tSumEHF_minus = SumEHF_minus;
|
1744 |
|
|
tSumEHF_plus = SumEHF_plus;
|
1745 |
jueugste |
1.4 |
tSumEHF_Aminus = SumEHF_Aminus;
|
1746 |
|
|
tSumEHF_Aplus = SumEHF_Aplus;
|
1747 |
|
|
tSumEHF_Bminus = SumEHF_Bminus;
|
1748 |
|
|
tSumEHF_Bplus = SumEHF_Bplus;
|
1749 |
jueugste |
1.2 |
tSumETHF_minus = SumETHF_minus;
|
1750 |
jueugste |
1.3 |
tSumETHF_plus = SumETHF_plus;
|
1751 |
|
|
tNtowers_plus = Ntowers_plus;
|
1752 |
|
|
tNtowers_minus = Ntowers_minus;
|
1753 |
|
|
|
1754 |
|
|
tEminusPz = SumE + minusPz;
|
1755 |
|
|
tEplusPz = SumE + plusPz;
|
1756 |
jueugste |
1.2 |
|
1757 |
|
|
|
1758 |
jueugste |
1.6 |
|
1759 |
jueugste |
1.3 |
// double E = SumEHF_plus + SumEHE_plus + SumEHB_plus + SumEEE_plus + SumEEB_plus + SumEHF_minus + SumEHE_minus + SumEHB_minus + SumEEE_minus + SumEEB_minus;
|
1760 |
|
|
// double minusPz = SumPzHF_minus + SumPzHE_minus + SumPzHB_minus + SumPzEE_minus + SumPzEB_minus;
|
1761 |
|
|
// double plusPz = SumPzHF_plus + SumPzHE_plus + SumPzHB_plus + SumPzEE_plus + SumPzEB_plus;
|
1762 |
|
|
// tEminusPz = E + minusPz;
|
1763 |
|
|
// tEplusPz = E + plusPz;
|
1764 |
jueugste |
1.2 |
|
1765 |
|
|
// jets
|
1766 |
|
|
tJetN = i_jets.size();
|
1767 |
|
|
for(int j=0; j<i_jets.size(); j++) {
|
1768 |
|
|
tJetPt[j] = PFJPt[i_jets[j]];
|
1769 |
|
|
tJetEta[j] = PFJEta[i_jets[j]];
|
1770 |
|
|
tJetPhi[j] = PFJPhi[i_jets[j]];
|
1771 |
|
|
}
|
1772 |
|
|
|
1773 |
jueugste |
1.3 |
// \eta_{max} and \eta_{min}
|
1774 |
jueugste |
1.4 |
double EtaMax = -9.99;
|
1775 |
|
|
double EtaMin = 9.99;
|
1776 |
jueugste |
1.2 |
for(int j=0; j < NPf; j++) {
|
1777 |
jueugste |
1.4 |
if(PfEta[j] > EtaMax) EtaMax = PfEta[j];
|
1778 |
|
|
if(PfEta[j] < EtaMin) EtaMin = PfEta[j];
|
1779 |
jueugste |
1.6 |
// keep more PFlow variables
|
1780 |
|
|
tPfE[j] = PfE[j];
|
1781 |
|
|
tPfEt[j] = PfEt[j];
|
1782 |
|
|
tPfEta[j] = PfEta[j];
|
1783 |
|
|
tPfPt[j] = PfPt[j];
|
1784 |
jueugste |
1.2 |
}
|
1785 |
jueugste |
1.4 |
tEtaMax=EtaMax;
|
1786 |
|
|
tEtaMin=EtaMin;
|
1787 |
jueugste |
1.6 |
tPfN = NPf;
|
1788 |
|
|
|
1789 |
|
|
|
1790 |
jueugste |
1.3 |
|
1791 |
|
|
// count the vertices
|
1792 |
|
|
// int nVert = 0;
|
1793 |
|
|
// for(int j=0; j<NVrtx; j++) {
|
1794 |
|
|
// if(VrtxNdof[j] > 4) nVert++;
|
1795 |
|
|
|
1796 |
|
|
// }
|
1797 |
|
|
tVertexN = NVrtx;
|
1798 |
|
|
for(int j=0; j<NVrtx; j++) {
|
1799 |
|
|
tVertexNdof[j] = VrtxNdof[j];
|
1800 |
jueugste |
1.5 |
tVertexChi2[j] = VrtxChi2[j];
|
1801 |
jueugste |
1.3 |
tVertexX[j] = VrtxX[j];
|
1802 |
|
|
tVertexY[j] = VrtxY[j];
|
1803 |
|
|
tVertexZ[j] = VrtxZ[j];
|
1804 |
jueugste |
1.6 |
//hhh
|
1805 |
|
|
for(int jj=0; jj<400; jj++) {
|
1806 |
|
|
tVertexTrackIndex[j][jj] = VrtxTrkIndex[j][jj];
|
1807 |
|
|
// cout<<tVertexTrackIndex[j][jj]<<endl;
|
1808 |
|
|
// tTVertexTrackWeight[j][jj] = VrtxTrkWeight[j][jj];
|
1809 |
|
|
}
|
1810 |
|
|
}
|
1811 |
|
|
|
1812 |
jueugste |
1.5 |
|
1813 |
jueugste |
1.3 |
// count the tracks
|
1814 |
|
|
// int nTrck = 0;
|
1815 |
|
|
// tTracksN = nTrck;
|
1816 |
|
|
|
1817 |
jueugste |
1.6 |
|
1818 |
|
|
cout<<"Filling pile up"<<endl;
|
1819 |
|
|
|
1820 |
|
|
// pile-up
|
1821 |
|
|
tPUnumInteractions = PUnumInteractions;
|
1822 |
|
|
for(int z=0; z<PUnumInteractions; z++) {
|
1823 |
|
|
tPUzPositions[z] = PUzPositions[z];
|
1824 |
|
|
}
|
1825 |
|
|
cout<<"done!"<<endl;
|
1826 |
|
|
|
1827 |
jueugste |
1.3 |
tBeamSpotX = Beamspotx;
|
1828 |
|
|
tBeamSpotY = Beamspoty;
|
1829 |
|
|
tBeamSpotZ = Beamspotz;
|
1830 |
|
|
|
1831 |
|
|
tTracksN = NTracks;
|
1832 |
jueugste |
1.6 |
for(int tr=0; tr<NTracks; tr++) {
|
1833 |
|
|
tTrackPt[tr] = TrkPt[tr];
|
1834 |
|
|
tTrackPx[tr] = TrkPx[tr];
|
1835 |
|
|
tTrackPy[tr] = TrkPy[tr];
|
1836 |
|
|
tTrackPz[tr] = TrkPz[tr];
|
1837 |
|
|
tTrackDzBs[tr] = Trkdzbs[tr];
|
1838 |
|
|
tTrackEta[tr] = TrkEta[tr];
|
1839 |
|
|
tTrackPhi[tr] = TrkPhi[tr];
|
1840 |
|
|
// tTracktdsz[t] = Trkdsz[t];
|
1841 |
|
|
// tTrackdxy[t] = Trkdxy[t];
|
1842 |
|
|
|
1843 |
|
|
}
|
1844 |
|
|
|
1845 |
jueugste |
1.3 |
|
1846 |
jueugste |
1.2 |
//--------------------------------------------------------------------------------------------------------------------
|
1847 |
|
|
|
1848 |
|
|
|
1849 |
jueugste |
1.1 |
|
1850 |
|
|
// fill the histograms for the barrel only
|
1851 |
|
|
for(int i=0; i<i_goodBarrelElectrons.size(); i++) {
|
1852 |
|
|
|
1853 |
|
|
// calculate the variables to fill
|
1854 |
|
|
double deltaPhiElMet=deltaPhi(ElPhi[i_goodBarrelElectrons[i]], PFMETphi);
|
1855 |
|
|
double mt = transverseMass(ElPt[i_goodBarrelElectrons[i]] * PtCorrection, met, deltaPhiElMet);
|
1856 |
|
|
int charge = ElCharge[i_goodBarrelElectrons[i]];
|
1857 |
|
|
double pt = ElPt[i_goodBarrelElectrons[i]] * PtCorrection;
|
1858 |
|
|
double phi = ElPhi[i_goodBarrelElectrons[i]];
|
1859 |
|
|
double eta = ElEta[i_goodBarrelElectrons[i]];
|
1860 |
|
|
|
1861 |
|
|
|
1862 |
|
|
|
1863 |
|
|
|
1864 |
|
|
// all barrel electrons after ID&Iso with pt > 10 GeV
|
1865 |
|
|
hs_W_ElTransMass[0]->Fill(mt);
|
1866 |
|
|
hs_W_ElPt[0]->Fill(pt);
|
1867 |
|
|
hs_W_ElPhi[0]->Fill(phi);
|
1868 |
|
|
hs_W_ElEta[0]->Fill(eta);
|
1869 |
|
|
hs_W_ElMet[0]->Fill(met);
|
1870 |
|
|
hs_W_ElCharge[0]->Fill(charge);
|
1871 |
|
|
hs_W_Njets[0]->Fill(nJets);
|
1872 |
|
|
|
1873 |
|
|
// cut on the pt of the electrons
|
1874 |
|
|
if(ElPt[i_goodBarrelElectrons[i]] > 25) {
|
1875 |
|
|
|
1876 |
|
|
// all barrel electrons after ID&Iso with pt > 25 GeV
|
1877 |
|
|
debug4++;
|
1878 |
|
|
hs_W_ElTransMass[1]->Fill(mt);
|
1879 |
|
|
hs_W_ElPt[1]->Fill(pt);
|
1880 |
|
|
hs_W_ElPhi[1]->Fill(phi);
|
1881 |
|
|
hs_W_ElEta[1]->Fill(eta);
|
1882 |
|
|
hs_W_ElMet[1]->Fill(met);
|
1883 |
|
|
hs_W_ElCharge[1]->Fill(charge);
|
1884 |
|
|
hs_W_Njets[1]->Fill(nJets);
|
1885 |
|
|
|
1886 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1887 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1888 |
|
|
// THIS IS THE W BOSON ANALYSIS */*
|
1889 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1890 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
1891 |
|
|
|
1892 |
|
|
|
1893 |
|
|
// exactly one lepton
|
1894 |
|
|
if(nLeptons25_B == 1) {
|
1895 |
|
|
hs_W_ElTransMass[2]->Fill(mt);
|
1896 |
|
|
hs_W_ElPt[2]->Fill(pt);
|
1897 |
|
|
hs_W_ElPhi[2]->Fill(phi);
|
1898 |
|
|
hs_W_ElEta[2]->Fill(eta);
|
1899 |
|
|
hs_W_ElMet[2]->Fill(met);
|
1900 |
|
|
hs_W_ElCharge[2]->Fill(charge);
|
1901 |
|
|
hs_W_Njets[2]->Fill(nJets);
|
1902 |
|
|
|
1903 |
|
|
// MET cut
|
1904 |
|
|
if(met > 30) {
|
1905 |
|
|
hs_W_ElTransMass[3]->Fill(mt);
|
1906 |
|
|
hs_W_ElPt[3]->Fill(pt);
|
1907 |
|
|
hs_W_ElPhi[3]->Fill(phi);
|
1908 |
|
|
hs_W_ElEta[3]->Fill(eta);
|
1909 |
|
|
hs_W_ElMet[3]->Fill(met);
|
1910 |
|
|
hs_W_ElCharge[3]->Fill(charge);
|
1911 |
|
|
hs_W_Njets[3]->Fill(nJets);
|
1912 |
|
|
|
1913 |
|
|
// transverse mass cut
|
1914 |
|
|
if(mt > 60) {
|
1915 |
|
|
hs_W_ElTransMass[4]->Fill(mt);
|
1916 |
|
|
hs_W_ElPt[4]->Fill(pt);
|
1917 |
|
|
hs_W_ElPhi[4]->Fill(phi);
|
1918 |
|
|
hs_W_ElEta[4]->Fill(eta);
|
1919 |
|
|
hs_W_ElMet[4]->Fill(met);
|
1920 |
|
|
hs_W_ElCharge[4]->Fill(charge);
|
1921 |
|
|
hs_W_Njets[4]->Fill(nJets);
|
1922 |
|
|
|
1923 |
|
|
// zero jet bin
|
1924 |
|
|
if(nJets==0) {
|
1925 |
|
|
hs_W_ElTransMass[5]->Fill(mt);
|
1926 |
|
|
hs_W_ElPt[5]->Fill(pt);
|
1927 |
|
|
hs_W_ElPhi[5]->Fill(phi);
|
1928 |
|
|
hs_W_ElEta[5]->Fill(eta);
|
1929 |
|
|
hs_W_ElMet[5]->Fill(met);
|
1930 |
|
|
hs_W_ElCharge[5]->Fill(charge);
|
1931 |
|
|
hs_W_Njets[5]->Fill(nJets);
|
1932 |
|
|
|
1933 |
|
|
|
1934 |
|
|
|
1935 |
jueugste |
1.3 |
// // DIFFRACTIVE
|
1936 |
|
|
// if(isDiffractive) {
|
1937 |
jueugste |
1.1 |
|
1938 |
jueugste |
1.3 |
// diff_run.push_back(Run);
|
1939 |
|
|
// diff_event.push_back(Event);
|
1940 |
|
|
// diff_ls.push_back(LumiSection);
|
1941 |
|
|
// diff_sumehf_plus.push_back(SumEHF_plus);
|
1942 |
|
|
// diff_sumehf_minus.push_back(SumEHF_minus);
|
1943 |
|
|
// diff_sumethf_plus.push_back(SumETHF_plus);
|
1944 |
|
|
// diff_sumethf_minus.push_back(SumETHF_minus);
|
1945 |
|
|
// diff_ntowershf_plus.push_back(NTowersHF_plus);
|
1946 |
|
|
// diff_ntowershf_minus.push_back(NTowersHF_minus);
|
1947 |
|
|
// }
|
1948 |
jueugste |
1.1 |
|
1949 |
|
|
|
1950 |
|
|
|
1951 |
|
|
// W minus
|
1952 |
|
|
if(charge < 0) {
|
1953 |
|
|
hs_W_ElTransMass[6]->Fill(mt);
|
1954 |
|
|
hs_W_ElPt[6]->Fill(pt);
|
1955 |
|
|
hs_W_ElPhi[6]->Fill(phi);
|
1956 |
|
|
hs_W_ElEta[6]->Fill(eta);
|
1957 |
|
|
hs_W_ElMet[6]->Fill(met);
|
1958 |
|
|
hs_W_ElCharge[6]->Fill(charge);
|
1959 |
|
|
hs_W_Njets[6]->Fill(nJets);
|
1960 |
|
|
}
|
1961 |
|
|
// W plus
|
1962 |
|
|
else if(charge > 0) {
|
1963 |
|
|
hs_W_ElTransMass[7]->Fill(mt);
|
1964 |
|
|
hs_W_ElPt[7]->Fill(pt);
|
1965 |
|
|
hs_W_ElPhi[7]->Fill(phi);
|
1966 |
|
|
hs_W_ElEta[7]->Fill(eta);
|
1967 |
|
|
hs_W_ElMet[7]->Fill(met);
|
1968 |
|
|
hs_W_ElCharge[7]->Fill(charge);
|
1969 |
|
|
hs_W_Njets[7]->Fill(nJets);
|
1970 |
|
|
}
|
1971 |
|
|
}
|
1972 |
|
|
// 1 jet bin
|
1973 |
|
|
if(nJets==1) {
|
1974 |
|
|
// get the angle between the jet and the elctron
|
1975 |
|
|
double deltPhi = deltaPhi(phi, JPhi[i_jets[0]]);
|
1976 |
|
|
// cout<<"delta phi: "<<deltPhi<<endl;
|
1977 |
|
|
hs_W_ElDeltaPhi[8]->Fill(deltPhi);
|
1978 |
|
|
|
1979 |
|
|
hs_W_ElTransMass[8]->Fill(mt);
|
1980 |
|
|
hs_W_ElPt[8]->Fill(pt);
|
1981 |
|
|
hs_W_ElPhi[8]->Fill(phi);
|
1982 |
|
|
hs_W_ElEta[8]->Fill(eta);
|
1983 |
|
|
hs_W_ElMet[8]->Fill(met);
|
1984 |
|
|
hs_W_ElCharge[8]->Fill(charge);
|
1985 |
|
|
hs_W_Njets[8]->Fill(nJets);
|
1986 |
|
|
|
1987 |
|
|
if(deltPhi < 2.793) {
|
1988 |
|
|
hs_W_ElTransMass[9]->Fill(mt);
|
1989 |
|
|
hs_W_ElPt[9]->Fill(pt);
|
1990 |
|
|
hs_W_ElPhi[9]->Fill(phi);
|
1991 |
|
|
hs_W_ElEta[9]->Fill(eta);
|
1992 |
|
|
hs_W_ElMet[9]->Fill(met);
|
1993 |
|
|
hs_W_ElCharge[9]->Fill(charge);
|
1994 |
|
|
hs_W_Njets[9]->Fill(nJets);
|
1995 |
|
|
|
1996 |
|
|
|
1997 |
|
|
// get the W pt spectrum
|
1998 |
|
|
hs_W_ElDeltaPhi[9]->Fill(deltPhi);
|
1999 |
|
|
hs_W_jetPt[9]->Fill(JPt[i_jets[0]]);
|
2000 |
|
|
|
2001 |
|
|
// W minus
|
2002 |
|
|
if(charge < 0) {
|
2003 |
|
|
hs_W_ElTransMass[10]->Fill(mt);
|
2004 |
|
|
hs_W_ElPt[10]->Fill(pt);
|
2005 |
|
|
hs_W_ElPhi[10]->Fill(phi);
|
2006 |
|
|
hs_W_ElEta[10]->Fill(eta);
|
2007 |
|
|
hs_W_ElMet[10]->Fill(met);
|
2008 |
|
|
hs_W_ElCharge[10]->Fill(charge);
|
2009 |
|
|
hs_W_Njets[10]->Fill(nJets);
|
2010 |
|
|
|
2011 |
|
|
|
2012 |
|
|
}
|
2013 |
|
|
// W plus
|
2014 |
|
|
else if(charge > 0) {
|
2015 |
|
|
hs_W_ElTransMass[11]->Fill(mt);
|
2016 |
|
|
hs_W_ElPt[11]->Fill(pt);
|
2017 |
|
|
hs_W_ElPhi[11]->Fill(phi);
|
2018 |
|
|
hs_W_ElEta[11]->Fill(eta);
|
2019 |
|
|
hs_W_ElMet[11]->Fill(met);
|
2020 |
|
|
hs_W_ElCharge[11]->Fill(charge);
|
2021 |
|
|
hs_W_Njets[11]->Fill(nJets);
|
2022 |
|
|
}
|
2023 |
|
|
}
|
2024 |
|
|
}
|
2025 |
|
|
// 2 jet bin
|
2026 |
|
|
if(nJets>=2) {
|
2027 |
|
|
hs_W_ElTransMass[12]->Fill(mt);
|
2028 |
|
|
hs_W_ElPt[12]->Fill(pt);
|
2029 |
|
|
hs_W_ElPhi[12]->Fill(phi);
|
2030 |
|
|
hs_W_ElEta[12]->Fill(eta);
|
2031 |
|
|
hs_W_ElMet[12]->Fill(met);
|
2032 |
|
|
hs_W_ElCharge[12]->Fill(charge);
|
2033 |
|
|
hs_W_Njets[12]->Fill(nJets);
|
2034 |
|
|
|
2035 |
|
|
// W minus
|
2036 |
|
|
if(charge < 0) {
|
2037 |
|
|
hs_W_ElTransMass[13]->Fill(mt);
|
2038 |
|
|
hs_W_ElPt[13]->Fill(pt);
|
2039 |
|
|
hs_W_ElPhi[13]->Fill(phi);
|
2040 |
|
|
hs_W_ElEta[13]->Fill(eta);
|
2041 |
|
|
hs_W_ElMet[13]->Fill(met);
|
2042 |
|
|
hs_W_ElCharge[13]->Fill(charge);
|
2043 |
|
|
hs_W_Njets[13]->Fill(nJets);
|
2044 |
|
|
|
2045 |
|
|
|
2046 |
|
|
}
|
2047 |
|
|
// W plus
|
2048 |
|
|
else if(charge > 0) {
|
2049 |
|
|
hs_W_ElTransMass[14]->Fill(mt);
|
2050 |
|
|
hs_W_ElPt[14]->Fill(pt);
|
2051 |
|
|
hs_W_ElPhi[14]->Fill(phi);
|
2052 |
|
|
hs_W_ElEta[14]->Fill(eta);
|
2053 |
|
|
hs_W_ElMet[14]->Fill(met);
|
2054 |
|
|
hs_W_ElCharge[14]->Fill(charge);
|
2055 |
|
|
hs_W_Njets[14]->Fill(nJets);
|
2056 |
|
|
}
|
2057 |
|
|
}
|
2058 |
|
|
|
2059 |
|
|
|
2060 |
|
|
}
|
2061 |
|
|
} // MET cut
|
2062 |
|
|
|
2063 |
|
|
// make N-1 plots for 0/1 jet bin (already selected == 1 electron)
|
2064 |
|
|
if(nJets==0) {
|
2065 |
|
|
hs_W_ElTransMass[15]->Fill(mt);
|
2066 |
|
|
hs_W_ElPt[15]->Fill(pt);
|
2067 |
|
|
hs_W_ElPhi[15]->Fill(phi);
|
2068 |
|
|
hs_W_ElEta[15]->Fill(eta);
|
2069 |
|
|
hs_W_ElMet[15]->Fill(met);
|
2070 |
|
|
hs_W_ElCharge[15]->Fill(charge);
|
2071 |
|
|
hs_W_Njets[15]->Fill(nJets);
|
2072 |
|
|
|
2073 |
|
|
if(met > 30) {
|
2074 |
|
|
hs_W_ElTransMass[16]->Fill(mt);
|
2075 |
|
|
hs_W_ElPt[16]->Fill(pt);
|
2076 |
|
|
hs_W_ElPhi[16]->Fill(phi);
|
2077 |
|
|
hs_W_ElEta[16]->Fill(eta);
|
2078 |
|
|
hs_W_ElMet[16]->Fill(met);
|
2079 |
|
|
hs_W_ElCharge[16]->Fill(charge);
|
2080 |
|
|
hs_W_Njets[16]->Fill(nJets);
|
2081 |
|
|
}
|
2082 |
|
|
if(mt > 60) {
|
2083 |
|
|
hs_W_ElTransMass[17]->Fill(mt);
|
2084 |
|
|
hs_W_ElPt[17]->Fill(pt);
|
2085 |
|
|
hs_W_ElPhi[17]->Fill(phi);
|
2086 |
|
|
hs_W_ElEta[17]->Fill(eta);
|
2087 |
|
|
hs_W_ElMet[17]->Fill(met);
|
2088 |
|
|
hs_W_ElCharge[17]->Fill(charge);
|
2089 |
|
|
hs_W_Njets[17]->Fill(nJets);
|
2090 |
|
|
}
|
2091 |
|
|
}
|
2092 |
|
|
if(nJets==1) {
|
2093 |
|
|
hs_W_ElTransMass[18]->Fill(mt);
|
2094 |
|
|
hs_W_ElPt[18]->Fill(pt);
|
2095 |
|
|
hs_W_ElPhi[18]->Fill(phi);
|
2096 |
|
|
hs_W_ElEta[18]->Fill(eta);
|
2097 |
|
|
hs_W_ElMet[18]->Fill(met);
|
2098 |
|
|
hs_W_ElCharge[18]->Fill(charge);
|
2099 |
|
|
hs_W_Njets[18]->Fill(nJets);
|
2100 |
|
|
|
2101 |
|
|
if(met > 30) {
|
2102 |
|
|
hs_W_ElTransMass[19]->Fill(mt);
|
2103 |
|
|
hs_W_ElPt[19]->Fill(pt);
|
2104 |
|
|
hs_W_ElPhi[19]->Fill(phi);
|
2105 |
|
|
hs_W_ElEta[19]->Fill(eta);
|
2106 |
|
|
hs_W_ElMet[19]->Fill(met);
|
2107 |
|
|
hs_W_ElCharge[19]->Fill(charge);
|
2108 |
|
|
hs_W_Njets[19]->Fill(nJets);
|
2109 |
|
|
}
|
2110 |
|
|
if(mt > 60) {
|
2111 |
|
|
hs_W_ElTransMass[20]->Fill(mt);
|
2112 |
|
|
hs_W_ElPt[20]->Fill(pt);
|
2113 |
|
|
hs_W_ElPhi[20]->Fill(phi);
|
2114 |
|
|
hs_W_ElEta[20]->Fill(eta);
|
2115 |
|
|
hs_W_ElMet[20]->Fill(met);
|
2116 |
|
|
hs_W_ElCharge[20]->Fill(charge);
|
2117 |
|
|
hs_W_Njets[20]->Fill(nJets);
|
2118 |
|
|
}
|
2119 |
|
|
}
|
2120 |
|
|
} // 1 electron
|
2121 |
|
|
} // pt > 25 GeV
|
2122 |
|
|
|
2123 |
|
|
} // loop over good barrel electrons
|
2124 |
|
|
|
2125 |
|
|
|
2126 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
2127 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
2128 |
|
|
// THIS IS THE Z BOSON ANALYSIS */*
|
2129 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
2130 |
|
|
//--------------------------------------------------------------------------------------------------------------------
|
2131 |
|
|
|
2132 |
jueugste |
1.5 |
// 2 electrons in the barrel
|
2133 |
jueugste |
1.1 |
if(nLeptons25_B >= 2) {
|
2134 |
|
|
|
2135 |
|
|
// calculate the invariant mass with the 2 highest pt leptons
|
2136 |
|
|
double invMass;
|
2137 |
|
|
TLorentzVector e1, e2;
|
2138 |
|
|
int index1=0;
|
2139 |
|
|
int index2=0;
|
2140 |
|
|
double pt1=0;
|
2141 |
|
|
double pt2=0;
|
2142 |
|
|
for(int i=0; i<i_goodBarrelElectrons.size(); i++) {
|
2143 |
|
|
if(ElPt[i_goodBarrelElectrons[i]] > pt2 && ElPt[i_goodBarrelElectrons[i]] > pt1) {index2 = index1; pt2 = pt1; index1 = i_goodBarrelElectrons[i]; pt1 = ElPt[i_goodBarrelElectrons[i]];}
|
2144 |
|
|
if(ElPt[i_goodBarrelElectrons[i]] > pt2 && ElPt[i_goodBarrelElectrons[i]] < pt1) {index2 = i_goodBarrelElectrons[i]; pt2 = ElPt[i_goodBarrelElectrons[i]];}
|
2145 |
|
|
}
|
2146 |
|
|
|
2147 |
|
|
e1.SetPtEtaPhiE(ElPt[index1] * PtCorrection ,ElEta[index1],ElPhi[index1],ElE[index1]);
|
2148 |
|
|
e2.SetPtEtaPhiE(ElPt[index2] * PtCorrection ,ElEta[index2],ElPhi[index2],ElE[index2]);
|
2149 |
|
|
invMass = (e1+e2).M();
|
2150 |
|
|
|
2151 |
|
|
// Z mass cut flag
|
2152 |
|
|
bool Zmass=false;
|
2153 |
|
|
if(invMass > 83.7 && invMass < 98.7) Zmass=true;
|
2154 |
|
|
|
2155 |
|
|
|
2156 |
|
|
|
2157 |
|
|
// these variables are only defined if there really are jets...
|
2158 |
|
|
|
2159 |
|
|
double leadingJetPt = 0.;
|
2160 |
|
|
double leadingJetEta= 0.;
|
2161 |
|
|
double leadingJetPhi= 0.;
|
2162 |
|
|
double summedJetPt = 0.;
|
2163 |
|
|
double summedJetEta = 0.;
|
2164 |
|
|
double summedJetPhi = 0.;
|
2165 |
|
|
double recoilPt = 0.;
|
2166 |
|
|
double recoilEta = 0.;
|
2167 |
|
|
double recoilPhi = 0.;
|
2168 |
|
|
|
2169 |
|
|
TLorentzVector jsum;
|
2170 |
|
|
for(int ji=0; ji<i_jets.size(); ji++) {
|
2171 |
|
|
TLorentzVector vec;
|
2172 |
|
|
vec.SetPxPyPzE(JPx[i_jets[ji]], JPy[i_jets[ji]], JPz[i_jets[ji]], JE[i_jets[ji]]);
|
2173 |
|
|
//find the leading jet
|
2174 |
|
|
if(vec.Pt() > leadingJetPt) {
|
2175 |
|
|
leadingJetPt = vec.Pt();
|
2176 |
|
|
leadingJetEta = vec.Eta();
|
2177 |
|
|
leadingJetPhi = vec.Phi();
|
2178 |
|
|
}
|
2179 |
|
|
// sum all jets
|
2180 |
|
|
jsum=jsum+vec;
|
2181 |
|
|
}
|
2182 |
|
|
summedJetPt = jsum.Pt();
|
2183 |
|
|
summedJetEta = jsum.Eta();
|
2184 |
|
|
summedJetPhi = jsum.Phi();
|
2185 |
|
|
// add also the Z
|
2186 |
|
|
jsum+=e1;
|
2187 |
|
|
jsum+=e2;
|
2188 |
|
|
recoilPt = jsum.Pt();
|
2189 |
|
|
recoilEta = jsum.Eta();
|
2190 |
|
|
recoilPhi = jsum.Phi();
|
2191 |
|
|
|
2192 |
|
|
h_Z_invMass[0]->Fill(invMass);
|
2193 |
|
|
h_Z_invMass2[0]->Fill(invMass);
|
2194 |
|
|
h_Z_ptAll[0]->Fill(ElPt[index1]);
|
2195 |
|
|
h_Z_ptAll[0]->Fill(ElPt[index2]);
|
2196 |
|
|
h_Z_etaAll[0]->Fill(ElEta[index1]);
|
2197 |
|
|
h_Z_etaAll[0]->Fill(ElEta[index2]);
|
2198 |
|
|
h_Z_phiAll[0]->Fill(ElPhi[index1]);
|
2199 |
|
|
h_Z_phiAll[0]->Fill(ElPhi[index2]);
|
2200 |
|
|
h_Z_deltaPhi[0]->Fill(deltaPhi(ElPhi[index1], ElPhi[index2]));
|
2201 |
|
|
if(Zmass) {
|
2202 |
|
|
h_Z_ptDiLepton[0]->Fill((e1+e2).Pt());
|
2203 |
|
|
h_Z_ptDiLepton2[0]->Fill((e1+e2).Pt());
|
2204 |
|
|
h_Z_etaDiLepton[0]->Fill((e1+e2).Eta());
|
2205 |
|
|
h_Z_phiDiLepton[0]->Fill((e1+e2).Phi());
|
2206 |
|
|
h_Z_metPt[0]->Fill(met);
|
2207 |
|
|
h_Z_metPhi[0]->Fill(metPhi);
|
2208 |
|
|
|
2209 |
jueugste |
1.3 |
// // diffractive Zs
|
2210 |
|
|
// if(isDiffractive) {
|
2211 |
|
|
// diff_run.push_back(Run);
|
2212 |
|
|
// diff_event.push_back(Event);
|
2213 |
|
|
// diff_ls.push_back(LumiSection);
|
2214 |
|
|
// diff_sumehf_plus.push_back(SumEHF_plus);
|
2215 |
|
|
// diff_sumehf_minus.push_back(SumEHF_minus);
|
2216 |
|
|
// diff_sumethf_plus.push_back(SumETHF_plus);
|
2217 |
|
|
// diff_sumethf_minus.push_back(SumETHF_minus);
|
2218 |
|
|
// diff_ntowershf_plus.push_back(NTowersHF_plus);
|
2219 |
|
|
// diff_ntowershf_minus.push_back(NTowersHF_minus);
|
2220 |
|
|
// }
|
2221 |
jueugste |
1.1 |
|
2222 |
|
|
if(nJets == 0) {
|
2223 |
|
|
sel_ZOjet_run.push_back(Run);
|
2224 |
|
|
sel_ZOjet_event.push_back(Event);
|
2225 |
|
|
sel_ZOjet_ls.push_back(LumiSection);
|
2226 |
|
|
|
2227 |
|
|
}
|
2228 |
|
|
|
2229 |
|
|
|
2230 |
|
|
|
2231 |
|
|
}
|
2232 |
|
|
|
2233 |
|
|
// now variables with jet activity
|
2234 |
|
|
|
2235 |
|
|
h_Z_nJets[0]->Fill(nJets);
|
2236 |
|
|
if(nJets > 0 && Zmass) {
|
2237 |
|
|
h_Z_leadingJetPt[0]->Fill(leadingJetPt);
|
2238 |
|
|
h_Z_leadingJetEta[0]->Fill(leadingJetEta);
|
2239 |
|
|
h_Z_leadingJetPhi[0]->Fill(leadingJetPhi);
|
2240 |
|
|
h_Z_summedJetPt[0]->Fill(summedJetPt);
|
2241 |
|
|
h_Z_summedJetEta[0]->Fill(summedJetEta);
|
2242 |
|
|
h_Z_summedJetPhi[0]->Fill(summedJetPhi);
|
2243 |
|
|
|
2244 |
|
|
h_Z_leadingJetDeltaPt[0]->Fill(leadingJetPt - (e1+e2).Pt());
|
2245 |
|
|
h_Z_leadingJetDeltaEta[0]->Fill(leadingJetEta - (e1+e2).Eta());
|
2246 |
|
|
h_Z_leadingJetDeltaPhi[0]->Fill(deltaPhi(leadingJetPhi, (e1+e2).Phi()));
|
2247 |
|
|
h_Z_summedJetDeltaPt[0]->Fill(summedJetPt - (e1+e2).Pt());
|
2248 |
|
|
h_Z_summedJetDeltaEta[0]->Fill(summedJetEta - (e1+e2).Eta());
|
2249 |
|
|
h_Z_summedJetDeltaPhi[0]->Fill(deltaPhi(summedJetPhi, (e1+e2).Phi()));
|
2250 |
|
|
|
2251 |
|
|
h_Z_recoilPt[0]->Fill(recoilPt);
|
2252 |
|
|
h_Z_recoilEta[0]->Fill(recoilEta);
|
2253 |
|
|
h_Z_recoilPhi[0]->Fill(recoilPhi);
|
2254 |
|
|
}
|
2255 |
|
|
|
2256 |
|
|
|
2257 |
|
|
} // 2 electrons
|
2258 |
|
|
|
2259 |
|
|
|
2260 |
|
|
|
2261 |
|
|
// ******************************************************************************
|
2262 |
|
|
// ******************************************************************************
|
2263 |
|
|
|
2264 |
|
|
|
2265 |
|
|
// for(int i=0; i< tElN; i++) {
|
2266 |
|
|
// cout<<tElPt[i]<<endl;
|
2267 |
|
|
|
2268 |
|
|
// }
|
2269 |
|
|
|
2270 |
|
|
|
2271 |
|
|
subTree->Fill();
|
2272 |
|
|
|
2273 |
|
|
|
2274 |
|
|
|
2275 |
|
|
|
2276 |
|
|
|
2277 |
|
|
|
2278 |
|
|
|
2279 |
|
|
|
2280 |
|
|
////////////////////////////////////////////////////////////////////
|
2281 |
|
|
////////////////////// User's code ends here ///////////////////////
|
2282 |
|
|
////////////////////////////////////////////////////////////////////
|
2283 |
|
|
|
2284 |
|
|
} // End loop over events
|
2285 |
|
|
|
2286 |
|
|
|
2287 |
|
|
|
2288 |
|
|
|
2289 |
|
|
|
2290 |
|
|
|
2291 |
|
|
|
2292 |
|
|
END:
|
2293 |
|
|
cerr<<"Program ended after "<<sampleSize<<" events ..."<<endl;
|
2294 |
|
|
|
2295 |
|
|
|
2296 |
|
|
for(int b=0;b<MAXWcounter;b++) {
|
2297 |
|
|
hc_W_counter->SetBinContent(b+1,Wcounter[b]);
|
2298 |
|
|
}
|
2299 |
|
|
for(int b=0;b<counterSize;b++) {
|
2300 |
|
|
hc_El_counter->SetBinContent(b+1,counter[b]);
|
2301 |
|
|
}
|
2302 |
|
|
|
2303 |
|
|
|
2304 |
|
|
fclose(out);
|
2305 |
|
|
fclose(out_Z);
|
2306 |
|
|
|
2307 |
|
|
// Summary
|
2308 |
|
|
cout<<"*****************************************"<<endl;
|
2309 |
|
|
cout<<"* SUMMARY *"<<endl;
|
2310 |
|
|
cout<<"*****************************************"<<endl;
|
2311 |
|
|
cout<<"# Events: "<<El_count[0]<<endl;
|
2312 |
|
|
cout<<"HLT passed: "<<El_count[1]<<endl;
|
2313 |
|
|
cout<<"*****************************************"<<endl;
|
2314 |
|
|
cout<<"Electrons"<<endl;
|
2315 |
|
|
cout<<"*****************************************"<<endl;
|
2316 |
|
|
cout<<"Preselected e in EB: "<<El_count[2]<<endl;
|
2317 |
|
|
cout<<"Preselected e in EE: "<<El_count[3]<<endl;
|
2318 |
|
|
cout<<"Presele. e in EE+EB: "<<El_count[4]<<endl;
|
2319 |
|
|
cout<<"*****************************************"<<endl;
|
2320 |
|
|
cout<<"IDed & Isol. in EB: "<<El_count[5]<<endl;
|
2321 |
|
|
cout<<"IDed & Isol. in EE: "<<El_count[6]<<endl;
|
2322 |
|
|
cout<<"IDed & Iso. in EB+EE:"<<El_count[7]<<endl;
|
2323 |
|
|
cout<<"*****************************************"<<endl;
|
2324 |
|
|
cout<<"Ws"<<endl;
|
2325 |
|
|
|
2326 |
|
|
|
2327 |
|
|
cout<<"*****************************************"<<endl;
|
2328 |
|
|
|
2329 |
|
|
|
2330 |
|
|
|
2331 |
|
|
for(int ci=0; ci<15; ci++) {
|
2332 |
|
|
cout<<ci<<": "<<counter[ci]<<endl;
|
2333 |
|
|
}
|
2334 |
|
|
|
2335 |
|
|
if(diff_run.size()>0) {
|
2336 |
|
|
cout<<"DIFFRACTION STUFF!"<<endl;
|
2337 |
|
|
cout<<"Run / Event / LS / E HF+ / E HF- / ET HF+ / ET hf- / #tow HF+ / #tow HF- "<<endl;
|
2338 |
|
|
for(int i=0; i<diff_run.size(); i++) {
|
2339 |
|
|
cout<< diff_run[i] << " / " <<diff_event[i]<<" / "<<diff_ls[i] << " / "
|
2340 |
|
|
<< diff_sumehf_plus[i] << " / " << diff_sumehf_minus[i] << " / "
|
2341 |
|
|
<< diff_sumethf_plus[i] << " / " << diff_sumethf_minus[i] << " / "
|
2342 |
|
|
<< diff_ntowershf_plus[i] << " / " << diff_ntowershf_minus[i]
|
2343 |
|
|
<<endl;
|
2344 |
|
|
}
|
2345 |
|
|
}
|
2346 |
|
|
|
2347 |
|
|
if(sel_ZOjet_run.size() > 0) cout<<"Zs in barrel & 0 jet bin:"<<endl;
|
2348 |
|
|
for(int i=0; i<sel_ZOjet_run.size(); i++) {
|
2349 |
|
|
cout<<sel_ZOjet_run[i]<<" / "<<sel_ZOjet_event[i]<<" / "<<sel_ZOjet_ls[i]<<endl;
|
2350 |
|
|
}
|
2351 |
|
|
|
2352 |
|
|
delete [] counter;
|
2353 |
|
|
counter=NULL;
|
2354 |
|
|
delete [] Wcounter;
|
2355 |
|
|
Wcounter=NULL;
|
2356 |
|
|
|
2357 |
|
|
|
2358 |
|
|
subTree->Write();
|
2359 |
|
|
subTree->Print();
|
2360 |
|
|
|
2361 |
|
|
|
2362 |
|
|
//////////write histos
|
2363 |
|
|
h_jetPt->Write();
|
2364 |
|
|
|
2365 |
|
|
|
2366 |
|
|
// sum barrel and endcap into general plots
|
2367 |
|
|
for(int a=34; a<MAXE; a++) {
|
2368 |
|
|
hs_El_ElPt[a]->Add(hs_El_ElPt[a-7]);
|
2369 |
|
|
hs_El_ElPt[a]->Add(hs_El_ElPt[a-14]);
|
2370 |
|
|
hs_El_ElEta[a]->Add(hs_El_ElEta[a-7]);
|
2371 |
|
|
hs_El_ElEta[a]->Add(hs_El_ElEta[a-14]);
|
2372 |
|
|
hs_El_ElPhi[a]->Add(hs_El_ElPhi[a-7]);
|
2373 |
|
|
hs_El_ElPhi[a]->Add(hs_El_ElPhi[a-14]);
|
2374 |
|
|
hs_El_ElCharge[a]->Add(hs_El_ElCharge[a-7]);
|
2375 |
|
|
hs_El_ElCharge[a]->Add(hs_El_ElCharge[a-14]);
|
2376 |
|
|
hs_El_ElDeltaPhi[a]->Add(hs_El_ElDeltaPhi[a-7]);
|
2377 |
|
|
hs_El_ElDeltaPhi[a]->Add(hs_El_ElDeltaPhi[a-14]);
|
2378 |
|
|
hs_El_ElDeltaEta[a]->Add(hs_El_ElDeltaEta[a-7]);
|
2379 |
|
|
hs_El_ElDeltaEta[a]->Add(hs_El_ElDeltaEta[a-14]);
|
2380 |
|
|
hs_El_ElTransMass[a]->Add(hs_El_ElTransMass[a-7]);
|
2381 |
|
|
hs_El_ElTransMass[a]->Add(hs_El_ElTransMass[a-14]);
|
2382 |
|
|
hs_El_ElHoverE[a]->Add(hs_El_ElHoverE[a-7]);
|
2383 |
|
|
hs_El_ElHoverE[a]->Add(hs_El_ElHoverE[a-14]);
|
2384 |
|
|
hs_El_ElSigmaIetaIeta[a]->Add(hs_El_ElSigmaIetaIeta[a-7]);
|
2385 |
|
|
hs_El_ElSigmaIetaIeta[a]->Add(hs_El_ElSigmaIetaIeta[a-14]);
|
2386 |
|
|
hs_El_ElNumberOfMissingInnerHits[a]->Add(hs_El_ElNumberOfMissingInnerHits[a-7]);
|
2387 |
|
|
hs_El_ElNumberOfMissingInnerHits[a]->Add(hs_El_ElNumberOfMissingInnerHits[a-14]);
|
2388 |
|
|
hs_El_ElCombIso[a]->Add(hs_El_ElCombIso[a-7]);
|
2389 |
|
|
hs_El_ElCombIso[a]->Add(hs_El_ElCombIso[a-14]);
|
2390 |
|
|
}
|
2391 |
|
|
|
2392 |
|
|
|
2393 |
|
|
|
2394 |
|
|
// write the plots to the *.root file
|
2395 |
|
|
|
2396 |
|
|
h_numberOfEvents->Write();
|
2397 |
jueugste |
1.5 |
h_HLTInfo->Write();
|
2398 |
|
|
|
2399 |
jueugste |
1.1 |
|
2400 |
|
|
if(writeIdPlots==true) {
|
2401 |
|
|
for(int i=0;i<MAXE;i++) {
|
2402 |
|
|
hs_El_ElPt[i]->Write();
|
2403 |
|
|
hs_El_ElEta[i]->Write();
|
2404 |
|
|
hs_El_ElPhi[i]->Write();
|
2405 |
|
|
hs_El_ElDeltaPhi[i]->Write();
|
2406 |
|
|
hs_El_ElMet[i]->Write();
|
2407 |
|
|
hs_El_ElTransMass[i]->Write();
|
2408 |
|
|
hs_El_ElCharge[i]->Write();
|
2409 |
|
|
hs_El_Njets[i]->Write();
|
2410 |
|
|
hs_El_ElDeltaPhi[i]->Write();
|
2411 |
|
|
hs_El_ElDeltaEta[i]->Write();
|
2412 |
|
|
hs_El_ElOneOverEminusOneOverP[i]->Write();
|
2413 |
|
|
hs_El_ElTransMass[i]->Write();
|
2414 |
|
|
hs_El_Njets[i]->Write();
|
2415 |
|
|
hs_El_ElEthIso[i]->Write();
|
2416 |
|
|
hs_El_ElTrkIso[i]->Write();
|
2417 |
|
|
hs_El_ElEcalIso[i]->Write();
|
2418 |
|
|
hs_El_ElHcalIso[i]->Write();
|
2419 |
|
|
hs_El_ElCombIso[i]->Write();
|
2420 |
|
|
hs_El_ElHoverE[i]->Write();
|
2421 |
|
|
hs_El_ElSigmaIetaIeta[i]->Write();
|
2422 |
|
|
hs_El_ElNumberOfMissingInnerHits[i]->Write();
|
2423 |
|
|
}
|
2424 |
|
|
hc_El_counter->Write();
|
2425 |
|
|
}
|
2426 |
|
|
|
2427 |
|
|
|
2428 |
|
|
if(writeN1Plots==true) {
|
2429 |
|
|
for(int i=0; i<MAXN; i++) {
|
2430 |
|
|
hn1_El_ElDeltaPhi[i]->Write();
|
2431 |
|
|
hn1_El_ElDeltaEta[i]->Write();
|
2432 |
|
|
hn1_El_ElOneOverEminusOneOverP[i]->Write();
|
2433 |
|
|
|
2434 |
|
|
// hn1_El_ElPt[i]->Write();
|
2435 |
|
|
// hn1_El_ElEta[i]->Write();
|
2436 |
|
|
// hn1_El_ElPhi[i]->Write();
|
2437 |
|
|
// hn1_El_ElMet[i]->Write();
|
2438 |
|
|
// hn1_El_ElTransMass[i]->Write();
|
2439 |
|
|
// hn1_El_ElCharge[i]->Write();
|
2440 |
|
|
// hn1_El_Njets[i]->Write();
|
2441 |
|
|
// hn1_El_ElTransMass[i]->Write();
|
2442 |
|
|
// hn1_El_Njets[i]->Write();
|
2443 |
|
|
hn1_El_ElEthIso[i]->Write();
|
2444 |
|
|
// hn1_El_ElTrkIso[i]->Write();
|
2445 |
|
|
// hn1_El_ElEcalIso[i]->Write();
|
2446 |
|
|
// hn1_El_ElHcalIso[i]->Write();
|
2447 |
|
|
hn1_El_ElCombIso[i]->Write();
|
2448 |
|
|
hn1_El_ElHoverE[i]->Write();
|
2449 |
|
|
hn1_El_ElSigmaIetaIeta[i]->Write();
|
2450 |
|
|
hn1_El_ElNumberOfMissingInnerHits[i]->Write();
|
2451 |
|
|
}
|
2452 |
|
|
}
|
2453 |
|
|
if(writeWenuPlots) {
|
2454 |
|
|
for(int i=0;i<MAXS;i++) {
|
2455 |
|
|
hs_W_ElPt[i]->Write();
|
2456 |
|
|
hs_W_ElEta[i]->Write();
|
2457 |
|
|
hs_W_ElPhi[i]->Write();
|
2458 |
|
|
hs_W_ElDeltaPhi[i]->Write();
|
2459 |
|
|
hs_W_ElMet[i]->Write();
|
2460 |
|
|
hs_W_ElTransMass[i]->Write();
|
2461 |
|
|
hs_W_ElCharge[i]->Write();
|
2462 |
|
|
hs_W_Njets[i]->Write();
|
2463 |
|
|
hs_W_jetPt[i]->Write();
|
2464 |
|
|
}
|
2465 |
|
|
hc_W_counter->Write();
|
2466 |
|
|
}
|
2467 |
|
|
|
2468 |
|
|
for(int i=0;i<MAXZ;i++) {
|
2469 |
|
|
h_Z_invMass[i]->Write();
|
2470 |
|
|
h_Z_invMass2[i]->Write();
|
2471 |
|
|
h_Z_ptAll[i]->Write();
|
2472 |
|
|
h_Z_etaAll[i]->Write();
|
2473 |
|
|
h_Z_phiAll[i]->Write();
|
2474 |
|
|
h_Z_deltaPhi[i]->Write();
|
2475 |
|
|
h_Z_ptDiLepton[i]->Write();
|
2476 |
|
|
h_Z_ptDiLepton2[i]->Write();
|
2477 |
|
|
h_Z_etaDiLepton[i]->Write();
|
2478 |
|
|
h_Z_phiDiLepton[i]->Write();
|
2479 |
|
|
|
2480 |
|
|
h_Z_leadingJetPt[i]->Write();
|
2481 |
|
|
h_Z_summedJetPt[i]->Write();
|
2482 |
|
|
h_Z_leadingJetEta[i]->Write();
|
2483 |
|
|
h_Z_summedJetEta[i]->Write();
|
2484 |
|
|
h_Z_leadingJetPhi[i]->Write();
|
2485 |
|
|
h_Z_summedJetPhi[i]->Write();
|
2486 |
|
|
h_Z_nJets[i]->Write();
|
2487 |
|
|
h_Z_leadingJetDeltaPt[i]->Write();
|
2488 |
|
|
h_Z_leadingJetDeltaEta[i]->Write();
|
2489 |
|
|
h_Z_leadingJetDeltaPhi[i]->Write();
|
2490 |
|
|
h_Z_summedJetDeltaPt[i]->Write();
|
2491 |
|
|
h_Z_summedJetDeltaEta[i]->Write();
|
2492 |
|
|
h_Z_summedJetDeltaPhi[i]->Write();
|
2493 |
|
|
h_Z_recoilPt[i]->Write();
|
2494 |
|
|
h_Z_recoilEta[i]->Write();
|
2495 |
|
|
h_Z_recoilPhi[i]->Write();
|
2496 |
|
|
h_Z_metPt[i]->Write();
|
2497 |
|
|
h_Z_metPhi[i]->Write();
|
2498 |
|
|
|
2499 |
|
|
}
|
2500 |
|
|
std::cout << "analysisClass::Loop() ends" <<std::endl;
|
2501 |
|
|
}
|
2502 |
|
|
|
2503 |
|
|
|