-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Out-of-time photons in RECO/AOD #18844
Conversation
A new Pull Request was created by @kmcdermo (Kevin McDermott) for master. It involves the following packages: RecoEcal/Configuration @perrotta, @cmsbuild, @slava77, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
Hi @slava77 , so I opened this separately at the request of @arizzi, @gpetruc, @bendavid in the case that the details of the miniAOD workflow still need to be worked out separately -- in the meantime this can at least enter central reco while the details of slimming/etc are worked out. I can of course close this, just let me know either way. |
On 5/19/17 12:54 AM, Kevin McDermott wrote:
Hi @slava77 <https://github.com/slava77> , so I opened this separately
at the request of @arizzi <https://github.com/arizzi>, @gpetruc
<https://github.com/gpetruc>, @bendavid <https://github.com/bendavid> in
the case that the details of the miniAOD workflow still need to be
worked out separately -- in the meantime this can at least enter central
reco while the details of slimming/etc are worked out.
I can of course close this, just let me know either way.
Well, from the RECO POV, if you want this separately,
then the second PR can not be reviewed until this goes in the release
and if we need any change it will have to be kept in sync in case you
want to keep it open for others to look at it.
…
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#18844 (comment)>, or
mute the thread
<https://github.com/notifications/unsubscribe-auth/AEdcbvoP2i2n66vEMFBmtRkk1nknYENvks5r7UqcgaJpZM4Nf-A8>.
|
That is fine by me, for sure. I will be at the RECO meeting this afternoon (after the EGM RECO) and this can be discussed there which is the best way to proceed. I have no opinion on this either way. |
@cmsbuild please test |
The tests are being triggered in jenkins. |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
## modification for Algo | ||
particleFlowSuperClusterOOTECAL.isOOTCollection = cms.bool(True) | ||
particleFlowSuperClusterOOTECAL.barrelRecHits = cms.InputTag("ecalRecHit","EcalRecHitsEB") | ||
particleFlowSuperClusterOOTECAL.endcapRecHits = cms.InputTag("ecalRecHit","EcalRecHitsEE") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that the discussion in #18845 converged on using reducedEcalRecHit here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, again, it depends on where we want this to run. If we want it to run from the start of RECO, we run it with the full collection. If we want to run it after AOD, then we run it there.
The cost at running at AOD is that we would be losing some of our recHits, which is a further loss in resolution.
@@ -50,9 +50,12 @@ PFECALSuperClusterProducer::PFECALSuperClusterProducer(const edm::ParameterSet& | |||
iConfig.getUntrackedParameter<bool>("verbose",false); | |||
|
|||
superClusterAlgo_.setUseRegression(iConfig.getParameter<bool>("useRegression")); | |||
|
|||
|
|||
isOOTCollection_ = (iConfig.existsAs<bool>("isOOTCollection") ? iConfig.getParameter<bool>("isOOTCollection") : false); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"iConfig.existsAs" is not needed if the value is already inserted in the fillDescriptions.
Please remove.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, will do.
mustacheOOTPhotonCore = photonCore.clone() | ||
mustacheOOTPhotonCore.scHybridBarrelProducer = cms.InputTag("particleFlowSuperClusterOOTECAL:particleFlowSuperClusterOOTECALBarrel") | ||
mustacheOOTPhotonCore.scIslandEndcapProducer = cms.InputTag("particleFlowSuperClusterOOTECAL:particleFlowSuperClusterOOTECALEndcapWithPreshower") | ||
mustacheOOTPhotonCore.conversionProducer = cms.InputTag("conversions") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a good reason to prefix "mustache" ?
is there a plan to add another type of OOT photons? (I thought no)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you would prefer to drop it, and just name this as ootPhoton*, I can do that. There are no other plans to add any other OOT photon collection(s).
|
||
particleFlowOOTRecHitECAL = particleFlowRecHitECAL.clone() | ||
particleFlowOOTRecHitECAL.producers[0].qualityTests[1].timingCleaning = cms.bool(False) | ||
particleFlowOOTRecHitECAL.producers[1].qualityTests[1].timingCleaning = cms.bool(False) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should have some protection that modifications are done correctly.
Simple access by index can easily fail or modify something unrelated.
The minimal change I can think of is to drop "cms.bool" so that this fails if it tries to modify a qualityTest without the timingCleaning parameter.
Additional checks will probably require consistency in inputs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so something like:
particleFlowOOTRecHitECAL.producers[0].qualityTests[1].timingCleaning = False?
I agree accessing by index is not ideal... producers[0] = EB, producers[1] = EE, so I guess if we move to a unified EBEE clustering, this would be a problem.
What is the plan for validation/DQM for all of the added sequences? |
Currently, there is no plan for validation/DQM. And indeed, the best way to validate would be with a signal sample (unless we want to validate with spikes from data or something). I guess we could just simply make a plot of the OOT photons vs seed time with data as a starter. But pT/eta/phi would be hard without a signal sample. |
…lation" This reverts commit 3fb364a.
On 6/6/17 4:06 AM, Kevin McDermott wrote:
We would still need to modify whatever producer takes the interesting
Hcal/ES detIds to also include this new collection, and then unify it to
drop any repeat detIds.
I'm not sure I understand the last comment.
What I mean is that, the detId producers I modified (and now are
suggested to simply clone) produce only a vector of detIds, not a
collection of recHits themselves. So whatever producer uses the vector
of detIds to produce an output collection of Hcal / ES recHits would
need the collection of detIds from the cloned detId producer as well as
the original detIds from the original detId producer (as opposed to
modifying the detid producer so that we do not have to change the recHit
producer input).
Thank you for the clarification.
This additional input to the rechit selector/producer is supported by
its design.
So, my earlier requests for changes still stand.
I find it a bad pattern to hardcode an additional (and not fully
equivalent) photon collection in parallel.
Minimally, the existing photon inputs can be changed to a vector of
photon inputs,
although this is restrictive in case modified selections or inputs may
be necessary for OOT or other future photons.
It seems more practical to use the existing functionality of the detId
selector module and use a clone to configure selection for OOT photons.
…
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#18844 (comment)>, or
mute the thread
<https://github.com/notifications/unsubscribe-auth/AEdcbgW0Prn8hsZuRFzZoW_A8P0cz41xks5sBTKvgaJpZM4Nf-A8>.
|
Okay, I will make the changes as requested. I will revert those changes to make a clean break. |
On 6/6/17 5:58 AM, Kevin McDermott wrote:
Okay, I will make the changes as requested. I will revert those changes
to make a clean break.
Thank you.
a rebase that removes the commits to be undone may be better,
but I wouldn't push for it in this case if you are not familiar with the
method.
… —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#18844 (comment)>, or
mute the thread
<https://github.com/notifications/unsubscribe-auth/AEdcbrKoyWPPSaEIy7hBcModdQeizY8pks5sBU0FgaJpZM4Nf-A8>.
|
Pull request #18844 was updated. @perrotta, @cmsbuild, @slava77, @davidlange6 can you please check and sign again. |
@slava77 I made the changes you suggested, and tested them locally with runTheMatrix.py -l limited -i all, all passed. |
@cmsbuild please test |
The tests are being triggered in jenkins. |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @davidlange6, @smuzaffar |
+1 |
This PR is to include high energy out-of-time (OOT) photons in a dedication collection in AOD (reco::Photon), as well as the underlying objects (reco::PhotonCore, reco::SuperCluster, reco::CaloCluster). Any EcalRecHits added by the new clusters are added directly to the reduced collection. These collections are needed for the displaced photon and monophoton analysis groups.
This custom workflow goes through most of PF mustache photon sequence, starting at PFRecHits and removing the time cleaning, then to PFClusters, PFSuperClusters, and lastly straight from PFSuperClusters to photons.
At the PFSuperCluster producer, we filter on the seed crystal being flagged OOT to reduce duplication of clusters and superclusters. As such, this collection will only store photons whose seed is flagged OOT. Since we do not go through the full gedPhoton sequence, we do not do any PF isolations.
The increase to CPU is roughly 0.3%, while the increase in compressed size at AOD is about 1.5 kB from the new collections + additional rechits. Just taking an ls -l and dividing by the number of events processed, the estimated increase in size is 4.5 kB / event.
This work will be presented tomorrow at the EGM Reco meeting -- I will attach slides after the meeting.