[Rivet] Method for accessing particles from FastJets projection

Andy Buckley andy.buckley at cern.ch
Thu Jun 5 22:01:07 BST 2014


On 05/06/14 21:34, David Bjergaard wrote:
> Hi Andy,
> 
>> Does Jet::particles() not work for you?
> This works great! It will even simplify my code, so its a double win. 
>>
>> We'll be overhauling the jets and vectors system for the next major
>> release, so this is a good time to get requests in! The plan so far is
>> for much better FastJet integration to allow the various filtering etc.
>> tools to be used directly.
>>
> Does that mean that Jets will inherit from PseudoJets and then get
> dressed with UserInfoBase in a nice way from rivet? 

Possibly, although I was currently planning that every Jet would
*contain* a PseudoJet and be equipped with a constructor from and a cast
operator to a PseudoJet. I looked into it before, and fully inheriting
from PseudoJet was going to cause us problems, so hopefully that would
be a flexible compromise.

> Also, I would really like the kinematics to be uniform between the two
> (most notably Jet::mass(), Jet::mass2() vs. PseudoJet::m(), and
> PseudoJet::m()), This prevents code like:
>> template <typename lvec> static void dump4vec(lvec four_mom){
>>   std::cout<<"( "<<four_mom.pt()<<" [GeV], "<<four_mom.eta()<<", "<<four_mom.phi()<<", "<<four_mom.m()<<" [GeV])"<<std::endl;
>> }
> from operating on Jets and PseudoJets which defeats the purpose of the
> template in the first place. (Of course this is a very minor complaint.)

It's useful feedback! The mass and mass2 methods could be aliased to m,
m2 if others think that would be a good idea. Certainly simpler than the
sort of template magic approach that *can* be written to still allow
this to compile!

Andy

-- 
Dr Andy Buckley, Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow / PH Dept, CERN


More information about the Rivet mailing list