FastJet 3.0.4
JetSplitMergeTool.hh
00001 #ifndef JETREC_JETSPLITMERGETOOL_H
00002 #define JETREC_JETSPLITMERGETOOL_H
00003 
00004 //----------------------------------------------------------------------
00005 // This file distributed with FastJet has been obtained from SpartyJet
00006 // v2.20.0 by Pierre-Antoine Delsart, Kurtis L. Geerlings, Joey
00007 // Huston, Brian T. Martin and Chris Vermilion
00008 // For details, see http://www.pa.msu.edu/~huston/SpartyJet/
00009 //                  http://projects.hepforge.org/spartyjet/
00010 //
00011 // Changes from the original file are listed below.
00012 //----------------------------------------------------------------------
00013 
00014 //******************************************************************************
00015 // Filename :  JetSplitMergeTool   
00016 // Author   :  Ambreesh Gupta
00017 // Created  :  November, 2001
00018 //
00019 // DESCRIPTION:
00020 //
00021 // Cone algorithms generally produce overlapping jets. These jets are then
00022 // passed through a Split Merge algorithm to create seperated jets. This
00023 // is an implementation of one such algorithm.
00024 // 
00025 // The steps of the algorithm are:
00026 //          - <to be written>
00027 //
00028 // PROPERTIES (JobOption Parameters):
00029 //
00030 //    ProtoJetContainerLoc  string "Default"   Key for ProtoJet input.
00031 //    JetContainerLoc       string "Default"   Key for Jet list to output.
00032 //    OverlapFraction       double 0.5
00033 //
00034 // HISTORY
00035 //   05Nov01 agupta.  First version
00036 //   15Aug02 agupta.  Fix phi-wrapping. 
00037 //*****************************************************************************
00038 
00039 
00040 // History of changes from the original JetSplitMergeTool.hh file in
00041 // SpartyJet v2.20
00042 // 
00043 // 2009-01-15  Gregory Soyez  <soyez@fastjet.fr>
00044 // 
00045 //        * put the code in the fastjet::atlas namespace
00046 // 
00047 // 2009-02-14  Gregory Soyez  <soyez@fastjet.fr>
00048 // 
00049 //        * imported into FastJet
00050 //        * removed the message logs
00051 //        * replaced StatusCode by int
00052 
00053 
00054 //class StoreGateSvc;
00055 
00056 //Includes
00057 #include "Jet.hh"
00058 
00059 #include <vector>
00060 #include <list>
00061 
00062 //#include "JetCore/CustomMessage.hh"
00063 
00064 #include <fastjet/internal/base.hh>
00065 
00066 FASTJET_BEGIN_NAMESPACE
00067 
00068 namespace atlas { 
00069 
00070 //typedef int StatusCode ;
00071 
00072 class JetSplitMergeTool 
00073 {
00074 public:
00075   typedef Jet::jet_list_t jetcollection_t;
00076     //Constructors
00077     JetSplitMergeTool();
00078 
00079     //Destructor
00080     virtual ~JetSplitMergeTool();
00081 
00082     virtual int execute( jetcollection_t* theJets );
00083 
00084     //Handle negative energy ProtoJets:
00085     double etaTrue(Jet::constit_vect_t::iterator pj);
00086     double phiTrue(Jet::constit_vect_t::iterator pj);
00087 
00088     //private:
00089     void                                     split_merge();   
00090     double                                             m_f;
00091     jetcollection_t                               m_preJet;
00092     jetcollection_t                                  m_jet;
00093     jetcollection_t*                              m_jetVec;
00094 
00095     int m_ctr;
00096     int m_dctr;
00097 
00098   //    Message m_log;
00099 };
00100 
00101 }  // namespace atlas
00102 
00103 FASTJET_END_NAMESPACE
00104 
00105 #endif // JETREC_JETSPLITMERGETOOL_H
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends