1 |
– |
//------------------- |
2 |
– |
// |
3 |
– |
// Jet Tools |
4 |
– |
// |
5 |
– |
// S Markson |
6 |
– |
// |
7 |
– |
//------------------- |
8 |
– |
|
1 |
|
#ifndef MITPHYSICS_UTILS_JETTOOLS_H |
2 |
|
#define MITPHYSICS_UTILS_JETTOOLS_H |
3 |
|
|
5 |
|
#include "MitAna/DataUtil/interface/Debug.h" |
6 |
|
#include "MitAna/DataTree/interface/Names.h" |
7 |
|
#include "MitAna/DataTree/interface/ParticleCol.h" |
8 |
+ |
#include "MitAna/DataTree/interface/PFCandidateCol.h" |
9 |
|
#include "MitAna/DataTree/interface/JetCol.h" |
10 |
< |
#include "MitAna/DataTree/interface/Jet.h" |
10 |
> |
#include "MitAna/DataTree/interface/PFJetCol.h" |
11 |
|
#include "MitPhysics/Init/interface/ModNames.h" |
12 |
|
#include "MitAna/DataCont/interface/ObjArray.h" |
13 |
|
#include "MitAna/DataTree/interface/TrackCol.h" |
14 |
|
#include "MitAna/DataTree/interface/CaloTowerCol.h" |
15 |
|
#include "MitAna/DataTree/interface/MetCol.h" |
16 |
+ |
#include "MitAna/DataTree/interface/VertexCol.h" |
17 |
|
#include <TVector3.h> |
18 |
|
#include <TLorentzVector.h> |
19 |
|
|
20 |
|
namespace mithep { |
21 |
|
class JetTools { |
22 |
< |
public: |
23 |
< |
JetTools(); |
24 |
< |
virtual ~JetTools(); |
25 |
< |
|
26 |
< |
static Double_t NJettiness(const ParticleOArr *particles, const JetOArr *jets, bool UseQ = kFALSE, double Y = 0.0); |
27 |
< |
static Double_t NJettiness(const TrackOArr *tracks, const JetOArr *jets, bool UseQ = kFALSE, double Y = 0.0); |
28 |
< |
static Double_t NJettiness(const JetOArr *jetsS, const JetOArr *jets, bool UseQ = kFALSE, double Y = 0.0); |
29 |
< |
static Double_t NJettiness(const CaloTowerOArr *calos, const JetOArr *jets, bool UseQ = kFALSE, double Y = 0.0); |
30 |
< |
static Double_t M_r(const ParticleOArr *particles); |
31 |
< |
static Double_t Beta_r(const ParticleOArr *particles); |
32 |
< |
static Double_t M_r_t(const ParticleOArr *particles, const Met *met); |
33 |
< |
static Double_t Razor(const ParticleOArr *particles, const Met *met); |
34 |
< |
static Double_t CosineOmega(const Particle *particles0, const Particle *particles1); |
35 |
< |
static Double_t MtHiggs(const ParticleOArr *leptons, const Met *met, double metFraction[2], int nsel); |
36 |
< |
|
37 |
< |
ClassDef(JetTools, 0) |
22 |
> |
public: |
23 |
> |
JetTools(); |
24 |
> |
virtual ~JetTools(); |
25 |
> |
|
26 |
> |
static Double_t NJettiness(const ParticleOArr *particles, const JetOArr *jets, double Q = 1, double Y = 0.0); |
27 |
> |
static Double_t NJettiness(const PFCandidateOArr *particles, const JetOArr *jets, double Q = 1, double Y = 0.0); |
28 |
> |
static Double_t NJettiness(const TrackOArr *tracks, const JetOArr *jets, double Q = 1, double Y = 0.0); |
29 |
> |
static Double_t NJettiness(const JetOArr *jetsS, const JetOArr *jets, double Q = 1, double Y = 0.0); |
30 |
> |
static Double_t NJettiness(const CaloTowerOArr *calos, const JetOArr *jets, double Q = 1, double Y = 0.0); |
31 |
> |
|
32 |
> |
static Double_t M_r(const ParticleOArr *particles); |
33 |
> |
static Double_t Beta_r(const ParticleOArr *particles); |
34 |
> |
static Double_t M_r_t(const ParticleOArr *particles, const Met *met); |
35 |
> |
static Double_t Razor(const ParticleOArr *particles, const Met *met); |
36 |
> |
static Double_t CosineOmega(const Particle *particles0, const Particle *particles1); |
37 |
> |
static Double_t MtHiggs(const ParticleOArr *leptons, const Met *met, double metFraction[2], int nsel); |
38 |
> |
static Double_t Beta(const TrackCol *tracks, Jet *jet, const Vertex *vertex, Double_t delta_z, Double_t delta_cone); |
39 |
> |
static Double_t Beta(const PFJet *jet, const Vertex *vertex, Double_t delta_z); |
40 |
> |
static Bool_t PassBetaVertexAssociationCut(const PFJet *jet, const Vertex *referenceVertex, const VertexCol *vertices, Double_t delta_z); |
41 |
> |
static Double_t Beta2(const PFJet *jet, const Vertex *vertex, Double_t delta_z); |
42 |
> |
static Bool_t PassBeta2VertexAssociationCut(const PFJet *jet, const Vertex *referenceVertex, const VertexCol *vertices, Double_t delta_z); |
43 |
> |
static Int_t MaxBetaVertexIndex(const PFJet *jet, const VertexCol *vertices, Double_t delta_z); |
44 |
> |
static Int_t MaxBeta2VertexIndex(const PFJet *jet, const VertexCol *vertices, Double_t delta_z); |
45 |
> |
static Int_t JetToPVAssociation(const PFJet *jet, const VertexCol *vertices, Double_t delta_z); |
46 |
> |
|
47 |
> |
static Double_t impactParameter(const PFJet *iJet,const Vertex *iVertex,bool iDZ=false); |
48 |
> |
static const PFCandidate* leadCand (const PFJet *iJet,int iPFType,bool i2nd=false); |
49 |
> |
static Double_t dRMean (const PFJet *iJet,int iPFType); |
50 |
> |
static Double_t dR2Mean (const PFJet *iJet,int iPFType); |
51 |
> |
static Double_t frac (const PFJet *iJet,Double_t iDRMax,Double_t iDRMin,Int_t iPFType); |
52 |
> |
static Double_t betaStar (const PFJet *iJet,const Vertex *iVertex,const VertexCol* iVertices,Double_t iDZCut=0.2); |
53 |
> |
static Bool_t passPFLooseId (const PFJet *iJet); |
54 |
> |
ClassDef(JetTools, 0) |
55 |
|
}; |
56 |
+ |
|
57 |
|
} |
58 |
|
|
59 |
|
#endif |