import ROOT, argparse parser=argparse.ArgumentParser(description="plot involved digis of a cluster") parser.add_argument('recofile',help='the recofile CutCosmics branch',type=str) args=parser.parse_args() ROOT.gROOT.ProcessLine(".x rootlogon.C") ROOT.gROOT.ProcessLine("gStyle->SetPalette(1)") ROOT.gROOT.LoadMacro("stlPYROOT.h+") Infile=ROOT.TFile(args.recofile,"read") tree=Infile.Get("cbmsim") if tree==None: print "no cbmsim" Infile.Close() exit() tree.SetBranchStatus("*",0) tree.SetBranchStatus("CutCosmics.*",1) tree.SetBranchStatus("TpcSPHit.*",1) tree.SetBranchStatus("TpcCluster.*",1) hpadplane=ROOT.TH2D("hpadplane","padplane",30,-2,2,30,-2,2) cpadplane=ROOT.TCanvas("cpadplane","padplane",1000,1000) hpadplane.Draw() evcounter=-1 for e in tree: evcounter+=1 trackindex=-1 for tr in e.CutCosmics: trackindex+=1 sigA=tr.GetSigA() hitIDs=tr.GetHitIDs() print 'theta:',tr.GetTheta(),'phi:',tr.GetPhi(),'meanz:',tr.GetMeanZ() clindex=-1 for hid in hitIDs: clindex+=1 if tr.GetIsGeomErr(clindex).Mag()>1: continue if not tr.GetClusterFitGood(clindex): continue if tr.GetEigenValOnPlane(clindex).Z()<0.002: continue #if tr.GetFullClusterSizeAxis(clindex).Z()<0.06: # continue if tr.GetSigA(clindex).Z()>0.002: continue hit=e.TpcSPHit.At(hid) clid=hit.getClusterID() cl=e.TpcCluster.At(clid) cl_pos=tr.GetHitPosition(clindex) digisOnPlanePos=tr.GetDigisOnPlane(clindex) digisOnPlaneAmp=tr.GetDigisOnPlaneAmp(clindex) ddigisOnPlane=ROOT.TPolyMarker() dtext=[] dindex=-1 for dig in digisOnPlanePos: dindex+=1 ddigisOnPlane.SetNextPoint(dig.X(),dig.Y()) dtext.append(ROOT.TText(dig.X(),dig.Y(),str(round(digisOnPlaneAmp[dindex],3)))) dtext[-1].SetTextSize(0.02) dtext[-1].SetTextAngle(45) dtext[-1].Draw('same') ddigisOnPlane.SetMarkerStyle(20) ddigisOnPlane.Draw() cpadplane.Update() ''' print 'planeU:' tr.GetPlaneU(clindex).Print() print "planeV" tr.GetPlaneV(clindex).Print() ''' print "Y geom Err:",tr.GetIsGeomErr(clindex).Y(),"Z geom Err:",tr.GetIsGeomErr(clindex).Z(),"fit good:",tr.GetClusterFitGood(clindex),"eigenvalOnPlan Z:",tr.GetEigenValOnPlane(clindex).Z(),"sigA Y:",tr.GetSigA(clindex).Y(),"sigA Z:",tr.GetSigA(clindex).Z() u=raw_input("next cluster?")