|
||||
File indexing completed on 2025-01-18 09:57:19
0001 //FJSTARTHEADER 0002 // $Id$ 0003 // 0004 // Copyright (c) 2007-2021, Matteo Cacciari, Gavin P. Salam and Gregory Soyez 0005 // 0006 //---------------------------------------------------------------------- 0007 // This file is part of FastJet. 0008 // 0009 // FastJet is free software; you can redistribute it and/or modify 0010 // it under the terms of the GNU General Public License as published by 0011 // the Free Software Foundation; either version 2 of the License, or 0012 // (at your option) any later version. 0013 // 0014 // The algorithms that underlie FastJet have required considerable 0015 // development. They are described in the original FastJet paper, 0016 // hep-ph/0512210 and in the manual, arXiv:1111.6097. If you use 0017 // FastJet as part of work towards a scientific publication, please 0018 // quote the version you use and include a citation to the manual and 0019 // optionally also to hep-ph/0512210. 0020 // 0021 // FastJet is distributed in the hope that it will be useful, 0022 // but WITHOUT ANY WARRANTY; without even the implied warranty of 0023 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0024 // GNU General Public License for more details. 0025 // 0026 // You should have received a copy of the GNU General Public License 0027 // along with FastJet. If not, see <http://www.gnu.org/licenses/>. 0028 //---------------------------------------------------------------------- 0029 //FJENDHEADER 0030 0031 #ifndef __TRACKJETPLUGIN_HH__ 0032 #define __TRACKJETPLUGIN_HH__ 0033 0034 #include "fastjet/JetDefinition.hh" 0035 #include "fastjet/internal/thread_safety_helpers.hh" // helpers to write transparent code w&wo C++11 features 0036 0037 // questionable whether this should be in fastjet namespace or not... 0038 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 0039 0040 // another forward declaration to reduce includes 0041 class PseudoJet; 0042 0043 //---------------------------------------------------------------------- 0044 0045 /// @ingroup plugins 0046 /// \class TrackJetPlugin 0047 /// Implementation of the TrackJet algorithm (plugin for fastjet v2.4 upwards) 0048 // 0049 class TrackJetPlugin : public JetDefinition::Plugin { 0050 public: 0051 /// Main constructor for the TrackJet Plugin class. 0052 /// 0053 /// The argument is an initialised list of jet algorithms 0054 /// \param _radius the distance at which point a particle is no longer 0055 /// recombied into the jet 0056 /// \param jet_recombination_scheme the recombination scheme used to 0057 /// sum the 4-vecors inside the jet 0058 /// \param track_recombination_scheme the recombination scheme used to 0059 /// sum the 4-vecors when accumulating 0060 /// track into a the jet 0061 /// Both recombiners are defaulted to pt_scheme recomb as for the Rivet 0062 /// implementation. 0063 TrackJetPlugin (double radius, 0064 RecombinationScheme jet_recombination_scheme=pt_scheme, 0065 RecombinationScheme track_recombination_scheme=pt_scheme){ 0066 _radius = radius; 0067 _radius2 = radius*radius; 0068 _jet_recombiner = JetDefinition::DefaultRecombiner(jet_recombination_scheme); 0069 _track_recombiner = JetDefinition::DefaultRecombiner(track_recombination_scheme); 0070 } 0071 0072 /// copy constructor 0073 TrackJetPlugin (const TrackJetPlugin & plugin) { 0074 *this = plugin; 0075 } 0076 0077 // the things that are required by base class 0078 virtual std::string description () const; 0079 virtual void run_clustering(ClusterSequence &) const; 0080 0081 /// the plugin mechanism's standard way of accessing the jet radius 0082 /// here we return the R of the last alg in the list 0083 virtual double R() const {return _radius;} 0084 0085 private: 0086 double _radius, _radius2; 0087 0088 JetDefinition::DefaultRecombiner _jet_recombiner; 0089 JetDefinition::DefaultRecombiner _track_recombiner; 0090 0091 static thread_safety_helpers::FirstTimeTrue _first_time; 0092 0093 /// print a banner for reference to the 3rd-party code 0094 void _print_banner(std::ostream *ostr) const; 0095 }; 0096 0097 FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh 0098 0099 #endif // __TRACKJETPLUGIN_HH__ 0100
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |