|
[Rivet-svn] r3388 - in trunk: include/Rivet/Projections src/Projectionsblackhole at projects.hepforge.org blackhole at projects.hepforge.orgTue Sep 27 11:20:42 BST 2011
Author: fsiegert Date: Tue Sep 27 11:20:42 2011 New Revision: 3388 Log: Bugfix for memleak in W/ZFinder. Modified: trunk/include/Rivet/Projections/InvMassFinalState.hh trunk/src/Projections/InvMassFinalState.cc trunk/src/Projections/WFinder.cc trunk/src/Projections/ZFinder.cc Modified: trunk/include/Rivet/Projections/InvMassFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/InvMassFinalState.hh Thu Sep 22 15:53:38 2011 (r3387) +++ trunk/include/Rivet/Projections/InvMassFinalState.hh Tue Sep 27 11:20:42 2011 (r3388) @@ -27,6 +27,17 @@ double masstarget=-1.0); + /// Same thing as above, but we want to pass the particles directly to the calc method + InvMassFinalState(const std::pair<PdgId, PdgId>& idpair, // pair of decay products + double minmass, // min inv mass + double maxmass, // max inv mass + double masstarget=-1.0); + InvMassFinalState(const std::vector<std::pair<PdgId, PdgId> >& idpairs, // vector of pairs of decay products + double minmass, // min inv mass + double maxmass, // max inv mass + double masstarget=-1.0); + + /// Clone on the heap. virtual const Projection* clone() const { return new InvMassFinalState(*this); Modified: trunk/src/Projections/InvMassFinalState.cc ============================================================================== --- trunk/src/Projections/InvMassFinalState.cc Thu Sep 22 15:53:38 2011 (r3387) +++ trunk/src/Projections/InvMassFinalState.cc Tue Sep 27 11:20:42 2011 (r3388) @@ -31,6 +31,27 @@ } + InvMassFinalState::InvMassFinalState(const pair<PdgId, PdgId>& idpair, // pair of decay products + double minmass, // min inv mass + double maxmass, // max inv mass + double masstarget) + : _minmass(minmass), _maxmass(maxmass), _masstarget(masstarget), _useTransverseMass(false) + { + setName("InvMassFinalState"); + _decayids.push_back(idpair); + } + + + InvMassFinalState::InvMassFinalState(const vector<pair<PdgId, PdgId> >& idpairs, // vector of pairs of decay products + double minmass, // min inv mass + double maxmass, // max inv mass + double masstarget) + : _decayids(idpairs), _minmass(minmass), _maxmass(maxmass), _masstarget(masstarget), _useTransverseMass(false) + { + setName("InvMassFinalState"); + } + + int InvMassFinalState::compare(const Projection& p) const { // First compare the final states we are running on int fscmp = mkNamedPCmp(p, "FS"); Modified: trunk/src/Projections/WFinder.cc ============================================================================== --- trunk/src/Projections/WFinder.cc Thu Sep 22 15:53:38 2011 (r3387) +++ trunk/src/Projections/WFinder.cc Tue Sep 27 11:20:42 2011 (r3388) @@ -119,7 +119,7 @@ vector<pair<PdgId, PdgId> > l_nu_ids; l_nu_ids += make_pair(abs(_pid), -abs(_nu_pid)); l_nu_ids += make_pair(-abs(_pid), abs(_nu_pid)); - InvMassFinalState imfs(FinalState(), l_nu_ids, _minmass, _maxmass, _masstarget); + InvMassFinalState imfs(l_nu_ids, _minmass, _maxmass, _masstarget); imfs.useTransverseMass(_useTransverseMass); ParticleVector tmp; tmp.insert(tmp.end(), leptons.clusteredLeptons().begin(), leptons.clusteredLeptons().end()); Modified: trunk/src/Projections/ZFinder.cc ============================================================================== --- trunk/src/Projections/ZFinder.cc Thu Sep 22 15:53:38 2011 (r3387) +++ trunk/src/Projections/ZFinder.cc Tue Sep 27 11:20:42 2011 (r3388) @@ -84,7 +84,7 @@ const LeptonClusters& leptons = applyProjection<LeptonClusters>(e, "LeptonClusters"); - InvMassFinalState imfs(FinalState(), std::make_pair(_pid, -_pid), _minmass, _maxmass, _masstarget); + InvMassFinalState imfs(std::make_pair(_pid, -_pid), _minmass, _maxmass, _masstarget); ParticleVector tmp; tmp.insert(tmp.end(), leptons.clusteredLeptons().begin(), leptons.clusteredLeptons().end()); imfs.calc(tmp);
More information about the Rivet-svn mailing list |