File indexing completed on 2024-04-06 12:25:25
0001 #ifndef RecoJets_JetAlgorithms_CATopJetAlgorithm2_h
0002 #define RecoJets_JetAlgorithms_CATopJetAlgorithm2_h
0003
0004 #include <vector>
0005
0006 #include "RecoJets/JetAlgorithms/interface/CompoundPseudoJet.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "RecoJets/JetAlgorithms/interface/FastPrunePlugin.hh"
0009 #include <fastjet/JetDefinition.hh>
0010 #include <fastjet/PseudoJet.hh>
0011 #include <fastjet/ClusterSequence.hh>
0012 #include <fastjet/GhostedAreaSpec.hh>
0013
0014 class SubJetAlgorithm {
0015 public:
0016 SubJetAlgorithm(double ptMin,
0017 unsigned int subjets,
0018 double zcut,
0019 double rcut_factor,
0020 std::shared_ptr<fastjet::JetDefinition> fjJetDefinition,
0021 bool doAreaFastjet,
0022 std::shared_ptr<fastjet::GhostedAreaSpec> fjActiveArea,
0023 double voronoiRfact)
0024 : ptMin_(ptMin),
0025 nSubjets_(subjets),
0026 zcut_(zcut),
0027 rcut_factor_(rcut_factor),
0028 fjJetDefinition_(fjJetDefinition),
0029 doAreaFastjet_(doAreaFastjet),
0030 fjActiveArea_(fjActiveArea),
0031 voronoiRfact_(voronoiRfact) {}
0032
0033 void set_zcut(double z);
0034 void set_rcut_factor(double r);
0035 double zcut() const { return zcut_; }
0036 double rcut_factor() const { return rcut_factor_; }
0037
0038
0039 void run(const std::vector<fastjet::PseudoJet>& cell_particles, std::vector<CompoundPseudoJet>& hardjetsOutput);
0040
0041 private:
0042 double ptMin_;
0043 int nSubjets_;
0044 double zcut_;
0045 double rcut_factor_;
0046 std::shared_ptr<fastjet::JetDefinition> fjJetDefinition_;
0047 bool doAreaFastjet_;
0048 std::shared_ptr<fastjet::GhostedAreaSpec> fjActiveArea_;
0049 double voronoiRfact_;
0050 };
0051
0052 #endif