ROOTPWA-Maintainers / ROOTPWA

ROOTPWA is a toolkit for partial-wave analysis of multi-particle final states produced in high-energy particle reactions. It is used to determine hadron spectra from experimental data.
Other
8 stars 14 forks source link

[Feature] plotAngles.py speed-up [sf#21] #52

Open legordian opened 10 years ago

legordian commented 10 years ago

Reported by legordian on 2014-08-06 11:38 UTC plotAngles.py is quite slow. As found out by Sebastian Uhl (thank you!), one could probably speed it up a little bit at least by making isobarAmplitude::transformDaughters() public and replacing

# Transform all particles
topology.calcIsobarLzVec()
beamLv = topology.productionVertex().referenceLzVec()
XLv = topology.XParticle().lzVec
gjTrans = pyRootPwa.core.isobarAmplitude.gjTransform(beamLv, XLv)
for vertex in topology.isobarDecayVertices():
    vertex.transformOutParticles(gjTrans)
for vertex in topology.isobarDecayVertices()[1:]:
    hfTrans = pyRootPwa.core.isobarHelicityAmplitude.hfTransform(vertex.parent().lzVec)
    for subVertex in topology.subDecay(vertex).decayVertices():
        subVertex.transformOutParticles(hfTrans)

by it. As this piece makes up roughly 50% of the time spent by plotAngles.py and as the boost::interfaces for these calls seem to be quite slow, this might make a difference.

legordian commented 10 years ago

Updated by legordian on 2014-08-06 11:44 UTC