49#include <fastjet/ClusterSequence.hh>
50#include <fastjet/Selector.hh>
51#include <fastjet/tools/JHTopTagger.hh>
67 vector<PseudoJet> particles;
73 while (getline(cin,line)) {
74 if (line.substr(0,1) ==
"#") {
continue;}
75 istringstream linestream(line);
77 linestream >> px >> py >> pz >> E;
80 particles.push_back(
PseudoJet(px,py,pz,E));
86 for (
unsigned int i=0; i<particles.size(); i++)
87 Et += particles[i].perp();
89 double R, delta_p, delta_r;
90 if (Et>2600){ R=0.4; delta_p=0.05; delta_r=0.19;}
91 else if (Et>1600){ R=0.6; delta_p=0.05; delta_r=0.19;}
92 else if (Et>1000){ R=0.8; delta_p=0.10; delta_r=0.19;}
93 else{ cerr <<
"Et has to be at least 1 TeV"<< endl;
return 1;}
95 double ptmin = min(500.0, 0.7*Et/2);
101 vector<PseudoJet> jets =
sorted_by_pt(cs.inclusive_jets());
103 cout <<
"Ran: " << jet_def.description() << endl << endl;
104 cout <<
"2 Hardest jets: " << jets[0] << endl
105 <<
" " << jets[1] << endl << endl;
107 if (jets[0].perp()<ptmin){
108 cout <<
"No jet above the ptmin threshold" << endl;
131 cout <<
"Ran the following top tagger: " << top_tagger.description() << endl;
134 cout <<
"No top substructure found" << endl;
138 cout <<
"Found top substructure from the hardest jet:" << endl;
139 cout <<
" top candidate: " << tagged << endl;
152 ostr <<
"pt, y, phi =" << setprecision(6)
153 <<
" " << setw(9) << jet.
perp()
154 <<
" " << setw(9) << jet.
rap()
155 <<
" " << setw(9) << jet.
phi()
156 <<
", mass = " << setw(9) << jet.
m();
int main()
an example program showing how to use fastjet
ostream & operator<<(ostream &, PseudoJet &)
does the actual work for printing out a jet
Class that helps perform boosted top tagging using the "Johns Hopkins" method from arXiv:0806....
class that is intended to hold a full definition of the jet clusterer
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
double rap() const
returns the rapidity or some large value when the rapidity is infinite
const TransformerType::StructureType & structure_of() const
this is a helper to access any structure created by a Transformer (that is, of type Transformer::Stru...
double phi() const
returns phi (in the range 0..2pi)
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)
Selector SelectorMassRange(double mmin, double mmax)
select objects with Mmin <= Mass <= Mmax
vector< PseudoJet > sorted_by_pt(const vector< PseudoJet > &jets)
return a vector of jets sorted into decreasing kt2