/usr/include/fastjet/AreaDefinition.hh is in libfastjet-dev 3.0.6+dfsg-3build1.
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 143 144 145 146 147 148 149 150 151 152 153 154 155 | //STARTHEADER
// $Id: AreaDefinition.hh 2687 2011-11-14 11:17:51Z soyez $
//
// Copyright (c) 2006-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 __FASTJET_AREADEFINITION_HH__
#define __FASTJET_AREADEFINITION_HH__
#include "fastjet/GhostedAreaSpec.hh"
FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
//----------------------------------------------------------------------
//
/// @ingroup area_classes
/// \class VoronoiAreaSpec
/// Specification for the computation of the Voronoi jet area
///
/// class for holding a "Voronoi area" specification; an area will be
/// assigned to each particle, which is the area of the intersection
/// of the particle's Voronoi cell with a circle of radius
/// R*effective_Rfact.
///
class VoronoiAreaSpec {
public:
/// default constructor (effective_Rfact = 1);
VoronoiAreaSpec() : _effective_Rfact(1.0) {};
/// constructor that allows you to set effective_Rfact.
VoronoiAreaSpec(double effective_Rfact_in) :
_effective_Rfact(effective_Rfact_in) {};
/// return the value of effective_Rfact
double effective_Rfact() const {return _effective_Rfact;}
/// return a textual description of the area definition.
std::string description() const;
private:
double _effective_Rfact;
};
/// the different types of area that are supported
enum AreaType {invalid_area = -1,
active_area = 0, active_area_explicit_ghosts = 1,
one_ghost_passive_area = 10, passive_area = 11,
voronoi_area=20};
//----------------------------------------------------------------------
/// @ingroup area_classes
/// \class AreaDefinition
/// class that holds a generic area definition
class AreaDefinition {
public:
/// default constructor, which provides a ghosted active area, with
/// sensible defaults for the ghosts.
AreaDefinition() {
_area_type = active_area;
_ghost_spec = GhostedAreaSpec();
}
/// constructor for an area definition based on an area type and a
/// ghosted area specification
AreaDefinition(AreaType type, const GhostedAreaSpec & spec) {
_ghost_spec = spec;
_area_type = type;
assert(type != voronoi_area);
}
/// constructor for an area definition based on an area type and a
/// voronoi area specification (type must be voronoi_area)
AreaDefinition(AreaType type, const VoronoiAreaSpec & spec) {
_voronoi_spec = spec;
_area_type = type;
assert(type == voronoi_area);
}
/// constructor for an area definition based on an area type and
/// which attempts to provide sensible defaults for everything else
AreaDefinition(AreaType type) {
_area_type = type;
if (type == voronoi_area) {
_voronoi_spec = VoronoiAreaSpec();
} else {
_ghost_spec = GhostedAreaSpec();
}
}
/// constructor for an area definition based on an ghosted area
/// specification, and an option to select which ghosted area you want
AreaDefinition(const GhostedAreaSpec & spec, AreaType type = active_area) {
_ghost_spec = spec;
_area_type = type;
assert(type != voronoi_area);
}
/// constructor for an area definition based on a voronoi area
/// specification
AreaDefinition(const VoronoiAreaSpec & spec) {
_voronoi_spec = spec;
_area_type = voronoi_area;
}
/// return a description of the current area definition
std::string description() const;
/// return info about the type of area being used by this defn
AreaType area_type() const {return _area_type;}
/// return a reference to the active area spec
const GhostedAreaSpec & ghost_spec() const {return _ghost_spec;}
GhostedAreaSpec & ghost_spec() {return _ghost_spec;}
/// return a reference to the voronoi area spec
const VoronoiAreaSpec & voronoi_spec() const {return _voronoi_spec;}
private:
AreaType _area_type;
GhostedAreaSpec _ghost_spec;
VoronoiAreaSpec _voronoi_spec;
};
FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh
#endif // __FASTJET_AREADEFINITION_HH__
|