31 #include <fastjet/tools/JadeDistanceTagger.hh> 34 FASTJET_BEGIN_NAMESPACE
44 string JadeDistanceTagger::description()
const{
46 oss <<
"JadeDistanceTagger with mdrop=" << _mdrop <<
" and mcut=" << _mcut;
56 vector<PseudoJet> subjets;
57 _recursively_find_subjets(jet,subjets);
60 if (subjets.size()<2)
return join(
PseudoJet(0.0,0.0,0.0,0.0));
64 unsigned int i1=0, i2=0;
65 for (
unsigned int it1=0; it1<subjets.size(); it1++){
67 double pt1 = j1.
perp();
68 for (
unsigned int it2=it1+1; it2<subjets.size(); it2++){
71 d = pt1*j2.
perp()*d*d;
73 if (d>dmax){ i1 = it1; i1=it2; dmax=d;}
80 PseudoJet result = join<StructureType>(j1,j2);
82 = max(j1.m(), j2.
m())/jet.
m();
89 void JadeDistanceTagger::_recursively_find_subjets(
const PseudoJet &jet,
90 vector<PseudoJet> &subjets)
const{
95 subjets.push_back(jet);
100 if (j1.
m() < j2.
m()) std::swap(j1,j2);
102 if (j1.
m() < _mdrop*jet.
m())
103 _recursively_find_subjets(j2, subjets);
105 _recursively_find_subjets(j1, subjets);
108 FASTJET_END_NAMESPACE
Class that helps perform 2-pronged boosted tagging searching the clustring with maximal Jade distance...
virtual bool has_parents(PseudoJet &parent1, PseudoJet &parent2) const
check if it is the product of a recombination, in which case return the 2 parents through the 'parent...
double squared_distance(const PseudoJet &other) const
returns squared cylinder (rap-phi) distance between this jet and another
double perp() const
returns the scalar transverse momentum
double m() const
returns the invariant mass (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP) ...
Class to contain pseudojets, including minimal information of use to jet-clustering routines...