Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/fastjet/contribs/Nsubjettiness/AxesDefinition.hh

    rb7b836a r973b92a  
    55//  Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
    66//
    7 //  $Id: AxesDefinition.hh 1130 2018-06-06 12:09:46Z jthaler $
     7//  $Id: AxesDefinition.hh 833 2015-07-23 14:35:23Z jthaler $
    88//----------------------------------------------------------------------
    99// This file is part of FastJet contrib.
     
    508508/// \brief Wrapper for jet definitions (for memory management)
    509509///
    510 /// This class is used by all AxesDefinition with a manual recombiner to
    511 /// ensure that the delete_recombiner_when_unused function is always called
     510/// This class was introduced to avoid issue of a FastJet bug when using genKT clustering
     511/// Now using this for all AxesDefinition with a manual recombiner to use the delete_recombiner_when_unused function
    512512///------------------------------------------------------------------------
    513513class JetDefinitionWrapper {
     
    549549   : ExclusiveJetAxes(JetDefinitionWrapper(fastjet::kt_algorithm,
    550550                                          fastjet::JetDefinition::max_allowable_R, //maximum jet radius constant
    551                                           new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)
     551                                          _recomb = new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)
    552552                                          fastjet::Best).getJetDef()
    553553                      ) {
     
    571571   virtual WTA_KT_Axes* create() const {return new WTA_KT_Axes(*this);}
    572572
     573private:
     574   const WinnerTakeAllRecombiner *_recomb;  ///< Internal recombiner
     575
    573576};
    574577   
     
    585588   : ExclusiveJetAxes(JetDefinitionWrapper(fastjet::cambridge_algorithm,
    586589                                             fastjet::JetDefinition::max_allowable_R, //maximum jet radius constant
    587                                              new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)
     590                                             _recomb = new WinnerTakeAllRecombiner(), // Needs to be explicitly declared (this will be deleted by JetDefinitionWrapper)
    588591                                             fastjet::Best).getJetDef()) {
    589592    setNPass(NO_REFINING);
     
    605608   /// For copying purposes
    606609   virtual WTA_CA_Axes* create() const {return new WTA_CA_Axes(*this);}
    607  
     610   
     611private:
     612   const WinnerTakeAllRecombiner *_recomb;  ///< Internal recombiner
     613
    608614};
    609615
     
    668674                                            R0,
    669675                                            p,
    670                                             new WinnerTakeAllRecombiner()
     676                                            _recomb = new WinnerTakeAllRecombiner()
    671677                                            ).getJetDef()), _p(p), _R0(R0) {
    672678      if (p < 0) throw Error("WTA_GenKT_Axes:  Currently only p >=0 is supported.");
     
    696702   double _p;   ///< genkT power
    697703   double _R0;  ///< jet radius
     704   const WinnerTakeAllRecombiner *_recomb; ///< Internal recombiner
    698705};
    699706   
     
    710717   /// Constructor
    711718   GenET_GenKT_Axes(double delta, double p, double R0 = fastjet::JetDefinition::max_allowable_R)
    712    : ExclusiveJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new GeneralEtSchemeRecombiner(delta))).getJetDef() ),
     719   : ExclusiveJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb = new GeneralEtSchemeRecombiner(delta))).getJetDef() ),
    713720    _delta(delta), _p(p), _R0(R0) {
    714721       if (p < 0) throw Error("GenET_GenKT_Axes:  Currently only p >=0 is supported.");
     
    743750   double _p;     ///< GenkT power
    744751   double _R0;    ///< jet radius
     752   const GeneralEtSchemeRecombiner *_recomb;   ///< Internal recombiner
    745753};
    746754
     
    11931201   /// Constructor
    11941202   Comb_WTA_GenKT_Axes(int nExtra, double p, double R0 = fastjet::JetDefinition::max_allowable_R)
    1195    : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new WinnerTakeAllRecombiner())).getJetDef(), nExtra),
     1203   : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb = new WinnerTakeAllRecombiner())).getJetDef(), nExtra),
    11961204    _p(p), _R0(R0) {
    11971205       if (p < 0) throw Error("Comb_WTA_GenKT_Axes:  Currently only p >=0 is supported.");
     
    12191227   double _p;        ///< GenkT power
    12201228   double _R0;       ///< jet radius
     1229   const WinnerTakeAllRecombiner *_recomb;   ///< Internal recombiner
    12211230};
    12221231   
     
    12321241   /// Constructor
    12331242   Comb_GenET_GenKT_Axes(int nExtra, double delta, double p, double R0 = fastjet::JetDefinition::max_allowable_R)
    1234    : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, new GeneralEtSchemeRecombiner(delta))).getJetDef(), nExtra),
     1243   : ExclusiveCombinatorialJetAxes((JetDefinitionWrapper(fastjet::genkt_algorithm, R0, p, _recomb = new GeneralEtSchemeRecombiner(delta))).getJetDef(), nExtra),
    12351244    _delta(delta), _p(p), _R0(R0) {
    12361245       if (p < 0) throw Error("Comb_GenET_GenKT_Axes:  Currently only p >=0 is supported.");
     
    12621271   double _p;        ///< GenkT power
    12631272   double _R0;       ///< jet radius
     1273   const GeneralEtSchemeRecombiner *_recomb;  ///<  Internal recombiner
    12641274};
    12651275   
Note: See TracChangeset for help on using the changeset viewer.