1 #ifndef __FASTJET_JETDEFINITION_HH__
2 #define __FASTJET_JETDEFINITION_HH__
35 #include "fastjet/internal/numconsts.hh"
36 #include "fastjet/PseudoJet.hh"
40 FASTJET_BEGIN_NAMESPACE
213 class ClusterSequence;
244 *
this =
JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 1);
253 *
this =
JetDefinition(jet_algorithm_in, dummyR, strategy_in, recomb_scheme_in, 0);
260 double xtra_param_in,
263 *
this =
JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 2);
264 set_extra_param(xtra_param_in);
276 _recombiner = recombiner_in;
286 _recombiner = recombiner_in;
293 double xtra_param_in,
297 _recombiner = recombiner_in;
319 _Rparam = _plugin->R();
334 int nparameters_in = 1);
341 std::vector<PseudoJet> operator()(
const std::vector<L> & particles)
const;
364 if (_shared_recombiner()) _shared_recombiner.reset(recomb);
365 _recombiner = recomb;
383 void delete_recombiner_when_unused();
390 void delete_plugin_when_unused();
396 double R ()
const {
return _Rparam ;}
399 double extra_param ()
const {
return _extra_param ;}
400 Strategy strategy ()
const {
return _strategy ;}
402 return _default_recombiner.scheme();}
422 return _recombiner == 0 ? & _default_recombiner : _recombiner;}
426 bool has_same_recombiner(
const JetDefinition &other_jd)
const;
432 bool is_spherical()
const;
435 std::string description()
const;
438 std::string description_no_recombiner()
const;
441 static std::string algorithm_description(
const JetAlgorithm jet_alg);
444 static unsigned int n_parameters_for_algorithm(
const JetAlgorithm jet_alg);
456 virtual std::string description()
const = 0;
476 recombine(pa,pb,pres);
495 _recomb_scheme(recomb_scheme) {}
497 virtual std::string description()
const;
503 virtual void preprocess(
PseudoJet & p)
const;
525 virtual std::string description()
const = 0;
535 virtual double R()
const = 0;
546 virtual void set_ghost_separation_scale(
double scale)
const;
547 virtual double ghost_separation_scale()
const {
return 0.0;}
569 double _extra_param ;
572 const Plugin * _plugin;
577 DefaultRecombiner _default_recombiner;
578 const Recombiner * _recombiner;
595 PseudoJet join(
const std::vector<PseudoJet> & pieces,
const JetDefinition::Recombiner & recombiner);
598 PseudoJet join(
const PseudoJet & j1,
599 const JetDefinition::Recombiner & recombiner);
602 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
603 const JetDefinition::Recombiner & recombiner);
606 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
const PseudoJet & j3,
607 const JetDefinition::Recombiner & recombiner);
610 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
const PseudoJet & j3,
const PseudoJet & j4,
611 const JetDefinition::Recombiner & recombiner);
614 FASTJET_END_NAMESPACE
618 #include "fastjet/ClusterSequence.hh"
621 #endif // __FASTJET_JETDEFINITION_HH__