CMS 3D CMS Logo

Pythia8PartonSelector.cc
Go to the documentation of this file.
1 
10 
11 
13 {
14 }
15 
17 {
18 }
19 
20 void
22  std::unique_ptr<reco::GenParticleRefVector> & partons)
23 {
24  // loop over particles and select partons
25  for(reco::GenParticleCollection::const_iterator it = particles->begin(); it != particles->end(); ++it)
26  {
27  int status = it->status();
28  if( status==1 ) continue; // skip stable particles
29  if( status==2 ) continue; // skip decayed Standard Model hadrons and leptons
30  if( !CandMCTagUtils::isParton( *it ) ) continue; // skip particle if not a parton
31 
32  // check if the parton has other partons as daughters
33  int nparton_daughters = 0;
34  for(unsigned i=0; i<it->numberOfDaughters(); ++i)
35  {
36  if( CandMCTagUtils::isParton( *(it->daughter(i)) ) )
37  ++nparton_daughters;
38  }
39 
40  if( nparton_daughters==0 )
41  partons->push_back( reco::GenParticleRef( particles, it - particles->begin() ) );
42  }
43 
44  return;
45 }
void run(const edm::Handle< reco::GenParticleCollection > &particles, std::unique_ptr< reco::GenParticleRefVector > &partons)
bool isParton(const reco::Candidate &c)
Definition: CandMCTag.cc:48