FastJet  3.2.0
JetSplitMergeTool.hh
1 #ifndef JETREC_JETSPLITMERGETOOL_H
2 #define JETREC_JETSPLITMERGETOOL_H
3 
4 //----------------------------------------------------------------------
5 // This file distributed with FastJet has been obtained from SpartyJet
6 // v2.20.0 by Pierre-Antoine Delsart, Kurtis L. Geerlings, Joey
7 // Huston, Brian T. Martin and Chris Vermilion
8 // For details, see http://www.pa.msu.edu/~huston/SpartyJet/
9 // http://projects.hepforge.org/spartyjet/
10 //
11 // Changes from the original file are listed below.
12 //----------------------------------------------------------------------
13 
14 //******************************************************************************
15 // Filename : JetSplitMergeTool
16 // Author : Ambreesh Gupta
17 // Created : November, 2001
18 //
19 // DESCRIPTION:
20 //
21 // Cone algorithms generally produce overlapping jets. These jets are then
22 // passed through a Split Merge algorithm to create seperated jets. This
23 // is an implementation of one such algorithm.
24 //
25 // The steps of the algorithm are:
26 // - <to be written>
27 //
28 // PROPERTIES (JobOption Parameters):
29 //
30 // ProtoJetContainerLoc string "Default" Key for ProtoJet input.
31 // JetContainerLoc string "Default" Key for Jet list to output.
32 // OverlapFraction double 0.5
33 //
34 // HISTORY
35 // 05Nov01 agupta. First version
36 // 15Aug02 agupta. Fix phi-wrapping.
37 //*****************************************************************************
38 
39 
40 // History of changes from the original JetSplitMergeTool.hh file in
41 // SpartyJet v2.20
42 //
43 // 2009-01-15 Gregory Soyez <soyez@fastjet.fr>
44 //
45 // * put the code in the fastjet::atlas namespace
46 //
47 // 2009-02-14 Gregory Soyez <soyez@fastjet.fr>
48 //
49 // * imported into FastJet
50 // * removed the message logs
51 // * replaced StatusCode by int
52 
53 
54 //class StoreGateSvc;
55 
56 //Includes
57 #include "Jet.hh"
58 
59 #include <vector>
60 #include <list>
61 
62 //#include "JetCore/CustomMessage.hh"
63 
64 #include <fastjet/internal/base.hh>
65 
66 FASTJET_BEGIN_NAMESPACE
67 
68 namespace atlas {
69 
70 //typedef int StatusCode ;
71 
72 class JetSplitMergeTool
73 {
74 public:
75  typedef Jet::jet_list_t jetcollection_t;
76  //Constructors
77  JetSplitMergeTool();
78 
79  //Destructor
80  virtual ~JetSplitMergeTool();
81 
82  virtual int execute( jetcollection_t* theJets );
83 
84  //Handle negative energy ProtoJets:
85  double etaTrue(Jet::constit_vect_t::iterator pj);
86  double phiTrue(Jet::constit_vect_t::iterator pj);
87 
88  //private:
89  void split_merge();
90  double m_f;
91  jetcollection_t m_preJet;
92  jetcollection_t m_jet;
93  jetcollection_t* m_jetVec;
94 
95  int m_ctr;
96  int m_dctr;
97 
98  // Message m_log;
99 };
100 
101 } // namespace atlas
102 
103 FASTJET_END_NAMESPACE
104 
105 #endif // JETREC_JETSPLITMERGETOOL_H
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116