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();
double rap() const
returns the rapidity or some large value when the rapidity is infinite
vector< PseudoJet > sorted_by_pt(const vector< PseudoJet > &jets)
return a vector of jets sorted into decreasing kt2
const TransformerType::StructureType & structure_of() const
this is a helper to access any structure created by a Transformer (that is, of type Transformer::Stru...
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...
int main()
an example program showing how to use fastjet
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) ...
Class to contain pseudojets, including minimal information of use to jet-clustering routines...
Selector SelectorMassRange(double mmin, double mmax)
select objects with Mmin <= Mass <= Mmax
class that is intended to hold a full definition of the jet clusterer