-
Notifications
You must be signed in to change notification settings - Fork 4.6k
fill charge_ and barycenter_ for all SiStripClusters #47094
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
fill charge_ and barycenter_ for all SiStripClusters #47094
Conversation
…stStrip_ to signal it's an approximate cluster
|
cms-bot internal usage |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47094/43277 |
|
A new Pull Request was created by @slava77 for master. It involves the following packages:
@cmsbuild, @jfernan2, @mandrenguyen can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
@cmsbuild please test |
|
-1 Failed Tests: UnitTests Unit TestsI found 3 errors in the following unit tests: ---> test DiElectronVertex had ERRORS ---> test DMRall had ERRORS ---> test PVall had ERRORS Comparison SummarySummary:
|
I forgot the obvious that for the old saved data the |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47094/43291 |
|
Pull request #47094 was updated. @cmsbuild, @jfernan2, @mandrenguyen can you please check and sign again. |
| <class name="SiStripCluster" ClassVersion="14"> | ||
| <version ClassVersion="14" checksum="1374720584"/> | ||
| <version ClassVersion="13" checksum="1374720584"/> | ||
| <version ClassVersion="12" checksum="2984011925"/> | ||
| <version ClassVersion="11" checksum="3702468681"/> | ||
| <version ClassVersion="10" checksum="3791198690"/> | ||
| <field name="error_x" transient="true"/> | ||
| </class> | ||
| <ioread sourceClass="SiStripCluster" version="[10]" targetClass="SiStripCluster" source="std::vector<uint8_t> amplitudes_; uint16_t firstStrip_;" target="barycenter_,charge_" > | ||
| <![CDATA[SiStripCluster::initQB_(onfile.amplitudes_, onfile.firstStrip_, charge_, barycenter_);]]> | ||
| </ioread> | ||
| <ioread sourceClass="SiStripCluster" version="[11-13]" targetClass="SiStripCluster" source="std::vector<uint8_t> amplitudes_; uint16_t firstStrip_; float barycenter_;" target="barycenter_,charge_" > | ||
| <![CDATA[if (onfile.barycenter_ == 0) SiStripCluster::initQB_(onfile.amplitudes_, onfile.firstStrip_, charge_, barycenter_);]]> | ||
| </ioread> |
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.
@cms-sw/core-l2
this compiled for me, but the old data with FWLite Tree::Scan was crashing with a segfault.
So, I decided to push anyways to discuss
Something that I think may be unusual is that I updated the class version to 14 without changing the checksum (since the class data layout did not change).
... I tried to change the layout by adding a new data member, but for some reason there was no reaction from the reflex: the dictionary compiled no matter what I had in the version fields (e.g. using the old version 13 with the old checksum.
scram b updateclassversion or a regular scram build compiles without any complaints.
The log has
Skipped running EDM Class Version test. Is this expected?
No change has been made to IgProf. It is possible that your change fixed the heap error that was causing the segfault. If I run with IgProf enabled under |
|
Nope, Igprof still segfaults whenever libtensorflow is enabled |
|
The failing fwlite comparisons are all apparently using AOD files. AODs are fully split, the symptoms are that the ioread rules are not executed. I'm running a simple scan I confirmed with gdb, by setting a beak point at
@pcanal , is there some magic when calling the |
just to clarify: the type of |
|
@jfernan2 |
What might (or might not) work would be to force Whether this works or not, please send me a small file (10s of entries is enough) that contains the structure that fails to trigger the rules (and the |
step2_inAOD.root is a link to the jenkins outputs, it can be directly downloaded with a browser; I used this file to do the test. The Scan command is Am I guessing correctly that somehow the fact that the |
|
+1 Size: This PR adds an extra 28KB to repository Comparison SummarySummary:
|
I tried it (a mostly dummy function |
@jfernan2 |
this is from comparisons on AOD files (discussed above), supposedly affecting only FWLite.
these are from non-repeatable workflows (phase-2 .911; all-mkFit .7, and messageLogger in PU wfs) AFAIK, this is not the first issue when old fully split data is not read correctly with FWLite. So, I think that it should be acceptable to merge this change. |
|
enable none |
|
+1 |
|
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 will now be reviewed by the release team before it's merged. @rappoccio, @antoniovilela, @mandrenguyen, @sextonkennedy (and backports should be raised in the release meeting by the corresponding L2) |
|
+1 |
@pcanal float SiStripCluster::sumAll() const {
return barycenter()+charge()+firstStrip()+filter()+size();
}It seems like with the fully split mode the version check and schema evolution is just not running when calling via the FWLite. |
|
@ slava77 I still need to reproduce this failures mode .. I'll let you know if I need more information. |
|
type performance-improvements |
charge_andbarycenter_for all SiStripClustersfirstStrip_to signal it's an approximate cluster (to preserve detection of approximate clusters)motivated by technical performance: offline pp reco calls
SiStripCluster::barycenterand::chargearound x100 times the number of clusters per event, adding up to around 0.88% of reco time.Smaller speedup is expected in the HLT setup (different CPE and no strip seeding).
MkFitSiStripHitConvertergoes down fractionally by 28% (0.45% of a job running tracking only HLT)No changes are expected in workflows using regular clustering (although in pp I wouldn't be surprised if some math compiler optimization can create a difference).
There may be some change in (HI) workflows reading stored data with approximate clusters converted to regular clusters. From a brief discussion, it sounds like this is only in specialized workflows, probably not captured by anything in the bot tests.
@cms-sw/trk-dpg-l2 @cms-sw/tracking-pog-l2