ATLAS Offline Software
SubjetMaker.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3  */
4 
6 
7 #include "xAODJet/Jet.h"
8 
9 #include <fastjet/PseudoJet.hh>
10 #include <fastjet/ClusterSequence.hh>
11 #include <fastjet/ClusterSequenceArea.hh>
12 #include <fastjet/AreaDefinition.hh>
13 #include <fastjet/contrib/Nsubjettiness.hh>
14 #include <fastjet/contrib/Njettiness.hh>
15 #include <fastjet/contrib/NjettinessPlugin.hh>
16 #include <fastjet/tools/Filter.hh>
17 
18 using namespace fastjet;
19 using namespace fastjet::contrib;
20 
22 }
23 
25 }
26 
28  //std::cout << "Making Subjets" << std::endl;
29  xAOD::JetConstituentVector vec = jet.getConstituents();
30  std::vector<fastjet::PseudoJet> p_c;
31 
32  for (auto it : vec) {
33  PseudoJet p(0, 0, 0, 0);
34  float pt = (*it)->pt();
35  float y = (*it)->rapidity();
36  float phi = (*it)->phi();
37  float m = (*it)->m();
38  if (y != y) {
39  continue;
40  } else {
41  p.reset_PtYPhiM(pt, y, phi, m);
42  p_c.push_back(p);
43  }
44  }
45 
46  JetDefinition jet_def_small = JetDefinition(cambridge_algorithm, 0.2, fastjet::E_scheme, fastjet::Best);
47  ClusterSequence cs_small(p_c, jet_def_small);
48  std::vector<PseudoJet> ljets = sorted_by_pt(cs_small.inclusive_jets(20e3));
49  if (ljets.size() == 0) {
50  return;
51  }
52  std::vector<float> sje, sjpx, sjpy, sjpz;
53  for (size_t z = 0; z < ljets.size(); ++z) {
54  sje.push_back(ljets[z].e());
55  sjpx.push_back(ljets[z].px());
56  sjpy.push_back(ljets[z].py());
57  sjpz.push_back(ljets[z].pz());
58  }
59  jet.auxdata<std::vector<float> >("Subjet_E") = sje;
60  jet.auxdata<std::vector<float> >("Subjet_Px") = sjpx;
61  jet.auxdata<std::vector<float> >("Subjet_Py") = sjpy;
62  jet.auxdata<std::vector<float> >("Subjet_Pz") = sjpz;
63 }
64 
65 void top::SubjetMaker::print(std::ostream& o) const {
66  o << "SubjetMaker" << std::endl;
67 }
Jet.h
test_pyathena.px
px
Definition: test_pyathena.py:18
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
fastjet
Definition: FastJetLinkBase.h:22
SubjetMaker.h
skel.it
it
Definition: skel.GENtoEVGEN.py:423
test_pyathena.pt
pt
Definition: test_pyathena.py:11
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
top::SubjetMaker::SubjetMaker
SubjetMaker()
Definition: SubjetMaker.cxx:21
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
jet::ClusterSequence
fastjet::ClusterSequence ClusterSequence
Definition: ClusterSequence.h:21
z
#define z
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
top::SubjetMaker::print
void print(std::ostream &) const
Useful messages on the screen.
Definition: SubjetMaker.cxx:65
Amg::py
@ py
Definition: GeoPrimitives.h:39
xAOD::JetAlgorithmType::cambridge_algorithm
@ cambridge_algorithm
Definition: JetContainerInfo.h:32
top::SubjetMaker::~SubjetMaker
~SubjetMaker()
Definition: SubjetMaker.cxx:24
fastjet::contrib
Definition: RCJet.h:43
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
y
#define y
xAOD::JetConstituentVector
A vector of jet constituents at the scale used during jet finding.
Definition: JetConstituentVector.h:117
top::SubjetMaker::correctJet
void correctJet(xAOD::Jet &)
Definition: SubjetMaker.cxx:27