File indexing completed on 2024-04-06 12:25:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef __PRUNEDRECOMBINER_HH__
0017 #define __PRUNEDRECOMBINER_HH__
0018
0019 #include "fastjet/ClusterSequence.hh"
0020 #include "fastjet/JetDefinition.hh"
0021
0022 #include <string>
0023
0024 FASTJET_BEGIN_NAMESPACE
0025
0026 class PrunedRecombiner : public JetDefinition::Recombiner {
0027 public:
0028 PrunedRecombiner(const JetDefinition::Recombiner* recomb, const double& zcut = 0.1, const double& Rcut = 0.5)
0029 : _zcut(zcut), _Rcut(Rcut), _recombiner(recomb) {}
0030
0031 PrunedRecombiner(const RecombinationScheme scheme, const double& zcut = 0.1, const double& Rcut = 0.5)
0032 : _zcut(zcut), _Rcut(Rcut), _recombiner(nullptr), _default_recombiner(scheme) {
0033 _recombiner = &_default_recombiner;
0034 }
0035
0036 std::string description() const override;
0037
0038
0039 void recombine(const PseudoJet& pa, const PseudoJet& pb, PseudoJet& pab) const override;
0040
0041 std::vector<int> pruned_pseudojets() { return _pruned_pseudojets; }
0042
0043
0044 void reset(const double& zcut, const double& Rcut);
0045
0046 ~PrunedRecombiner() override {}
0047
0048 private:
0049
0050 int _pruning_test(const PseudoJet& pa, const PseudoJet& pb) const;
0051
0052 double _zcut;
0053 double _Rcut;
0054
0055
0056 mutable std::vector<int> _pruned_pseudojets;
0057
0058
0059 const JetDefinition::Recombiner* _recombiner;
0060
0061
0062
0063
0064 JetDefinition::DefaultRecombiner _default_recombiner;
0065 };
0066
0067 FASTJET_END_NAMESPACE
0068
0069 #endif