source: HiSusy/trunk/Delphes-3.0.0/external/fastjet/plugins/SISCone/area.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 6.1 KB
Line 
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:: 859                                                          $//
25// $Date:: 2012-11-28 02:49:23 +0100 (Wed, 28 Nov 2012)                     $//
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 Carea
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 number of jets (including pure-ghost ones if they are included)
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 number of jets (including pure-ghost ones if they are included)
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   */
123  int compute_passive_areas(std::vector<Cmomentum> &_particles, double _radius, double _f, 
124                            int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde);
125
126  int grid_size;        ///< size of the grid we add soft particles on (N_soft=(grid_size^2))
127  double grid_eta_max;  ///< maximal value of eta we add soft particles on
128  double grid_shift;    ///< fractional (random) displacement of the points om the grid
129
130  double pt_soft;       ///< pt of the soft particles added
131  double pt_shift;      ///< amplitude of the pt random shift
132  double pt_soft_min;   ///< pt_min used in SM to compute passive areas
133
134  /// jets with their areas
135  std::vector<Cjet_area> jet_areas;
136};
137
138}
139#endif
Note: See TracBrowser for help on using the repository browser.