]>
Commit | Line | Data |
---|---|---|
8b1a69ec | 1 | #ifndef AliFJWrapper_HH |
2 | #define AliFJWrapper_HH | |
3 | /* | |
4 | @Comments: | |
5 | @ | |
6 | @ | |
7 | @ | |
8 | @ | |
9 | @ | |
10 | @ | |
11 | @ | |
12 | */ | |
13 | #include <vector> | |
14 | #include <fastjet/PseudoJet.hh> | |
15 | #include <fastjet/JetDefinition.hh> | |
16 | #include <fastjet/ClusterSequence.hh> | |
17 | #include <fastjet/ClusterSequenceArea.hh> | |
18 | #include <fastjet/AreaDefinition.hh> | |
19 | #include <fastjet/SISConePlugin.hh> | |
20 | ||
21 | #include "TNamed.h" | |
22 | ||
23 | class AliFastJetHeader; | |
24 | ||
25 | class AliFJWrapper : public TNamed | |
26 | { | |
27 | public: | |
28 | ||
29 | AliFJWrapper(const char *name, const char *title); | |
30 | ||
31 | virtual ~AliFJWrapper(); | |
32 | ||
33 | virtual void CopySettingsFrom (const AliFJWrapper& wrapper); | |
34 | virtual void SetupFromHeader (const AliFastJetHeader* header); | |
35 | ||
36 | virtual void AddInputVector (double px, double py, double pz, double E, int index = -99999); | |
37 | ||
38 | virtual void AddInputVector (const fastjet::PseudoJet& vec, int index = -99999); | |
39 | virtual void AddInputVectors(const std::vector<fastjet::PseudoJet>& vecs, int offsetIndex = -99999); | |
40 | ||
41 | virtual Int_t Run(); | |
42 | virtual void Clear(const Option_t* opt = ""); | |
43 | ||
44 | void SetStrategy (const fastjet::Strategy strat) { fStrategy = strat; } | |
45 | void SetAlgorithm (const fastjet::JetAlgorithm algor) { fAlgor = algor; } | |
46 | void SetRecombScheme (const fastjet::RecombinationScheme scheme) { fScheme = scheme; } | |
47 | void SetAreaType (const fastjet::AreaType atype) { fAreaType = atype; } | |
48 | ||
49 | void SetupAlgorithmfromOpt (const char *option); | |
50 | void SetupStrategyfromOpt (const char *option); | |
51 | void SetupSchemefromOpt (const char *option); | |
52 | void SetupAreaTypefromOpt (const char *option); | |
53 | ||
54 | void SetNRepeats (const int nrepeat) { fNGhostRepeats = nrepeat; } | |
55 | void SetGhostArea (const double gharea) { fGhostArea = gharea; } | |
56 | void SetMaxRap (const double maxrap) { fMaxRap = maxrap; } | |
57 | void SetR (const double r) { fR = r; } | |
58 | void SetGridScatter (const double gridSc) { fGridScatter = gridSc; } | |
59 | void SetKtScatter (const double ktSc) { fKtScatter = ktSc; } | |
60 | void SetMeanGhostKt (const double meankt) { fMeanGhostKt = meankt; } | |
61 | void SetPluginAlgor (const int plugin) { fPluginAlgor = plugin; } | |
62 | void SetUseArea4Vector(const bool useA4v) { fUseArea4Vector = useA4v; } | |
63 | ||
64 | virtual void GetMedianAndSigma(double& median, double& sigma, int remove = 0); | |
65 | virtual double GetMedianUsedForBgSubtraction() {return fMedianUsedForBgSubtraction;} | |
66 | ||
67 | const std::vector<fastjet::PseudoJet> GetInputVectors() { return fInputVectors;} | |
68 | const std::vector<fastjet::PseudoJet> GetInclusiveJets() { return fInclusiveJets; } | |
69 | ||
70 | std::vector<fastjet::PseudoJet> GetJetConstituents(const unsigned int idx); | |
71 | ||
72 | fastjet::ClusterSequenceArea* GetClusterSequence() { return fClustSeq; } | |
73 | ||
74 | std::vector<double> GetSubtractedJetsPts(const double median_pt = -1, const bool sorted = false); | |
75 | ||
76 | double GetJetArea (const unsigned int idx); | |
77 | double GetJetSubtractedPt (const unsigned int idx); | |
78 | ||
79 | protected: | |
80 | ||
81 | AliFJWrapper(); | |
82 | AliFJWrapper(const AliFJWrapper& wrapper); | |
83 | AliFJWrapper& operator = (const AliFJWrapper& wrapper);// {return *this;} | |
84 | ||
85 | std::vector<fastjet::PseudoJet> fInputVectors; //! | |
86 | std::vector<fastjet::PseudoJet> fInclusiveJets; //! | |
87 | ||
88 | std::vector<double> fSubtractedJetsPt; //! | |
89 | ||
90 | fastjet::AreaDefinition *fAreaDef;//! | |
91 | fastjet::VoronoiAreaSpec *fVorAreaSpec;//! | |
92 | fastjet::GhostedAreaSpec *fGhostedAreaSpec;//! | |
93 | fastjet::JetDefinition *fJetDef;//! | |
94 | fastjet::JetDefinition::Plugin *fPlugin;//! | |
95 | fastjet::RangeDefinition *fRange;//! | |
96 | fastjet::ClusterSequenceArea *fClustSeq;//! | |
97 | ||
98 | // same as in the alifjheader | |
99 | fastjet::Strategy fStrategy; //! | |
100 | fastjet::JetAlgorithm fAlgor; //! | |
101 | fastjet::RecombinationScheme fScheme; //! | |
102 | fastjet::AreaType fAreaType; //! | |
103 | ||
104 | int fNGhostRepeats; //! | |
105 | double fGhostArea; //! | |
106 | double fMaxRap; //! | |
107 | double fR; //! | |
108 | ||
109 | // not included in the header (within AliFastJetHeader) | |
110 | // no setters for the moment - used default values in the constructor | |
111 | double fGridScatter; //! | |
112 | double fKtScatter; //! | |
113 | double fMeanGhostKt; //! | |
114 | int fPluginAlgor; //! | |
115 | ||
116 | // extra parameters | |
117 | double fMedianUsedForBgSubtraction; //! | |
118 | bool fUseArea4Vector; //! | |
119 | ||
120 | virtual void SubtractBackground(const double median_pt = -1); | |
121 | ||
122 | ClassDef(AliFJWrapper, 0) | |
123 | }; | |
124 | ||
125 | #endif |