Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
ElectroWeakAnalysis
ZEE
src
AnalysisErsatz.cc
Go to the documentation of this file.
1
/*#include "ElectroWeakAnalysis/ZEE/interface/AnalysisErsatz.h"
2
AnalysisErsatz::AnalysisErsatz(const edm::ParameterSet& ps)
3
{
4
MCTruthCollection_ = ps.getParameter<edm::InputTag>("MCTruthCollection");
5
ElectronCollection_ = ps.getParameter<edm::InputTag>("ElectronCollection");
6
GenMEtCollection_ = ps.getParameter<edm::InputTag>("GenMEtCollection");
7
//T1MEtCollection_ = ps.getParameter<edm::InputTag>("T1MEtCollection");
8
PfMEtCollection_ = ps.getParameter<edm::InputTag>("PfMEtCollection");
9
TcMEtCollection_ = ps.getParameter<edm::InputTag>("TcMEtCollection");
10
CaloMEtCollection_ = ps.getParameter<edm::InputTag>("CaloMEtCollection");
11
TriggerEvent_ = ps.getParameter<edm::InputTag>("TriggerEvent");
12
TriggerPath_ = ps.getParameter<edm::InputTag>("TriggerPath");
13
TriggerResults_ = ps.getParameter<edm::InputTag>("TriggerResults");
14
TriggerName_ = ps.getParameter<std::string>("TriggerName");
15
ErsatzEvent_ = ps.getParameter<bool>("ErsatzEvent");
16
double CElecPtMin = ps.getParameter<double>("CElecPtMin");
17
double CEB_siEiE = ps.getParameter<double>("CEB_sigmaIEtaIEta");
18
double CEB_dPhiIn = ps.getParameter<double>("CEB_deltaPhiIn");
19
double CEB_dEtaIn = ps.getParameter<double>("CEB_deltaEtaIn");
20
double CEB_EcalIso = ps.getParameter<double>("CEB_EcalIso");
21
double CEB_HcalIso = ps.getParameter<double>("CEB_HcalIso");
22
double CEB_TrckIso = ps.getParameter<double>("CEB_TrckIso");
23
double CEE_siEiE = ps.getParameter<double>("CEE_sigmaIEtaIEta");
24
double CEE_dPhiIn = ps.getParameter<double>("CEE_deltaPhiIn");
25
double CEE_dEtaIn = ps.getParameter<double>("CEE_deltaEtaIn");
26
double CEE_EcalIso = ps.getParameter<double>("CEE_EcalIso");
27
double CEE_HcalIso = ps.getParameter<double>("CEE_HcalIso");
28
double CEE_TrckIso = ps.getParameter<double>("CEE_TrckIso");
29
mW_ = ps.getParameter<double>("mW");
30
mZ_ = ps.getParameter<double>("mZ");
31
32
CutVector_.resize(13);
33
CutVector_[EtCut_] = CElecPtMin;
34
CutVector_[EB_sIhIh_] = CEB_siEiE;
35
CutVector_[EB_dPhiIn_] = CEB_dPhiIn;
36
CutVector_[EB_dEtaIn_] = CEB_dEtaIn;
37
CutVector_[EB_TrckIso_] = CEB_TrckIso;
38
CutVector_[EB_EcalIso_] = CEB_EcalIso;
39
CutVector_[EB_HcalIso_] = CEB_HcalIso;
40
CutVector_[EE_sIhIh_] = CEE_siEiE;
41
CutVector_[EE_dPhiIn_] = CEE_dPhiIn;
42
CutVector_[EE_dEtaIn_] = CEE_dEtaIn;
43
CutVector_[EE_TrckIso_] = CEE_TrckIso;
44
CutVector_[EE_EcalIso_] = CEE_EcalIso;
45
CutVector_[EE_HcalIso_] = CEE_HcalIso;
46
47
}
48
49
50
AnalysisErsatz::~AnalysisErsatz()
51
{
52
}
53
54
55
// ------------ method called once each job just before starting event loop ------------
56
void AnalysisErsatz::beginJob()
57
{
58
edm::Service<TFileService> fs;
59
t_ = fs->make<TTree>("AnalysisData", "Analysis of Ersatz MEt Properties");
60
61
t_->Branch("Boson_pt", &Boson_pt_,"Boson_pt/D");
62
t_->Branch("Boson_y", &Boson_y_,"Boson_y/D");
63
t_->Branch("Boson_phi", &Boson_phi_,"Boson_phi/D");
64
t_->Branch("Boson_m", &Boson_m_,"Boson_m/D");
65
t_->Branch("McElec1_pt", McElec1_pt_,"McElec1_pt[4]/D");
66
t_->Branch("McElec1_eta", McElec1_eta_,"McElec1_eta[4]/D");
67
t_->Branch("McElec3_pt", McElec3_pt_,"McElec3_pt[4]/D");
68
t_->Branch("McElec3_eta", McElec3_eta_,"McElec3_eta[4]/D");
69
t_->Branch("RndmInt", &RndmInt_, "RndmInt/I");
70
t_->Branch("RndmTrig", &RndmTrig_, "RndmTrig/I");
71
t_->Branch("RndmReco", &RndmReco_, "RndmReco/I");
72
t_->Branch("OthrTrig", &OthrTrig_, "OthrTrig/I");
73
t_->Branch("OthrReco", &OthrReco_, "OthrReco/I");
74
t_->Branch("RndmMcElec_pt", &RndmMcElec_pt_,"RndmMcElec_pt/D");
75
t_->Branch("RndmMcElec_eta", &RndmMcElec_eta_,"RndmMcElec_eta/D");
76
t_->Branch("RndmMcElec_phi", &RndmMcElec_phi_,"RndmMcElec_phi/D");
77
t_->Branch("RndmMcElec_Rescaled_pt", &RndmMcElec_Rescaled_pt_,"RndmMcElec_Rescaled_pt/D");
78
t_->Branch("RndmMcElec_Rescaled_eta", &RndmMcElec_Rescaled_eta_,"RndmMcElec_Rescaled_eta/D");
79
t_->Branch("RndmMcElec_Rescaled_phi", &RndmMcElec_Rescaled_phi_,"RndmMcElec_Rescaled_phi/D");
80
t_->Branch("RndmMcElecTRIG_pt", &RndmMcElecTRIG_pt_,"RndmMcElecTRIG_pt/D");
81
t_->Branch("RndmMcElecTRIG_eta", &RndmMcElecTRIG_eta_,"RndmMcElecTRIG_eta/D");
82
t_->Branch("RndmMcElecRECO_pt", &RndmMcElecRECO_pt_,"RndmMcElecRECO_pt/D");
83
t_->Branch("RndmMcElecRECO_eta", &RndmMcElecRECO_eta_,"RndmMcElecRECO_eta/D");
84
t_->Branch("OthrMcElec_pt", &OthrMcElec_pt_,"OthrMcElec_pt/D");
85
t_->Branch("OthrMcElec_eta", &OthrMcElec_eta_,"OthrMcElec_eta/D");
86
t_->Branch("OthrMcElec_phi", &OthrMcElec_phi_,"OthrMcElec_phi/D");
87
t_->Branch("OthrMcElec_Rescaled_pt", &OthrMcElec_Rescaled_pt_,"OthrMcElec_Rescaled_pt/D");
88
t_->Branch("OthrMcElec_Rescaled_eta", &OthrMcElec_Rescaled_eta_,"OthrMcElec_Rescaled_eta/D");
89
t_->Branch("OthrMcElec_Rescaled_phi", &OthrMcElec_Rescaled_phi_,"OthrMcElec_Rescaled_phi/D");
90
t_->Branch("OthrMcElecTRIG_pt", &OthrMcElecTRIG_pt_,"OthrMcElecTRIG_pt/D");
91
t_->Branch("OthrMcElecTRIG_eta", &OthrMcElecTRIG_eta_,"OthrMcElecTRIG_eta/D");
92
t_->Branch("OthrMcElecRECO_pt", &OthrMcElecRECO_pt_,"OthrMcElecRECO_pt/D");
93
t_->Branch("OthrMcElecRECO_eta", &OthrMcElecRECO_eta_,"OthrMcElecRECO_eta/D");
94
t_->Branch("McNu_pt", &McNu_pt_,"McNu_pt/D");
95
t_->Branch("McNu_eta", &McNu_eta_,"McNu_eta/D");
96
t_->Branch("McNu_phi", &McNu_phi_,"McNu_phi/D");
97
t_->Branch("McNu_vx", &McNu_vx_,"McNu_vx/D");
98
t_->Branch("McNu_vy", &McNu_vy_,"McNu_vy/D");
99
t_->Branch("McNu_vz", &McNu_vz_,"McNu_vz/D");
100
t_->Branch("McLeptons_dPhi", &McLeptons_dPhi_,"McLeptons_dPhi/D");
101
t_->Branch("McLeptons_dEta", &McLeptons_dEta_,"McLeptons_dEta/D");
102
t_->Branch("McLeptons_dR", &McLeptons_dR_,"McLeptons_dR/D");
103
t_->Branch("nSelElecs", &nSelElecs_,"nSelElecs/I");
104
t_->Branch("elec_q", elec_q_,"elec_q[4]/D");
105
t_->Branch("elec_pt", elec_pt_,"elec_pt[4]/D");
106
t_->Branch("elec_eta", elec_eta_,"elec_eta[4]/D");
107
t_->Branch("elec_phi", elec_phi_,"elec_phi[4]/D");
108
t_->Branch("elec_pt25", &elec_pt25_,"elec_pt25/D");
109
t_->Branch("elec_eta25", &elec_eta25_,"elec_eta25/D");
110
t_->Branch("elec_phi25", &elec_phi25_,"elec_phi25/D");
111
t_->Branch("elec_sIhIh", elec_sIhIh_, "elec_sIhIh[4]/D");
112
t_->Branch("elec_dPhiIn", elec_dPhiIn_, "elec_dPhiIn[4]/D");
113
t_->Branch("elec_dEtaIn", elec_dEtaIn_, "elec_dEtaIn[4]/D");
114
t_->Branch("elec_trckIso", elec_trckIso_,"elec_trckIso[4]/D");
115
t_->Branch("elec_ecalIso", elec_ecalIso_,"elec_ecalIso[4]/D");
116
t_->Branch("elec_hcalIso", elec_hcalIso_,"elec_hcalIso[4]/D");
117
t_->Branch("elec_e2x5Max", elec_e2x5Max_,"elec_e2x5Max[4]/D");
118
t_->Branch("elec_e1x5Max", elec_e1x5Max_,"elec_e1x5Max[4]/D");
119
t_->Branch("elec_e5x5", elec_e5x5_,"elec_e5x5[4]/D");
120
t_->Branch("elec_hoe", elec_hoe_,"elec_hoe[4]/D");
121
t_->Branch("elec_eop", elec_eop_,"elec_eop[4]/D");
122
t_->Branch("elec_pin", elec_pin_,"elec_pin[4]/D");
123
t_->Branch("elec_pout", elec_pout_,"elec_pout[4]/D");
124
125
t_->Branch("Selected_nuPt", Selected_nuPt_, "Selected_nuPt[4]/D");
126
t_->Branch("Selected_nuEta", Selected_nuEta_, "Selected_nuEta[4]/D");
127
t_->Branch("Selected_nuPhi", Selected_nuPhi_, "Selected_nuPhi[4]/D");
128
t_->Branch("caloMEt", &caloMEt_,"caloMEt/D");
129
t_->Branch("t1MEt", &t1MEt_,"t1MEt/D");
130
t_->Branch("t1MEtPhi", &t1MEtPhi_,"t1MEtPhi/D");
131
t_->Branch("t1SumEt", &t1SumEt_,"t1SumEt/D");
132
t_->Branch("pfMEt", &pfMEt_,"pfMEt/D");
133
t_->Branch("pfMEtPhi", &pfMEtPhi_,"pfMEtPhi/D");
134
t_->Branch("pfSumEt", &pfSumEt_,"pfSumEt/D");
135
t_->Branch("tcMEt", &tcMEt_,"tcMEt/D");
136
t_->Branch("tcMEtPhi", &tcMEtPhi_,"tcMEtPhi/D");
137
t_->Branch("tcSumEt", &tcSumEt_,"tcSumEt/D");
138
t_->Branch("caloSumEt", &caloSumEt_,"caloSumEt/D");
139
t_->Branch("caloMEt25", &caloMEt25_,"caloMEt25/D");
140
t_->Branch("caloMEt30", &caloMEt30_,"caloMEt30/D");
141
t_->Branch("caloMEtECAL25", &caloMEtECAL25_,"caloMEtECAL25/D");
142
t_->Branch("caloMEtECAL30", &caloMEtECAL30_,"caloMEtECAL30/D");
143
t_->Branch("caloMEtPhi", &caloMEtPhi_,"caloMEtPhi/D");
144
t_->Branch("caloMEtPhi25", &caloMEtPhi25_,"caloMEtPhi25/D");
145
t_->Branch("caloMEtPhi30", &caloMEtPhi30_,"caloMEtPhi30/D");
146
t_->Branch("caloMEtPhiECAL25", &caloMEtPhiECAL25_,"caloMEtPhiECAL25/D");
147
t_->Branch("caloMEtPhiECAL30", &caloMEtPhiECAL30_,"caloMEtPhiECAL30/D");
148
t_->Branch("caloMt", caloMt_,"caloMt[4]/D");
149
t_->Branch("caloMt25", caloMt25_,"caloMt25[4]/D");
150
t_->Branch("caloMt30", caloMt30_,"caloMt30[4]/D");
151
t_->Branch("caloUESumEt", &caloUESumEt_, "caloUESumEt_/D");
152
t_->Branch("nHltObj", &nHltObj_, "nHltObj/I");
153
t_->Branch("HltObj_pt_", HltObj_pt_,"HltObj_pt_[4]/D");
154
t_->Branch("HltObj_eta_", HltObj_eta_,"HltObj_eta_[4]/D");
155
t_->Branch("genMEt", &genMEt_,"genMEt/D");
156
t_->Branch("genUESumEt", &genUESumEt_, "genUESumEt_/D");
157
158
}
159
// ------------ method called to for each event ------------
160
void AnalysisErsatz::analyze(const edm::Event& evt, const edm::EventSetup& es)
161
{
162
caloMEt_ = -99.; caloSumEt_ = -99.; caloUESumEt_ = -99.;
163
caloMEt25_ = -99.; caloMEt30_ = -99.;
164
caloMEtECAL25_ = -99.; caloMEtECAL30_ =- 99.;
165
caloMEtPhi_ = -99.; caloMEtPhi25_ = -99.; caloMEtPhi30_ = -99.;
166
caloMEtPhiECAL25_ = -99.; caloMEtPhiECAL30_ =- 99.;
167
genMEt_ = -99.; genUESumEt_ = -99.; genMEt25_ = -99.;
168
t1MEt_ = -99.; t1MEtPhi_ = -99.; t1SumEt_ = -99.;
169
pfMEt_ = -99.; pfMEtPhi_ = -99.; pfSumEt_ = -99.;
170
tcMEt_ = -99.; tcMEtPhi_ = -99.; tcSumEt_ = -99.;
171
nHltObj_ = -99; nSelElecs_ = -99;
172
Boson_pt_ = -99.; Boson_y_ = -99.; Boson_m_ = -99.; Boson_mt_ = -99.; Boson_phi_ = -99.;
173
McNu_pt_ = -99.; McNu_eta_ = -99.; McNu_phi_ = -99.;
174
McNu_vx_= -99.; McNu_vy_= -99.; McNu_vz_ = -99.;
175
McLeptons_dPhi_ = -99.; McLeptons_dEta_ = -99.; McLeptons_dR_ = -99.;
176
RndmMcElec_pt_ = -99.; RndmMcElec_eta_ = -99.; RndmMcElec_phi_ = -99.;
177
RndmMcElec_Rescaled_pt_ = -99.; RndmMcElec_Rescaled_eta_ = -99.; RndmMcElec_Rescaled_phi_ = -99.;
178
RndmMcElecTRIG_pt_ = -99.; RndmMcElecTRIG_eta_ = -99.; RndmMcElecRECO_pt_ = -99.; RndmMcElecRECO_eta_ = -99.;
179
OthrMcElec_pt_ = -99.; OthrMcElec_eta_ = -99.; OthrMcElec_phi_ = -99.;
180
OthrMcElec_Rescaled_pt_ = -99.; OthrMcElec_Rescaled_eta_ = -99.; OthrMcElec_Rescaled_phi_ = -99.;
181
OthrMcElecTRIG_pt_ = -99.; OthrMcElecTRIG_eta_ = -99.; OthrMcElecRECO_pt_ = -99.; OthrMcElecRECO_eta_ = -99.;
182
RndmTrig_ = 0; RndmReco_ = 0; OthrTrig_ = 0; OthrReco_ = 0;
183
elec_pt25_ = -99.; elec_eta25_= -99.; elec_eta25_= -99.;
184
for(int i = 0; i < nEntries_arr_; ++i)
185
{
186
McElec1_pt_[i] = -99.; McElec1_eta_[i] = -99.;
187
McElec3_pt_[i] = -99.; McElec3_eta_[i] = -99.;
188
elec_q_[i] = -99.; elec_pt_[i] = -99.; elec_eta_[i]= -99.; elec_phi_[i]= -99.;
189
elec_trckIso_[i] = -99.; elec_ecalIso_[i] = -99.; elec_hcalIso_[i] = -99.;
190
elec_sIhIh_[i] = -99.; elec_dPhiIn_[i] = -99.; elec_dEtaIn_[i] = -99.;
191
elec_e5x5_[i] = -99.; elec_e2x5Max_[i] = -99.; elec_e1x5Max_[i] = -99.;
192
elec_hoe_[i] = -99.; elec_eop_[i] = -99.; elec_pin_[i] = -99.; elec_pout_[i] = -99.;
193
Selected_nuPt_[i] = -99.; Selected_nuEta_[i] = -99.; Selected_nuPhi_[i] = -99.;
194
caloMt_[i] = -99.; caloMt25_[i] = -99.; caloMt30_[i] = -99.;
195
genMt_[i] = -99.;
196
}
197
edm::Handle<reco::GenParticleCollection> pGenPart;
198
try
199
{
200
evt.getByLabel(MCTruthCollection_, pGenPart);
201
}catch(cms::Exception& ex)
202
{
203
edm::LogError("")<<"Error! Can't get collection with label "<< MCTruthCollection_.label();
204
}
205
edm::Handle<reco::GsfElectronCollection> pElectrons;
206
try
207
{
208
evt.getByLabel(ElectronCollection_, pElectrons);
209
}catch(cms::Exception &ex)
210
{
211
edm::LogError("analyze") <<"Can't get collection with label "<< ElectronCollection_.label();
212
}
213
edm::Handle<reco::CaloMETCollection> pCaloMEt;
214
try
215
{
216
evt.getByLabel(CaloMEtCollection_, pCaloMEt);
217
}catch(cms::Exception &ex)
218
{
219
edm::LogError("analyze")<<"Can't get collection with label "<< CaloMEtCollection_.label();
220
}
221
//edm::Handle<reco::METCollection> pT1MEt;
222
//try
223
//{
224
// evt.getByLabel(T1MEtCollection_, pT1MEt);
225
//}catch(cms::Exception &ex)
226
//{
227
// edm::LogError("analyze")<<"Can't get collection with label "<< T1MEtCollection_.label();
228
//}
229
edm::Handle<reco::PFMETCollection> pPfMEt;
230
try
231
{
232
evt.getByLabel(PfMEtCollection_, pPfMEt);
233
}catch(cms::Exception &ex)
234
{
235
edm::LogError("analyze")<<"Can't get collection with label "<< PfMEtCollection_.label();
236
}
237
edm::Handle<reco::METCollection> pTcMEt;
238
try
239
{
240
evt.getByLabel(TcMEtCollection_, pTcMEt);
241
}catch(cms::Exception &ex)
242
{
243
edm::LogError("analyze")<<"Can't get collection with label "<< TcMEtCollection_.label();
244
}
245
edm::Handle<reco::GenMETCollection> pGenMEt;
246
try
247
{
248
evt.getByLabel(GenMEtCollection_, pGenMEt);
249
}catch(cms::Exception &ex)
250
{
251
edm::LogError("analyze")<<"Can't get collection with label "<< GenMEtCollection_.label();
252
}
253
edm::Handle<edm::TriggerResults> pTriggerResults;
254
try
255
{
256
evt.getByLabel(TriggerResults_, pTriggerResults);
257
}catch(cms::Exception &ex)
258
{
259
edm::LogError("analyze")<<"Cant get collection with label "<< TriggerResults_.label();
260
}
261
const edm::TriggerResults* HltRes = pTriggerResults.product();
262
edm::Handle<trigger::TriggerEvent> pHLT;
263
if(HltRes->accept(34) !=0)
264
{
265
try
266
{
267
evt.getByLabel(TriggerEvent_, pHLT);
268
}catch(cms::Exception &ex)
269
{
270
edm::LogError("analyze")<<"Can't get collection with label "<< TriggerEvent_.label();
271
}
272
}
273
edm::LogDebug_("analyse","", 143)<<"Have obtained collections."<<std::endl;
274
int m = 0; int n = 0; int k = 0;
275
bool BosonAnalysed = false; bool nuInEta25 = false; bool nuInEta30 = false;
276
double elecEt = 0;
277
std::vector<reco::GenParticleCollection::const_iterator> Leptons;
278
const reco::GenParticleCollection *McCand = pGenPart.product();
279
math::XYZTLorentzVector RndmMcElec, OthrMcElec;
280
edm::Service<edm::RandomNumberGenerator> rng;
281
math::XYZTLorentzVector RndmMcElec_alt, OthrMcElec_alt, Zboson;
282
CLHEP::RandFlat flatDistribution(rng->getEngine(), 0, 2);
283
double RandomNum = flatDistribution.fire();
284
RndmInt_ = int(RandomNum);
285
// std::cout<<"Random Number = "<< RandomNum <<"\t int = "<< int(RandomNum)<<std::endl;
286
for(reco::GenParticleCollection::const_iterator McP = McCand->begin(); McP != McCand->end(); ++McP)
287
{
288
const reco::Candidate* mum = McP->mother();
289
if(McP->pdgId()==11)
290
{
291
edm::LogDebug_("", "", 216)<<"Found electron, mother = "<< mum->pdgId() <<"\t status = "<< McP->status()
292
<<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta();
293
}
294
if(McP->pdgId()==-11)
295
{
296
edm::LogDebug_("", "", 221)<<"Found positron, mother = "<< mum->pdgId() <<"\t status = "<< McP->status()
297
<<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta();
298
}
299
if(abs(McP->pdgId())==12)
300
{
301
edm::LogDebug_("", "", 216)<<"Found neutrino, mother = "<< mum->pdgId() <<"\t status = "<< McP->status()
302
<<"\tpt = "<< McP->pt() <<"\teta = "<< McP->eta();
303
}
304
if(abs(McP->pdgId())==11 && (abs(mum->pdgId()) == 24|| abs(mum->pdgId()) == 23))
305
{
306
// Leptons.push_back(McP);
307
if(!BosonAnalysed)
308
{
309
Boson_pt_ = mum->pt();
310
Boson_y_ = mum->y();
311
Boson_phi_ = mum->phi();
312
Boson_m_ = mum->mass();
313
Boson_mt_ = mum->mt();
314
if(abs(mum->pdgId() == 23)) Zboson = mum->p4();
315
BosonAnalysed = true;
316
}
317
McElec3_pt_[k] = McP->pt();
318
McElec3_eta_[k] = McP->eta();
319
if(k == int(RandomNum))
320
{
321
RndmMcElec_alt = McP->p4();
322
}else OthrMcElec_alt = McP->p4();
323
++k;
324
}
325
if(abs(McP->pdgId())==12 && abs(mum->pdgId()) == 24)
326
{
327
Leptons.push_back(McP);
328
edm::LogDebug_("","",328)<<"Pushed neutrino back into Leptons. Leptons.size() = "<< Leptons.size();
329
McNu_pt_ = McP->pt();
330
McNu_eta_ = McP->eta();
331
edm::LogDebug_("","",332)<<"ECAL eta = "<< McNu_ECALeta_;
332
McNu_phi_ = McP->phi();
333
McNu_vx_ = McP->vx();
334
McNu_vy_ = McP->vy();
335
McNu_vz_ = McP->vz();
336
if(fabs(McNu_eta_) < 2.5) nuInEta25 = true;
337
if(fabs(McNu_eta_) < 3.0) nuInEta30 = true;
338
++n;
339
}
340
if(abs(McP->pdgId())==11 && McP->status() == 1 && (abs(mum->pdgId()) == 11))
341
{
342
Leptons.push_back(McP);
343
edm::LogDebug_("","",344)<<"Pushed electron back into Leptons. Leptons.size() = "<< Leptons.size();
344
McElec1_pt_[m] = McP->pt();
345
McElec1_eta_[m] = McP->eta();
346
if(m == int(RandomNum))
347
{
348
RndmMcElec = McP->p4();
349
RndmMcElec_pt_ = McElec1_pt_[m];
350
RndmMcElec_eta_ = McElec1_eta_[m];
351
RndmMcElec_phi_ = McP->phi();
352
}
353
else{
354
OthrMcElec = McP->p4();
355
OthrMcElec_pt_ = McElec1_pt_[m];
356
OthrMcElec_eta_ = McElec1_eta_[m];
357
OthrMcElec_phi_ = McP->phi();
358
}
359
360
elecEt += McP->pt();
361
++m;
362
}
363
}
364
edm::LogDebug_("", "", 362)<<"Size of Leptons = "<< Leptons.size();
365
McLeptons_dPhi_ = reco::deltaPhi(Leptons[0]->phi(), Leptons[1]->phi());
366
McLeptons_dEta_ = Leptons[0]->eta() - Leptons[1]->eta();
367
McLeptons_dR_ = reco::deltaR(*Leptons[0], *Leptons[1]);
368
edm::LogDebug_("","",369)<<"McLeptons_dR_ = "<< McLeptons_dR_;
369
370
math::XYZTLorentzVector Wboson;
371
if(McNu_pt_ < -98.)
372
{
373
edm::LogDebug_("", "", 303)<<"Z pt = "<< Zboson.Pt() << "Z boson mass = " << Zboson.M();
374
edm::LogDebug_("","", 307)<<"Z boson in lab frame = ("<<Zboson.Px()<<", "<<Zboson.Py()<<", "
375
<<Zboson.Pz()<<", "<<Zboson.E()<<")";
376
377
Wboson.SetCoordinates(Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2()+(mW_*mW_*Zboson.M2())/(mZ_*mZ_)));
378
edm::LogDebug_("","", 307)<<"W boson in lab frame = ("<<Wboson.Px()<<", "<<Wboson.Py()<<", "
379
<<Wboson.Pz()<<", "<<Wboson.E()<<")";
380
ROOT::Math::Boost CoMBoost(Zboson.BoostToCM());
381
edm::LogDebug_("","", 307)<<"RndmElec in lab frame = ("<<RndmMcElec_alt.Px()<<", "<<RndmMcElec_alt.Py()<<", "
382
<<RndmMcElec_alt.Pz()<<", "<<RndmMcElec_alt.E()<<")";
383
edm::LogDebug_("","", 307)<<"OthrElec in lab frame = ("<<OthrMcElec_alt.Px()<<", "<<OthrMcElec_alt.Py()<<", "
384
<<OthrMcElec_alt.Pz()<<", "<<OthrMcElec_alt.E()<<")";
385
RndmMcElec_alt = CoMBoost(RndmMcElec_alt);
386
OthrMcElec_alt = CoMBoost(OthrMcElec_alt);
387
edm::LogDebug_("","", 307)<<"RndmElec in Z rest frame = ("<<RndmMcElec_alt.Px()<<", "<<RndmMcElec_alt.Py()<<", "
388
<<RndmMcElec_alt.Pz()<<", "<<RndmMcElec_alt.E()<<")";
389
edm::LogDebug_("","", 307)<<"OthrElec in Z rest frame = ("<<OthrMcElec_alt.Px()<<", "<<OthrMcElec_alt.Py()<<", "
390
<<OthrMcElec_alt.Pz()<<", "<<OthrMcElec_alt.E()<<")";
391
RndmMcElec_alt *= mW_/mZ_;
392
OthrMcElec_alt *= mW_/mZ_;
393
394
double E_W = Wboson.E();
395
ROOT::Math::Boost BackToLab(Wboson.Px()/E_W, Wboson.Py()/E_W, Wboson.Pz()/E_W);
396
397
RndmMcElec_alt = BackToLab(RndmMcElec_alt);
398
RndmMcElec_Rescaled_pt_ = RndmMcElec_alt.Pt();
399
RndmMcElec_Rescaled_eta_ = RndmMcElec_alt.Eta();
400
RndmMcElec_Rescaled_phi_ = RndmMcElec_alt.Phi();
401
402
OthrMcElec_alt = BackToLab(OthrMcElec_alt);
403
OthrMcElec_Rescaled_pt_ = OthrMcElec_alt.Pt();
404
OthrMcElec_Rescaled_eta_ = OthrMcElec_alt.Eta();
405
OthrMcElec_Rescaled_phi_ = OthrMcElec_alt.Phi();
406
407
math::XYZTLorentzVector sum = OthrMcElec_alt+RndmMcElec_alt;
408
edm::LogDebug_("","", 307)<<"RndmElec back in lab frame = ("<<RndmMcElec_alt.Px()<<", "<<RndmMcElec_alt.Py()<<", "
409
<<RndmMcElec_alt.Pz()<<", "<<RndmMcElec_alt.E()<<")";
410
edm::LogDebug_("","", 307)<<"OthrElec back in lab frame = ("<<OthrMcElec_alt.Px()<<", "<<OthrMcElec_alt.Py()<<", "
411
<<OthrMcElec_alt.Pz()<<", "<<OthrMcElec_alt.E()<<")";
412
edm::LogDebug_("","", 307)<<"OthrElec +RndmElec = ("<<sum.Px()<<", "<<sum.Py()<<", "
413
<<sum.Pz()<<", "<<sum.E()<<")";
414
}else{
415
edm::LogDebug_("","", 416)<<"McNu_pt_ = "<<McNu_pt_;
416
RndmMcElec_Rescaled_pt_ = RndmMcElec_pt_;
417
edm::LogDebug_("","",416)<<" RndmMcElec_Rescaled_pt_ = "<< RndmMcElec_Rescaled_pt_;
418
OthrMcElec_Rescaled_pt_ = OthrMcElec_pt_;
419
}
420
//TriggerNames_.init(*HltRes);
421
422
edm::LogDebug_("","", 420)<<"HltRes->accept() = "<< HltRes->accept(34);
423
if(HltRes->accept(34) ==0) edm::LogError("")<<"Event did not pass HLT path 34, assumed to be "<< TriggerName_ <<"!";
424
unsigned int fId = 999;
425
if(HltRes->accept(34) !=0)
426
{
427
fId = pHLT->filterIndex(TriggerPath_); // something wrong with this step
428
edm::LogDebug_("","",426)<<"fId = pHLT->filterIndex("<< TriggerPath_<<") = "<< fId;
429
const trigger::Keys& ring = pHLT->filterKeys(fId);
430
const trigger::TriggerObjectCollection& HltObjColl = pHLT->getObjects();
431
nHltObj_ = ring.size();
432
for(int k = 0; k < nHltObj_; ++k)
433
{
434
const trigger::TriggerObject& HltObj = HltObjColl[ring[k]];
435
if(reco::deltaR(RndmMcElec, HltObj) < 0.1) RndmTrig_ = 1;
436
if(reco::deltaR(OthrMcElec, HltObj) < 0.1) OthrTrig_ = 1;
437
if(k < 4)
438
{
439
HltObj_pt_[k] = HltObj.pt();
440
HltObj_eta_[k] = HltObj.eta();
441
}
442
}
443
}
444
if(RndmTrig_ != 0)
445
{
446
RndmMcElecTRIG_pt_ = RndmMcElec_pt_;
447
RndmMcElecTRIG_eta_ = RndmMcElec_eta_;
448
}
449
if(OthrTrig_ != 0)
450
{
451
OthrMcElecTRIG_pt_ = OthrMcElec_pt_;
452
OthrMcElecTRIG_eta_ = OthrMcElec_eta_;
453
}
454
const reco::GenMETCollection* genMEtCollection = pGenMEt.product();
455
reco::GenMETCollection::const_iterator genMEt = genMEtCollection->begin();
456
genMEt_ = genMEt->pt();
457
genUESumEt_ = genMEt->sumEt() - elecEt;
458
// std::cout<<"genMEt->sumEt() - elecEt = "<< genMEt->sumEt()<<" - "<< elecEt <<" = "<< genUESumEt_;
459
460
const reco::CaloMETCollection* caloMEtCollection = pCaloMEt.product();
461
reco::CaloMETCollection::const_iterator met = caloMEtCollection->begin();
462
caloMEt_ = met->pt();
463
edm::LogDebug_("","",462)<<"caloMEt_ = "<< caloMEt_;
464
caloMEtPhi_ = met->phi();
465
caloSumEt_ = met->sumEt();
466
467
//const reco::METCollection* t1MEtCollection = pT1MEt.product();
468
//reco::METCollection::const_iterator t1met = t1MEtCollection->begin();
469
//t1MEt_ = t1met->pt();
470
//edm::LogDebug_("","",462)<<"t1MEt_ = "<< t1MEt_;
471
//t1MEtPhi_ = t1met->phi();
472
//t1SumEt_ = t1met->sumEt();
473
474
const reco::PFMETCollection* pfMEtCollection = pPfMEt.product();
475
reco::PFMETCollection::const_iterator pfmet = pfMEtCollection->begin();
476
pfMEt_ = pfmet->pt();
477
edm::LogDebug_("","",462)<<"pfMEt_ = "<< pfMEt_;
478
pfMEtPhi_ = pfmet->phi();
479
pfSumEt_ = pfmet->sumEt();
480
481
const reco::METCollection* tcMEtCollection = pTcMEt.product();
482
reco::METCollection::const_iterator tcmet = tcMEtCollection->begin();
483
tcMEt_ = tcmet->pt();
484
edm::LogDebug_("","",462)<<"tcMEt_ = "<< tcMEt_;
485
tcMEtPhi_ = tcmet->phi();
486
tcSumEt_ = tcmet->sumEt();
487
488
if(fabs(McNu_ECALeta_) < 2.5)
489
{
490
caloMEtECAL25_ = met->pt();
491
caloMEtPhiECAL25_ = met->phi();
492
}
493
if(fabs(McNu_ECALeta_) < 3.0)
494
{
495
caloMEtECAL30_ = met->pt();
496
caloMEtPhiECAL30_ = met->phi();
497
}
498
if(nuInEta25)
499
{
500
genMEt25_ = genMEt->pt();
501
caloMEt25_ = met->pt();
502
caloMEtPhi25_ = met->phi();
503
}
504
if(nuInEta30){
505
caloMEt30_ = met->pt();
506
caloMEtPhi30_ = met->phi();
507
}
508
509
std::vector<reco::GsfElectronRef> UniqueElectrons = uniqueElectronFinder(pElectrons);
510
caloUESumEt_ = met->sumEt();
511
for(std::vector<reco::GsfElectronRef>::const_iterator Relec = UniqueElectrons.begin(); Relec != UniqueElectrons.end(); ++Relec)
512
{
513
reco::GsfElectronRef elec = *Relec;
514
math::XYZTLorentzVector sc = PhysicsVector(met->vertex(), *(elec->superCluster()));
515
if(reco::deltaR(RndmMcElec, *elec) < 0.1) RndmReco_ = 1;
516
if(reco::deltaR(OthrMcElec, *elec) < 0.1) OthrReco_ = 1;
517
caloUESumEt_ -= sc.Pt();
518
}
519
if(RndmReco_ != 0)
520
{
521
RndmMcElecRECO_pt_ = RndmMcElec_pt_;
522
RndmMcElecRECO_eta_ = RndmMcElec_eta_;
523
}
524
if(OthrReco_ != 0)
525
{
526
OthrMcElecRECO_pt_ = OthrMcElec_pt_;
527
OthrMcElecRECO_eta_ = OthrMcElec_eta_;
528
}
529
edm::LogDebug_("analyse","", 230)<<"Analysed UE information"<<std::endl;
530
if(HltRes->accept(34) != 0)
531
{
532
std::vector<reco::GsfElectronRef> SelectedElectrons = electronSelector(UniqueElectrons, pHLT, fId, CutVector_);
533
nSelElecs_ = SelectedElectrons.size();
534
m = 0;
535
for(std::vector<reco::GsfElectronRef>::const_iterator Relec = SelectedElectrons.begin(); Relec != SelectedElectrons.end(); ++Relec)
536
{
537
reco::GsfElectronRef elec = *Relec;
538
if(elec->pt() > CutVector_[0])
539
{
540
elec_q_[m] = elec->charge();
541
elec_pt_[m] = elec->pt();
542
elec_eta_[m] = elec->eta();
543
elec_phi_[m] = elec->phi();
544
elec_trckIso_[m] = elec->isolationVariables03().tkSumPt;
545
elec_ecalIso_[m] = elec->isolationVariables04().ecalRecHitSumEt;
546
elec_hcalIso_[m] = elec->isolationVariables04().hcalDepth1TowerSumEt
547
+ elec->isolationVariables04().hcalDepth2TowerSumEt;
548
elec_sIhIh_[m] = elec->scSigmaIEtaIEta();
549
elec_dPhiIn_[m] = elec->deltaPhiSuperClusterTrackAtVtx();
550
elec_dEtaIn_[m] = elec->deltaEtaSuperClusterTrackAtVtx();
551
elec_e5x5_[m] = elec->scE5x5();
552
elec_e2x5Max_[m] = elec->scE2x5Max();
553
elec_e2x5Max_[m] = elec->scE1x5();
554
elec_hoe_[m] = elec->hadronicOverEm();
555
elec_eop_[m] = elec->eSuperClusterOverP();
556
elec_pin_[m] = elec->trackMomentumAtVtx().R();
557
elec_pout_[m] = elec->trackMomentumOut().R();
558
559
Selected_nuPt_[m] = McNu_pt_;
560
Selected_nuEta_[m] = McNu_eta_;
561
Selected_nuPhi_[m] = McNu_phi_;
562
caloMt_[m] = sqrt(2.*elec->pt()*met->pt()*(1-cos(reco::deltaPhi(elec->phi(), met->phi()))));
563
if(nuInEta25)
564
{
565
caloMt25_[m] = caloMt_[m];
566
elec_pt25_ = elec->pt();
567
elec_eta25_ = elec->eta();
568
elec_phi25_ = elec->phi();
569
}
570
if(nuInEta30) caloMt30_[m] = caloMt_[m];
571
++m;
572
}
573
}
574
}
575
576
edm::LogDebug_("analyse","", 248)<<"Analysed final selection information"<<std::endl;
577
t_->Fill();
578
}
579
580
581
582
// ------------ method called once each job just after ending the event loop ------------
583
void AnalysisErsatz::endJob() {
584
}
585
586
//define this as a plug-in
587
DEFINE_FWK_MODULE(AnalysisErsatz);
588
*/
Generated for CMSSW Reference Manual by
1.8.5