49 #include <fastjet/ClusterSequence.hh> 50 #include <fastjet/Selector.hh> 51 #include <fastjet/tools/JHTopTagger.hh> 60 ostream & operator<<(ostream &,
const PseudoJet &);
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;
151 ostream & operator<<(ostream & ostr,
const PseudoJet & jet) {
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();
vector< PseudoJet > sorted_by_pt(const vector< PseudoJet > &jets)
return a vector of jets sorted into decreasing kt2
Class that helps perform boosted top tagging using the "Johns Hopkins" method from arXiv:0806...
double perp() const
returns the scalar transverse momentum
int main()
an example program showing how to use fastjet
double m() const
returns the invariant mass (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP) ...
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 rap() const
returns the rapidity or some large value when the rapidity is infinite
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