4 #include "fastjet/ClusterSequenceArea.hh"
6 #include "boost/shared_ptr.hpp"
23 vector<CompoundPseudoJet> & hardjetsOutput ) {
27 fastjet::FastPrunePlugin PRplugin(*fjJetDefinition_,
31 fastjet::JetDefinition pjetdef(&PRplugin);
37 boost::shared_ptr<fastjet::ClusterSequence> fjClusterSeq;
38 if ( !doAreaFastjet_ ) {
40 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequence( cell_particles,
42 }
else if (voronoiRfact_ <= 0) {
44 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequenceActiveArea( cell_particles,
49 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequenceVoronoiArea( cell_particles,
51 fastjet::VoronoiAreaSpec(voronoiRfact_) ) );
54 vector<fastjet::PseudoJet> inclusiveJets = fjClusterSeq->inclusive_jets(ptMin_);
58 vector<vector<int> > indices(inclusiveJets.size());
60 vector<fastjet::PseudoJet>::iterator jetIt = inclusiveJets.begin();
61 for ( ; jetIt != inclusiveJets.end(); ++jetIt ) {
63 vector<fastjet::PseudoJet> subjets = fjClusterSeq->exclusive_subjets(*jetIt, nSubjets_);
65 vector<CompoundPseudoSubJet> subjetsOutput;
66 std::vector<fastjet::PseudoJet>::const_iterator itSubJetBegin = subjets.begin(),
67 itSubJet = itSubJetBegin, itSubJetEnd = subjets.end();
68 for (; itSubJet != itSubJetEnd; ++itSubJet ){
70 vector<fastjet::PseudoJet> subjetFastjetConstituents = fjClusterSeq->constituents( *itSubJet );
72 vector<int> constituents;
73 vector<fastjet::PseudoJet>::const_iterator fastSubIt = subjetFastjetConstituents.begin(),
74 transConstEnd = subjetFastjetConstituents.end();
75 for ( ; fastSubIt != transConstEnd; ++fastSubIt ) {
76 if (fastSubIt->user_index() >= 0) {
77 constituents.push_back( fastSubIt->user_index() );
81 double subJetArea = (doAreaFastjet_) ?
82 dynamic_cast<fastjet::ClusterSequenceActiveArea&>(*fjClusterSeq).area(*itSubJet) : 0.0;
91 double fatJetArea = (doAreaFastjet_) ?
92 dynamic_cast<fastjet::ClusterSequenceActiveArea&>(*fjClusterSeq).area(*jetIt) : 0.0;
void set_rcut_factor(double r)
CompoundPseudoJet holds an association of fastjet::PseudoJets that represent a "hard" top jet with su...
void run(const std::vector< fastjet::PseudoJet > &cell_particles, std::vector< CompoundPseudoJet > &hardjetsOutput)
Find the ProtoJets from the collection of input Candidates.