4 #include "fastjet/ClusterSequenceArea.hh"
21 vector<CompoundPseudoJet> & hardjetsOutput ) {
25 fastjet::FastPrunePlugin PRplugin(*fjJetDefinition_,
29 fastjet::JetDefinition pjetdef(&PRplugin);
35 boost::shared_ptr<fastjet::ClusterSequence> fjClusterSeq;
36 if ( !doAreaFastjet_ ) {
38 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequence( cell_particles,
40 }
else if (voronoiRfact_ <= 0) {
42 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequenceActiveArea( cell_particles,
47 boost::shared_ptr<fastjet::ClusterSequence>(
new fastjet::ClusterSequenceVoronoiArea( cell_particles,
49 fastjet::VoronoiAreaSpec(voronoiRfact_) ) );
52 vector<fastjet::PseudoJet> inclusiveJets = fjClusterSeq->inclusive_jets(ptMin_);
56 vector<vector<int> > indices(inclusiveJets.size());
58 vector<fastjet::PseudoJet>::iterator jetIt = inclusiveJets.begin();
59 for ( ; jetIt != inclusiveJets.end(); ++jetIt ) {
61 vector<fastjet::PseudoJet> subjets = fjClusterSeq->exclusive_subjets(*jetIt, nSubjets_);
63 vector<CompoundPseudoSubJet> subjetsOutput;
64 std::vector<fastjet::PseudoJet>::const_iterator itSubJetBegin = subjets.begin(),
65 itSubJet = itSubJetBegin, itSubJetEnd = subjets.end();
66 for (; itSubJet != itSubJetEnd; ++itSubJet ){
68 vector<fastjet::PseudoJet> subjetFastjetConstituents = fjClusterSeq->constituents( *itSubJet );
70 vector<int> constituents;
71 vector<fastjet::PseudoJet>::const_iterator fastSubIt = subjetFastjetConstituents.begin(),
72 transConstEnd = subjetFastjetConstituents.end();
73 for ( ; fastSubIt != transConstEnd; ++fastSubIt ) {
74 if (fastSubIt->user_index() >= 0) {
75 constituents.push_back( fastSubIt->user_index() );
79 double subJetArea = (doAreaFastjet_) ?
80 dynamic_cast<fastjet::ClusterSequenceActiveArea&>(*fjClusterSeq).area(*itSubJet) : 0.0;
89 double fatJetArea = (doAreaFastjet_) ?
90 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.