29 #ifndef __FASTJET_JETDEFINITION_HH__
30 #define __FASTJET_JETDEFINITION_HH__
33 #include "fastjet/internal/numconsts.hh"
34 #include "fastjet/PseudoJet.hh"
38 FASTJET_BEGIN_NAMESPACE
163 class ClusterSequence;
194 *
this =
JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 1);
203 *
this =
JetDefinition(jet_algorithm_in, dummyR, strategy_in, recomb_scheme_in, 0);
210 double xtra_param_in,
213 *
this =
JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 2);
214 set_extra_param(xtra_param_in);
226 _recombiner = recombiner_in;
236 _recombiner = recombiner_in;
243 double xtra_param_in,
247 _recombiner = recombiner_in;
248 set_extra_param(xtra_param_in);
270 _Rparam = _plugin->R();
285 int nparameters_in = 1);
300 if (_recombiner_shared()) _recombiner_shared.reset(recomb);
301 _recombiner = recomb;
307 void delete_recombiner_when_unused();
314 void delete_plugin_when_unused();
320 double R ()
const {
return _Rparam ;}
323 double extra_param ()
const {
return _extra_param ;}
324 Strategy strategy ()
const {
return _strategy ;}
326 return _default_recombiner.scheme();}
346 return _recombiner == 0 ? & _default_recombiner : _recombiner;}
350 bool has_same_recombiner(
const JetDefinition &other_jd)
const;
353 std::string description()
const;
366 virtual std::string description()
const = 0;
386 recombine(pa,pb,pres);
405 _recomb_scheme(recomb_scheme) {}
407 virtual std::string description()
const;
413 virtual void preprocess(
PseudoJet & p)
const;
435 virtual std::string description()
const = 0;
445 virtual double R()
const = 0;
456 virtual void set_ghost_separation_scale(
double scale)
const;
457 virtual double ghost_separation_scale()
const {
return 0.0;}
473 double _extra_param ;
476 const Plugin * _plugin;
481 DefaultRecombiner _default_recombiner;
482 const Recombiner * _recombiner;
499 PseudoJet join(
const std::vector<PseudoJet> & pieces,
const JetDefinition::Recombiner & recombiner);
502 PseudoJet join(
const PseudoJet & j1,
503 const JetDefinition::Recombiner & recombiner);
506 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
507 const JetDefinition::Recombiner & recombiner);
510 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
const PseudoJet & j3,
511 const JetDefinition::Recombiner & recombiner);
514 PseudoJet join(
const PseudoJet & j1,
const PseudoJet & j2,
const PseudoJet & j3,
const PseudoJet & j4,
515 const JetDefinition::Recombiner & recombiner);
521 FASTJET_END_NAMESPACE
523 #endif // __FASTJET_JETDEFINITION_HH__