CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoJets/JetAlgorithms/interface/SubJetAlgorithm.h

Go to the documentation of this file.
00001 #ifndef RecoJets_JetAlgorithms_CATopJetAlgorithm2_h
00002 #define RecoJets_JetAlgorithms_CATopJetAlgorithm2_h
00003 
00004 #include <vector>
00005 
00006 #include "RecoJets/JetAlgorithms/interface/CompoundPseudoJet.h"
00007 #include "FWCore/Framework/interface/Event.h"
00008 
00009 #include <fastjet/JetDefinition.hh>
00010 #include <fastjet/PseudoJet.hh>
00011 #include <fastjet/ClusterSequence.hh>
00012 
00013 
00014 class SubJetAlgorithm{
00015  public:
00016   SubJetAlgorithm(edm::InputTag mSrc,
00017                     int algorithm,
00018                     double centralEtaCut,            
00019                     double ptMin,                    
00020                     double jetsize,
00021                     unsigned int subjets,
00022                     bool pruning,
00023                     double zcut=0.1) :
00024     mSrc_          (mSrc          ),
00025     algorithm_     (algorithm     ),
00026     centralEtaCut_ (centralEtaCut ), 
00027     ptMin_         (ptMin         ),         
00028     jetsize_       (jetsize       ),
00029     nSubjets_      (subjets       ),
00030     enable_pruning_(pruning       ),
00031     zcut_          (zcut          )
00032       { }
00033 
00034   bool get_pruning()const;
00035   void set_zcut(double z);
00036   void set_rcut_factor(double r);
00037 
00039     void run( const std::vector<fastjet::PseudoJet> & cell_particles, 
00040               std::vector<CompoundPseudoJet> & hardjetsOutput,
00041               const edm::EventSetup & c);
00042 
00043 
00044  private:
00045 
00046   edm::InputTag       mSrc_;          //<! calo tower input source
00047   int                 algorithm_;     //<! 0 = KT, 1 = CA, 2 = anti-KT
00048   double              centralEtaCut_; //<! eta for defining "central" jets
00049   double              ptMin_;         //<! lower pt cut on which jets to reco
00050   double              jetsize_;       //<!
00051   int                 nSubjets_;      //<! number of subjets to produce.
00052   bool                enable_pruning_;//<! flag whether pruning is enabled (see arXiv:0903.5081)
00053   double              zcut_;          //<! zcut parameter (see arXiv:0903.5081). Only relevant if pruning is enabled.
00054   double              rcut_factor_;   //<! r-cut factor (see arXiv:0903.5081).
00055   
00056 };
00057 
00058 #endif