How can I get the right jets for a particular object selection?
Python Code
import ROOT
import ATLASWatchMan.Bindings
#open the .root file
f = ROOT.TFile( "OutputD3PD.root" )
#open the TTree
tree = f.Get( "MyAnalysisTree" )
#open the Info TTree
t_info = f.Get( "MyAnalysisInfoTree" )
#store the object selection position info
objSelDict = {}
t_info.GetEntry( 0 )
objSelVec = t_info.objSelectionMap
for n, objSel in enumerate( objSelVec ):
objSelDict[objSel] = n
print "objSelDict:", objSelDict
# let's say that in my analysis I'm only interested
# in particles having passed the custom object selection that
# in the steering file I called "MyObjSelection_20GeV"
# so it's more convenient
objSelPosition = objSelDict['MyObjSelection_20GeV']
#loading the number of events stored in the TTree
nEntries = tree.GetEntries()
#loop over all events
for ev in range( nEntries ):
#load the event
tree.GetEntry( ev )
#print the run number and event number:
print "run n.: %s - ev n.: %s" % (tree.runNumber[0], tree.eventNumber[0]) #there are stored as vector but they have only one entry
#get jets
#I loop over all jets
for j, jet in enumerate( tree.jet4mom ):
# and I check if that jet passed the object selection I want
if tree.jetObjSel[j][objSelPosition] == 1:
print "I got the right jet passing my object selection"
print "jet.Pt():", jet.Pt()
print "jet.Eta():", jet.Eta()
C++ Code
Cooming Soon...
--
RiccardoMariaBianchi - 23-Oct-2009