ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/interface/Qjets.h
Revision: 1.1
Committed: Wed Jun 19 13:24:47 2013 UTC (11 years, 10 months ago) by rkogler
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
added substructure information and jet constituents

File Contents

# User Rev Content
1 rkogler 1.1 #ifndef _QJETS_
2     #define _QJETS_
3     #include <queue>
4     #include <vector>
5     #include <list>
6     #include <algorithm>
7     #include "fastjet/JetDefinition.hh"
8     #include "fastjet/PseudoJet.hh"
9     #include "fastjet/ClusterSequence.hh"
10    
11     using namespace std;
12    
13     struct jet_distance{
14     double dij;
15     int j1;
16     int j2;
17     };
18    
19     class JetDistanceCompare{
20     public:
21     JetDistanceCompare(){};
22     bool operator() (const jet_distance& lhs, const jet_distance&rhs) const;
23     };
24    
25     class Qjets{
26     private:
27     bool _rand_seed_set;
28     unsigned int _seed;
29     double _zcut, _dcut, _dcut_fctr, _exp_min, _exp_max, _rigidity;
30     vector <int> _merged_jets;
31     list <jet_distance> _distances;
32    
33     double d_ij(const fastjet::PseudoJet& v1, const fastjet::PseudoJet& v2);
34     void ComputeDCut(fastjet::ClusterSequence & cs);
35    
36     double Rand();
37     bool Prune(jet_distance& jd,fastjet::ClusterSequence & cs);
38     bool JetsUnmerged(jet_distance& jd);
39     bool JetUnmerged(int num);
40     void ComputeNewDistanceMeasures(fastjet::ClusterSequence & cs, int new_jet);
41     void ComputeAllDistances(const vector<fastjet::PseudoJet>& inp);
42     double ComputeMinimumDistance();
43     double ComputeNormalization(double dmin);
44     public:
45     Qjets(double zcut, double dcut_fctr, double exp_min, double exp_max, double rigidity);
46     void Cluster(fastjet::ClusterSequence & cs);
47     void SetRandSeed(unsigned int seed); /* In case you want reproducible behavior */
48     };
49     #endif