Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modification of cone based tau algorithm to furbish it as fallback solution for the HLT for upcoming data taking #18429

Conversation

roger-wolf
Copy link
Contributor

Dear colleagues,

this is a pull request by @mbluj that contains modifications of the cone based tau reconstruction algorithm as used for the HLT to make it fit for upcoming data taking periods, as fallback in case that the planned HPS-port to the HLT won't be ready in time. I'm citing Michal's comments (*) and refer to him for further questions.

Cheers,
Roger

(*)
This PR is to modify the Cone-based tau builder (used at HLT) to fill some additional data members of produced PFTau not filled so far:

Size of signal cone (cone for PiZeros used);
Pt carried by signal PiZeros outside of the signal cone; it is important shape variable supporting isolation in rejecting jet->tau fakes;
Charge, pdgId, tau decay mode hypothesis.

The changes do not modify current HLT work-flow (the builder is used only at HLT), but provides new features (cf. 2) allowing better jet->tau fake rejection during 2017 data-taking.

This is PR to 91X on top of changes proposed for tau vertex association (cf. #18243), a separate PR for 90X will follow shortly.

@cmsbuild
Copy link
Contributor

cmsbuild commented Apr 20, 2017

A new Pull Request was created by @roger-wolf (Roger Wolf) for master.

It involves the following packages:

RecoTauTag/RecoTau

@perrotta, @cmsbuild, @slava77, @davidlange6 can you please review it and eventually sign? Thanks.
@Muzaffar, @davidlange6, @smuzaffar you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor

slava77 commented Apr 20, 2017

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Apr 20, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/19309/console Started: 2017/04/21 01:11

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-18429/19309/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 1648 differences found in the comparisons
  • DQMHistoTests: Total files compared: 23
  • DQMHistoTests: Total histograms compared: 1826273
  • DQMHistoTests: Total failures: 6234
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 1819866
  • DQMHistoTests: Total skipped: 173
  • DQMHistoTests: Total Missing objects: 0
  • Checked 94 log files, 14 edm output root files, 23 DQM output files

int charge = 0;
int leadCharge = aTau.leadPFChargedHadrCand().isNonnull() ? aTau.leadPFChargedHadrCand()->charge() : 0;
const std::vector<reco::PFCandidatePtr>& pfChs = aTau.signalPFChargedHadrCands();
for(std::vector<reco::PFCandidatePtr>::const_iterator pfCh = pfChs.begin();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Range based for loops must be preferred

piZero != piZeros.end(); ++piZero) {
double photonSumPt_insideSignalCone = 0.;
double photonSumPt_outsideSignalCone = 0.;
int numPhotons = piZero->numberOfDaughters();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mantain indentation

PFTau::hadronicDecayMode dm = PFTau::kNull;
unsigned int nPiZeros = 0;
const std::vector<RecoTauPiZero>& piZeros = aTau.signalPiZeroCandidates();
for(std::vector<RecoTauPiZero>::const_iterator piZero = piZeros.begin();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Range based for loops must be preferred

const unsigned int maxPiZeros = PFTau::kOneProngNPiZero;
// Determine our track index
unsigned int nCharged = pfChs.size();
unsigned int trackIndex = (nCharged - 1)*(maxPiZeros + 1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If pfChs.size()=0 this may lead to an indefinite number (as unsigned int): can it happen?

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-18429/19473/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 1676 differences found in the comparisons
  • DQMHistoTests: Total files compared: 23
  • DQMHistoTests: Total histograms compared: 1778721
  • DQMHistoTests: Total failures: 37744
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 1740804
  • DQMHistoTests: Total skipped: 173
  • DQMHistoTests: Total Missing objects: 0
  • Checked 94 log files, 14 edm output root files, 23 DQM output files

for producer in producers_by_type(process, "RecoTauProducer"):
if hasattr(producer,'builders'):
for pset in producer.builders:
if not hasattr(pset,'minAbsPhotonSumPt_insideSignalCone'):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this looks to be just a more inefficient version of existsAs... Could this not be replaced by a fillDescriptions instead?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidlange6 Yes, in principle fillDescriptions will solve this and similar issues caused by the fact that HLT configuration is dumped from ConfDB which knows on new parameters only when a new release is parsed into it. The thing is that the tau reco code uses quite heavily plugin factories which, at least in my understanding, are quite incompatible with the fillDescriptions mechanism. So mitigation from python cfi files to the fillDescriptions mechanism means rewriting tau code which is a big effort.

@davidlange6
Copy link
Contributor

davidlange6 commented May 2, 2017 via email

@mbluj
Copy link
Contributor

mbluj commented May 2, 2017 via email

@fwyzard
Copy link
Contributor

fwyzard commented May 2, 2017 via email

@davidlange6
Copy link
Contributor

davidlange6 commented May 2, 2017 via email

@makortel
Copy link
Contributor

makortel commented May 2, 2017

@davidlange6 See e.g. #12517 (comment), and especially https://hypernews.cern.ch/HyperNews/CMS/get/edmFramework/3446/1.html.

(personally I've given up the hope in favour of moving helper plugins to ED/ESProducts, depending if they need edm::Event or not, even if this approach is rather laborious)

@davidlange6
Copy link
Contributor

davidlange6 commented May 2, 2017 via email

@davidlange6
Copy link
Contributor

it is what we agree, the existsAs constructions should be removed. But,
this particular customization (customiseFor18429) is not about this; it

to be clear I said the opposite - we removed an ugly, but fast/simple construct (existsas) in favor of an ugly and slow construct (for modules in hlt loop....).

@smuzaffar smuzaffar modified the milestones: CMSSW_9_2_X, CMSSW_9_1_X May 4, 2017
@fwyzard
Copy link
Contributor

fwyzard commented May 4, 2017 via email

@Martin-Grunewald
Copy link
Contributor

Since this PR has become a 92X PR, please make an explicit 91X PR as well!
Thanks!

@davidlange6
Copy link
Contributor

+1

@mbluj
Copy link
Contributor

mbluj commented May 5, 2017 via email

@mbluj mbluj deleted the CMSSW_9_1_X_tau-pog_technical-developments_coneBasedTaus branch October 10, 2023 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants