CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/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 #include "RecoJets/JetAlgorithms/interface/FastPrunePlugin.hh"
00009 #include <fastjet/JetDefinition.hh>
00010 #include <fastjet/PseudoJet.hh>
00011 #include <fastjet/ClusterSequence.hh>
00012 #include <fastjet/GhostedAreaSpec.hh>
00013 
00014 
00015 class SubJetAlgorithm{
00016  public:
00017  SubJetAlgorithm( double ptMin,                    
00018                   unsigned int subjets,
00019                   double zcut,
00020                   double rcut_factor,
00021                   boost::shared_ptr<fastjet::JetDefinition> fjJetDefinition,
00022                   bool doAreaFastjet,
00023                   boost::shared_ptr<fastjet::GhostedAreaSpec> fjActiveArea,
00024                   double voronoiRfact
00025                   ) :
00026     ptMin_         (ptMin         ),
00027     nSubjets_      (subjets       ),
00028     zcut_          (zcut          ),
00029     rcut_factor_   (rcut_factor   ),
00030     fjJetDefinition_(fjJetDefinition),
00031     doAreaFastjet_ (doAreaFastjet),
00032     fjActiveArea_  (fjActiveArea),
00033     voronoiRfact_  (voronoiRfact)
00034       { 
00035         
00036       }
00037 
00038   void set_zcut(double z);
00039   void set_rcut_factor(double r);
00040   double zcut() const { return zcut_;}
00041   double rcut_factor() const { return rcut_factor_; }
00042 
00044   void run( const std::vector<fastjet::PseudoJet> & cell_particles, 
00045             std::vector<CompoundPseudoJet> & hardjetsOutput);
00046 
00047 
00048  private:
00049 
00050   double              ptMin_;         //<! lower pt cut on which jets to reco
00051   int                 nSubjets_;      //<! number of subjets to produce.
00052   double              zcut_;          //<! zcut parameter (see arXiv:0903.5081). Only relevant if pruning is enabled.
00053   double              rcut_factor_;   //<! r-cut factor (see arXiv:0903.5081).
00054   boost::shared_ptr<fastjet::JetDefinition> fjJetDefinition_; //<! jet definition to use
00055   bool                doAreaFastjet_; //<! whether or not to use the fastjet area
00056   boost::shared_ptr<fastjet::GhostedAreaSpec> fjActiveArea_; //<! fastjet area spec
00057   double              voronoiRfact_;  //<! fastjet voronoi area R factor
00058 };
00059 
00060 #endif