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 
117