source: trunk/SISCone/area.h@ 20

Last change on this file since 20 was 20, checked in by Pavel Demin, 16 years ago

add SISCone library

File size: 6.0 KB
RevLine 
[20]1// -*- C++ -*-
2///////////////////////////////////////////////////////////////////////////////
3// File: area.h //
4// Description: header file for the computation of jet area //
5// This file is part of the SISCone project. //
6// For more details, see http://projects.hepforge.org/siscone //
7// //
8// Copyright (c) 2006 Gavin Salam and Gregory Soyez //
9// //
10// This program is free software; you can redistribute it and/or modify //
11// it under the terms of the GNU General Public License as published by //
12// the Free Software Foundation; either version 2 of the License, or //
13// (at your option) any later version. //
14// //
15// This program is distributed in the hope that it will be useful, //
16// but WITHOUT ANY WARRANTY; without even the implied warranty of //
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
18// GNU General Public License for more details. //
19// //
20// You should have received a copy of the GNU General Public License //
21// along with this program; if not, write to the Free Software //
22// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
23// //
24// $Revision: 1.1 $//
25// $Date: 2008-10-02 15:20:24 $//
26///////////////////////////////////////////////////////////////////////////////
27
28#ifndef __SISCONE_AREA_H__
29#define __SISCONE_AREA_H__
30
31#include "momentum.h"
32#include "siscone.h"
33
34namespace siscone{
35
36/**
37 * \class Cjet_area
38 * real Jet information, including its area(s)
39 *
40 * This class contains information for one single jet.
41 * That is, first, its momentum carrying information
42 * about its centre and pT, and second, its particle
43 * contents.
44 * Compared to the Cjet class, it also includes the
45 * passive and active areas of the jet computed using
46 * the Carea class.
47 */
48class Cjet_area : public Cjet{
49 public:
50 /// default ctor
51 Cjet_area();
52
53 /// jet-initialised ctor
54 Cjet_area(Cjet &j);
55
56 /// default dtor
57 ~Cjet_area();
58
59 // area information
60 double passive_area; ///< passive area
61 double active_area; ///< active area
62};
63
64/**
65 * \class Csiscone_area
66 * class for the computation of jet areas.
67 *
68 * This is the class user should use whenever you want to compute
69 * the jet area (passive and active). .
70 * It uses the SISCone algorithm to perform the jet analysis.
71 */
72class Carea : public Csiscone{
73 public:
74 /// default ctor
75 Carea();
76
77 /// default dtor
78 ~Carea();
79
80 /**
81 * compute the jet areas from a given particle set.
82 * The parameters of this method are the ones which control the jet clustering alghorithn.
83 * Note that the pt_min is not allowed here soince the jet-area determination involves soft
84 * particles/jets and thus is used internally.
85 * \param _particles list of particles
86 * \param _radius cone radius
87 * \param _f shared energy threshold for splitting&merging
88 * \param _n_pass_max maximum number of passes (0=full search, the default)
89 * \param _split_merge_scale the scale choice for the split-merge procedure
90 * NOTE: SM_pt leads to IR unsafety for some events with momentum conservation.
91 * SM_Et is IR safe but not boost invariant and not implemented(!)
92 * SM_mt is IR safe for hadronic events, but not for decays of two
93 * back-to-back particles of identical mass
94 * SM_pttilde
95 * is always IR safe, and also boost invariant (default)
96 * \param _hard_only when this is set on, only hard jets are computed
97 * and not the purely ghosted jets (default: false)
98 * \return the jets together with their areas
99 */
100 int compute_areas(std::vector<Cmomentum> &_particles, double _radius, double _f,
101 int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde,
102 bool _hard_only=false);
103
104 /**
105 * compute the jet active areas from a given particle set.
106 * The parameters of this method are the ones which control the jet clustering alghorithn.
107 * Note that the pt_min is not allowed here soince the jet-area determination involves soft
108 * particles/jets and thus is used internally.
109 * See compute_areas for paramters definition.
110 * \return the jets together with their active areas
111 */
112 int compute_active_areas(std::vector<Cmomentum> &_particles, double _radius, double _f,
113 int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde,
114 bool _hard_only=false);
115
116 /**
117 * compute the jet passive areas from a given particle set.
118 * The parameters of this method are the ones which control the jet clustering alghorithn.
119 * Note that the pt_min is not allowed here soince the jet-area determination involves soft
120 * particles/jets and thus is used internally.
121 * See compute_areas for paramters definition.
122 * \return the jets together with their passive areas
123 */
124 int compute_passive_areas(std::vector<Cmomentum> &_particles, double _radius, double _f,
125 int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde);
126
127 int grid_size; ///< size of the grid we add soft particles on (N_soft=(grid_size^2))
128 double grid_eta_max; ///< maximal value of eta we add soft particles on
129 double grid_shift; ///< fractional (random) displacement of the points om the grid
130
131 double pt_soft; ///< pt of the soft particles added
132 double pt_shift; ///< amplitude of the pt random shift
133 double pt_soft_min; ///< pt_min used in SM to compute passive areas
134
135 /// jets with their areas
136 std::vector<Cjet_area> jet_areas;
137};
138
139}
140#endif
Note: See TracBrowser for help on using the repository browser.