SND@LHC Software
Loading...
Searching...
No Matches
2dMuEventBuilderDisplay Namespace Reference

Functions

 loopEvents (start=0, save=False, selection=4)
 

Variables

dict h = {}
 
 parser = ArgumentParser()
 
 dest
 
 help
 
 type
 
 int
 
 required
 
 default
 
 options = parser.parse_args()
 
bool trans2local = False
 
 fgeo = ROOT.TFile.Open(options.geoFile)
 
 upkl = Unpickler(fgeo)
 
 snd_geo = upkl.load('ShipGeo')
 
 run = ROOT.FairRunSim()
 
 modules = sndDet_conf.configure(run,snd_geo)
 
 sGeo = fgeo.FAIRGeom
 
 lsOfGlobals = ROOT.gROOT.GetListOfGlobals()
 
bool mc = False
 
 f = ROOT.TFile('sndsw_raw_'+str(options.runNumber).zfill(6)+'.root')
 
 eventTree = f.rawConv
 
 nav = ROOT.gGeoManager.GetCurrentNavigator()
 

Function Documentation

◆ loopEvents()

2dMuEventBuilderDisplay.loopEvents (   start = 0,
  save = False,
  selection = 4 
)

Definition at line 48 of file 2dMuEventBuilderDisplay.py.

