ATLAS Offline Software
Loading...
Searching...
No Matches
JetSubStructureUtils::Multiplicities Class Reference

#include <Multiplicities.h>

Inheritance diagram for JetSubStructureUtils::Multiplicities:
Collaboration diagram for JetSubStructureUtils::Multiplicities:

Public Member Functions

 Multiplicities (double beta=0., double zcut=0., double ktcut=0.)
virtual double result (const fastjet::PseudoJet &jet) const override
virtual TOut result (const xAOD::Jet &jet) const

Private Attributes

double m_beta
double m_zcut
double m_ktcut

Detailed Description

Definition at line 15 of file Multiplicities.h.

Constructor & Destructor Documentation

◆ Multiplicities()

JetSubStructureUtils::Multiplicities::Multiplicities ( double beta = 0.,
double zcut = 0.,
double ktcut = 0. )
inline

Member Function Documentation

◆ result() [1/2]

virtual double JetSubStructureUtils::Multiplicities::result ( const fastjet::PseudoJet & jet) const
inlineoverridevirtual

Definition at line 24 of file Multiplicities.h.

24 {
25 // apply desired soft drop to the jet: default values do no grooming, which is fine
26 fastjet::contrib::SoftDrop sd(m_beta, m_zcut);
27 // Apply the grooming to the jet
28 fastjet::PseudoJet sdJet = sd(jet);
29
30 int multiplicity=0;
31
32 fastjet::JetDefinition jd(fastjet::cambridge_algorithm, fastjet::JetDefinition::max_allowable_R );
33 fastjet::Recluster rc(jd);
34 fastjet::PseudoJet j = rc.result(sdJet);
35
36 fastjet::PseudoJet jj, j1, j2;
37 jj = j;
38 while (jj.has_parents(j1,j2)){
39 if(j2.pt()*j1.delta_R(j2)>m_ktcut)
40 multiplicity++;
41 if(multiplicity>500) // infinite loop failsafe
42 return -1;
43
44 // follow harder branch
45 jj = j1;
46 }
47
48 return multiplicity;
49 };
static Double_t rc

◆ result() [2/2]

virtual TOut JetSubStructureUtils::SubstructureCalculator< TOut >::result ( const xAOD::Jet & jet) const
inlinevirtual

Reimplemented from JetSubStructureUtils::SubstructureCalculator< double >.

Definition at line 25 of file SubstructureCalculator.h.

25 {
26 // PS 4/18 master developent
27 // std::vector<fastjet::PseudoJet> constit_pseudojets =
28 // jet::JetConstituentFiller::constituentPseudoJets(jet);
29
30 std::vector<fastjet::PseudoJet> constit_pseudojets;
31 std::transform(jet.getConstituents().begin(),
32 jet.getConstituents().end(),
33 std::back_inserter(constit_pseudojets),
34 [](const auto& c){
35 const xAOD::IParticle* ip = c->rawConstituent();
36 return
37 // fastjet::PseudoJet((c->rawConstituent())->p4());
38 fastjet::PseudoJet(ip->p4());
39 });
40
41 fastjet::PseudoJet pjet = fastjet::join(constit_pseudojets);
42
43 return result(pjet);
44 }
virtual double result(const fastjet::PseudoJet &jet) const override
iterator begin() const
iterator on the first constituent
iterator end() const
iterator after the last constituent
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Definition Jet_v1.cxx:147

Member Data Documentation

◆ m_beta

double JetSubStructureUtils::Multiplicities::m_beta
private

Definition at line 52 of file Multiplicities.h.

◆ m_ktcut

double JetSubStructureUtils::Multiplicities::m_ktcut
private

Definition at line 56 of file Multiplicities.h.

◆ m_zcut

double JetSubStructureUtils::Multiplicities::m_zcut
private

Definition at line 53 of file Multiplicities.h.


The documentation for this class was generated from the following file: