fastjet 2.4.5
D0RunIIConePlugin.hh
Go to the documentation of this file.
00001 #ifndef __D0RUNIICONEPLUGIN_HH__
00002 #define __D0RUNIICONEPLUGIN_HH__
00003 
00004 //STARTHEADER
00005 // $Id: D0RunIIConePlugin.hh 1389 2009-01-16 18:11:10Z salam $
00006 //
00007 // Copyright (c) 2005-2006, Matteo Cacciari and Gavin Salam
00008 //
00009 //----------------------------------------------------------------------
00010 // This file is part of FastJet.
00011 //
00012 //  FastJet is free software; you can redistribute it and/or modify
00013 //  it under the terms of the GNU General Public License as published by
00014 //  the Free Software Foundation; either version 2 of the License, or
00015 //  (at your option) any later version.
00016 //
00017 //  The algorithms that underlie FastJet have required considerable
00018 //  development and are described in hep-ph/0512210. If you use
00019 //  FastJet as part of work towards a scientific publication, please
00020 //  include a citation to the FastJet paper.
00021 //
00022 //  FastJet is distributed in the hope that it will be useful,
00023 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00024 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00025 //  GNU General Public License for more details.
00026 //
00027 //  You should have received a copy of the GNU General Public License
00028 //  along with FastJet; if not, write to the Free Software
00029 //  Foundation, Inc.:
00030 //      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00031 //----------------------------------------------------------------------
00032 //ENDHEADER
00033 
00034 #include "fastjet/JetDefinition.hh"
00035 
00036 // questionable whether this should be in fastjet namespace or not...
00037 
00038 FASTJET_BEGIN_NAMESPACE      // defined in fastjet/internal/base.hh
00039 
00040 //----------------------------------------------------------------------
00041 //
00054 //
00055 //----------------------------------------------------------------------
00056 class D0RunIIConePlugin : public JetDefinition::Plugin {
00057 public:
00058 
00059   //
00075   //
00076   D0RunIIConePlugin (double cone_radius, 
00077                      double min_jet_Et , 
00078                      double split_ratio = _DEFAULT_split_ratio) :
00079     _cone_radius            (cone_radius            ),
00080     _min_jet_Et             (min_jet_Et             ),
00081     _split_ratio            (split_ratio            ),
00082     _far_ratio              (_DEFAULT_far_ratio              ),
00083     _Et_min_ratio           (_DEFAULT_Et_min_ratio           ),
00084     _kill_duplicate         (_DEFAULT_kill_duplicate         ),
00085     _duplicate_dR           (_DEFAULT_duplicate_dR           ),
00086     _duplicate_dPT          (_DEFAULT_duplicate_dPT          ),
00087     _search_factor          (_DEFAULT_search_factor          ),
00088     _pT_min_leading_protojet(_DEFAULT_pT_min_leading_protojet),
00089     _pT_min_second_protojet (_DEFAULT_pT_min_second_protojet ),
00090     _merge_max              (_DEFAULT_merge_max              ),
00091     _pT_min_nomerge         (_DEFAULT_pT_min_nomerge         )
00092   {
00093     // nothing to be done here!
00094   }
00095 
00096   // some functions to return info about parameters
00097   inline double cone_radius            () const { return _cone_radius            ;} //= 0.5;
00098   inline double min_jet_Et             () const { return _min_jet_Et             ;} //= 8.0;
00099   inline double split_ratio            () const { return _split_ratio            ;} //= 0.5;
00100   inline double far_ratio              () const { return _far_ratio              ;} // =0.5;
00101   inline double Et_min_ratio           () const { return _Et_min_ratio           ;} // =0.5;
00102   inline bool   kill_duplicate         () const { return _kill_duplicate         ;} // =true;
00103   inline double duplicate_dR           () const { return _duplicate_dR           ;} // =0.005; 
00104   inline double duplicate_dPT          () const { return _duplicate_dPT          ;} // =0.01; 
00105   inline double search_factor          () const { return _search_factor          ;} // =1.0; 
00106   inline double pT_min_leading_protojet() const { return _pT_min_leading_protojet;} // =0.; 
00107   inline double pT_min_second_protojet () const { return _pT_min_second_protojet ;} // =0.;
00108   inline int    merge_max              () const { return _merge_max              ;} // =10000; 
00109   inline double pT_min_nomerge         () const { return _pT_min_nomerge         ;} // =0.;
00110 
00111 
00113   inline double overlap_threshold() const {return split_ratio();}
00114 
00115   // the things that are required by base class
00116   virtual std::string description () const;
00117   virtual void run_clustering(ClusterSequence &) const;
00119   virtual double R() const {return cone_radius();}
00120   
00121 
00122 private:
00123 
00124   double _cone_radius ;//= 0.5;
00125   double _min_jet_Et  ;//= 8.0;
00126   double _split_ratio ;//= 0.5; // overlap threshold
00127         
00128   //the parameters below have been found to be set to the values given below 
00129   //in the original implementation, shouldn't be altered
00130   double _far_ratio              ; // =0.5;
00131   double _Et_min_ratio           ; // =0.5;
00132   bool   _kill_duplicate         ; // =true;
00133   double _duplicate_dR           ; // =0.005; 
00134   double _duplicate_dPT          ; // =0.01; 
00135   double _search_factor          ; // =1.0; 
00136   double _pT_min_leading_protojet; // =0.; 
00137   double _pT_min_second_protojet ; // =0.;
00138   int    _merge_max              ; // =10000; 
00139   double _pT_min_nomerge         ; // =0.;
00140 
00141   // here are the variables for the default parameters of the D0 Run II Cone algorithm.
00142   // They are set in the .cc file 
00143   const static double _DEFAULT_split_ratio             ;// = 0.5  ; // overlap threshold
00144   const static double _DEFAULT_far_ratio               ;// = 0.5  ;
00145   const static double _DEFAULT_Et_min_ratio            ;// = 0.5  ;
00146   const static bool   _DEFAULT_kill_duplicate          ;// = true ;
00147   const static double _DEFAULT_duplicate_dR            ;// = 0.005; 
00148   const static double _DEFAULT_duplicate_dPT           ;// = 0.01 ; 
00149   const static double _DEFAULT_search_factor           ;// = 1.0  ; 
00150   const static double _DEFAULT_pT_min_leading_protojet ;// = 0.   ; 
00151   const static double _DEFAULT_pT_min_second_protojet  ;// = 0.   ;
00152   const static int    _DEFAULT_merge_max               ;// = 10000; 
00153   const static double _DEFAULT_pT_min_nomerge          ;// = 0.   ;
00154 
00155 };
00156 
00157 FASTJET_END_NAMESPACE      // defined in fastjet/internal/base.hh
00158 
00159 #endif // __D0RUNIICONEPLUGIN_HH__
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines