ATLAS Offline Software
Multiplicities.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef jetsubstructureutils_multiplicities_header
6 #define jetsubstructureutils_multiplicities_header
7 
9 
10 #include "fastjet/contrib/SoftDrop.hh"
11 #include "fastjet/tools/Recluster.hh"
12 
13 namespace JetSubStructureUtils {
14 
15  class Multiplicities : public SubstructureCalculator<double>{
16  public:
17  Multiplicities(double beta=0., double zcut=0., double ktcut=0.) {
18  m_beta = beta;
19  m_zcut = zcut;
20  m_ktcut = ktcut;
21  };
22 
24  virtual double result(const fastjet::PseudoJet &jet) const override {
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  };
50  private:
51  // soft drop parameters
52  double m_beta;
53  double m_zcut;
54 
55  // les houches multiplcity cut
56  double m_ktcut;
57  };
58 }
59 
60 #endif
JetSubStructureUtils::Multiplicities
Definition: Multiplicities.h:15
JetSubStructureUtils::Multiplicities::result
virtual double result(const fastjet::PseudoJet &jet) const override
Definition: Multiplicities.h:24
JetSubStructureUtils
Definition: Angularity.h:10
python.selector.AtlRunQuerySelectorLhcOlc.sd
sd
Definition: AtlRunQuerySelectorLhcOlc.py:612
JetSubStructureUtils::SubstructureCalculator::result
virtual TOut result(const xAOD::Jet &jet) const
Definition: SubstructureCalculator.h:25
SubstructureCalculator.h
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
doubleTestComp.j1
j1
Definition: doubleTestComp.py:21
JetSubStructureUtils::Multiplicities::m_beta
double m_beta
Definition: Multiplicities.h:49
JetSubStructureUtils::Multiplicities::m_ktcut
double m_ktcut
Definition: Multiplicities.h:56
xAOD::JetAlgorithmType::cambridge_algorithm
@ cambridge_algorithm
Definition: JetContainerInfo.h:32
JetSubStructureUtils::Multiplicities::Multiplicities
Multiplicities(double beta=0., double zcut=0., double ktcut=0.)
Definition: Multiplicities.h:17
JetSubStructureUtils::Multiplicities::m_zcut
double m_zcut
Definition: Multiplicities.h:53
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
doubleTestComp.j2
j2
Definition: doubleTestComp.py:22
JetSubStructureUtils::SubstructureCalculator
Definition: SubstructureCalculator.h:21