|
||||
File indexing completed on 2025-01-30 10:06:43
0001 // $Id: LundWithSecondary.hh 1345 2023-03-01 08:49:41Z salam $ 0002 // 0003 // Copyright (c) 2018-, Frederic A. Dreyer, Keith Hamilton, Alexander Karlberg, 0004 // Gavin P. Salam, Ludovic Scyboz, Gregory Soyez, Rob Verheyen 0005 // 0006 //---------------------------------------------------------------------- 0007 // This file is part of FastJet contrib. 0008 // 0009 // It is free software; you can redistribute it and/or modify it under 0010 // the terms of the GNU General Public License as published by the 0011 // Free Software Foundation; either version 2 of the License, or (at 0012 // your option) any later version. 0013 // 0014 // It is distributed in the hope that it will be useful, but WITHOUT 0015 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 0016 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 0017 // License for more details. 0018 // 0019 // You should have received a copy of the GNU General Public License 0020 // along with this code. If not, see <http://www.gnu.org/licenses/>. 0021 //---------------------------------------------------------------------- 0022 0023 #ifndef __FASTJET_CONTRIB_LUNDWITHSECONDARY_HH__ 0024 #define __FASTJET_CONTRIB_LUNDWITHSECONDARY_HH__ 0025 0026 #include "LundGenerator.hh" 0027 #include "SecondaryLund.hh" 0028 0029 FASTJET_BEGIN_NAMESPACE 0030 0031 namespace contrib{ 0032 0033 //---------------------------------------------------------------------- 0034 /// \class LundWithSecondary 0035 /// Define a primary and secondary Lund plane 0036 /// 0037 /// \param secondary_def definition used for the leading emission. 0038 // 0039 class LundWithSecondary { 0040 public: 0041 /// LundWithSecondary constructor 0042 LundWithSecondary(SecondaryLund * secondary_def = 0) 0043 : secondary_def_(secondary_def) {} 0044 0045 /// LundWithSecondary constructor with jet alg 0046 LundWithSecondary(JetAlgorithm jet_alg, 0047 SecondaryLund * secondary_def = 0) 0048 : lund_gen_(jet_alg), secondary_def_(secondary_def) {} 0049 0050 /// LundWithSecondary constructor with jet def 0051 LundWithSecondary(const JetDefinition & jet_def, 0052 SecondaryLund * secondary_def = 0) 0053 : lund_gen_(jet_def), secondary_def_(secondary_def) {} 0054 0055 /// destructor 0056 virtual ~LundWithSecondary() {} 0057 0058 /// primary Lund declustering 0059 std::vector<LundDeclustering> primary(const PseudoJet& jet) const; 0060 0061 /// secondary Lund declustering (slow) 0062 std::vector<LundDeclustering> secondary(const PseudoJet& jet) const; 0063 0064 /// secondary Lund declustering with primary sequence as input 0065 std::vector<LundDeclustering> secondary( 0066 const std::vector<LundDeclustering> & declusts) const; 0067 0068 /// return the index associated of the primary declustering that is to be 0069 /// used for the secondary plane. 0070 int secondary_index(const std::vector<LundDeclustering> & declusts) const; 0071 0072 /// description of the class 0073 std::string description() const; 0074 0075 private: 0076 /// lund generator 0077 LundGenerator lund_gen_; 0078 0079 /// secondary definition 0080 SecondaryLund * secondary_def_; 0081 }; 0082 0083 0084 // //---------------------------------------------------------------------- 0085 // /// \class LundWithSecondaryAndTertiary 0086 // /// Define a primary, secondary and tertiary Lund plane 0087 // class LundWithSecondaryAndTertiary : public LundWithSecondary { 0088 // public: 0089 // /// LundWithSecondaryAndTertiary constructor 0090 // LundWithSecondaryAndTertiary(SecondaryLund * secondary_def = 0, 0091 // SecondaryLund * tertiary_def = 0) 0092 // : LundWithSecondary(secondary_def), tertiary_def_(tertiary_def) {} 0093 0094 // /// LundWithSecondaryAndTertiary constructor with jet alg 0095 // LundWithSecondaryAndTertiary(JetAlgorithm jet_alg, 0096 // SecondaryLund * secondary_def = 0, 0097 // SecondaryLund * tertiary_def = 0) 0098 // : LundWithSecondary(jet_alg, secondary_def), tertiary_def_(tertiary_def) {} 0099 0100 // /// LundWithSecondaryAndTertiary constructor with jet def 0101 // LundWithSecondaryAndTertiary(const JetDefinition & jet_def, 0102 // SecondaryLund * secondary_def = 0, 0103 // SecondaryLund * tertiary_def = 0) 0104 // : LundWithSecondary(jet_def, secondary_def), tertiary_def_(tertiary_def) {} 0105 0106 // /// destructor 0107 // virtual ~LundWithSecondaryAndTertiary() {} 0108 0109 // /// tertiary Lund declustering 0110 // virtual std::vector<LundDeclustering> tertiary(const PseudoJet& jet) const; 0111 0112 // /// description of the class 0113 // virtual std::string description() const; 0114 0115 // private: 0116 // /// tertiary definition 0117 // SecondaryLund * tertiary_def_; 0118 // }; 0119 0120 0121 } // namespace contrib 0122 0123 FASTJET_END_NAMESPACE 0124 0125 #endif // __FASTJET_CONTRIB_LUNDWITHSECONDARY_HH__ 0126
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |