FastJet 3.0.2
TopTaggerBase.cc
00001 //STARTHEADER
00002 // $Id: TopTaggerBase.cc 2689 2011-11-14 14:51:06Z soyez $
00003 //
00004 // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. 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, see <http://www.gnu.org/licenses/>.
00026 //----------------------------------------------------------------------
00027 //ENDHEADER
00028 
00029 #include <fastjet/tools/TopTaggerBase.hh>
00030 
00031 FASTJET_BEGIN_NAMESPACE
00032 
00033 using namespace std;
00034 
00035 // compute the W helicity angle
00036 //
00037 // The helicity angle is a standard observable in top decays, used to
00038 // determine the Lorentz structure of the top- W coupling [13]. It is
00039 // defined as the angle, measured in the rest frame of the
00040 // reconstructed W, between the reconstructed top's flight direction
00041 // and one of the W decay products. Normally, it is studied in
00042 // semi-leptonic top decays, where the charge of the lepton uniquely
00043 // identifies these decay products. In hadronic top decays there is an
00044 // ambiguity which we resolve by choosing the lower pT subjet, as
00045 // measured in the lab frame.
00046 //
00047 // The jet passed to this function is expected to already have
00048 // the structure of a top, including a functional "W()" call;
00049 // the W must be made of two pieces.
00050 double TopTaggerBase::_cos_theta_W(const PseudoJet & res) const{
00051   // the two jets of interest: top and lower-pt prong of W
00052   const PseudoJet & W  = res.structure_of<TopTaggerBase>().W();
00053   vector<PseudoJet> W_pieces = W.pieces();
00054   assert(W_pieces.size() == 2);
00055   //assert(W_pieces[0].perp2() >= W_pieces[1].perp2());
00056   //PseudoJet W2  = W_pieces[1];
00057   // extract the softer of the two W pieces.
00058   PseudoJet W2 =  (W_pieces[0].perp2() < W_pieces[1].perp2())
00059                     ? W_pieces[0] 
00060                     : W_pieces[1];
00061   PseudoJet top = res;
00062   
00063   // transform these jets into jets in the rest frame of the W
00064   W2.unboost(W);
00065   top.unboost(W);
00066 
00067   return (W2.px()*top.px() + W2.py()*top.py() + W2.pz()*top.pz())/
00068     sqrt(W2.modp2() * top.modp2());
00069 }
00070 
00071 
00072 FASTJET_END_NAMESPACE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends