@@ -76,26 +76,25 @@ void OpenDataTreeProducer::beginJob() {
76
76
mTree = fs->make < TTree >(" OpenDataTree" , " OpenDataTree" );
77
77
78
78
// Variables of the flat tuple
79
- mTree ->Branch (" ak5_njet " , &ak5_njet , " ak5_njet /i" );
80
- mTree ->Branch (" ak5_pt " , ak5_pt , " ak5_pt[ak5_njet ]/F" );
81
- mTree ->Branch (" ak5_eta " , ak5_eta , " ak5_eta[ak5_njet ]/F" );
82
- mTree ->Branch (" ak5_phi " , ak5_phi , " ak5_phi[ak5_njet ]/F" );
83
- mTree ->Branch (" ak5_E " , ak5_E , " ak5_E[ak5_njet ]/F" );
84
- mTree ->Branch (" ak5_tightID " , ak5_tightID , " ak5_tightID[ak5_njet ]/O" );
85
- mTree ->Branch (" ak5_area " , ak5_area , " ak5_area[ak5_njet ]/F" );
86
- mTree ->Branch (" ak5_jes " , ak5_jes , " ak5_jes[ak5_njet ]/F" );
87
- mTree ->Branch (" ak5_igen " , ak5_igen , " ak5_igen[ak5_njet ]/I" );
79
+ mTree ->Branch (" njet " , &njet , " njet /i" );
80
+ mTree ->Branch (" jet_pt " , jet_pt , " jet_pt[njet ]/F" );
81
+ mTree ->Branch (" jet_eta " , jet_eta , " jet_eta[njet ]/F" );
82
+ mTree ->Branch (" jet_phi " , jet_phi , " jet_phi[njet ]/F" );
83
+ mTree ->Branch (" jet_E " , jet_E , " jet_E[njet ]/F" );
84
+ mTree ->Branch (" jet_tightID " , jet_tightID , " jet_tightID[njet ]/O" );
85
+ mTree ->Branch (" jet_area " , jet_area , " jet_area[njet ]/F" );
86
+ mTree ->Branch (" jet_jes " , jet_jes , " jet_jes[njet ]/F" );
87
+ mTree ->Branch (" jet_igen " , jet_igen , " jet_igen[njet ]/I" );
88
88
89
89
// AK7 variables
90
- mTree ->Branch (" ak7_njet" , &ak7_njet, " ak7_njet/i" );
91
- mTree ->Branch (" ak7_pt" , ak7_pt, " ak7_pt[ak7_njet]/F" );
92
- mTree ->Branch (" ak7_eta" , ak7_eta, " ak7_eta[ak7_njet]/F" );
93
- mTree ->Branch (" ak7_phi" , ak7_phi, " ak7_phi[ak7_njet]/F" );
94
- mTree ->Branch (" ak7_E" , ak7_E, " ak7_E[ak7_njet]/F" );
95
- mTree ->Branch (" ak7_area" , ak7_area, " ak7_area[ak7_njet]/F" );
96
- mTree ->Branch (" ak7_jes" , ak7_jes, " ak7_jes[ak7_njet]/F" );
97
- // mTree->Branch("ak7_igen", ak7_igen, "ak7_igen[ak7_njet]/I");
98
- mTree ->Branch (" ak7_to_ak5" , ak7_to_ak5, " ak7_to_ak5[ak7_njet]/I" );
90
+ mTree ->Branch (" njet_ak7" , &njet_ak7, " njet_ak7/i" );
91
+ mTree ->Branch (" jet_pt_ak7" , jet_pt_ak7, " jet_pt_ak7[njet_ak7]/F" );
92
+ mTree ->Branch (" jet_eta_ak7" , jet_eta_ak7, " jet_eta_ak7[njet_ak7]/F" );
93
+ mTree ->Branch (" jet_phi_ak7" , jet_phi_ak7, " jet_phi_ak7[njet_ak7]/F" );
94
+ mTree ->Branch (" jet_E_ak7" , jet_E_ak7, " jet_E_ak7[njet_ak7]/F" );
95
+ mTree ->Branch (" jet_area_ak7" , jet_area_ak7, " jet_area_ak7[njet_ak7]/F" );
96
+ mTree ->Branch (" jet_jes_ak7" , jet_jes_ak7, " jet_jes_ak7[njet_ak7]/F" );
97
+ mTree ->Branch (" ak7_to_ak5" , ak7_to_ak5, " ak7_to_ak5[njet_ak7]/I" );
99
98
100
99
mTree ->Branch (" ngen" , &ngen, " ngen/i" );
101
100
mTree ->Branch (" gen_pt" , gen_pt, " gen_pt[ngen]/F" );
@@ -116,22 +115,22 @@ void OpenDataTreeProducer::beginJob() {
116
115
mTree ->Branch (" pthat" , &pthat, " pthat/F" );
117
116
mTree ->Branch (" mcweight" , &mcweight, " mcweight/F" );
118
117
119
- mTree ->Branch (" chf" , chf, " chf[ak5_njet ]/F" );
120
- mTree ->Branch (" nhf" , nhf, " nhf[ak5_njet ]/F" );
121
- mTree ->Branch (" phf" , phf, " phf[ak5_njet ]/F" );
122
- mTree ->Branch (" elf" , elf, " elf[ak5_njet ]/F" );
123
- mTree ->Branch (" muf" , muf, " muf[ak5_njet ]/F" );
124
- mTree ->Branch (" hf_hf" , hf_hf, " hf_hf[ak5_njet ]/F" );
125
- mTree ->Branch (" hf_phf" , hf_phf, " hf_phf[ak5_njet ]/F" );
126
- mTree ->Branch (" hf_hm" , hf_hm, " hf_hm[ak5_njet ]/i" );
127
- mTree ->Branch (" hf_phm" , hf_phm, " hf_phm[ak5_njet ]/i" );
128
- mTree ->Branch (" chm" , chm, " chm[ak5_njet ]/i" );
129
- mTree ->Branch (" nhm" , nhm, " nhm[ak5_njet ]/i" );
130
- mTree ->Branch (" phm" , phm, " phm[ak5_njet ]/i" );
131
- mTree ->Branch (" elm" , elm, " elm[ak5_njet ]/i" );
132
- mTree ->Branch (" mum" , mum, " mum[ak5_njet ]/i" );
133
- mTree ->Branch (" beta" , beta, " beta[ak5_njet ]/F" );
134
- mTree ->Branch (" bstar" , bstar, " bstar[ak5_njet ]/F" );
118
+ mTree ->Branch (" chf" , chf, " chf[njet ]/F" );
119
+ mTree ->Branch (" nhf" , nhf, " nhf[njet ]/F" );
120
+ mTree ->Branch (" phf" , phf, " phf[njet ]/F" );
121
+ mTree ->Branch (" elf" , elf, " elf[njet ]/F" );
122
+ mTree ->Branch (" muf" , muf, " muf[njet ]/F" );
123
+ mTree ->Branch (" hf_hf" , hf_hf, " hf_hf[njet ]/F" );
124
+ mTree ->Branch (" hf_phf" , hf_phf, " hf_phf[njet ]/F" );
125
+ mTree ->Branch (" hf_hm" , hf_hm, " hf_hm[njet ]/i" );
126
+ mTree ->Branch (" hf_phm" , hf_phm, " hf_phm[njet ]/i" );
127
+ mTree ->Branch (" chm" , chm, " chm[njet ]/i" );
128
+ mTree ->Branch (" nhm" , nhm, " nhm[njet ]/i" );
129
+ mTree ->Branch (" phm" , phm, " phm[njet ]/i" );
130
+ mTree ->Branch (" elm" , elm, " elm[njet ]/i" );
131
+ mTree ->Branch (" mum" , mum, " mum[njet ]/i" );
132
+ mTree ->Branch (" beta" , beta, " beta[njet ]/F" );
133
+ mTree ->Branch (" bstar" , bstar, " bstar[njet ]/F" );
135
134
136
135
}
137
136
@@ -220,7 +219,6 @@ void OpenDataTreeProducer::analyze(edm::Event const &event_obj,
220
219
prescales[itrig] = prescalePair.first *prescalePair.second ;
221
220
}
222
221
223
-
224
222
// Rho
225
223
Handle< double > rho_handle;
226
224
event_obj.getByLabel (mSrcPFRho , rho_handle);
@@ -376,41 +374,41 @@ void OpenDataTreeProducer::analyze(edm::Event const &event_obj,
376
374
377
375
378
376
// Variables of the tuple
379
- ak5_tightID [ak5_index] = tightID;
380
- ak5_area [ak5_index] = i_ak5jet->jetArea ();
381
- ak5_jes [ak5_index] = 1 /i_ak5jet->jecFactor (0 ); // JEC factor (pfjet is already corrected !!)
377
+ jet_tightID [ak5_index] = tightID;
378
+ jet_area [ak5_index] = i_ak5jet->jetArea ();
379
+ jet_jes [ak5_index] = 1 /i_ak5jet->jecFactor (0 ); // JEC factor (pfjet is already corrected !!)
382
380
383
381
// p4 is already corrected!
384
382
auto p4 = i_ak5jet->p4 ();
385
- ak5_pt [ak5_index] = p4.Pt ();
386
- ak5_eta [ak5_index] = p4.Eta ();
387
- ak5_phi [ak5_index] = p4.Phi ();
388
- ak5_E [ak5_index] = p4.E ();
383
+ jet_pt [ak5_index] = p4.Pt ();
384
+ jet_eta [ak5_index] = p4.Eta ();
385
+ jet_phi [ak5_index] = p4.Phi ();
386
+ jet_E [ak5_index] = p4.E ();
389
387
390
388
// Matching a GenJet to this PFjet
391
389
if (mIsMCarlo && ngen > 0 ) {
392
390
393
391
// Index of the generated jet matching this PFjet
394
- ak5_igen [ak5_index] = -1 ; // is -1 if no matching jet
392
+ jet_igen [ak5_index] = -1 ; // is -1 if no matching jet
395
393
396
394
// Search generated jet with minimum distance to this PFjet
397
395
float r2min (999 );
398
396
for (unsigned int gen_index = 0 ; gen_index != ngen; gen_index++) {
399
- double deltaR2 = reco::deltaR2 ( ak5_eta [ak5_index],
400
- ak5_phi [ak5_index],
397
+ double deltaR2 = reco::deltaR2 ( jet_eta [ak5_index],
398
+ jet_phi [ak5_index],
401
399
gen_eta[gen_index],
402
400
gen_phi[gen_index]);
403
401
if (deltaR2 < r2min) {
404
402
r2min = deltaR2;
405
- ak5_igen [ak5_index] = gen_index;
403
+ jet_igen [ak5_index] = gen_index;
406
404
}
407
405
}
408
406
}
409
407
410
408
ak5_index++;
411
409
}
412
410
// Number of selected jets in the event
413
- ak5_njet = ak5_index;
411
+ njet = ak5_index;
414
412
415
413
416
414
// Four leading AK7 Jets
@@ -433,85 +431,39 @@ void OpenDataTreeProducer::analyze(edm::Event const &event_obj,
433
431
continue ;
434
432
}
435
433
436
- // Jet properties
437
- int npr = i_ak7jet->chargedMultiplicity () +
438
- i_ak7jet->neutralMultiplicity ();
439
- double phf = i_ak7jet->photonEnergyFraction ();
440
- double nhf = i_ak7jet->neutralHadronEnergyFraction () +
441
- i_ak7jet->HFHadronEnergyFraction ();
442
- double elf = i_ak7jet->electronEnergyFraction ();
443
- double chf = i_ak7jet->chargedHadronEnergyFraction ();
444
- int chm = i_ak7jet->chargedHadronMultiplicity ();
445
-
446
- bool isHighEta = fabs (i_ak7jet->eta ()) > 2.4 ;
447
- bool isLowEta = fabs (i_ak7jet->eta ()) <= 2.4 &&
448
- nhf < 0.9 &&
449
- phf < 0.9 &&
450
- elf < 0.99 &&
451
- chf > 0 &&
452
- chm > 0 ;
453
- bool tightID = npr > 1 &&
454
- phf < 0.99 &&
455
- nhf < 0.99 &&
456
- (isLowEta || isHighEta);
457
-
458
-
459
434
// Variables of the tuple
460
- ak7_tightID[ak7_index] = tightID;
461
- ak7_area[ak7_index] = i_ak7jet->jetArea ();
462
- ak7_jes[ak7_index] = 1 /i_ak7jet->jecFactor (0 ); // JEC factor (pfjet is already corrected !!)
435
+ jet_area_ak7[ak7_index] = i_ak7jet->jetArea ();
436
+ jet_jes_ak7[ak7_index] = 1 /i_ak7jet->jecFactor (0 ); // JEC factor (pfjet is already corrected !!)
463
437
464
438
// p4 is already corrected!
465
439
auto p4 = i_ak7jet->p4 ();
466
- ak7_pt [ak7_index] = p4.Pt ();
467
- ak7_eta [ak7_index] = p4.Eta ();
468
- ak7_phi [ak7_index] = p4.Phi ();
469
- ak7_E [ak7_index] = p4.E ();
440
+ jet_pt_ak7 [ak7_index] = p4.Pt ();
441
+ jet_eta_ak7 [ak7_index] = p4.Eta ();
442
+ jet_phi_ak7 [ak7_index] = p4.Phi ();
443
+ jet_E_ak7 [ak7_index] = p4.E ();
470
444
471
445
// Matching AK5 jet to this AK7 jet
472
446
// Index of the generated jet matching this PFjet
473
- ak7_to_ak5[ak7_index] = -1 ; // is -1 if no matching jet
447
+ ak7_to_ak5[ak7_index] = -1 ; // -1 if no matching jet
474
448
475
449
float r2min (999 );
476
- for (unsigned int ak5_index = 0 ; ak5_index != ak5_njet ; ak5_index++) {
450
+ for (unsigned int ak5_index = 0 ; ak5_index != njet ; ak5_index++) {
477
451
478
452
// Compute distance squared
479
- double deltaR2 = reco::deltaR2 ( ak7_eta [ak7_index],
480
- ak7_phi [ak7_index],
481
- ak5_eta [ak5_index],
482
- ak5_phi [ak5_index]);
453
+ double deltaR2 = reco::deltaR2 ( jet_eta_ak7 [ak7_index],
454
+ jet_phi_ak7 [ak7_index],
455
+ jet_eta [ak5_index],
456
+ jet_phi [ak5_index]);
483
457
if (deltaR2 < r2min) {
484
458
r2min = deltaR2;
485
459
ak7_to_ak5[ak7_index] = ak5_index;
486
460
}
487
461
}
488
-
489
-
490
- /*
491
- // Matching a GenJet to this PFjet
492
- if (mIsMCarlo && ngen > 0) {
493
-
494
- // Index of the generated jet matching this PFjet
495
- ak7_igen[ak7_index] = -1; // is -1 if no matching jet
496
-
497
- // Search generated jet with minimum distance to this PFjet
498
- float r2min(999);
499
- for (unsigned int gen_index = 0; gen_index != ngen; gen_index++) {
500
- double deltaR2 = reco::deltaR2( ak7_eta[ak7_index],
501
- ak7_phi[ak7_index],
502
- gen_eta[gen_index],
503
- gen_phi[gen_index]);
504
- if (deltaR2 < r2min) {
505
- r2min = deltaR2;
506
- ak7_igen[ak7_index] = gen_index;
507
- }
508
- }
509
- }*/
510
462
511
463
ak7_index++;
512
464
}
513
465
// Number of saved jets in the event
514
- ak7_njet = ak7_index;
466
+ njet_ak7 = ak7_index;
515
467
516
468
517
469
// MET
@@ -522,8 +474,8 @@ void OpenDataTreeProducer::analyze(edm::Event const &event_obj,
522
474
sumet = (*met_handle)[0 ].sumEt ();
523
475
524
476
// Finally, fill the tree
525
- if (ak5_njet >= (unsigned )mMinNPFJets &&
526
- ak7_njet >= (unsigned )mMinNPFJets ) {
477
+ if (njet >= (unsigned )mMinNPFJets &&
478
+ njet_ak7 >= (unsigned )mMinNPFJets ) {
527
479
mTree ->Fill ();
528
480
}
529
481
}
0 commit comments