|
39#include "siscone/momentum.h"
40#include "siscone/siscone.h"
47using namespace siscone;
49int main( int argc, char* argv[]){
50 vector<Cmomentum> particles;
52 double phi=0, eta=0, pt=1;
62 sscanf(argv[1], "%u", &N);
68 gettimeofday(×tamp, NULL);
69 srand(timestamp.tv_usec);
72 cout << "build particle list" << endl;
73 flux = fopen( "particles.dat", "w+");
76 eta = -5.0+10.0*rand()/(RAND_MAX+1.0);
79 phi = 2.0*M_PI*rand()/(RAND_MAX+1.0);
82 pt = exp(log(0.001)+log(1e5)*rand()/(RAND_MAX+1.0));
84 particles.push_back( Cmomentum(pt*cos(phi), pt*sin(phi), pt*sinh(eta), pt*cosh(eta)));
86 fprintf(flux, "%e\t%e\t%e\n", particles[i].eta, particles[i].phi,particles[i].perp());
90 cout << "SISCone: initialise engine" << endl;
94 cout << "cluster the event" << endl;
97#ifdef DEBUG_STABLE_CONES
98 cout << "hash_candidates=" << siscone.nb_hash_cones_total << " in " << siscone.nb_hash_occupied_total << " cells" << endl;
101 cout << "save stable cone results:" << endl;
103 flux = fopen( "protocones.dat", "w+");
105 cout << " pass " << pass << " found " << siscone. protocones_list[pass].size()
106 << " stable cones" << endl;
107 fprintf(flux, "# pass %d: %u stable cones\n", pass,
111 fprintf(flux, "%e\t%e\t%e\n", v-> eta, v-> phi, v-> perp());
116 cout << "bye..." << endl;
base class for dynamic coordinates management
double eta particle pseudo-rapidity
double perp() const computes pT
double phi particle azimuthal angle
final class: gather everything to compute the jet contents.
std::vector< std::vector< Cmomentum > > protocones_list list of protocones found pass-by-pass (not filled by compute_jets_progressive_removal)
int compute_jets(std::vector< Cmomentum > &_particles, double _radius, double _f, int _n_pass_max=0, double _ptmin=0.0, Esplit_merge_scale _split_merge_scale=SM_pttilde) compute the jets from a given particle set.
The
SISCone project has been developed by
Gavin Salam and
Gregory Soyez
Documentation generated on Tue Jun 20 2023 18:08:37 for SISCone by
Doxygen 1.9.4
|