Fork me on GitHub

Ignore:
Timestamp:
Oct 15, 2014, 10:55:55 AM (10 years ago)
Author:
Pavel Demin <pavel.demin@…>
Branches:
ImprovedOutputFile, Timing, dual_readout, llp, master
Children:
35b9204, b25d4cf
Parents:
f14bd6a
git-author:
Pavel Demin <pavel.demin@…> (10/10/14 08:56:40)
git-committer:
Pavel Demin <pavel.demin@…> (10/15/14 10:55:55)
Message:

upgrade FastJet to version 3.1.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/fastjet/plugins/SISCone/split_merge.h

    rf14bd6a r273e668  
    2222// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
    2323//                                                                           //
    24 // $Revision:: 268                                                          $//
    25 // $Date:: 2009-03-12 21:24:16 +0100 (Thu, 12 Mar 2009)                     $//
     24// $Revision:: 367                                                          $//
     25// $Date:: 2014-09-04 15:57:37 +0200 (Thu, 04 Sep 2014)                     $//
    2626///////////////////////////////////////////////////////////////////////////////
    2727
     
    141141  /// the split-merge process i.e. the variable we use for
    142142  ///  1. ordering jet candidates;
    143   ///  2. computing te overlap fraction of two candidates.
     143  ///  2. computing the overlap fraction of two candidates.
    144144  /// The default value uses pttile (p-scheme pt). Other alternatives are
    145145  /// pt, mt=sqrt(pt^2+m^2)=sqrt(E^2-pz^2) or Et.
     
    151151  ///   the default value i.e.  to use pt only for the purpose of
    152152  ///   investigating the IR issue
    153   /// - using Et is safe but do not respect boost invariance
     153  /// - using Et is safe but does not respect boost invariance
    154154  /// - using mt solves the IR unsafety issues with the pt variable
    155155  ///   for QCD jets but the IR unsafety remains for nack-to-back
     
    234234  int full_clear();
    235235
     236  ///////////////////////////////////////
     237  // user-defined stable-cone ordering //
     238  ///////////////////////////////////////
     239
     240  /// \class Cuser_scale_base
     241  /// base class for user-defined ordering of stable cones
     242  ///
     243  /// derived classes have to implement the () operator that returns
     244  /// the scale associated with a given jet.
     245  class Cuser_scale_base{
     246  public:
     247    /// empty virtual dtor
     248    virtual ~Cuser_scale_base(){}
     249
     250    /// the scale associated with a given jet
     251    ///
     252    /// "progressive removal" iteratively removes the stable cone with
     253    /// the largest scale
     254    virtual double operator()(const Cjet & jet) const = 0;
     255
     256    /// returns true when the scale associated with jet a is larger than
     257    /// the scale associated with jet b
     258    ///
     259    /// By default this does a simple direct comparison but it can be
     260    /// overloaded for higher precision [recommended if possible]
     261    ///
     262    /// This function assumes that a.sm_var2 and b.sm_var2 have been
     263    /// correctly initialised with the signed squared output of
     264    /// operator(), as is by default the case when is_larger is called
     265    /// from within siscone.
     266    virtual bool is_larger(const Cjet & a, const Cjet & b) const{
     267      return (a.sm_var2 > b.sm_var2);
     268    }
     269  };
     270
     271  /// associate a user-defined scale to order the stable cones
     272  ///
     273  /// Note that this is only used in "progressive-removal mode",
     274  /// e.g. in add_hardest_protocone_to_jets().
     275  void set_user_scale(const Cuser_scale_base * user_scale_in){
     276    _user_scale = user_scale_in;
     277  }
     278
     279  /// return the user-defined scale (NULL if none)
     280  const Cuser_scale_base * user_scale() const { return _user_scale; }
     281
    236282
    237283  /////////////////////////////////
     
    256302   */
    257303  int add_protocones(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0);
     304
     305  /**
     306   * remove the hardest protocone and declare it a jet
     307   * \param protocones  list of protocones (initial jet candidates)
     308   * \param R2          cone radius (squared)
     309   * \param ptmin       minimal pT allowed for jets
     310   * \return 0 on success, 1 on error
     311   *
     312   * The list of remaining particles (and the uncollinear-hard ones)
     313   * is updated.
     314   */
     315  int add_hardest_protocone_to_jets(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0);
    258316
    259317  /**
     
    314372  Csplit_merge_ptcomparison ptcomparison;
    315373
    316   /// stop split--merge when the SM_var of the hardest protojet
    317   /// is below this cut-off.
     374  /// stop split--merge or progressive-removal when the squared SM_var
     375  /// of the hardest protojet is below this cut-off. Note that this is
     376  /// a signed square (ie SM_var*|SM_var|) to be able to handle
     377  /// negative values.
     378  ///
     379  /// Note that the cut-off is set on the variable squared.
     380  double SM_var2_hardest_cut_off;
     381
     382  /// pt cutoff for the particles to put in p_uncol_hard
     383  /// this is meant to allow removing soft particles in the
     384  /// stable-cone search.
     385  ///
    318386  /// This is not collinear-safe so you should not use this
    319387  /// variable unless you really know what you are doing
    320388  /// Note that the cut-off is set on the variable squared.
    321   double SM_var2_hardest_cut_off;
    322 
    323   /// pt cutoff for the particles to put in p_uncol_hard
    324   /// this is meant to allow removing soft particles in the
    325   /// stable-cone search.
    326389  double stable_cone_soft_pt2_cutoff;
    327390
     
    390453  bool use_pt_weighted_splitting;
    391454
     455  /// use a user-defined scale to order the stable cones and jet
     456  /// candidates
     457  const Cuser_scale_base *_user_scale;
     458
    392459#ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES
    393460  /// checkxor for the candidates (to avoid having twice the same contents)
Note: See TracChangeset for help on using the changeset viewer.