00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__
00032 #define __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__
00033
00034 #include "fastjet/PseudoJet.hh"
00035 #include "fastjet/AreaDefinition.hh"
00036 #include "fastjet/ClusterSequenceAreaBase.hh"
00037 #include <memory>
00038 #include <vector>
00039
00040 FASTJET_BEGIN_NAMESPACE
00041
00050 class ClusterSequenceVoronoiArea : public ClusterSequenceAreaBase {
00051 public:
00057 template<class L> ClusterSequenceVoronoiArea
00058 (const std::vector<L> & pseudojets,
00059 const JetDefinition & jet_def,
00060 const VoronoiAreaSpec & spec = VoronoiAreaSpec(),
00061 const bool & writeout_combinations = false);
00062
00064 ~ClusterSequenceVoronoiArea();
00065
00067 virtual inline double area(const PseudoJet & jet) const {
00068 return _voronoi_area[jet.cluster_hist_index()];};
00069
00074 virtual inline PseudoJet area_4vector(const PseudoJet & jet) const {
00075 return _voronoi_area_4vector[jet.cluster_hist_index()];};
00076
00079 virtual inline double area_error(const PseudoJet & jet) const {
00080 return 0.0;};
00081
00084 class VoronoiAreaCalc;
00085
00086
00087 private:
00089 void _initializeVA();
00090
00091 std::vector<double> _voronoi_area;
00092 std::vector<PseudoJet> _voronoi_area_4vector;
00093 VoronoiAreaCalc *_pa_calc;
00094 double _effective_Rfact;
00095 };
00096
00097
00098
00099
00101
00102 template<class L> ClusterSequenceVoronoiArea::ClusterSequenceVoronoiArea
00103 (const std::vector<L> &pseudojets,
00104 const JetDefinition &jet_def,
00105 const VoronoiAreaSpec & spec,
00106 const bool & writeout_combinations) :
00107 _effective_Rfact(spec.effective_Rfact()) {
00108
00109
00110 _transfer_input_jets(pseudojets);
00111
00112
00113 _initialise_and_run(jet_def,writeout_combinations);
00114
00115
00116 _initializeVA();
00117 }
00118
00119 FASTJET_END_NAMESPACE
00120
00121 #endif // __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__