00001 #ifndef __D0RUNIBASECONEPLUGIN_HH__
00002 #define __D0RUNIBASECONEPLUGIN_HH__
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
00032
00033
00034 #include "fastjet/JetDefinition.hh"
00035
00036
00037
00038 FASTJET_BEGIN_NAMESPACE
00039
00040
00041
00059
00060
00061 class D0RunIBaseConePlugin : public JetDefinition::Plugin {
00062 public:
00078 D0RunIBaseConePlugin (double CONrad,
00079 double JETmne ,
00080 double SPLifr = _DEFAULT_SPLifr) :
00081 _CONErad (CONrad ),
00082 _JETmne (JETmne ),
00083 _SPLifr (SPLifr ),
00084 _TWOrad (_DEFAULT_TWOrad ),
00085 _D0_Angle (_DEFAULT_D0_Angle ),
00086 _Increase_Delta_R (_DEFAULT_Increase_Delta_R ),
00087 _Kill_Far_Clusters (_DEFAULT_Kill_Far_Clusters ),
00088 _Jet_Et_Min_On_Iter(_DEFAULT_Jet_Et_Min_On_Iter),
00089 _Far_Ratio (_DEFAULT_Far_Ratio ),
00090 _Eitem_Negdrop (_DEFAULT_Eitem_Negdrop ),
00091 _Et_Min_Ratio (_DEFAULT_Et_Min_Ratio ),
00092 _Thresh_Diff_Et (_DEFAULT_Thresh_Diff_Et ){}
00093
00094
00095 inline double CONErad () const { return _CONErad ;}
00096 inline double JETmne () const { return _JETmne ;}
00097 inline double SPLifr () const { return _SPLifr ;}
00098 inline double TWOrad () const { return _TWOrad ;}
00099 inline bool D0_Angle () const { return _D0_Angle ;}
00100 inline bool Increase_Delta_R () const { return _Increase_Delta_R ;}
00101 inline bool Kill_Far_Clusters () const { return _Kill_Far_Clusters ;}
00102 inline bool Jet_Et_Min_On_Iter() const { return _Jet_Et_Min_On_Iter;}
00103 inline double Far_Ratio () const { return _Far_Ratio ;}
00104 inline double Eitem_Negdrop () const { return _Eitem_Negdrop ;}
00105 inline double Et_Min_Ratio () const { return _Et_Min_Ratio ;}
00106 inline double Thresh_Diff_Et () const { return _Thresh_Diff_Et ;}
00107
00108
00110 inline double overlap_threshold() const {return SPLifr();}
00111
00112
00113 virtual std::string description () const = 0;
00114
00115
00116 virtual void run_clustering(ClusterSequence &) const = 0;
00117
00119 virtual double R() const {return CONErad();}
00120
00121 protected:
00122 template<typename HepEntityType>
00123 void run_clustering_worker(ClusterSequence &) const;
00124
00125
00126
00127 double _CONErad ;
00128 double _JETmne ;
00129
00130
00131 double _SPLifr ;
00132 double _TWOrad ;
00133 bool _D0_Angle ;
00134 bool _Increase_Delta_R ;
00135 bool _Kill_Far_Clusters ;
00136 bool _Jet_Et_Min_On_Iter;
00137 double _Far_Ratio ;
00138 double _Eitem_Negdrop ;
00139 double _Et_Min_Ratio ;
00140 double _Thresh_Diff_Et ;
00141
00142
00143
00144 const static double _DEFAULT_SPLifr ;
00145 const static double _DEFAULT_TWOrad ;
00146 const static bool _DEFAULT_D0_Angle ;
00147 const static bool _DEFAULT_Increase_Delta_R ;
00148 const static bool _DEFAULT_Kill_Far_Clusters ;
00149 const static bool _DEFAULT_Jet_Et_Min_On_Iter ;
00150 const static double _DEFAULT_Far_Ratio ;
00151 const static double _DEFAULT_Eitem_Negdrop ;
00152 const static double _DEFAULT_Et_Min_Ratio ;
00153 const static double _DEFAULT_Thresh_Diff_Et ;
00154 };
00155
00156
00157 FASTJET_END_NAMESPACE
00158
00159 #endif // __D0RUNIBASECONEPLUGIN_HH__