13 list<fastjet::PseudoJet>
input;
14 for (std::vector<fastjet::PseudoJet>::const_iterator candIter = fInput.begin();
15 candIter != fInput.end();
17 input.push_back(*candIter);
20 while( !input.empty() && input.front().perp() > seedThresholdPt_ )
23 double seedEta = input.front().eta();
24 double seedPhi = input.front().phi();
27 list<inputListIter> maxCone;
30 maxCone.push_back(iCand++);
31 for(; iCand != input.end(); ++iCand)
33 const fastjet::PseudoJet& candidate = *iCand;
34 if(
reco::deltaR2(seedEta, candidate.eta(), seedPhi, candidate.phi()) < maxSizeSquared_ )
35 maxCone.push_back(iCand);
39 list<inputListIter>::const_iterator
position = maxCone.begin();
40 bool limitReached =
false;
41 double totalET = (**position).perp();
43 while(position != maxCone.end() && !limitReached)
45 const fastjet::PseudoJet& theCandidate = **
position;
46 double candidateET = theCandidate.perp() + totalET;
47 double candDR2 =
reco::deltaR2(seedEta, theCandidate.eta(), seedPhi, theCandidate.phi());
48 if( candDR2 < minSizeSquared_ || candDR2*candidateET*candidateET < growthParameterSquared_ )
49 totalET = candidateET;
55 fastjet::PseudoJet
final;
56 for(list<inputListIter>::const_iterator iNewJet = maxCone.begin();
61 input.erase(*iNewJet);
63 fOutput.push_back(
final);
66 sort (fOutput.begin (), fOutput.end (), compJets);
std::list< fastjet::PseudoJet >::iterator inputListIter
double deltaR2(double eta1, double phi1, double eta2, double phi2)
static int position[264][3]
void run(const std::vector< fastjet::PseudoJet > &fInput, std::vector< fastjet::PseudoJet > &fOutput)
Build from input candidate collection.