/usr/include/fastjet/PxConePlugin.hh is in libfastjetplugins-dev 3.0.6+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | //STARTHEADER
// $Id: PxConePlugin.hh 2758 2011-11-24 08:31:58Z soyez $
//
// Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
//
//----------------------------------------------------------------------
// This file is part of FastJet.
//
// FastJet is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// The algorithms that underlie FastJet have required considerable
// development and are described in hep-ph/0512210. If you use
// FastJet as part of work towards a scientific publication, please
// include a citation to the FastJet paper.
//
// FastJet is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with FastJet. If not, see <http://www.gnu.org/licenses/>.
//----------------------------------------------------------------------
//ENDHEADER
#ifndef __PXCONEPLUGIN_HH__
#define __PXCONEPLUGIN_HH__
#include "fastjet/JetDefinition.hh"
// questionable whether this should be in fastjet namespace or not...
FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
//----------------------------------------------------------------------
//
/// @ingroup plugins
/// \class PxConePlugin
/// Implementation of the PxCone algorithm (plugin for fastjet v2.1 upwards)
///
/// PxConePlugin is a plugin for fastjet (v2.1 upwards) that provides
/// an interface to the fortran pxcone iterative cone algorithm with
/// midpoint seeds.
///
/// Pxcone was written by Luis del Pozo and Michael H. Seymour. It is
/// not a "supported" program, so if you encounter problems, you are
/// on your own...
///
/// Note that pxcone sometimes encounters non-stable iterations; in
/// such cases it returns an error -- the plugin propagates this by
/// throwing a fastjet::Error exception; if the user wishes to have
/// robust code, they should catch this exception.
///
/// Pxcone has a hard-coded limit (by default 4000) on the maximum
/// number of particles and protojets; if the number of particles or
/// protojets exceeds this, again a fastjet::Error exception will be
/// thrown.
///
/// The functionality of pxcone is described at
/// http://www.hep.man.ac.uk/u/wplano/ConeJet.ps
//
//----------------------------------------------------------------------
class PxConePlugin : public JetDefinition::Plugin {
public:
/// constructor for the PxConePlugin, whose arguments have the
/// following meaning:
///
/// - the cone_radius is as usual in cone algorithms
///
/// - stables cones (protojets) below min_jet_energy are discarded
/// before calling the splitting procedure to resolve overlaps
/// (called epslon in pxcone).
///
/// - when two protojets overlap, if
/// (overlapping_Et)/(Et_of_softer_protojet) < overlap_threshold
/// the overlapping energy is split between the two protojets;
/// otherwise the less energetic protojet is discarded. Called
/// ovlim in pxcone.
///
/// - pxcone carries out p-scheme recombination, and the resulting
/// jets are massless; setting E_scheme_jets = true (default
/// false) doesn't change the jet composition, but the final
/// momentum sum for the jets is carried out by direct
/// four-vector addition instead of p-scheme recombination.
///
PxConePlugin (double cone_radius_in ,
double min_jet_energy_in = 5.0 ,
double overlap_threshold_in = 0.5,
bool E_scheme_jets_in = false) :
_cone_radius (cone_radius_in ),
_min_jet_energy (min_jet_energy_in ),
_overlap_threshold (overlap_threshold_in),
_E_scheme_jets (E_scheme_jets_in ) {}
// some functions to return info about parameters ----------------
/// the cone radius
double cone_radius () const {return _cone_radius ;}
/// minimum jet energy (protojets below this are thrown own before
/// merging/splitting) -- called epslon in pxcone
double min_jet_energy () const {return _min_jet_energy ;}
/// Maximum fraction of overlap energy in a jet -- called ovlim in pxcone.
double overlap_threshold () const {return _overlap_threshold ;}
/// if true then the final jets are returned as the E-scheme recombination
/// of the particle momenta (by default, pxcone returns massless jets with
/// a mean phi,eta type of recombination); regardless of what is
/// returned, the internal pxcone jet-finding procedure is
/// unaffected.
bool E_scheme_jets() const {return _E_scheme_jets ;}
// the things that are required by base class
virtual std::string description () const;
virtual void run_clustering(ClusterSequence &) const;
/// the plugin mechanism's standard way of accessing the jet radius
virtual double R() const {return cone_radius();}
private:
double _cone_radius ;
double _min_jet_energy ;
double _overlap_threshold ;
bool _E_scheme_jets;
static bool _first_time;
/// print a banner for reference to the 3rd-party code
void _print_banner(std::ostream *ostr) const;
};
FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh
#endif // __PXCONEPLUGIN_HH__
|