|
fastjet 2.4.3
|
#include "fastjet/PseudoJet.hh"#include "fastjet/ClusterSequenceArea.hh"#include "fastjet/ClusterSequencePassiveArea.hh"#include "fastjet/config.h"#include <iostream>#include <sstream>#include <vector>
Go to the source code of this file.
Functions | |
| void | print_jets (const fastjet::ClusterSequenceAreaBase &clust_seq, const vector< fastjet::PseudoJet > &unsorted_jets) |
| a function that pretty prints a list of jets | |
| int | main (int argc, char **argv) |
| an example program showing how to use fastjet | |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
an example program showing how to use fastjet
Definition at line 67 of file fastjet_areas.cc.
References Best, fastjet::AreaDefinition::description(), kt_algorithm, fastjet::passive_area, and print_jets().
{
vector<fastjet::PseudoJet> input_particles;
// read in input particles
double px, py , pz, E;
while (cin >> px >> py >> pz >> E) {
// create a fastjet::PseudoJet with these components and put it onto
// back of the input_particles vector
input_particles.push_back(fastjet::PseudoJet(px,py,pz,E));
}
// create an object that represents your choice of jet algorithm, and
// the associated parameters
double Rparam = 1.0;
fastjet::Strategy strategy = fastjet::Best;
fastjet::JetDefinition jet_def(fastjet::kt_algorithm, Rparam, strategy);
//fastjet::JetDefinition jet_def(fastjet::cambridge_algorithm, Rparam, strategy);
//fastjet::JetDefinition jet_def(fastjet::antikt_algorithm, Rparam, strategy);
//fastjet::JetDefinition jet_def(new fastjet::SISConePlugin(Rparam,0.75));
// create an object that specifies how we to define the area
fastjet::AreaDefinition area_def;
bool use_voronoi = false;
if (!use_voronoi) {
double ghost_etamax = 7.0;
double ghost_area = 0.05;
int active_area_repeats = 1;
// alternative settings for more precision:
// reducing ghost area gives better sensitivity to the exact edges of the jet
//double ghost_area = 0.01;
// increasing the repeats is useful in sparse events
//int active_area_repeats = 100;
// now create the object that holds info about ghosts, and from that
// get an area definition
fastjet::GhostedAreaSpec ghost_spec(ghost_etamax, active_area_repeats,
ghost_area);
area_def = fastjet::AreaDefinition(fastjet::passive_area,ghost_spec);
//area_def = fastjet::AreaDefinition(fastjet::active_area,ghost_spec);
} else {
double effective_Rfact = 1.0;
area_def = fastjet::VoronoiAreaSpec(effective_Rfact);
}
// run the jet clustering with the above jet definition
fastjet::ClusterSequenceArea clust_seq(input_particles,
jet_def, area_def);
// you can also run the individual area classes directly
//fastjet::ClusterSequencePassiveArea clust_seq(input_particles, jet_def,
// area_def.ghost_spec());
// you may want to find out how much area in a given range (|y|<range)
// is empty of real jets (or corresponds to pure "ghost" jets).
//double range = 4.0;
//cout << clust_seq.empty_area(range) << endl;
//cout << clust_seq.n_empty_jets(range) << endl;
// tell the user what was done
cout << "Jet definition was: " << jet_def.description() << endl;
cout << "Area definition was: " << area_def.description() << endl;
cout << "Strategy adopted by FastJet was "<<
clust_seq.strategy_string()<<endl<<endl;
// extract the inclusive jets with pt > 5 GeV, sorted by pt
double ptmin = 5.0;
vector<fastjet::PseudoJet> inclusive_jets = clust_seq.inclusive_jets(ptmin);
// print them out
cout << "Printing inclusive jets with pt > "<< ptmin<<" GeV\n";
cout << "---------------------------------------\n";
print_jets(clust_seq, inclusive_jets);
cout << endl;
cout << "Number of unclustered particles: "
<< clust_seq.unclustered_particles().size() << endl;
}
| void print_jets | ( | const fastjet::ClusterSequenceAreaBase & | clust_seq, |
| const vector< fastjet::PseudoJet > & | unsorted_jets | ||
| ) |
a function that pretty prints a list of jets
a function that pretty prints a list of jets, and performs the subtraction in two different ways, using a generic ClusterSequenceAreaBase type object.
Definition at line 151 of file fastjet_areas.cc.
References d0::inline_maths::phi(), and sorted_by_pt().
Referenced by main(), and run_jet_finder().
{
// sort jets into increasing pt
vector<fastjet::PseudoJet> jets = sorted_by_pt(unsorted_jets);
printf(" ijet rap phi Pt area +- err\n");
for (size_t j = 0; j < jets.size(); j++) {
double area = clust_seq.area(jets[j]);
double area_error = clust_seq.area_error(jets[j]);
printf("%5u %9.5f %8.5f %10.3f %8.3f +- %6.3f\n",j,jets[j].rap(),
jets[j].phi(),jets[j].perp(), area, area_error);
}
}
1.7.3