1 #ifndef FastJetStability_JetStability_h
2 #define FastJetStability_JetStability_h
4 #include "JetStabilityDefs.h"
5 #include "StabilityUserInfo.h"
6 #include "AbsSmearingAgent.h"
7 #include "ClusterAnalysis.h"
8 #include "PtPartitioningIndex.h"
9 #include "TransverseFuzzinessCalculator.h"
11 #include "fastjet/ClusterSequence.hh"
12 #include "fastjet/JetDefinition.hh"
30 ,m_fuzzyNjetCalc(1,0,0)
31 ,m_fuzzyPtSumCalc(0,1,0)
32 ,m_fuzzyNjetQuadCalc(1,0,1)
33 ,m_fuzzyPtSumQuadCalc(0,1,1)
37 inline void reset(
const Event &parts,
const StabilityEventInfo &info) {
39 m_partsSize = parts.size();
41 m_infoSize = info.size();
43 assert( m_partsSize == m_infoSize );
45 for (
unsigned d=0; d != m_nScan; d++ ) {
46 m_clusterAnalysis.clear();
56 inline void setScan(
const unsigned nScan,
const double min,
const double max)
62 m_clusterAnalysis.resize(m_nScan);
63 m_pairwiseRandStability.resize(m_nScan);
64 m_pairwiseJaccardStability.resize(m_nScan);
65 m_pairwisePtMinMatchStability.resize(m_nScan);
67 m_fuzzinessNJet.resize(m_nScan);
68 m_fuzzinessPt.resize(m_nScan);
69 m_fuzzinessNJetQ.resize(m_nScan);
70 m_fuzzinessPtQ.resize(m_nScan);
72 const double dDistCut = (m_maxDcut-m_minDcut)/m_nScan;
73 for (
unsigned d=0; d != m_nScan; d++ ) {
74 const double dCut = m_minDcut+dDistCut*d;
92 {
return m_pairwiseRandStability; }
94 inline const std::vector<std::vector<double> > & fuzzinessNJet()
const
95 {
return m_fuzzinessNJet; }
98 inline const double scanMin()
const {
return m_minDcut; }
100 inline const double scanMax()
const {
return m_maxDcut; }
102 inline const unsigned nScan()
const {
return m_nScan; }
104 inline const unsigned nCycles()
const {
return m_nCycles; }
112 unsigned m_partsSize;
114 StabilityEventInfo m_info;
123 const fastjet::JetDefinition *m_jetDef;
130 std::vector<ClusterAnalysis> m_clusterAnalysis;
143 std::vector<std::vector<double> > m_pairwiseRandStability;
144 std::vector<std::vector<double> > m_pairwiseJaccardStability;
145 std::vector<std::vector<double> > m_pairwisePtMinMatchStability;
147 std::vector<std::vector<double> > m_fuzzinessNJet;
148 std::vector<std::vector<double> > m_fuzzinessPt;
149 std::vector<std::vector<double> > m_fuzzinessNJetQ;
150 std::vector<std::vector<double> > m_fuzzinessPtQ;
const unsigned nScan() const
get the scan parameters
void setNCycles(const unsigned nCycles)
set the number of smearing cycles
JetStability(const fastjet::JetDefinition *jetDef)
const unsigned nCycles() const
get the scan parameters
Implementation of Minimal Matching Distance stabiltiy index.
const double scanMax() const
get the scan parameters
void reset(const Event &parts, const StabilityEventInfo &info)
reset/initialize
const double scanMin() const
get the scan parameters
void setScan(const unsigned nScan, const double min, const double max)
set the parameters to perform the distance cutoff scan
const std::vector< std::vector< double > > & pairwiseRandStability() const
void run(AbsSmearingAgent &)
Run the stability analysis.