1 |
khahn |
1.1 |
#ifndef SIMPLE_LEPTON
|
2 |
|
|
#define SIMPLE_LEPTON
|
3 |
|
|
|
4 |
khahn |
1.4 |
#include <iostream>
|
5 |
khahn |
1.1 |
#include "TROOT.h"
|
6 |
|
|
#include "TLorentzVector.h"
|
7 |
khahn |
1.4 |
#include "SelectionStatus.h"
|
8 |
anlevin |
1.2 |
|
9 |
khahn |
1.1 |
class SimpleLepton {
|
10 |
|
|
public :
|
11 |
|
|
|
12 |
|
|
SimpleLepton() {
|
13 |
khahn |
1.4 |
// vec = new TLorentzVector();
|
14 |
|
|
// vecorig = new TLorentzVector();
|
15 |
khahn |
1.1 |
}
|
16 |
|
|
|
17 |
|
|
~SimpleLepton() {
|
18 |
|
|
// vec->Delete();
|
19 |
|
|
// vecorig->Delete();
|
20 |
|
|
// delete(vec);
|
21 |
|
|
// delete(vecorig);
|
22 |
|
|
};
|
23 |
|
|
|
24 |
|
|
int type, index, charge;
|
25 |
|
|
double isoTrk, isoEcal, isoHcal, isoPF03, isoPF04, isoCombo;
|
26 |
khahn |
1.5 |
double chisoPF04, gaisoPF04, neisoPF04;
|
27 |
|
|
|
28 |
khahn |
1.1 |
double ip3dSig;
|
29 |
|
|
unsigned bdtfail;
|
30 |
|
|
bool is4l, isEB, isTight, isLoose;
|
31 |
|
|
bool tightCutsApplied;
|
32 |
khahn |
1.4 |
TLorentzVector vec;
|
33 |
khahn |
1.5 |
|
34 |
|
|
double idMVA, isoMVA;
|
35 |
khahn |
1.1 |
|
36 |
|
|
unsigned scID;
|
37 |
khahn |
1.4 |
|
38 |
|
|
SelectionStatus status;
|
39 |
khahn |
1.6 |
|
40 |
|
|
bool fsrRecoveryAttempted;
|
41 |
khahn |
1.1 |
|
42 |
khahn |
1.6 |
inline void print() {
|
43 |
|
|
std::cout <<
|
44 |
|
|
"type: " << type << "\t"
|
45 |
khahn |
1.4 |
"pt: " << vec.Pt() << "\t"
|
46 |
khahn |
1.6 |
"eta: " << vec.Eta() << "\t"
|
47 |
|
|
"index: " << index << std::endl;
|
48 |
khahn |
1.3 |
}
|
49 |
khahn |
1.1 |
static bool lep_pt_sort( const SimpleLepton &l1, const SimpleLepton &l2 ) {
|
50 |
khahn |
1.4 |
if( l1.vec.Pt() > l2.vec.Pt() ) return true;
|
51 |
anlevin |
1.2 |
else return false;
|
52 |
khahn |
1.1 |
};
|
53 |
khahn |
1.6 |
static bool lep_reversept_sort( const SimpleLepton &l1, const SimpleLepton &l2 ) {
|
54 |
|
|
if( l1.vec.Pt() < l2.vec.Pt() ) return true;
|
55 |
|
|
else return false;
|
56 |
|
|
};
|
57 |
khahn |
1.1 |
|
58 |
|
|
};
|
59 |
|
|
|
60 |
|
|
#endif
|