]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/fastjet/siscone/area.h
added pdet-ppart over ppart histogram for detector response
[u/mrichter/AliRoot.git] / JETAN / fastjet / siscone / area.h
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:: 149                                                          $//
25 // $Date:: 2007-03-15 00:13:58 +0100 (Thu, 15 Mar 2007)                     $//
26 ///////////////////////////////////////////////////////////////////////////////
27
28 #ifndef __SISCONE_AREA_H__
29 #define __SISCONE_AREA_H__
30
31 #include "momentum.h"
32 #include "siscone.h"
33
34 namespace 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  */
48 class 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  */
72 class 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