fastjet_example.cc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include "fastjet/PseudoJet.hh"
00043 #include "fastjet/ClusterSequence.hh"
00044 #include<iostream>
00045 #include<sstream>
00046 #include<vector>
00047 #include <cstdio>
00048
00049 using namespace std;
00050
00051
00052 void print_jets (const fastjet::ClusterSequence &,
00053 const vector<fastjet::PseudoJet> &);
00054
00056 int main (int argc, char ** argv) {
00057
00058 vector<fastjet::PseudoJet> input_particles;
00059
00060
00061 double px, py , pz, E;
00062 while (cin >> px >> py >> pz >> E) {
00063
00064
00065 input_particles.push_back(fastjet::PseudoJet(px,py,pz,E));
00066 }
00067
00068
00069
00070 double Rparam = 1.0;
00071 fastjet::Strategy strategy = fastjet::Best;
00072 fastjet::RecombinationScheme recomb_scheme = fastjet::E_scheme;
00073 fastjet::JetDefinition jet_def(fastjet::kt_algorithm, Rparam, recomb_scheme, strategy);
00074
00075
00076 fastjet::ClusterSequence clust_seq(input_particles, jet_def);
00077
00078
00079 cout << "Ran " << jet_def.description() << endl;
00080 cout << "Strategy adopted by FastJet was "<<
00081 clust_seq.strategy_string()<<endl<<endl;
00082
00083
00084 double ptmin = 5.0;
00085 vector<fastjet::PseudoJet> inclusive_jets = clust_seq.inclusive_jets(ptmin);
00086
00087
00088 cout << "Printing inclusive jets with pt > "<< ptmin<<" GeV\n";
00089 cout << "---------------------------------------\n";
00090 print_jets(clust_seq, inclusive_jets);
00091 cout << endl;
00092
00093
00094 double dcut = 25.0;
00095 vector<fastjet::PseudoJet> exclusive_jets = clust_seq.exclusive_jets(dcut);
00096
00097
00098 cout << "Printing exclusive jets with dcut = "<< dcut<<" GeV^2\n";
00099 cout << "--------------------------------------------\n";
00100 print_jets(clust_seq, exclusive_jets);
00101
00102
00103 }
00104
00105
00106
00108 void print_jets (const fastjet::ClusterSequence & clust_seq,
00109 const vector<fastjet::PseudoJet> & jets) {
00110
00111
00112 vector<fastjet::PseudoJet> sorted_jets = sorted_by_pt(jets);
00113
00114
00115 printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity",
00116 "phi", "pt", "n constituents");
00117
00118
00119 for (unsigned int i = 0; i < sorted_jets.size(); i++) {
00120 int n_constituents = clust_seq.constituents(sorted_jets[i]).size();
00121 printf("%5u %15.8f %15.8f %15.8f %8u\n",
00122 i, sorted_jets[i].rap(), sorted_jets[i].phi(),
00123 sorted_jets[i].perp(), n_constituents);
00124 }
00125
00126 }