Hi,
I am trying to use RDataFrame class to skim a tree. I also want to select only the first 30 events from the input tree. This is the code snippet I wrote for python:
fileOut = "skimTree.root"
treeOut = "outputTree"
treeIn = "ttbar_NoSys"
treeInFile = "ttbar_merged_processed.root"
RDF = ROOT.ROOT.RDataFrame
d = RDF(treeIn, treeInFile)
dSmall = d.Filter("trigMatch_electronPlusMuonTrig!=0")
dCut = dSmall.Filter("nLep_signal >= 2")
dOut = dCut.Range(30);
dOut = dCut.Define("met", "met_Et") \
.Define("metPhi", "met_Phi") \
.Define("ht", "Ht30") \
.Define("Mll", "mll") \
.Define("dPhi1", "DPhiJ1Met") \
.Define("dPhi2", "DPhiJ2Met") \
.Define("zPt", "Ptll") \
.Define("mt2w", "mt2leplsp_0") \
.Define("jetN", "nJet30") \
.Define("bjetN", "nBJet30_MV2c10_FixedCutBEff_77") \
.Define("lepN", "nLep_signal") \
.Define("leadLepPt","lepPt[0]") \
.Define("trailLepPt", "lepPt[1]") \
.Define("leadLepEta", "lepEta[0]") \
.Define("trailLepEta", "lepEta[1]") \
.Define("leadLepPhi", "lepPhi[0]") \
.Define("trailLepPhi", "lepPhi[1]") \
.Define("runNumber", "RunNumber") \
.Define("eventNumber", "EventNumber") \
.Define("eeTrig", "trigWeight_1L2LTrig") \
.Define("eeTrigMatch", "trigMatch_1L2LTrig") \
.Define("mmTrig", "trigWeight_diMuonTrig") \
.Define("mmTrigMatch", "trigMatch_diMuonTrig") \
.Define("emTrig", "trigWeight_electronPlusMuonTrig")\
.Define("emTrigMatch", "trigMatch_diMuonTrig") \
.Define("isOS", "int OS = -1; (lepCharge[0]!=lepCharge[1] ? OS=1:OS=0); return OS;")
dOut.Snapshot(treeOut, fileOut)
But the code is running on the total number of events of the input tree. How can I only run on the first 30 events? Can anyone point me my mistake?
Thank you,
Arka
_ROOT Version: 6.14.04
_Platform: sl6 on lxplus
Compiler: Not Provided