Build a collection of piZeros from objects in the input jet.
Implements reco::tau::RecoTauPiZeroBuilderPlugin.
Definition at line 223 of file RecoTauPiZeroStripPlugin3.cc.
225 edm::LogPrint(
"RecoTauPiZeroStripPlugin3") <<
"<RecoTauPiZeroStripPlugin3::operator()>:";
241 for (CandPtrs::iterator
cand = candsVector.begin();
cand != candsVector.end(); ++
cand) {
244 <<
"PFGamma #" <<
idx <<
" (" <<
cand->id() <<
":" <<
cand->key() <<
"): Et = " << (*cand)->et()
245 <<
", eta = " << (*cand)->eta() <<
", phi = " << (*cand)->phi();
249 edm::LogPrint(
"RecoTauPiZeroStripPlugin3") <<
"--> assigning seedCandId = " << seedCands.size();
253 <<
"track: Pt = " << candTrack->
pt() <<
" eta = " << candTrack->
eta()
254 <<
", phi = " << candTrack->
phi() <<
", charge = " << candTrack->
charge();
261 <<
", dPt/Pt = " << (candTrack->
ptError() / candTrack->
pt()) <<
")";
264 seedCands.push_back(*
cand);
267 edm::LogPrint(
"RecoTauPiZeroStripPlugin3") <<
"--> assigning addCandId = " << addCands.size();
269 addCands.push_back(*
cand);
274 std::vector<bool> seedCandFlags(seedCands.size());
275 std::vector<bool> addCandFlags(addCands.size());
277 std::set<size_t> seedCandIdsCurrentStrip;
278 std::set<size_t> addCandIdsCurrentStrip;
281 while (idxSeed < seedCands.size()) {
283 edm::LogPrint(
"RecoTauPiZeroStripPlugin3") <<
"processing seed #" << idxSeed;
285 seedCandIdsCurrentStrip.clear();
286 addCandIdsCurrentStrip.clear();
289 strip->addDaughter(seedCands[idxSeed]);
290 seedCandIdsCurrentStrip.insert(idxSeed);
293 int stripBuildIteration = 0;
305 ++stripBuildIteration;
311 <<
"Building strip: Et = " <<
strip->et() <<
", eta = " <<
strip->eta() <<
", phi = " <<
strip->phi();
314 if (
strip->daughterPtr(0).isNonnull())
315 strip->setVertex(
strip->daughterPtr(0)->vertex());
319 markCandsInStrip(seedCandFlags, seedCandIdsCurrentStrip);
320 markCandsInStrip(addCandFlags, addCandIdsCurrentStrip);
324 <<
"Discarding strip: Et = " <<
strip->et() <<
", eta = " <<
strip->eta() <<
", phi = " <<
strip->phi();
328 while (idxSeed < seedCands.size() && seedCandFlags[idxSeed]) {
352 std::unique_ptr<RecoTauPiZero> combinedStrips(
363 for (
auto const&
gamma :
first->daughterPtrVector()) {
364 combinedStrips->addDaughter(
gamma);
366 for (
auto const&
gamma :
second->daughterPtrVector()) {
367 combinedStrips->addDaughter(
gamma);
370 if (combinedStrips->daughterPtr(0).isNonnull()) {
371 combinedStrips->setVertex(combinedStrips->daughterPtr(0)->vertex());
375 stripCombinations.push_back(
std::move(combinedStrips));
386 double bendCorrEta = 0.;
387 double bendCorrPhi = 0.;
389 for (
auto const&
gamma :
strip->daughterPtrVector()) {
399 strip->setBendCorrEta(bendCorrEta);
400 strip->setBendCorrPhi(bendCorrPhi);
References addCandsToStrip(), reco::tau::RecoTauVertexAssociator::associatedVertex(), reco::TrackBase::charge(), combinatoricStripMassHypo_, combineStrips_, reco::TrackBase::dxy(), reco::TrackBase::dz(), MillePedeFileConverter_cfg::e, CastorDataFrameFilter_impl::energySum(), reco::TrackBase::eta(), etaAssociationDistance_, dqmdumpme::first, CustomPhysics_cfi::gamma, getTrack(), reco::TrackBase::hitPattern(), charmTagsComputerCvsB_cfi::idx, inputParticleIds_, edm::RefToBase< T >::isNonnull(), metsig::jet, reco::RecoTauPiZero::kStrips, reco::RecoTauPiZero::kUndefined, maxStripBuildIterations_, maxStrips_, minGammaEtStripAdd_, minGammaEtStripSeed_, minStripEt_, eostools::move(), reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfValidPixelHits(), reco::HitPattern::numberOfValidTrackerHits(), convertSQLitetoXML_cfg::output, p4Builder_, reco::tau::pfCandidates(), reco::TrackBase::phi(), phiAssociationDistance_, reco::LeafCandidate::pt(), reco::TrackBase::pt(), reco::TrackBase::ptError(), qcuts_, edm::second(), AddFourMomenta::set(), digitizers_cfi::strip, reco::tau::takeNElements(), updateStripAfterEachDaughter_, verbosity_, and vertexAssociator_.