48def loopEvents(start=0,save=False,selection=4):
49 if 'simpleDisplay' not in h: ut.bookCanvas(h,key='simpleDisplay',title='simple event display',nx=1200,ny=1600,cx=1,cy=2)
50 h['simpleDisplay'].cd(1)
51 zStart = -40. # old coordinate system with origin in middle of target
52 ut.bookHist(h,'xz','x vs z',500,zStart,zStart+250.,100,-100.,10.)
53 ut.bookHist(h,'yz','y vs z',500,zStart,zStart+250.,100,0.,80.)
54 proj = {1:'xz',2:'yz'}
55 h['xz'].SetStats(0)
56 h['yz'].SetStats(0)
57
58 N = -1
59 Tprev = -1
60 A,B = ROOT.TVector3(),ROOT.TVector3()
61 ptext={0:' Y projection',1:' X projection'}
62 text = ROOT.TLatex()
63
64 Nev = eventTree.GetEntries()
65 eventTree.GetEvent(start)
66 T = eventTree.EventHeader.GetEventTime()
67 Nstart = start
68 while Nstart+1 < Nev:
69 bigContainer = []
70 for N in range(Nstart,Nev):
71 rc = eventTree.GetEvent(N)
72 if eventTree.EventHeader.GetEventTime() != T: break
73 for aHit in eventTree.Digi_MuFilterHit:
74 bigContainer.append( aHit.Clone() )
75 T = eventTree.EventHeader.GetEventTime()
76 Nstart = N
77 if len(bigContainer)==0: continue
78 stations = {}
79 for d in bigContainer:
80 plane = 100*(d.GetDetectorID()//1000)
81 stations[plane] = 1
82 if len(stations) <selection: continue
83
84 h['hitCollectionX']= {'Scifi':[0,ROOT.TGraph()],'US':[0,ROOT.TGraph()],'DS':[0,ROOT.TGraph()]}
85 h['hitCollectionY']= {'Veto':[0,ROOT.TGraph()],'Scifi':[0,ROOT.TGraph()],'US':[0,ROOT.TGraph()],'DS':[0,ROOT.TGraph()]}
86 systems = {1:'Veto',2:'US',3:'DS'}
87 for collection in ['hitCollectionX','hitCollectionY']:
88 for c in h[collection]:
89 rc=h[collection][c][1].SetName(c)
90 rc=h[collection][c][1].Set(0)
91 for p in proj:
92 rc = h[ 'simpleDisplay'].cd(p)
93 h[proj[p]].SetStats(0)
94 h[proj[p]].Draw('b')
95
96 for digi in bigContainer:
97 detID = digi.GetDetectorID()
98 if digi.GetName() == 'MuFilterHit':
99 system = digi.GetSystem()
100 modules['MuFilter'].GetPosition(detID,A,B)
101 globA,locA = array('d',[A[0],A[1],A[2]]),array('d',[A[0],A[1],A[2]])
102 if trans2local: nav.MasterToLocal(globA,locA)
103 Z = A[2]
104 if digi.isVertical():
105 collection = 'hitCollectionX'
106 Y = locA[0]
107 else:
108 collection = 'hitCollectionY'
109 Y = locA[1]
110 c = h[collection][systems[system]]
111 rc = c[1].SetPoint(c[0],Z,Y)
112 c[0]+=1
113 h['hitCollectionY']['Veto'][1].SetMarkerColor(ROOT.kRed)
114 h['hitCollectionY']['Scifi'][1].SetMarkerColor(ROOT.kBlue)
115 h['hitCollectionX']['Scifi'][1].SetMarkerColor(ROOT.kBlue)
116 h['hitCollectionY']['US'][1].SetMarkerColor(ROOT.kGreen)
117 h['hitCollectionY']['DS'][1].SetMarkerColor(ROOT.kCyan)
118 h['hitCollectionX']['DS'][1].SetMarkerColor(ROOT.kCyan)
119 k = 1
120 for collection in ['hitCollectionX','hitCollectionY']:
121 h[ 'simpleDisplay'].cd(k)
122 k+=1
123 for c in h[collection]:
124 print(collection.split('ion')[1],c, h[collection][c][1].GetN())
125 if h[collection][c][1].GetN()<1: continue
126 h[collection][c][1].SetMarkerStyle(29+k)
127 rc=h[collection][c][1].Draw('sameP')
128 h['display:'+c]=h[collection][c][1]
129 h[ 'simpleDisplay'].Update()
130 if save: h['simpleDisplay'].Print('event_'+"{:04d}".format(N)+'.png')
131 rc = input("hit return for next event or q for quit: ")
132 if rc=='q': break
133 if save: os.system("convert -delay 60 -loop 0 *.png animated.gif")

Variable Documentation

◆ default

2dMuEventBuilderDisplay.default

Definition at line 10 of file 2dMuEventBuilderDisplay.py.

◆ dest

2dMuEventBuilderDisplay.dest

Definition at line 9 of file 2dMuEventBuilderDisplay.py.

◆ eventTree

2dMuEventBuilderDisplay.eventTree = f.rawConv

Definition at line 36 of file 2dMuEventBuilderDisplay.py.

◆ f

2dMuEventBuilderDisplay.f = ROOT.TFile('sndsw_raw_'+str(options.runNumber).zfill(6)+'.root')

Definition at line 35 of file 2dMuEventBuilderDisplay.py.

◆ fgeo

2dMuEventBuilderDisplay.fgeo = ROOT.TFile.Open(options.geoFile)

Definition at line 15 of file 2dMuEventBuilderDisplay.py.

◆ h

dict 2dMuEventBuilderDisplay.h = {}

Definition at line 6 of file 2dMuEventBuilderDisplay.py.

◆ help

2dMuEventBuilderDisplay.help

Definition at line 9 of file 2dMuEventBuilderDisplay.py.

◆ int

2dMuEventBuilderDisplay.int

Definition at line 9 of file 2dMuEventBuilderDisplay.py.

◆ lsOfGlobals

2dMuEventBuilderDisplay.lsOfGlobals = ROOT.gROOT.GetListOfGlobals()

Definition at line 29 of file 2dMuEventBuilderDisplay.py.

◆ mc

bool 2dMuEventBuilderDisplay.mc = False

Definition at line 33 of file 2dMuEventBuilderDisplay.py.

◆ modules

2dMuEventBuilderDisplay.modules = sndDet_conf.configure(run,snd_geo)

Definition at line 26 of file 2dMuEventBuilderDisplay.py.

◆ nav

2dMuEventBuilderDisplay.nav = ROOT.gGeoManager.GetCurrentNavigator()

Definition at line 44 of file 2dMuEventBuilderDisplay.py.

◆ options

2dMuEventBuilderDisplay.options = parser.parse_args()

Definition at line 12 of file 2dMuEventBuilderDisplay.py.

◆ parser

2dMuEventBuilderDisplay.parser = ArgumentParser()

Definition at line 8 of file 2dMuEventBuilderDisplay.py.

◆ required

2dMuEventBuilderDisplay.required

Definition at line 9 of file 2dMuEventBuilderDisplay.py.

◆ run

2dMuEventBuilderDisplay.run = ROOT.FairRunSim()

Definition at line 25 of file 2dMuEventBuilderDisplay.py.

◆ sGeo

2dMuEventBuilderDisplay.sGeo = fgeo.FAIRGeom

Definition at line 27 of file 2dMuEventBuilderDisplay.py.

◆ snd_geo

2dMuEventBuilderDisplay.snd_geo = upkl.load('ShipGeo')

Definition at line 20 of file 2dMuEventBuilderDisplay.py.

◆ trans2local

bool 2dMuEventBuilderDisplay.trans2local = False

Definition at line 13 of file 2dMuEventBuilderDisplay.py.

◆ type

2dMuEventBuilderDisplay.type

Definition at line 9 of file 2dMuEventBuilderDisplay.py.

◆ upkl

2dMuEventBuilderDisplay.upkl = Unpickler(fgeo)

Definition at line 19 of file 2dMuEventBuilderDisplay.py.