![]() |
|
|||
File indexing completed on 2024-04-06 12:25:24
0001 #ifndef __RecoJets_JetAlgorithms_CMSBoostedTauSeedingAlgorithm_h__ 0002 #define __RecoJets_JetAlgorithms_CMSBoostedTauSeedingAlgorithm_h__ 0003 0004 // CMSBoostedTau Package 0005 // 0006 // Find subjets corresponding to decay products of tau lepton pair 0007 // and produce data-formats neccessary to seed tau reconstruction. 0008 // 0009 // Questions/Comments? 0010 // for physics : Christian.Veelken@cern.ch 0011 // for implementation : Salvatore.Rappoccio@cern.ch 0012 // 0013 //---------------------------------------------------------------------- 0014 // This file is part of FastJet contrib. 0015 // 0016 // It is free software; you can redistribute it and/or modify it under 0017 // the terms of the GNU General Public License as published by the 0018 // Free Software Foundation; either version 2 of the License, or (at 0019 // your option) any later version. 0020 // 0021 // It is distributed in the hope that it will be useful, but WITHOUT 0022 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 0023 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 0024 // License for more details. 0025 // 0026 // You should have received a copy of the GNU General Public License 0027 // along with this code. If not, see <http://www.gnu.org/licenses/>. 0028 //---------------------------------------------------------------------- 0029 0030 #include <fastjet/internal/base.hh> 0031 #include <fastjet/tools/Transformer.hh> 0032 #include <fastjet/CompositeJetStructure.hh> 0033 0034 #include <fastjet/ClusterSequence.hh> 0035 #include <fastjet/Error.hh> 0036 #include <fastjet/JetDefinition.hh> 0037 //#include "fastjet/FunctionOfPseudoJet.hh" 0038 0039 #include <map> 0040 #include <sstream> 0041 #include <string> 0042 0043 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh 0044 0045 namespace contrib { 0046 class CMSBoostedTauSeedingAlgorithmStructure; 0047 0048 //------------------------------------------------------------------------ 0049 /// \class CMSBoostedTauSeedingAlgorithm 0050 /// This class implements the CMS boosted tau algorithm 0051 /// 0052 class CMSBoostedTauSeedingAlgorithm : public Transformer { 0053 public: 0054 // constructors 0055 CMSBoostedTauSeedingAlgorithm(double ptMin, 0056 double muMin, 0057 double muMax, 0058 double yMin, 0059 double yMax, 0060 double dRMin, 0061 double dRMax, 0062 int maxDepth, 0063 int verbosity = 0); 0064 0065 // destructor 0066 ~CMSBoostedTauSeedingAlgorithm() override {} 0067 0068 // standard usage 0069 std::string description() const override; 0070 0071 PseudoJet result(const PseudoJet& jet) const override; 0072 0073 // the type of the associated structure 0074 typedef CMSBoostedTauSeedingAlgorithmStructure StructureType; 0075 0076 protected: 0077 void dumpSubJetStructure(const fastjet::PseudoJet& jet, 0078 int depth, 0079 int maxDepth, 0080 const std::string& depth_and_idx_string) const; 0081 std::pair<PseudoJet, PseudoJet> findSubjets(const PseudoJet& jet, int depth, bool& subjetsFound) const; 0082 0083 private: 0084 double ptMin_; ///< minimum sub-jet pt 0085 double muMin_; ///< the min value of the mass-drop parameter 0086 double muMax_; ///< the max value of the mass-drop parameter 0087 double yMin_; ///< the min value of the asymmetry parameter 0088 double yMax_; ///< the max value of the asymmetry parameter 0089 double dRMin_; ///< the min value of the dR parameter 0090 double dRMax_; ///< the max value of the dR parameter 0091 int maxDepth_; ///< the max depth for descending into clustering sequence 0092 0093 int verbosity_; ///< flag to enable/disable debug output 0094 }; 0095 0096 //------------------------------------------------------------------------ 0097 /// @ingroup tools_taggers 0098 /// \class CMSBoostedTauSeedingAlgorithmStructure 0099 /// the structure returned by the CMSBoostedTauSeedingAlgorithm transformer. 0100 /// 0101 /// See the CMSBoostedTauSeedingAlgorithm class description for the details of what 0102 /// is inside this structure 0103 /// 0104 class CMSBoostedTauSeedingAlgorithmStructure : public CompositeJetStructure { 0105 public: 0106 /// ctor with initialisation 0107 /// \param pieces the pieces of the created jet 0108 /// \param rec the recombiner from the underlying cluster sequence 0109 CMSBoostedTauSeedingAlgorithmStructure(const PseudoJet& result_jet, const JetDefinition::Recombiner* rec = nullptr) 0110 : CompositeJetStructure(result_jet.pieces(), rec), _mu(0.0), _y(0.0), _dR(0.0), _pt(0.0) {} 0111 0112 /// returns the mass-drop ratio, pieces[0].m()/jet.m() 0113 inline double mu() const { return _mu; } 0114 0115 /// returns the value of y = (squared kt distance) / (squared mass) for the 0116 /// splitting that triggered the mass-drop condition 0117 inline double y() const { return _y; } 0118 0119 /// returns the value of dR 0120 inline double dR() const { return _dR; } 0121 0122 /// returns the value of pt 0123 inline double pt() const { return _pt; } 0124 0125 // /// returns the original jet (before tagging) 0126 //const PseudoJet& original() const { return _original_jet; } 0127 0128 protected: 0129 double _mu; ///< the value of the mass-drop parameter 0130 double _y; ///< the value of the asymmetry parameter 0131 double _dR; ///< the value of the dR parameter 0132 double _pt; ///< the value of the pt parameter 0133 // allow the tagger to set these 0134 friend class CMSBoostedTauSeedingAlgorithm; 0135 }; 0136 0137 } // namespace contrib 0138 0139 FASTJET_END_NAMESPACE 0140 0141 #endif // __FASTJET_CONTRIB_CMSBOOSTEDTAUSEEDINGALGORITHM_HH__
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |