FastJet  3.3.3
ClusterSequencePassiveArea.hh
1 //FJSTARTHEADER
2 // $Id: ClusterSequencePassiveArea.hh 4420 2019-11-29 09:28:20Z soyez $
3 //
4 // Copyright (c) 2005-2019, Matteo Cacciari, Gavin P. Salam and Gregory Soyez
5 //
6 //----------------------------------------------------------------------
7 // This file is part of FastJet.
8 //
9 // FastJet is free software; you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation; either version 2 of the License, or
12 // (at your option) any later version.
13 //
14 // The algorithms that underlie FastJet have required considerable
15 // development. They are described in the original FastJet paper,
16 // hep-ph/0512210 and in the manual, arXiv:1111.6097. If you use
17 // FastJet as part of work towards a scientific publication, please
18 // quote the version you use and include a citation to the manual and
19 // optionally also to hep-ph/0512210.
20 //
21 // FastJet is distributed in the hope that it will be useful,
22 // but WITHOUT ANY WARRANTY; without even the implied warranty of
23 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 // GNU General Public License for more details.
25 //
26 // You should have received a copy of the GNU General Public License
27 // along with FastJet. If not, see <http://www.gnu.org/licenses/>.
28 //----------------------------------------------------------------------
29 //FJENDHEADER
30 
31 #ifndef __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__
32 #define __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__
33 
34 
35 #include "fastjet/PseudoJet.hh"
36 #include "fastjet/ClusterSequence1GhostPassiveArea.hh"
37 #include<iostream>
38 #include<vector>
39 
40 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
41 
42 //using namespace std;
43 
44 /// @ingroup sec_area_classes
45 /// \class ClusterSequencePassiveArea
46 /// Like ClusterSequence with computation of the passive jet area
47 ///
48 /// Class that behaves essentially like ClusterSequence except
49 /// that it also provides access to the area of a jet (which
50 /// will be a random quantity... Figure out what to do about seeds
51 /// later...)
52 ///
53 /// This class should not be used directly. Rather use
54 /// ClusterSequenceArea with the appropriate AreaDefinition
56 public:
57 
58  /// constructor based on JetDefinition and PassiveAreaSpec
59  template<class L> ClusterSequencePassiveArea
60  (const std::vector<L> & pseudojets,
61  const JetDefinition & jet_def_in,
62  const GhostedAreaSpec & area_spec,
63  const bool & writeout_combinations = false) ;
64 
65  /// return an empty area that's appropriate to the passive area
66  /// determination carried out
67  virtual double empty_area(const Selector & selector) const FASTJET_OVERRIDE;
68 
69 private:
70 
71  /// does the initialisation and running specific to the passive
72  /// areas class
73  void _initialise_and_run_PA (const JetDefinition & jet_def_in,
74  const GhostedAreaSpec & area_spec,
75  const bool & writeout_combinations = false);
76 
77 };
78 
79 
80 
81 
82 template<class L> ClusterSequencePassiveArea::ClusterSequencePassiveArea
83 (const std::vector<L> & pseudojets,
84  const JetDefinition & jet_def_in,
85  const GhostedAreaSpec & area_spec,
86  const bool & writeout_combinations) {
87 
88  // transfer the initial jets (type L) into our own array
89  _transfer_input_jets(pseudojets);
90 
91  // run the clustering for passive areas
92  _initialise_and_run_PA(jet_def_in, area_spec, writeout_combinations);
93 
94 }
95 
96 
97 
98 FASTJET_END_NAMESPACE
99 
100 #endif // __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__
Like ClusterSequence with computation of the passive jet area by adding a single ghost.
Like ClusterSequence with computation of the passive jet area.
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
Definition: Selector.hh:149
Parameters to configure the computation of jet areas using ghosts.
class that is intended to hold a full definition of the jet clusterer