|
||||
File indexing completed on 2025-01-18 09:57:17
0001 #ifndef __D0RUNIBASECONEPLUGIN_HH__ 0002 #define __D0RUNIBASECONEPLUGIN_HH__ 0003 0004 //FJSTARTHEADER 0005 // $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ 0006 // 0007 // Copyright (c) 2009-2021, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 0008 // 0009 //---------------------------------------------------------------------- 0010 // This file is part of FastJet. 0011 // 0012 // FastJet is free software; you can redistribute it and/or modify 0013 // it under the terms of the GNU General Public License as published by 0014 // the Free Software Foundation; either version 2 of the License, or 0015 // (at your option) any later version. 0016 // 0017 // The algorithms that underlie FastJet have required considerable 0018 // development. They are described in the original FastJet paper, 0019 // hep-ph/0512210 and in the manual, arXiv:1111.6097. If you use 0020 // FastJet as part of work towards a scientific publication, please 0021 // quote the version you use and include a citation to the manual and 0022 // optionally also to hep-ph/0512210. 0023 // 0024 // FastJet is distributed in the hope that it will be useful, 0025 // but WITHOUT ANY WARRANTY; without even the implied warranty of 0026 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0027 // GNU General Public License for more details. 0028 // 0029 // You should have received a copy of the GNU General Public License 0030 // along with FastJet. If not, see <http://www.gnu.org/licenses/>. 0031 //---------------------------------------------------------------------- 0032 //FJENDHEADER 0033 0034 #include "fastjet/JetDefinition.hh" 0035 0036 // questionable whether this should be in fastjet namespace or not... 0037 0038 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 0039 0040 //---------------------------------------------------------------------- 0041 // 0042 /// @ingroup internal 0043 /// \class D0RunIBaseConePlugin 0044 /// 0045 /// D0RunIBaseConePlugin is base class for a plugin for FastJet (v3.0 or later) 0046 /// that provides an interface to the D0 version of Run-I cone algorithm 0047 /// 0048 /// Note that this base class is purely virtual and thus needs to be 0049 /// overloaded. In practice this means that you should use one of 0050 /// D0RunIConePlugin or D0RunIpre96ConePlugin. 0051 /// 0052 /// The D0 code has been obtained from Lars Sonnenschein's web-space 0053 /// http://www-d0.fnal.gov/~sonne/D0RunIcone.tgz 0054 /// 0055 /// The version of the D0 Run I code distributed here has been 0056 /// modified by the FastJet authors, so as to provide access to the 0057 /// contents of the jets (as is necessary for the plugin). This does 0058 /// not modify the results of the clustering. 0059 // 0060 //---------------------------------------------------------------------- 0061 class D0RunIBaseConePlugin : public JetDefinition::Plugin { 0062 public: 0063 /// A D0RunIConePlugin constructor which sets the "free" parameters of the 0064 /// algorithm: 0065 /// 0066 /// \param CONErad is the cone radius 0067 /// 0068 /// \param JETmne is a minimum ET requirement on every iteration 0069 /// (jet dropped if Et < JETmne * Et_min_ratio ). 0070 /// The value that has been used by D0 for JETmne: 8 GeV 0071 /// (and Et_min_ratio is 0.5) 0072 /// 0073 /// \param SPlifr is the shared Et fraction splitting threshold, and 0074 /// a value of 0.5 was usually used by D0 0075 /// 0076 /// The remaining parameters of the algorithm are not to be modified if the algorithm 0077 /// is to correspond to the one actually used by D0. 0078 D0RunIBaseConePlugin (double CONErad_in, 0079 double JETmne_in, 0080 double SPLifr_in = _DEFAULT_SPLifr) : 0081 _CONErad (CONErad_in ), 0082 _JETmne (JETmne_in ), 0083 _SPLifr (SPLifr_in ), 0084 _TWOrad (_DEFAULT_TWOrad ), 0085 _D0_Angle (_DEFAULT_D0_Angle ), 0086 _Increase_Delta_R (_DEFAULT_Increase_Delta_R ), 0087 _Kill_Far_Clusters (_DEFAULT_Kill_Far_Clusters ), 0088 _Jet_Et_Min_On_Iter(_DEFAULT_Jet_Et_Min_On_Iter), 0089 _Far_Ratio (_DEFAULT_Far_Ratio ), 0090 _Eitem_Negdrop (_DEFAULT_Eitem_Negdrop ), 0091 _Et_Min_Ratio (_DEFAULT_Et_Min_Ratio ), 0092 _Thresh_Diff_Et (_DEFAULT_Thresh_Diff_Et ){} 0093 0094 // some functions to return info about parameters 0095 inline double CONErad () const { return _CONErad ;} //= 0.7; 0096 inline double JETmne () const { return _JETmne ;} //= 8.0; 0097 inline double SPLifr () const { return _SPLifr ;} // =0.5; 0098 inline double TWOrad () const { return _TWOrad ;} //= 0.; 0099 inline bool D0_Angle () const { return _D0_Angle ;} // =false; 0100 inline bool Increase_Delta_R () const { return _Increase_Delta_R ;} // =true; 0101 inline bool Kill_Far_Clusters () const { return _Kill_Far_Clusters ;} // =true; 0102 inline bool Jet_Et_Min_On_Iter() const { return _Jet_Et_Min_On_Iter;} // =true; 0103 inline double Far_Ratio () const { return _Far_Ratio ;} // =0.5; 0104 inline double Eitem_Negdrop () const { return _Eitem_Negdrop ;} // =-1.0; 0105 inline double Et_Min_Ratio () const { return _Et_Min_Ratio ;} // =0.5; 0106 inline double Thresh_Diff_Et () const { return _Thresh_Diff_Et ;} // =0.01; 0107 0108 0109 /// access the split_ratio() also by the name overlap_threshold() 0110 inline double overlap_threshold() const {return SPLifr();} 0111 0112 // the things that are required by base class 0113 virtual std::string description () const = 0; 0114 0115 // the part that really does the clustering 0116 virtual void run_clustering(ClusterSequence &) const = 0; 0117 0118 /// the plugin mechanism's standard way of accessing the jet radius 0119 virtual double R() const {return CONErad();} 0120 0121 protected: 0122 template<typename HepEntityType> 0123 void run_clustering_worker(ClusterSequence &) const; 0124 0125 //private: 0126 0127 double _CONErad ;//= 0.7 0128 double _JETmne ;//= 8. 0129 //the parameters below have been found to be set to the values given below 0130 //in the original implementation, shouldn't be altered 0131 double _SPLifr ; //=0.5 0132 double _TWOrad ; //=0. 0133 bool _D0_Angle ; //=false 0134 bool _Increase_Delta_R ; //=true 0135 bool _Kill_Far_Clusters ; //=true 0136 bool _Jet_Et_Min_On_Iter; //=true 0137 double _Far_Ratio ; //=0.5 0138 double _Eitem_Negdrop ; //=-1.0 0139 double _Et_Min_Ratio ; //=0.5 0140 double _Thresh_Diff_Et ; //=0.01 0141 0142 // here are the variables for the default parameters of the D0 Run I Cone algorithm. 0143 // They are set in the .cc file 0144 const static double _DEFAULT_SPLifr ; // = 0.5; //shared Et fraction threshold 0145 const static double _DEFAULT_TWOrad ; // = 0.; //minimum Delta_R separation between cones 0146 const static bool _DEFAULT_D0_Angle ; // = false; 0147 const static bool _DEFAULT_Increase_Delta_R ; // = true; 0148 const static bool _DEFAULT_Kill_Far_Clusters ; // = true; 0149 const static bool _DEFAULT_Jet_Et_Min_On_Iter ; // = true; 0150 const static double _DEFAULT_Far_Ratio ; // = 0.5; 0151 const static double _DEFAULT_Eitem_Negdrop ; // = -1.0; 0152 const static double _DEFAULT_Et_Min_Ratio ; // = 0.5; 0153 const static double _DEFAULT_Thresh_Diff_Et ; // = 0.01; 0154 }; 0155 0156 0157 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh 0158 0159 #endif // __D0RUNIBASECONEPLUGIN_HH__
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |