Go to the documentation of this file.
   46 #include <fastjet/PseudoJet.hh> 
   47 #include <fastjet/ClusterSequence.hh> 
   48 #include <fastjet/Selector.hh> 
   50 #include "fastjet/tools/Filter.hh" 
   51 #include "fastjet/tools/Pruner.hh" 
   62   vector<PseudoJet> input_particles;
 
   64   double px, py , pz, E;
 
   65   while (cin >> px >> py >> pz >> E) {
 
   68     input_particles.push_back(
PseudoJet(px,py,pz,E)); 
 
   75   vector<PseudoJet> inclusive_jets = 
 
   79   printf(
"%5s %15s %15s %15s %15s\n",
"jet #", 
"rapidity", 
"phi", 
"pt", 
"mass");
 
   82   for (
unsigned int i = 0; i < inclusive_jets.size(); i++) {
 
   83     printf(
"%5u %15.8f %15.8f %15.8f %15.8f\n",
 
   84            i, inclusive_jets[i].rap(), inclusive_jets[i].phi(),
 
   85            inclusive_jets[i].perp(),inclusive_jets[i].m());
 
   90   if (inclusive_jets.size()<2){
 
   91     cout << 
"Please provide an event with at least 2 jets above 5 GeV" << endl;
 
  101   vector<Transformer *> groomers;
 
  107   unsigned int nfilt = 3;
 
  114   double ptfrac = 0.03;
 
  121   double rcut_factor = 0.5;
 
  129   cout << 
"\nOriginal jets that will be grooomed: " << endl;
 
  130   for (vector<PseudoJet>::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){
 
  132     cout << 
"  rap = " << c.
rap() << 
", phi = " << c.
phi() << 
", pt = " << c.
perp() 
 
  133          << 
", mass = " << c.
m() 
 
  138   for (
unsigned int i=0; i < groomers.size(); i++){
 
  140     cout << 
"\nUsing groomer: " << f.
description() << endl;
 
  143     for (vector<PseudoJet>::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){
 
  158          n_rejected = fj_struct.
rejected().size();
 
  162          n_rejected = fj_struct.
rejected().size();
 
  166       cout << 
"  rap = " << j.
rap() << 
", phi = " << j.
phi() << 
", pt = " << j.
perp()
 
  167            << 
" mass = " << j.
m() 
 
  168            << 
"  [kept: " << j.
pieces().size() 
 
  169            << 
", rejected: " << n_rejected;
 
  178   for (
unsigned int i=0; i < groomers.size(); i++) 
delete groomers[i];
 
  
std::vector< PseudoJet > inclusive_jets(const double ptmin=0.0) const
return a vector of all jets (in the sense of the inclusive algorithm) with pt >= ptmin.
 
Selector SelectorNHardest(unsigned int n)
select the n hardest objects
 
const std::vector< PseudoJet > & rejected() const
returns the subjets that were not kept during the filtering procedure (subtracted if the filter reque...
 
the longitudinally invariant variant of the cambridge algorithm (aka Aachen algoithm).
 
Selector SelectorPtFractionMin(double fraction)
select objects that carry at least a fraction "fraction" of the reference jet.
 
double perp() const
returns the scalar transverse momentum
 
virtual std::vector< PseudoJet > pieces() const
retrieve the pieces that make up the jet.
 
double m() const
returns the invariant mass (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP)
 
double rap() const
returns the rapidity or some large value when the rapidity is infinite
 
std::string description() const
return a string describing what kind of PseudoJet we are dealing with
 
double phi() const
returns phi (in the range 0..2pi)
 
std::vector< PseudoJet > rejected() const
return the constituents that have been rejected
 
int main()
an example program showing how to use Filter and Pruner in FastJet
 
bool has_structure_of() const
check if the PseudoJet has the structure resulting from a Transformer (that is, its structure is comp...
 
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...
 
the longitudinally invariant kt algorithm