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