workaround for valgrind error reported as ATLASRECTS-4769
As discussed in yesterday's reconstruction meeting I added code to ignore tracks that would otherwise create the 'conditional-jump' error reported as ATLASRECTS-4769. I added WARNING that is fired surprisingly often. So a better fix might be worth a thought.
- Walter
Merge request reports
Activity
added Egamma Reconstruction master review-pending-level-1 labels
CI Result SUCCESSAthena AthSimulation externals cmake make required tests optional tests Full details available at NICOS MR-20385-2019-01-16-14-12
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST 32302] (for remote access see the FAQ for MR reviewers)Hey @wlampl , I might well be wrong here , but I would have gone with a solution like the one suggested by @jmitrevs in the JIRA ticker.
auto pos2 = pos; ......... auto findVal = entryExitLayerMap.find(CaloSampling::EMB1); if (findVal != entryExitLayerMap.end()){ pos2 = findVal; }
The reason is that pos / pos2 are iterators to
std::map< CaloSampling::CaloSample, std::pair<Amg::Vector3D, Amg::Vector3D> >
the second.first is the Amg::Vector3D for the entry and the second.second is the exit.
The exit is always taken from pos2.
double drTG = fabs((pos->second.first-pos2->second.second).perp()); double dzTG = fabs((pos->second.first-pos2->second.second).z());
(this can be done I guess more explicit) but pos is used for the entry Vector3D pos2 is for the exit one.
So when you can not get an EMB1 exit , I would imagine it is OK to use the PresamplerB exit rather than warn i.e you still have the entry (to be taken by pos) and the exit to be taken by pos2. in all cases. This is what all other cases use (when no presamplerB / EMB1 combination).
In my mind (again perhaps naive) . What makes this code a bit hard to follow is more that in normal cases pos and pos2 are the same iterator , one to be used to get the entry and the other the exit. If they were the Amg::Vector3D directly perhaps it would have been easier to follow the logic i.e if pos were positions and not the same iterator (only in presamplerB and EMB1 combinations are different) to become position via pos->second.first and pos2->second.second
Edited by Christos Anastopoulosadded 1 commit
- 3f6b2404 - ParticleCaloCellAssociationTool: use PresamplerB exit instead of EMB1 if no EMB1 is not found
CI Result SUCCESSAthena AthSimulation externals cmake make required tests optional tests Full details available at NICOS MR-20385-2019-01-18-16-55
Athena: number of compilation errors 0, warnings 3
AthSimulation: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST 32400] (for remote access see the FAQ for MR reviewers)added review-approved label and removed review-pending-level-1 label
mentioned in commit 8e8e851b
added sweep:ignore label