Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:06:41

0001 // This file is part of FastJet contrib.
0002 //
0003 // It is free software; you can redistribute it and/or modify it under
0004 // the terms of the GNU General Public License as published by the
0005 // Free Software Foundation; either version 2 of the License, or (at
0006 // your option) any later version.
0007 //
0008 // It is distributed in the hope that it will be useful, but WITHOUT
0009 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
0010 // or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
0011 // License for more details.
0012 //
0013 // You should have received a copy of the GNU General Public License
0014 // along with this code. If not, see <http://www.gnu.org/licenses/>.
0015 //----------------------------------------------------------------------
0016 
0017 #ifndef __FASTJET_CONTRIB_CENTAUROJETALGORITHM_HH__
0018 #define __FASTJET_CONTRIB_CENTAUROJETALGORITHM_HH__
0019 
0020 #include <fastjet/internal/base.hh>
0021 #include "fastjet/JetDefinition.hh"
0022 #include "fastjet/ClusterSequence.hh"
0023 FASTJET_BEGIN_NAMESPACE      // defined in fastjet/internal/base.hh
0024 
0025 namespace contrib{
0026 
0027   class CentauroPlugin : public JetDefinition::Plugin {
0028   public:
0029 
0030     /// Constructor for the Centauro Plugin class.
0031 
0032     /// Three floating point arguments are specified to set the parameters
0033     /// the radius parameter R, and gammaE and gammaPz are the energy and pz of virtual photon
0034 
0035     CentauroPlugin (double R, double gammaE, double gammaPz) : _R(R), _gammaE(gammaE), _gammaPz(gammaPz){}
0036 
0037     /// if only one argument is passed, assume that it runs in Breit frame so gammaE and gammaPz info not required so set
0038     /// so they are set to zero
0039     
0040     CentauroPlugin (double R) : _R(R), _gammaE(0), _gammaPz(0){}
0041     /// copy constructor
0042     CentauroPlugin (const CentauroPlugin & plugin) {
0043       *this = plugin;
0044     }
0045 
0046     // the things that are required by base class
0047     virtual std::string description () const;
0048     virtual void run_clustering(ClusterSequence &) const;
0049 
0050 
0051     virtual double R() const {return _R;}
0052     virtual double gammaE() const {return _gammaE;}
0053     virtual double gammaPz() const {return _gammaPz;}
0054 
0055 
0056 
0057     /// avoid the warning whenever the user requests "exclusive" jets
0058     /// from the cluster sequence
0059     virtual bool exclusive_sequence_meaningful() const {return true;}
0060 
0061   private:
0062     double _R;
0063     double _gammaE;
0064     double _gammaPz;
0065   };
0066 
0067 } // namespace contrib
0068 
0069 FASTJET_END_NAMESPACE
0070 
0071 #endif  // __FASTJET_CONTRIB_CENTAUROJETALGORITHM_HH__