
[Rivet] Transverse mass bug(?)Gavin Hesketh gavin.hesketh at cern.chFri Apr 13 11:38:19 BST 2012
Hi again, by the way, I was working with Rivet 1.8. I put a simple fix into my local version, in Projections/InvMassFinalState.cc: if (_useTransverseMass) { passedMassCut = inRange(v4.massT(), _minmass, _maxmass); } else { becomes: if (_useTransverseMass) { passedMassCut = inRange(massT(i1>momentum(), i2>momentum()) , _minmass, _maxmass); } else { where I also added this helper function: double massT( FourMomentum v1, FourMomentum v2) { return sqrt( (v1.Et() + v2.Et())*(v1.Et() + v2.Et())  (v1+v2).perp()*(v1+v2).perp() ); } The existing massT and massT2 functions should be deleted from Vector4.hh. This still compiled fine in my local vesion, so I guess this function was only being called by InvMassFinalState.cc. At some point an an analysis someone will want to plot the W transverse mass; I guess this would have to be done along the lines of: massT( wfinder.constituentLeptons()[0].momentum(), wfinder.constituentNeutrinos()[0].momentum() ); but maybe you have some better ideas. cheers, Gavin On 12/04/12 18:13, Gavin Hesketh wrote: > Hello, > I think there is a problem in the definition of transverse mass in Rivet > (though I may have got up a bit too early this morning to be doing > 4vector manipulation at this point in the day!) > > Transverse mass is defined as: > mT^2 = (ET1 + ET2)^2  (pT1 + pT2)^2 > > 1 & 2 are the lepton and neutrino. the second term is a vector sum. This > is equivalent to > > mT^2 = (ET1 + ET2)^2  pTW^2 > > but is not equivalent (I think) equivalent to the definition in Vector4.hh: > mT = M * sin(theta); > > I don't think you can derive the transverse mass purely from the > 4vector of the W  you need the vectors (or at least the transverse > energies) of the decay products. This may mean a bit of rewriting for > the InvMassFinalState, but nothing too serious. But right now all the > analyses involving W's will be wrong. > > cheers, > Gavin
More information about the Rivet mailing list 