stablejet is hosted by Hepforge, IPPP Durham
StableJet
JetStability.cc
1 
2 #include "JetStability.h"
3 #include "ClusterAnalysis.h"
4 #include "ClusteringComparison.h"
5 
6 #include "DiffusionDistFastJet.h"
7 #include "fastjet/ClusterSequence.hh"
8 
9 namespace stab {
10 
13 {
14 
15  // initialize the smearing agent
16  smearAgent.initialize(m_parts,m_info);
17 
18  // cycle over distance cutoff
19  const double dDistCut = (m_maxDcut-m_minDcut)/m_nScan;
20  for ( unsigned d=0; d != m_nScan; d++ ) {
21  Event smearedEvent;
22  smearAgent.smear(smearedEvent);
23 
24  const double dCut = m_minDcut+dDistCut*d;
25  //fastjet::ClusterSequence cs(m_parts,*m_jetDef);
26  stab::DiffusionDistFastJet fjDiffDist(0.5);
27  fastjet::JetDefinition jet_def(&fjDiffDist);
28  fastjet::ClusterSequence cs(smearedEvent,jet_def);
29  //const Event & cluster = fastjet::sorted_by_pt(cs.exclusive_jets(dCut));
30  //const std::vector<fastjet::ClusterSequence::history_element> & history = cs.history();
31  //const History & history = cs.history();
32 
33  //ClusterAnalysis & cAnalysis = m_clusterAnalysis[d];
34  ClusterAnalysis cAnalysis(dCut);
35  assert( dCut == cAnalysis.dCut() );
36  cAnalysis.initialize(cs);
37 
38 
39  // cycle for nCycles smearing and reclustering
40  for ( unsigned c=0; c != m_nCycles; c++ ) {
41  smearedEvent.clear();
42  // smear the event
43  smearAgent.smear(smearedEvent);
44  // re-cluster the event
45  fastjet::ClusterSequence cst(smearedEvent,jet_def);
46  cAnalysis.fill(cst);
47  }
48 
49  // fill results vectors
50  const stab::TransverseRandIndex2 randIndex;
51  m_pairwiseRandStability[d].push_back(cAnalysis.doStability(randIndex));
52  const stab::TransverseJaccardIndex jaccardIndex;
53  m_pairwiseJaccardStability[d].push_back(cAnalysis.doStability(jaccardIndex));
54  m_pairwisePtMinMatchStability[d].push_back(cAnalysis.doStability(m_ptMinMatchIndex));
55 
56  m_fuzzinessNJet[d].push_back(cAnalysis.doFuzziness(m_fuzzyNjetCalc));
57  m_fuzzinessPt[d].push_back(cAnalysis.doFuzziness(m_fuzzyPtSumCalc));
58  m_fuzzinessNJetQ[d].push_back(cAnalysis.doFuzziness(m_fuzzyNjetQuadCalc));
59  m_fuzzinessPtQ[d].push_back(cAnalysis.doFuzziness(m_fuzzyPtSumQuadCalc));
60 
61  }
62 
63 
64 }
65 
66 } // end stab namespace
double doStability(const ClusteringComparisonIndex &, const StabilityCalcMethod method=PAIRWISE)
perform the stability calculation
double doFuzziness(const AbsFuzzinessCalculator &)
perform the fuzziness calculation
void fill(const fastjet::ClusterSequence &)
Add results of latest clustering to stability consideration.
double dCut() const
return the distance cut-off value
virtual void smear(Event &)=0
smear the event, return the smeared event via the function argument.
virtual void initialize(const Event &, const StabilityEventInfo &)=0
initialize the smearing agent with the initial event
void initialize(const fastjet::ClusterSequence &)
Initialize internal data from first clustering results.
void run(AbsSmearingAgent &)
Run the stability analysis.
Definition: JetStability.cc:12