Closed tunnell closed 10 years ago
You can start it f you want. But try to make the display web compatible. In theory it would be best if we have a standalone display and one that ties into the online monitor that both use the same code. On Jul 20, 2014 4:40 PM, "Christopher Tunnell" notifications@github.com wrote:
Dan: do you have this already? If not, I'll add it.
— Reply to this email directly or view it on GitHub https://github.com/XENON1T/pax/issues/18.
I’ll start with matplotlib (and can ship png) then can try to think if we can host a tiny webserver with plots...
From: Daniel Coderre notifications@github.com Reply: XENON1T/pax reply@reply.github.com Date: July 20, 2014 at 22:12:04 To: XENON1T/pax pax@noreply.github.com Cc: Christopher Tunnell ctunnell@nikhef.nl Subject: Re: [pax] 2D event display in (x,y) for hit patterns (#18)
You can start it f you want. But try to make the display web compatible. In theory it would be best if we have a standalone display and one that ties into the online monitor that both use the same code. On Jul 20, 2014 4:40 PM, "Christopher Tunnell" notifications@github.com wrote:
Dan: do you have this already? If not, I'll add it.
— Reply to this email directly or view it on GitHub https://github.com/XENON1T/pax/issues/18.
— Reply to this email directly or view it on GitHub.
OK. Probably you need PMT geometry. I already but top layer XENON100 geometry into the .ini file. Maybe we should put full geometry (top and bottom) into top level since there are probably a lot of routines that need it.
Also I like the idea of running a webserver since it's stupid easy in python but we can prototype something later.
I put the PMT geometry in the top layer since I wanted to test a clustering idea (cluster in time too so we don't have to do this derivative stuff with the sum waveform). I was mainly messing around with it.
Do you want to see how hard it is to do plotting in a webpage hosted locally? I know there are a bunch of plugins, but I don't know which we should use and I've never done it.
Clustering in time is tricky. But I guess we could treat each occurrence as a separate hit and then maybe it works.
One issue with the display is that for XENON1T all the PMTs are circular, which makes plotting easier. For XENON100 they aren't so if we want a display that looks like the original xerawdp one for XE100 we need to define additional geometry to give the orientation of each PMT. I don't really think this is necessary at the moment though (we can just draw XE100 PMTs as circles).
But sure, I can have a look at this. I'm not sure how messy it will be to include web stuff within a plugin.
That was the idea... every step in time is different hit.
Maybe we should look at tornado? http://www.tornadoweb.org/en/stable/
I currently have the 2D plotting doing (in matplotlib): location = pmt location size = charge color = time
OK, I can take a look at that. For now I got a plugin to spawn a wsgi server and print "Hello World". Still trying to get a browser to (automatically) launch to view it.
OK, ditched wsgi because it's pretty limited. Commit ecc8b1af90b39bba8a93487d5cbf9d8e6d5b9431 now adds a pretty decent interactive waveform display (hit pattern coming soon). This is opened in a browser window, which works on ubuntu but hasn't been tested on other OSes. There are also html controls to go to the next event. S1 and S2 peaks are highlighted. Pretty basic at the moment but easy to expand.
Using cherrypy for web server (added to requirements). Plotting is done in dygraphs. In the plugin folder (plugins/display) there is a folder 'public' which contains the html and two javascript classes (dygraphs and jquery).
Can you guys try to run this once on your mac and windows machines to see that it works in both?
I'm closing this since as of cbd60f0ae58115fee9159ac8fab5ea57bc865992 we have a pretty, color top array hit pattern display using a google-charts circle chart. We can update it later to do things like show just individual S2s or to highlight clusters but for now it's quite nice.
Dan: do you have this already? If not, I'll add it.