import sys,os,ROOT sys.path.append('/home/mberger/fopiroot/fopiroot_dev/macro/tpc/FOPI/mberger') pandapath=os.environ.get('PANDAPATH') sys.path.append(pandapath+'/macro/tpc/FOPI/python/argparse-1.2.1') import argparse from functions import set_palette parser=argparse.ArgumentParser(description='start FOPI-ROOT stuff') parser.add_argument('digifile',help='the digifile',type=str) parser.add_argument('--events',help='number of events to process',type=int,default=-1) args=parser.parse_args() ROOT.gROOT.ProcessLine(".x rootlogon.C") ROOT.gROOT.ProcessLine('gROOT->SetStyle("Plain")') ROOT.gROOT.LoadMacro("stlPYROOT.h+") set_palette() Rfile = ROOT.TFile.Open(args.digifile,"read") tree = Rfile.Get("cbmsim") if tree == None : print "No cbmsim in file", file if type(Rfile)==ROOT.TFile: Rfile.Close() exit() tree.SetBranchStatus("*", 0) #tree.SetBranchStatus("TpcDigi.*",1) tree.SetBranchStatus("TpcSample.*",1) tree.SetBranchStatus("TpcSignal.*",1) canv1=ROOT.TCanvas("canv1","canv1",1000,1000) canv1.Divide(3,3) hsampleft=ROOT.TH1D("hsampleft","sample ft",511,0,511) hsignalft=ROOT.TH1D("hsignalft",'signal ft',600,0,30000) hampSumVsTime=ROOT.TH2D("hampSumVsTime","Sample Amp Sum vs TimeBin",511,0,511,500,0,5000) hampSumVsTimeGlob=ROOT.TH1D("hampSumVsTimeGlob","Sample Amp Sum Vs TimeBin All Events",511,0,511) hampSumVsTimeSignal=ROOT.TH2D("hampSumVsTimeSignal","Signal Amp Sum vs TimeBin",3000,0,30000,500,0,5000) hampSumVsTimeGlobSignal=ROOT.TH1D("hampSumVsTimeGlobSignal","Signal Amp Sum Vs TimeBin All Events",600,0,30000) evt=-1 for e in tree: evt+=1 if args.events!=-1 and evt>args.events: break if evt%100==0: print evt timebins=[0]*511 timebinsSignal=[0]*511 for sam in e.TpcSample: timebins[sam.t()]+=sam.amp() hsampleft.Fill(sam.t()) hampSumVsTimeGlob.Fill(sam.t(),sam.amp()) for sig in e.TpcSignal: hampSumVsTimeGlobSignal.Fill(sig.t(),sig.amp()) hsignalft.Fill(sig.t()) for i in range(len(timebins)): hampSumVsTime.Fill(i,timebins[i]) canv1.cd(1) canv1.cd(1).SetLogz() hampSumVsTime.Draw("colz") canv1.cd(2) hampSumVsTimeGlob.Draw() canv1.cd(3) hampSumVsTimeGlobSignal.Draw() canv1.cd(4) hsampleft.Draw() canv1.cd(5) hsignalft.Draw() canv1.Update() u=raw_input("done?")