49 |
|
flav_.clear(); |
50 |
|
eid_.clear(); |
51 |
|
muid_.clear(); |
52 |
< |
partons_.reserve(10); |
53 |
< |
eid_.reserve(10); |
54 |
< |
muid_.reserve(10); |
55 |
< |
flav_.reserve(10); |
52 |
> |
partons_.reserve(2); |
53 |
> |
eid_.reserve(2); |
54 |
> |
muid_.reserve(2); |
55 |
> |
flav_.reserve(2); |
56 |
|
|
57 |
|
unsigned int n_quarks = 0; |
58 |
|
unsigned int n_antiquarks = 0; |
158 |
|
unsigned int *eid = new unsigned int[nPartons]; |
159 |
|
unsigned int *muid = new unsigned int[nPartons]; |
160 |
|
|
161 |
– |
|
161 |
|
for (unsigned int ip(0); ip<nPartons; ip++){//loop on partons |
162 |
|
nDaugh[ip] = 0; |
163 |
|
flav[ip] = 1; |
168 |
|
eid[ip] = 0; |
169 |
|
muid[ip] = 0; |
170 |
|
daughters[ip].clear(); |
171 |
< |
daughters[ip].reserve(250); |
171 |
> |
daughters[ip].reserve(500); |
172 |
|
parents[ip].clear(); |
173 |
< |
parents[ip].reserve(250); |
173 |
> |
parents[ip].reserve(500); |
174 |
|
parents[ip].push_back(partons_.at(ip)); |
175 |
|
|
176 |
|
for (unsigned int pmc = 0; pmc < parents[ip].size(); pmc++){//loop "interactively" on parents |
177 |
|
unsigned int lParIndex = parents[ip].at(pmc); |
178 |
< |
if (debug_ > 2) std::cout << "** Looking for parent : #" << lParIndex << " (id " << (*aGenParticles).at(lParIndex).pdgId() << "), vector size = " << parents[ip].size() << std::endl; |
178 |
> |
const reco::GenParticle & ppar = (*aGenParticles).at(lParIndex); |
179 |
> |
if (debug_ > 2) std::cout << "** Looking for parent : #" << lParIndex << " (id " << ppar.pdgId() << "), vector size = " << parents[ip].size() << std::endl; |
180 |
|
|
181 |
|
//counter to check a match is found |
182 |
|
unsigned int lNNotFound = 0; |
187 |
|
|
188 |
|
for (unsigned int im(0); im<pgen.numberOfMothers(); im++){//loop on parents |
189 |
|
//recursive loop to find all parents |
190 |
< |
if ( compareParticles(pgen.mother(im),(*aGenParticles).at(lParIndex)) ){//if par=parton |
190 |
> |
if ( compareParticles(pgen.mother(im),ppar)){//if par=parton |
191 |
|
lNTot++; |
192 |
|
if (pgen.status() != 1) { |
193 |
|
nDaugh[ip]++; |
227 |
|
}//loop on parts |
228 |
|
if (lNNotFound == lNTot ) { |
229 |
|
std::cout << " --- WARNING: no particle found for parton #" << lParIndex ; |
230 |
< |
printParticle((*aGenParticles).at(lParIndex)); |
230 |
> |
printParticle(ppar); |
231 |
|
} |
232 |
|
|
233 |
|
}//loop on parents |
264 |
|
}//for b and c jets |
265 |
|
|
266 |
|
|
267 |
< |
if (parents[ip].size() > 250) std::cout << "WARNING ! Initial default size of parents not sufficient = " << parents[ip].size() << std::endl; |
268 |
< |
if (daughters[ip].size() > 250) std::cout << "WARNING ! Initial default size of daughters not sufficient = " << daughters[ip].size() << std::endl; |
267 |
> |
if (parents[ip].size() > 500) std::cout << "WARNING ! Initial default size of parents not sufficient = " << parents[ip].size() << std::endl; |
268 |
> |
if (daughters[ip].size() > 500) std::cout << "WARNING ! Initial default size of daughters not sufficient = " << daughters[ip].size() << std::endl; |
269 |
|
|
270 |
|
|
271 |
|
}//loop on partons |
303 |
|
|
304 |
|
}//for light jets |
305 |
|
|
306 |
+ |
|
307 |
|
delete[] nDaugh; |
308 |
|
delete[] parents; |
309 |
|
delete[] daughters; |
317 |
|
}//fillPartons |
318 |
|
|
319 |
|
|
320 |
< |
std::pair<int,unsigned int> JetFlavour::partonMatchingGenJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, double aDR){//parton match with gen jet |
320 |
> |
const std::pair<int,unsigned int> JetFlavour::partonMatchingGenJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, const double aDR) const{//parton match with gen jet |
321 |
|
|
322 |
|
int aIndex = -1; |
323 |
|
double deltaRMin = 1000; |
337 |
|
|
338 |
|
}//parton match with gen jet |
339 |
|
|
340 |
< |
unsigned int JetFlavour::leptonMatchingGenJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, double aDR){//lepton match with gen jet |
340 |
> |
const unsigned int JetFlavour::leptonMatchingGenJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, const double aDR) const{//lepton match with gen jet |
341 |
|
|
342 |
|
int aIndex = -1; |
343 |
|
double deltaRMin = 1000; |
373 |
|
|
374 |
|
}//lepton match with gen jet |
375 |
|
|
376 |
< |
unsigned int JetFlavour::partonMatchingRecoJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, double aDR){//parton match with reco jet |
376 |
> |
const unsigned int JetFlavour::partonMatchingRecoJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, const double aDR) const{//parton match with reco jet |
377 |
|
|
378 |
|
int aIndex = -1; |
379 |
|
double deltaRMin = 1000; |
391 |
|
|
392 |
|
}//parton match with reco jet |
393 |
|
|
394 |
< |
unsigned int JetFlavour::leptonMatchingRecoJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, double aDR){//lepton match with reco jet |
394 |
> |
const unsigned int JetFlavour::leptonMatchingRecoJet(const pat::Jet & aJet, const edm::Handle<reco::GenParticleCollection> & aGenParticles, const double aDR) const{//lepton match with reco jet |
395 |
|
|
396 |
|
int aIndex = -1; |
397 |
|
double deltaRMin = 1000; |
455 |
|
|
456 |
|
} |
457 |
|
|
458 |
< |
void JetFlavour::printSummary() { |
458 |
> |
void JetFlavour::printSummary() const{ |
459 |
|
|
460 |
|
std::cout << |
461 |
|
"=====================================================================" << std::endl << |