15 #include "fastjet/internal/numconsts.hh" 19 #include "KtJet/KtEvent.h" 20 #include "KtJet/KtLorentzVector.h" 22 using namespace KtJet;
24 inline double pow2(
const double x) {
return x*x;}
27 int main (
int argc,
char ** argv) {
29 CmdLine cmdline(argc,argv);
31 int repeat = cmdline.int_val(
"-repeat",1);
32 int combine = cmdline.int_val(
"-combine",1);
33 bool write = cmdline.present(
"-write");
34 double ktR = cmdline.double_val(
"-r",1.0);
35 double inclkt = cmdline.double_val(
"-incl",-1.0);
36 int excln = cmdline.int_val (
"-excln",-1);
37 double excld = cmdline.double_val(
"-excld",-1.0);
38 int nev = cmdline.int_val(
"-nev",1);
39 bool massless = cmdline.present(
"-massless");
40 bool get_all_dij = cmdline.present(
"-get-all-dij");
43 for (
int iev = 0; iev < nev; iev++) {
44 vector<KtJet::KtLorentzVector> jets;
47 while (getline(cin, line)) {
49 istringstream linestream(line);
52 if (ndone == combine) {
break;}
54 if (line.substr(0,1) ==
"#") {
continue;}
55 valarray<double> fourvec(4);
56 linestream >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3];
58 linestream >> fourvec[0] >> fourvec[1] >> fourvec[2];
59 fourvec[3] = sqrt(pow2(fourvec[0])+pow2(fourvec[1])+pow2(fourvec[2]));}
61 linestream >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3];
63 KtJet::KtLorentzVector p(fourvec[0],fourvec[1],fourvec[2],fourvec[3]);
68 int type, angle, recom;
70 if (cmdline.present(
"-eekt")) {
74 info <<
"Algorithm: KtJet e+e- kt algorithm" ;
79 info <<
"Algorithm: KtJet (long.inv.) with R = " << ktR ;
83 for (
int i = 0; i < repeat ; i++) {
85 KtJet::KtEvent ev(jets,type,angle,recom,ktR);
88 int nparticles = jets.size();
89 cout <<
"Number of particles = "<< nparticles << endl;
90 cout << info.str() << endl;
96 std::vector<KtJet::KtLorentzVector> jets = ev.getJetsPt();
99 std::vector<KtJet::KtLorentzVector>::const_iterator itr = jets.begin();
100 for( ; itr != jets.end() ; ++itr) {
101 std::cout <<
"Jets Pt2: " << pow2((*itr).perp()) << std::endl;
107 std::vector<KtJet::KtLorentzVector> jets = ev.getJetsPt();
110 for (
size_t j = 0; j < jets.size(); j++) {
111 if (jets[j].perp() < inclkt) {
break;}
112 double phi = jets[j].phi();
113 if (phi < 0.0) {phi += fastjet::twopi;}
114 printf(
"%5u %15.8f %15.8f %15.8f\n",j,jets[j].rapidity(),phi,jets[j].perp());
120 vector<KtJet::KtLorentzVector> jets = ev.getJetsPt();
121 cout <<
"Printing "<<excln<<
" exclusive jets\n";
122 for (
size_t j = 0; j < jets.size(); j++) {
123 double phi = jets[j].phi();
124 if (phi < 0) phi += fastjet::twopi;
125 printf(
"%5u %15.8f %15.8f %15.8f\n",j,
126 jets[j].rapidity(),phi,jets[j].perp());
132 vector<KtJet::KtLorentzVector> jets = ev.getJetsPt();
133 cout <<
"Printing exclusive jets for d = "<<excld<<
"\n";
134 for (
size_t j = 0; j < jets.size(); j++) {
135 double phi = jets[j].phi();
136 if (phi < 0) phi += fastjet::twopi;
137 printf(
"%5u %15.8f %15.8f %15.8f\n",j,
138 jets[j].rapidity(),phi,jets[j].perp());
143 for (
int i = nparticles-1; i > 0; i--) {
144 printf(
"d for n = %4d -> %4d is %14.5e\n", i+1, i, ev.getDMerge(i));
int main()
an example program showing how to use fastjet