1 #ifndef RecoJets_JetAlgorithms_QJets_h 2 #define RecoJets_JetAlgorithms_QJets_h 7 #include "fastjet/JetDefinition.hh" 8 #include "fastjet/PseudoJet.hh" 9 #include "fastjet/ClusterSequence.hh" 14 #include "CLHEP/Random/RandomEngine.h" 25 bool operator() (
const JetDistance& lhs,
const JetDistance&rhs)
const {
return lhs.dij > rhs.dij;};
33 double _zcut, _dcut, _dcut_fctr, _exp_min, _exp_max, _rigidity, _truncation_fctr;
38 double d_ij(
const fastjet::PseudoJet& v1,
const fastjet::PseudoJet& v2)
const;
39 void computeDCut(fastjet::ClusterSequence &
cs);
42 bool Prune(JetDistance& jd,fastjet::ClusterSequence &
cs);
43 bool JetsUnmerged(
const JetDistance& jd)
const;
44 bool JetUnmerged(
int num)
const;
45 void ComputeNewDistanceMeasures(fastjet::ClusterSequence &
cs,
unsigned int new_jet);
46 void ComputeAllDistances(
const std::vector<fastjet::PseudoJet>& inp);
47 double ComputeMinimumDistance();
48 double ComputeNormalization(
double dmin);
49 JetDistance GetNextDistance();
50 bool Same(
const JetDistance& lhs,
const JetDistance& rhs);
53 Qjets(
double zcut,
double dcut_fctr,
double exp_min,
double exp_max,
double rigidity,
double truncation_fctr, CLHEP::HepRandomEngine* rnEngine) : _rand_seed_set(
false),
56 _dcut_fctr(dcut_fctr),
60 _truncation_fctr(truncation_fctr),
64 void Cluster(fastjet::ClusterSequence &
cs);
65 void SetRandSeed(
unsigned int seed);
73 virtual double weight()
const {
return _wij;}
unique_ptr< ClusterSequence > cs
Qjets(double zcut, double dcut_fctr, double exp_min, double exp_max, double rigidity, double truncation_fctr, CLHEP::HepRandomEngine *rnEngine)
CLHEP::HepRandomEngine * _rnEngine
std::priority_queue< JetDistance, std::vector< JetDistance >, JetDistanceCompare > _distances
std::map< int, bool > _merged_jets