ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameTools/include/FJet.h
Revision: 1.1
Committed: Fri May 25 08:39:22 2012 UTC (12 years, 11 months ago) by rkogler
Content type: text/plain
Branch: MAIN
CVS Tags: Makefile, v1-00, Feb-15-2013-v1, Feb-14-2013, Feb-07-2013-v1, Jan-17-2013-v2, Jan-17-2013-v1, Jan-16-2012-v1, Jan-09-2012-v2, Jan-09-2012-v1, Dec-26-2012-v1, Dec-20-2012-v1, Dec-17-2012-v1, Nov-30-2012-v2, Nov-30-2012-v1, HEAD
Log Message:
initial revision

File Contents

# User Rev Content
1 rkogler 1.1 #ifndef FJet_H
2     #define FJet_H
3    
4     #include <vector>
5     #include "TObjArray.h"
6     #include "TClonesArray.h"
7     #include "../include/Objects.h"
8     #include "fastjet/JetDefinition.hh"
9     #include "fastjet/AreaDefinition.hh"
10     #include "fastjet/ClusterSequenceArea.hh"
11    
12     using namespace std;
13    
14     class FJet{
15    
16     public:
17    
18     enum EStrategy{eN2Plain = 0, eN2Tiled, eN2MinHeapTiled, eNlnN, eNlnNCam, eBest};
19     enum EAreaType{eActive = 0, eActiveGhostsInJets, ePassiveOneGhost, ePassive, eVoronoi};
20    
21     FJet();
22    
23     ~FJet();
24    
25     void FindJets(const vector<Particle*> parts, vector<Jet*>& jets);
26     void PrepareInput(vector<GenParticle> genparts, vector<Particle*>& out);
27     vector<int> GetPartJetAssoc();
28    
29     void Init();
30     void Print(const char* usertitle);
31    
32     // setters
33     void SetJetAlgorithm(fastjet::JetAlgorithm algo);
34     void SetRecombScheme(fastjet::RecombinationScheme recom);
35     void SetRadius(double radius);
36     void SetPtCut(double ptmin){fPtMin = ptmin;}
37    
38     void CalculateArea(bool flag = true){bUseArea = flag; InitArea();}
39     void InitArea();
40     void SetAreaType(EAreaType type);
41     void SetGhostMaxRap(double max_rap){fGhostSpec->set_ghost_maxrap(max_rap); InitArea();}
42     void SetGhostRepeat(int repeat){fGhostSpec->set_repeat(repeat); InitArea();}
43     void SetGhostArea(double area){fGhostSpec->set_ghost_area(area); InitArea();}
44     void SetGhostGridScatter(double scatter){fGhostSpec->set_grid_scatter(scatter); InitArea();}
45     void SetGhostKtScatter(double scatter){fGhostSpec->set_kt_scatter(scatter); InitArea();}
46     void SetGhostMeanKt(double meankt){fGhostSpec->set_mean_ghost_kt(meankt); InitArea();}
47     void SetVoronoiEffR(double factor){if (fVoronoiSpec){delete fVoronoiSpec;} fVoronoiSpec = new fastjet::VoronoiAreaSpec(factor); InitArea();}
48    
49     // getters
50     fastjet::JetAlgorithm GetJetAlgorithm();
51     fastjet::RecombinationScheme GetRecombScheme();
52     double GetExclusiveDmerge(int Njet);
53     double GetRadius(){return fR;}
54     double GetPtCut(){return fPtMin;}
55    
56     private:
57    
58     // store the jetfinder
59     fastjet::ClusterSequence* fJetFinder; //! new object every time fastjet is called
60    
61     // general fastjet settings
62     fastjet::JetAlgorithm fJetAlgo; //! the required jet algorithm
63     fastjet::RecombinationScheme fRecombScheme; //! the required recombination scheme
64     fastjet::Strategy fStrategy; //! the strategy FastJet uses
65     double fR; //! jet finder radius
66     double fPtMin; //! Pt_min of clustered jets
67    
68     fastjet::JetDefinition* fJetDef; //! the jet definition
69    
70     vector<int> fpart_jet_assoc; //! indices of jet constituents
71    
72     // area utilities:
73     bool bUseArea; //! calculate area? (default: false)
74     fastjet::AreaDefinition* fAreaDef; //! area definition
75     fastjet::GhostedAreaSpec* fGhostSpec; //! ghosted area specifications
76     fastjet::VoronoiAreaSpec* fVoronoiSpec; //! voronoi area specifications
77     fastjet::AreaType fGhostAreaType; //! the requested area type
78     bool bVoronoiArea; //! calculate voronoi area? (default: false)
79    
80     };
81    
82    
83     #endif