ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetSubStructureUtils
Root
Angularity.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
JetSubStructureUtils/Angularity.h
"
6
#include "TLorentzVector.h"
7
8
using namespace
std
;
9
using namespace
JetSubStructureUtils
;
10
11
double
Angularity::result
(
const
fastjet::PseudoJet &
jet
)
const
12
{
13
if
(
jet
.constituents().empty())
return
-1;
14
if
(
jet
.m()==0.0)
return
-1;
15
16
vector<fastjet::PseudoJet> constit_pseudojets =
jet
.constituents();
17
TLorentzVector jet_p4(
jet
.px(),
jet
.py(),
jet
.pz(),
jet
.e());
18
19
double
Angularity2=-1.;
20
const
double
a2=-2.;
21
double
sum_a2=0.;
22
23
for
(
unsigned
int
iConstit=0; iConstit < constit_pseudojets.size(); iConstit++) {
24
TLorentzVector tclus = TLorentzVector(constit_pseudojets[iConstit].px(),constit_pseudojets[iConstit].py(),constit_pseudojets[iConstit].pz(),constit_pseudojets[iConstit].e());
25
double
theta_i = jet_p4.Angle(tclus.Vect());
26
double
sintheta_i = sin(theta_i);
27
if
( sintheta_i == 0 )
continue
;
// avoid FPE
28
double
e_theta_i_a2 = constit_pseudojets[iConstit].E()*pow(sintheta_i,a2)*pow(1-cos(theta_i),1-a2);
29
sum_a2 += e_theta_i_a2;
30
}
31
32
if
(
jet
.m() < 1.e-20 )
return
-1.0;
33
Angularity2 = sum_a2/
jet
.m();
34
return
Angularity2;
35
}
Angularity.h
JetSubStructureUtils::Angularity::result
virtual double result(const fastjet::PseudoJet &jet) const
Definition
Angularity.cxx:11
JetSubStructureUtils
Definition
Angularity.h:10
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0