|
||||
File indexing completed on 2025-01-30 10:06:42
0001 // Nsubjettiness Package 0002 // Questions/Comments? jthaler@jthaler.net 0003 // 0004 // Copyright (c) 2011-14 0005 // Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason 0006 // 0007 // $Id: ExtraRecombiners.hh 828 2015-07-20 14:52:06Z jthaler $ 0008 //---------------------------------------------------------------------- 0009 // This file is part of FastJet contrib. 0010 // 0011 // It is free software; you can redistribute it and/or modify it under 0012 // the terms of the GNU General Public License as published by the 0013 // Free Software Foundation; either version 2 of the License, or (at 0014 // your option) any later version. 0015 // 0016 // It is distributed in the hope that it will be useful, but WITHOUT 0017 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 0018 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 0019 // License for more details. 0020 // 0021 // You should have received a copy of the GNU General Public License 0022 // along with this code. If not, see <http://www.gnu.org/licenses/>. 0023 //---------------------------------------------------------------------- 0024 0025 #ifndef __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__ 0026 #define __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__ 0027 0028 #include "fastjet/PseudoJet.hh" 0029 #include "fastjet/JetDefinition.hh" 0030 0031 #include <cmath> 0032 #include <vector> 0033 #include <list> 0034 #include <limits> 0035 #include <stdio.h> 0036 #include <string.h> 0037 #include <errno.h> 0038 0039 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 0040 0041 namespace contrib { 0042 0043 ///------------------------------------------------------------------------ 0044 /// \class GeneralEtSchemeRecombiner 0045 /// \brief Recombination scheme with generalized Et weighting 0046 /// 0047 /// GeneralEtSchemeRecombiner defines a new recombination scheme by inheriting from JetDefinition::Recombiner. 0048 /// This scheme compares the pT of two input particles, and then combines them into a particle with 0049 /// a pT equal to the sum of the two particle pTs and a direction (in rapidity/phi) weighted by the respective momenta of the 0050 /// particle. The weighting is dependent on the power delta. For delta = infinity, this should return the same result as the 0051 /// WinnerTakeAllRecombiner. 0052 ///------------------------------------------------------------------------ 0053 class GeneralEtSchemeRecombiner : public fastjet::JetDefinition::Recombiner { 0054 public: 0055 0056 /// Constructor takes delta weighting 0057 /// (delta = 1.0 for Et-scheme, delta = infinity for winner-take-all scheme) 0058 GeneralEtSchemeRecombiner(double delta) : _delta(delta) {} 0059 0060 /// Description 0061 virtual std::string description() const; 0062 0063 /// Recombine pa and pb and put result into pab 0064 virtual void recombine(const fastjet::PseudoJet & pa, 0065 const fastjet::PseudoJet & pb, 0066 fastjet::PseudoJet & pab) const; 0067 0068 private: 0069 double _delta; ///< Weighting exponent 0070 }; 0071 0072 ///------------------------------------------------------------------------ 0073 /// \class WinnerTakeAllRecombiner 0074 /// \brief Recombination scheme with winner-take-all weighting 0075 /// 0076 /// WinnerTakeAllRecombiner defines a new recombination scheme by inheriting from JetDefinition::Recombiner. 0077 /// This scheme compares the pT of two input particles, and then combines them into a particle with 0078 /// a pT equal to the sum of the two particle pTs and a direction (in rapidity/phi) identical to that of the harder 0079 /// particle. This creates a jet with an axis guaranteed to align with a particle in the event. 0080 ///------------------------------------------------------------------------ 0081 class WinnerTakeAllRecombiner : public fastjet::JetDefinition::Recombiner { 0082 public: 0083 0084 /// Constructor to choose value of alpha (defaulted to 1 for normal pT sum) 0085 WinnerTakeAllRecombiner(double alpha = 1.0) : _alpha(alpha) {} 0086 0087 /// Description 0088 virtual std::string description() const; 0089 0090 /// recombine pa and pb and put result into pab 0091 virtual void recombine(const fastjet::PseudoJet & pa, 0092 const fastjet::PseudoJet & pb, 0093 fastjet::PseudoJet & pab) const; 0094 0095 private: 0096 double _alpha; //power of (pt/E) term when recombining particles 0097 }; 0098 0099 } //namespace contrib 0100 0101 FASTJET_END_NAMESPACE 0102 0103 #endif // __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |