in looking at the mc10 pile-up samples and attempting to build the truthpileup jets out of the pileupjettruthparticles, i found that the contents of those particles is corrupt. an example to reproduce this is below, from which you'll see:

$&gt; python printevent.py &quot;mc10_7tev.105009.j0_pythia_jetjet.recon.esd.e574_s934_s946_r1660_tid204813_00/esd.204813._000115.pool.root.2&quot; &quot;pileupjettruthparticles&quot; &quot;mc&quot;
:
:
jet #233:  et = nan gev, eta = 0.000000, phi = 0.000000, nconst = 1
:
:
n jets selected = 276 (total = 22708)


thus (a) i'd like to rebuild this container to make truth-pileup jets other than r=0.4 and (b) this bug should be fixed.

thanks
david

########################################

import user
import root
import math, sys
import pycintex
import athenarootaccess.transienttree
import athenacommon.systemofunits as units
import athenapython.pyathena as pyathena

#---------------------------------------
# argument handling
#---------------------------------------
if len(sys.argv) != 4: 
        print 'usage: %s &lt;inputfile&gt; &lt;jettype&gt; &lt;data/mc&gt;' % (sys.argv[0])
        sys.exit(1) 

#---------------------------------------
# simple function for dumping jet info
#---------------------------------------
def printjetevent(inputfile, 
                  jettype   = &quot;antikt6h1topojets&quot;, 
                  datamc    = &quot;mc&quot;
                 ): 

  # get the file and the event tree
  print &quot;trying to open file: %s&quot; % (inputfile)
  f = root.tfile.open(inputfile)
  tt = athenarootaccess.transienttree.maketree(f)
  print &quot;tree size: %d&quot; % (tt.getentries())

  # setup the jet branches. thanks to zach for the suggestions 
  jet   = getattr(tt, jettype)
  jetbr = tt.getbranch(jettype) 
  vx    = getattr(tt, &quot;vxprimarycandidate&quot;)

  # loop over the events
  njetsseen = 0
  for i in xrange(tt.getentries()):

      print &quot;event: %d&quot; % (i)

      # get the info for this event
      tt.getentry(i)
      jetbr.getentry(i) 
      njetsevt = 0

      # this event number
      thisevnum = -1
      if &quot;data&quot; in datamc: thisevnum = tt.bytestreameventinfo.event_id().event_number()
      else: thisevnum = tt.myevent.event_id().event_number()

      print 
      if &quot;data&quot; in datamc: print &quot;run: %d , lb: %d , evt: %d , npv: %d , njets: %d&quot; % (tt.bytestreameventinfo.event_id().run_number(),tt.bytestreameventinfo.event_id().lumi_block(),tt.bytestreameventinfo.event_id().event_number(),vx.size()-1,jet.size())
      else: print &quot;run: %d , lb: %d , evt: %d , npv: %d , njets: %d&quot; % (tt.myevent.event_id().run_number(),tt.myevent.event_id().lumi_block(),tt.myevent.event_id().event_number(),vx.size()-1,jet.size())

      # loop on jets
      for (j,jet) in enumerate(jet):

          print
          print &quot;jet #%d:  et = %f gev, eta = %f, phi = %f, nconst = %d&quot; % (j,jet.et()/units.gev,jet.eta(),jet.phi(),jet.size()) 

          # increment the list of passed jets
          njetsevt  += 1 
          njetsseen += 1

      # print out some more info
      print &quot;n jets selected = %d (total = %d)&quot; % (njetsevt,njetsseen)
      
#---------------------------------------
# run the script!
#---------------------------------------
printjetevent(sys.argv[1],sys.argv[2],sys.argv[3])