39 #include "siscone/momentum.h"
40 #include "siscone/siscone.h"
47 using namespace siscone;
49 int 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.