fastjet 2.4.5
JetSplitMergeTool.hh
Go to the documentation of this file.
00001 #ifndef JETREC_JETSPLITMERGETOOL_H
00002 #define JETREC_JETSPLITMERGETOOL_H
00003 //******************************************************************************
00004 // Filename :  JetSplitMergeTool   
00005 // Author   :  Ambreesh Gupta
00006 // Created  :  November, 2001
00007 //
00008 // DESCRIPTION:
00009 //
00010 // Cone algorithms generally produce overlapping jets. These jets are then
00011 // passed through a Split Merge algorithm to create seperated jets. This
00012 // is an implementation of one such algorithm.
00013 // 
00014 // The steps of the algorithm are:
00015 //          - <to be written>
00016 //
00017 // PROPERTIES (JobOption Parameters):
00018 //
00019 //    ProtoJetContainerLoc  string "Default"   Key for ProtoJet input.
00020 //    JetContainerLoc       string "Default"   Key for Jet list to output.
00021 //    OverlapFraction       double 0.5
00022 //
00023 // HISTORY
00024 //   05Nov01 agupta.  First version
00025 //   15Aug02 agupta.  Fix phi-wrapping. 
00026 //   
00027 // NOTES
00028 //   taken from SpartyJet v2.20.0
00029 //   removed the Message logs
00030 //   replaced StatusCode by int
00031 //*****************************************************************************
00032 
00033 
00034 //class StoreGateSvc;
00035 
00036 //Includes
00037 #include "Jet.hh"
00038 
00039 #include <vector>
00040 #include <list>
00041 
00042 //#include "JetCore/CustomMessage.hh"
00043 
00044 #include <fastjet/internal/base.hh>
00045 
00046 FASTJET_BEGIN_NAMESPACE
00047 
00048 namespace atlas { 
00049 
00050 //typedef int StatusCode ;
00051 
00052 class JetSplitMergeTool 
00053 {
00054 public:
00055   typedef Jet::jet_list_t jetcollection_t;
00056     //Constructors
00057     JetSplitMergeTool();
00058 
00059     //Destructor
00060     virtual ~JetSplitMergeTool();
00061 
00062     virtual int execute( jetcollection_t* theJets );
00063 
00064     //Handle negative energy ProtoJets:
00065     double etaTrue(Jet::constit_vect_t::iterator pj);
00066     double phiTrue(Jet::constit_vect_t::iterator pj);
00067 
00068     //private:
00069     void                                     split_merge();   
00070     double                                             m_f;
00071     jetcollection_t                               m_preJet;
00072     jetcollection_t                                  m_jet;
00073     jetcollection_t*                              m_jetVec;
00074 
00075     int m_ctr;
00076     int m_dctr;
00077 
00078   //    Message m_log;
00079 };
00080 
00081 }  // namespace atlas
00082 
00083 FASTJET_END_NAMESPACE
00084 
00085 #endif // JETREC_JETSPLITMERGETOOL_H
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines