|
||||
File indexing completed on 2025-01-18 09:57:15
0001 // $Id$ 0002 // 0003 // Copyright (c) 2013, Oxford University. 0004 // 0005 //---------------------------------------------------------------------- 0006 // This file is part of FastJet contrib ScJet. 0007 // 0008 // It is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU General Public License as published by the 0010 // Free Software Foundation; either version 2 of the License, or (at 0011 // your option) any later version. 0012 // 0013 // It is distributed in the hope that it will be useful, but WITHOUT 0014 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 0015 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 0016 // License for more details. 0017 // 0018 // You should have received a copy of the GNU General Public License 0019 // along with this code. If not, see <http://www.gnu.org/licenses/>. 0020 //---------------------------------------------------------------------- 0021 0022 #ifndef __FASTJET_CONTRIB_SCJET_HH__ 0023 #define __FASTJET_CONTRIB_SCJET_HH__ 0024 0025 #include <fastjet/internal/base.hh> 0026 #include <fastjet/JetDefinition.hh> 0027 0028 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 0029 0030 class ClusterSequence; 0031 0032 namespace contrib{ 0033 0034 //------------------------------------------------------------------------ 0035 /// \class ScJet 0036 /// Jet algorithm based on semi-classical jet model. 0037 /// 0038 /// Implementation of an NNH-based sequential recombination algorithm 0039 /// using distance measures derived from a semi-classical jet model. 0040 /// Documented in J Tseng, H Evans, 0041 /// "Semi-classical approach to sequential recombination algorithms 0042 /// for jet clustering", arXiv:1304.1025 (2013). 0043 class ScJet : public JetDefinition::Plugin { 0044 public: 0045 0046 /// enumeration to specify types of energy input. 0047 /// mt and pt are longitudinal boost-invariant, et is not. 0048 typedef enum { use_mt, use_pt, use_et } energyModeType; 0049 0050 /// print energy mode 0051 static std::string energyModeString(energyModeType mode) { 0052 switch (mode) { 0053 case use_mt : return std::string("Mt"); 0054 case use_pt : return std::string("Pt"); 0055 case use_et : return std::string("Et"); 0056 default : return std::string("Undefined"); 0057 } 0058 } 0059 0060 /// default ctor 0061 ScJet(double Rin, energyModeType mode = use_mt, int Rexp = 3) : 0062 _R(Rin), _Rexp(Rexp), _energyMode(mode) {} 0063 0064 /// copy constructor 0065 ScJet(const ScJet& plugin) : 0066 _R(plugin._R), _Rexp(plugin._Rexp), _energyMode(plugin._energyMode) {} 0067 0068 /// default dtor 0069 ~ScJet(){} 0070 0071 /// required by base class 0072 virtual std::string description() const; 0073 0074 /// required by base class 0075 virtual void run_clustering(ClusterSequence&) const; 0076 0077 /// plugin mechanism's standard way of accessing the jet radius 0078 virtual double R() const { return _R; } 0079 0080 /// return radius exponent parameter 0081 int Rexp() const { return _Rexp; } 0082 0083 /// return energy mode 0084 energyModeType energyMode() const { return _energyMode; } 0085 0086 /// return energy mode string (non-static version) 0087 std::string energyModeString() const { return energyModeString(_energyMode); } 0088 0089 /// avoid warning when the user requests exclusive jets 0090 virtual bool exclusive_sequence_meaningful() const { return true; } 0091 0092 private: 0093 0094 double _R; // jet radius parameter 0095 int _Rexp; // radius exponent parameter 0096 energyModeType _energyMode; // energy calculation type 0097 0098 }; 0099 0100 0101 } // namespace contrib 0102 0103 FASTJET_END_NAMESPACE 0104 0105 #endif // __FASTJET_CONTRIB_SCJET_HH__
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |