Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:16

0001 //FJSTARTHEADER
0002 // $Id$
0003 //
0004 // Copyright (c) 2005-2021, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
0005 //
0006 //----------------------------------------------------------------------
0007 // This file is part of FastJet.
0008 //
0009 //  FastJet is free software; you can redistribute it and/or modify
0010 //  it under the terms of the GNU General Public License as published by
0011 //  the Free Software Foundation; either version 2 of the License, or
0012 //  (at your option) any later version.
0013 //
0014 //  The algorithms that underlie FastJet have required considerable
0015 //  development. They are described in the original FastJet paper,
0016 //  hep-ph/0512210 and in the manual, arXiv:1111.6097. If you use
0017 //  FastJet as part of work towards a scientific publication, please
0018 //  quote the version you use and include a citation to the manual and
0019 //  optionally also to hep-ph/0512210.
0020 //
0021 //  FastJet is distributed in the hope that it will be useful,
0022 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
0023 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0024 //  GNU General Public License for more details.
0025 //
0026 //  You should have received a copy of the GNU General Public License
0027 //  along with FastJet. If not, see <http://www.gnu.org/licenses/>.
0028 //----------------------------------------------------------------------
0029 //FJENDHEADER
0030 
0031 #ifndef __FASTJET_TOOL_BOOST_HH__
0032 #define __FASTJET_TOOL_BOOST_HH__
0033 
0034 #include "fastjet/PseudoJet.hh"
0035 #include "fastjet/FunctionOfPseudoJet.hh"
0036 #include "fastjet/PseudoJetStructureBase.hh"
0037 
0038 FASTJET_BEGIN_NAMESPACE      // defined in fastjet/internal/base.hh
0039 
0040 /// @ingroup tools_generic
0041 /// \class Boost
0042 /// Class to boost a PseudoJet
0043 ///
0044 /// This is a FunctionOfPseudoJet with return type PseudoJet. Its
0045 /// action if to boost the PseudoJet by a boost vector passed to its
0046 /// constructor
0047 class Boost : public FunctionOfPseudoJet<PseudoJet>{
0048 public:
0049   /// default ctor
0050   Boost(const PseudoJet & jet_rest) : _jet_rest(jet_rest){}
0051 
0052   /// the action of the function: boost the PseudoJet by a boost
0053   /// vector _jet_rest
0054   PseudoJet result(const PseudoJet & original) const{
0055     PseudoJet res = original;
0056     return res.boost(_jet_rest);
0057   }
0058 
0059 protected:
0060   PseudoJet _jet_rest;  ///< the boost vector
0061 };
0062 
0063 /// @ingroup tools_generic
0064 /// \class Unboost
0065 /// Class to un-boost a PseudoJet
0066 ///
0067 /// This is a FunctionOfPseudoJet with return type PseudoJet. Its
0068 /// action if to un-boost the PseudoJet back in the restframe of the
0069 /// PseudoJet passed to its constructor
0070 class Unboost : public FunctionOfPseudoJet<PseudoJet>{
0071 public:
0072   /// default ctor
0073   Unboost(const PseudoJet & jet_rest) : _jet_rest(jet_rest){}
0074 
0075   /// the action of the function: boost the PseudoJet to the rest
0076   /// frame of _jet_rest
0077   PseudoJet result(const PseudoJet & original) const{
0078     PseudoJet res = original;
0079     return res.unboost(_jet_rest);
0080   }
0081 
0082 protected:
0083   PseudoJet _jet_rest;  ///< the boost vector
0084 };
0085 
0086 FASTJET_END_NAMESPACE      // defined in fastjet/internal/base.hh
0087 
0088 #endif // __FASTJET_TRANSFORMER_HH__