|
FastJet 3.0alpha3
|
00001 //STARTHEADER 00002 // $Id: MassDropTagger.hh 2193 2011-06-01 11:51:06Z soyez $ 00003 // 00004 // Copyright (c) 2005-2011, Matteo Cacciari, Gavin Salam and Gregory Soyez 00005 // 00006 //---------------------------------------------------------------------- 00007 // This file is part of FastJet. 00008 // 00009 // FastJet is free software; you can redistribute it and/or modify 00010 // it under the terms of the GNU General Public License as published by 00011 // the Free Software Foundation; either version 2 of the License, or 00012 // (at your option) any later version. 00013 // 00014 // The algorithms that underlie FastJet have required considerable 00015 // development and are described in hep-ph/0512210. If you use 00016 // FastJet as part of work towards a scientific publication, please 00017 // include a citation to the FastJet paper. 00018 // 00019 // FastJet is distributed in the hope that it will be useful, 00020 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 // GNU General Public License for more details. 00023 // 00024 // You should have received a copy of the GNU General Public License 00025 // along with FastJet; if not, write to the Free Software 00026 // Foundation, Inc.: 00027 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00028 //---------------------------------------------------------------------- 00029 //ENDHEADER 00030 00031 #ifndef __FASTJET_MASS_DROP_TAGGER_HH__ 00032 #define __FASTJET_MASS_DROP_TAGGER_HH__ 00033 00034 #include <fastjet/tools/Transformer.hh> 00035 #include <fastjet/CompositeJetStructure.hh> 00036 00037 FASTJET_BEGIN_NAMESPACE 00038 00039 class MassDropTagger; 00040 class MassDropStructure; 00041 00042 //---------------------------------------------------------------------- 00043 /// @ingroup tools 00044 /// \class MassDropTagger 00045 /// Class that helps perform 2-pronged boosted tagging using 00046 /// the "mass-drop" technique 00047 /// 00048 /// This implements the boosted Higgs tagger introduced by Jonathan 00049 /// Butterworth, Adam Davison, Mathieu Rubin and Gavin Salam in 00050 /// arXiv:0802.2470. 00051 /// 00052 /// The tagger proceeds as follows: 00053 /// 00054 /// 0. start from a jet obtained from with the Cambridge/Aachen 00055 /// algorithm 00056 /// 00057 /// 1. undo the last step of the clustering step j -> j1 + j2 (label 00058 /// them such as j1 is the most massive). 00059 /// 00060 /// 2. if there is a mass drop, i.e. m_j1/m_j < mu_cut, and the 00061 /// splitting is sufficiently symmetric, \f${/rm 00062 /// min}(p_{tj1}^2,p_{tj2}^2)\Delta R_{j1,j2}^2 > y_{/rm cut} 00063 /// m_j^2\f$, keep j as the result of the tagger (with j1 and j2 00064 /// its 2 subjets) 00065 /// 00066 /// 3. otherwise, redefine j to be equal to j1 and return to step 1. 00067 /// 00068 /// Note that in the original proposal, j1 and j2 were both required 00069 /// to be b-tagged and a filter (with Rfilt=min(0.3,Rbb/2) and 00070 /// n_filt=3) was applied to j to obtain the final "Higgs candidate". 00071 /// This filtering technique can always be done by defining a 00072 /// FunctionOfPseudoJet to compute dynamically Rfilt and then use the 00073 /// Filter 00074 /// RfiltDyn rfilt; 00075 /// Filter final_filter(&rfilt, SelectorNHardest(3)); 00076 /// See the filter example to see explicitly how this can be done. 00077 /// 00078 /// 00079 /// \section desc Options 00080 /// 00081 /// The constructor has the following arguments: 00082 /// - The first argument is minimal mass drop required (mu_cut) [0.67 00083 /// by default] 00084 /// - The second argument is asymmetry cut (y_cut) [0.09 by default] 00085 /// 00086 /// \section input Input conditions 00087 /// 00088 /// - one must be able to succesively "uncluster" the original jet 00089 /// using "has_parents" 00090 /// 00091 /// \section output Output/structure 00092 /// 00093 /// - the 2 subjets are kept as pieces if some substructure is found, 00094 /// otherwise a single 0-momentum piece is returned 00095 /// - the 'mu' and 'y' values corresponding to the unclustering step 00096 /// that passed the tagger's cuts 00097 /// 00098 class MassDropTagger : public Transformer{ 00099 public: 00100 /// default ctor 00101 MassDropTagger(const double mu=0.67, const double ycut=0.09) : _mu(mu), _ycut(ycut){}; 00102 00103 /// description of the tagger 00104 virtual std::string description() const; 00105 00106 /// the tagging itself 00107 /// \param jet the PseudoJet to tag 00108 virtual PseudoJet result(const PseudoJet & jet) const; 00109 00110 /// the type of the associated structure 00111 typedef MassDropStructure StructureType; 00112 00113 protected: 00114 double _mu, _ycut; 00115 }; 00116 00117 00118 //------------------------------------------------------------------------ 00119 /// @ingroup tools 00120 /// \class MassDropStructure 00121 /// the structure returned by the MassDropTagger transformer. 00122 /// 00123 /// See the MassDropTagger class description for the details of what 00124 /// is inside this structure 00125 /// 00126 class MassDropStructure : public CompositeJetStructure{ 00127 public: 00128 /// ctor with initialisation 00129 /// \param pieces the pieces of the created jet 00130 /// \param rec the recombiner from the underlying cluster sequence 00131 MassDropStructure(const std::vector<PseudoJet> & pieces, 00132 const JetDefinition::Recombiner *recombiner = 0) : 00133 CompositeJetStructure(pieces, recombiner), _mu(0.0), _y(0.0){} 00134 00135 /// the mass-drop ratio, pieces[0].m()/jet.m(), for the splitting 00136 /// that triggered the mass-drop condition 00137 inline double mu() const{return _mu;} 00138 00139 /// The value of y = (squared kt distance) / (squared mass) for the 00140 /// splitting that triggered the mass-drop condition 00141 inline double y() const {return _y;} 00142 00143 protected: 00144 double _mu; ///< the value of the mass-drop parameter 00145 double _y; ///< the value of the asymmetry parameter 00146 00147 // allow the tagger to set these 00148 friend class MassDropTagger; 00149 }; 00150 00151 00152 00153 FASTJET_END_NAMESPACE 00154 00155 #endif // __FASTJET_MASS_DROP_TAGGER_HH__ 00156
1.7.4