amelia-development Mailing List for AMELIA
Status: Alpha
Brought to you by:
jppequenao
You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(31) |
Jun
(21) |
Jul
(11) |
Aug
(1) |
Sep
(10) |
Oct
(10) |
Nov
(14) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Karol K. <kk...@gm...> - 2009-04-01 18:33:10
|
Hi Joao, I've committed a bunch of work to the AMELIA SVN repository, so this is an update on what I've been up to. The main thing is the introduction of the AEventAnalysisData class. I've been thinking of a way to store custom data from different analysis and this is what I come up with. The general idea is that any work done by a student is stored in some container, and the container then has the responsibility of 1) Telling AMELIA when it was updated. (via signals) 2) Saving itself to a file. 3) Loading itself from a file. Furthermore, the containers are organized into modules. As of right now, there can only be one type of container per module (it was easier). But I'm still thinking if that is the right choice. What do you think? Another feature is that the modules can be attached to an event (ei: bookmarked tracks in an event) or they can be attached to some global entity (ei: the combinations added to a histogram), even though the latter is not implemented yet. Also I should note that so far I create one module per plugin, a plugin can have multiple modules (or can share them with other plugins). Next are the actual implementation details: The AEventAnalysisData class is a base class that defines a few basic functions that a container has to implement. They are the 3 functionalities mentioned earlier (update, saving, reading). The update notification is done via a Qt signal. The saving is done by writing an XML block to a file stream. The format is as follows: <analysis module="ModuleName" type="ContainerType"> <!--Custom XML data--> </analysis> The reading is done by looking through an XML tree, whose root is the analysis tag in the format above. I also pass the event that the container will belong to, in case I need to load some tracks from it. But in the future, I would like to replace this by a method where the container can grab the event from the AEventManager. The overall calls to the store/loading of all modules is handled by the AEventPackage class that stores everything in the .logbook file that is in each package. An example of a container that I created is the ATrackCollection class. This container holds collections (I'll rename the class to ATrackCollection*s*) of tracks, which can be referenced by name. For example, the list of bookmarked tracks is stored in a ATrackCollection container as "bookmarked_tracks" under the AGeometry module. The same is done with track combinations (ATrackCombination now inherits ATrack. As I understand, ATrackCombination represents a collection of particles that decayed from a single particle. Furthermore, you already had a collection type identifier in ATrack and ATrackCombination had an "equivalentTrack" member), known as "combined_tracks". The main problem right now is that the class is tied to a specific event, because it has to load the tracks from it. What I would like to do is to store some unique identifier to be stored with each track and then retrieve the event that the track belongs to based on it. To be more clear, right now the following happens: loadFromFile(tracks,event) foreach( trackid in tracks) event->getTrack(track) But I want the following: loadFromFile(tracks) eventmanager=getEventManager() foreach( trackinfo in tracks) event=eventmanager->getEvent(trackinfo.uniqueIdentifierForEvent); track=event->getTrack(trackinfo.trackid) This way we could store tracks from different events in one collection. For example, the histogram plugin could store the tracks in each histogram. Do you have any suggestions for what could be used as a unique identifier? I don't trust the filename, because that could be easily changed. For example, the events in AMELIA use the event/run numbers for filenames, but the events in the RAL masterclass just use Event#.xml. Are the event/run numbers relatively unique (ei: between simulated events and real events?) Another problem that I've run into, but easy to fix, is the selected track ID. Before this, when a user selected a track it was assigned an ID based on a counter. However, since the selections are persistent between sessions, should the selection ID be persistent too? If not, then the solution is simple. When a track is added to an ATrackCollections container, then its selection id is set to (parentEvent->highestSelectionId++). But I think it would be much friendlier if the ID's were persistent, in case the student names some notes in his notebook. In that case, it could be a bit more complicated to find the next available selection ID. What do you think? To demonstrate the flexibility of the AEventAnalysisData containers, I created a new plugin to show that they can be used for something other than collections of tracks. The new plugin is basically a lab notebook, using which the student can append notes to events. It uses a container called ALabNoteBookData that holds a collection of entries. Each entry has two properties: the date it was created and the text it contains. The notes are currently displayed in the sliding stacked widget that holds the detector view and the interesting tracks table. I've added a method to AGeoPlugin which makes it easy to add another page to the stacked widget and adds an entry to the menu bar (see View->Main View->). It is mainly a proof of concept, so it is quite simple. I do have some additional ideas, and I'm sure you will have even more. For example: - The text could be "rich text" and event contain links that trigger certain actions in AMELIA. For example, there could be links to tracks (clicking it would select the track) or links to histograms (click it would display a specific histogram). - There could be a global notebook monitor, which would show the notes for all events in a single list. My next goals are the following: - Make AMELIA work in fullscreen mode. I remember that you done some work on this in the pre-plugin era and what you've done with the AGeometry monitor should still be compatible (the layout didn't change that much). But the web views and the abase class had some changes. I've already handled the menu in abase (I just scale everything to reflect the resize) and I just need to stick the web views into a layout so they too get automatically resized... - Fix two regressions from the pre-plugin era. 1) The monitors in the menu are not tilted 2) A screenshot of the QIrrWidget is not being displayed in the menu. Instead you see some garbage.. - Start documenting the code and the specific frameworks in AMELIA. Basically, I want to write comments in the headers about what each function of each class and the class itself does, and then run one of those auto-documention generating scripts to turn that into HTML. Also I want to write how certain things can be hooked into (ei: adding new options to the AGeometry monitor, adding new monitors to ABase, using the analysis containers, using the track model..) Do you have any comments? We should probably have a meeting on Skype again. -- Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2009-03-09 16:39:12
|
Hi Joao, I think it's time for a long delayed update on my work on AMELIA. Last time we talked about the plugin system that I developed and if it works on Windows. Well, it does. The only change I had to make was to do some magic to export/import symbols from DLL's. Basically, if a class is to be used outside, it has to be exported in the header when compiling the library and imported in the header when compiling the application that uses the library. Sounds fun, eh? The standard way to accomplish this is to define a define thing as export/import based on compile swtiches. This is what I've done. See trunk/src/libamelia/ADefines.h for an example. I've committed this to the SVN a couple of weeks ago. In the meantime, I've been working on some other things too. One was, as I already mentioned, a slightly different event model. Actually, after I was done with it was not that different. Right now there is an AFilteredEvent class (inherits AEvent), which acts basically like the old AXmlEvent class. It contains a subset of events that passed a set of filters and a pointer to an AEvent instance that contains the entire subset of events. The cool part, I think, is that the filters are classes that can be added to AFilteredEvent in a sort of a linked list. For example, I've added a class to filter to jet type, miset type, particle type and pt cut. If you update one of those classes , then the AFilteredEvents associated with it (you can have the same filter on multiple subsets) will be automatically updated. I've also added a histogram plugin. To compile it, you'll need ROOT with Qt enabled. If you do not have that, CMake will skip the plugin. To use the histogram plugin, you go to AGeometry, load an event, create a track combination, add it to the table, right click its entry and select "Add to..". Then you're asked for the histogram name. After, you go back to the main menu, pick analysis and click one of the windows that appeared. It should display the histograms of the invariant masses of the added combinations. There you can change the binning and max/min. The next improvement to this plugin that I plan to add is a right-click menu to the 3D view of ageometry (so you can skip the table) and a way to histogram something else other than invariant mass. Do you have any other suggestions. Finally, I've made a small change to our QIrrWidget to improve it's performance. We used to redraw the scene every 30 milliseconds, which is a waste of time because most interaction is done with the Qt GUI. So I've added a check to redraw on OpenGL only if the camera has moved or something special triggered the redraw (ie: selecting a track, hiding modules). The same check is done (camera moved) when recalculating what parts of the detector to hide and how to set the camera speed. On my desktop, it definitely improves the interaction with the GUI. But let me know if you run into any problems... -- Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2009-01-09 19:08:54
|
Hi Joao, I did some work on AMELIA over my winter break and I made a few important changes, like introducing a basic plugin system (and made everything into a set of plugins). Do you have time sometime next week for a meeting over Skype to discuss some of the changes I made and if I should commit them to SVN? Also has there been any feedback on the alpha? Cheers, Karol Krizka PS: How is Episode 3 coming along? I've been checking xern.org regularly and nothing there. :( |
From: Joao P. <jpp...@lb...> - 2008-12-03 02:53:12
|
Hi Karol, As you said, I've been very busy with Episode III (actually for really bad reasons. Jana's computer fried yesterday and I spent too much time trying to recover it with no success. At least was able to use Ubuntu from the live CD in console mode, and backup her work). So you'll have very few updates on AMELIA from me over the next few days. I see you've been committing some of the changes proposed in the last email. That's great! But let me get it point by point: > > 1) I've reworked (just slightly ;) ) the QIrrWidget again and we no > longer have the problem with OpenGL and the main menu on Linux. > Another advantage is that there is a "working" MacOSX port of AMELIA. > By working I mean that my cube example works, but MacOSX locks up most > of the time when I start AMELIA (although I had few successful runs.). > I should be able to commit the basic code soon (just need to clean it > up). > Hooray! > 2) We've had an undergraduate physics party, where we showed some > demos, including AMELIA. I wrote a short documentation outlining some > basic features of AMELIA. You might be interested in temporary using > it as the "Getting Started Guide". It is here: > http://hep.phys.sfu.ca/~kka34/amelia-doc/amelia.html > It's a nice starting point. I think I'll use what you did, modify it slightly (and add some details about the Interesting Tracks table, detector tab and "Guided Tours") and post on the "Getting Started" section. I'll try to do it tomorrow. > 3) For the above party, I had to make a few modifications and you > might be interested in having some of them in the official version. > Let me know if I should commit any of them. Here they are: > - I've added a fourth tab to the tabbar that says "Hints". It > basically listed signatures of common events as a quick reference. I > think something like this (but more general) would be quite useful. > I agree that we need something like a permanently accessible reference (like your "hints") but thought already about a nicer (and easy) way to implement it. Basically we could add a AMainView page to AGeometryFrame (which is basically a StackedWidget) like we're now doing for the tables, and activate it trough a button ("Need Help?" or "?" or "Hints"...) on the toolbar. It would also allow for more space available for the help, and could run an html page on screen. Another thing I'd like to implement whenever the current project allows me so, is a HUD class (AHudInfo) to display contextual information over AGeometry. > - AXMLEvent now reads the "run number" and "event number" info from > the JiveXML files and displays them in the "Event Info" graphics view > thing. > - Since we had a touch screen, I've added zoom in and zoom out buttons > to control the sphere camera. Same thing for enabling selection of > multiple tracks. You can see these buttons in the screenshots used in > the documentation mentioned above. > That's something I had already thought about before. Simple yet really useful. This should definitely be standard. > 4) I'm going to start to play around with displaying the track hits > and LAr calorimeters in the way we talked about while I was at > Berkeley. So if you have any hints (ei: place to find good > documentation on the JiveXML format?) or you think I should wait > until you are less busy, just let me know. > > > I have a good idea about how to implement this, but no time for it for the time being. One thing that could be hard for you to do is to implement the 3D structure of the cells and pixels of the detector. This involves a lot more than simply understanding all the intricate details of the JiveXML. The .xml files only tell you the ID of the cells or pixels hit, and the energy deposited in the calorimeters, not *where* in the 3D space these cells and pixels are. So a first step should be to implement a 3D map of these structures and translate it to the Irrlicht space. I suggest you wait a little bit (until I move to CERN, which will be in one month) and then we can work on this together. Also the guys who created JiveXML and who hold the information about the 3D structure of the cells will be close to me then... Cheers, Joao -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joao Pequenao Mailstop 50R-6222 Lawrence Berkeley National Laboratory 1 Cyclotron Road Berkeley, CA 94720 USA Tel: (510) 486-4290 Fax: (510) 486-4799 Email: jppequenao@LBL.gov Webpage: http://pdg.lbl.gov/~pequenao =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
From: Karol K. <kk...@gm...> - 2008-12-01 21:50:59
|
Hi Joao, I believe that you are busy with Episode 3, so I'll try to keep this email short. It just contains updates on some things that I've been working on and have not committed yet. 1) I've reworked (just slightly ;) ) the QIrrWidget again and we no longer have the problem with OpenGL and the main menu on Linux. Another advantage is that there is a "working" MacOSX port of AMELIA. By working I mean that my cube example works, but MacOSX locks up most of the time when I start AMELIA (although I had few successful runs.). I should be able to commit the basic code soon (just need to clean it up). 2) We've had an undergraduate physics party, where we showed some demos, including AMELIA. I wrote a short documentation outlining some basic features of AMELIA. You might be interested in temporary using it as the "Getting Started Guide". It is here: http://hep.phys.sfu.ca/~kka34/amelia-doc/amelia.html 3) For the above party, I had to make a few modifications and you might be interested in having some of them in the official version. Let me know if I should commit any of them. Here they are: - I've added a fourth tab to the tabbar that says "Hints". It basically listed signatures of common events as a quick reference. I think something like this (but more general) would be quite useful. - AXMLEvent now reads the "run number" and "event number" info from the JiveXML files and displays them in the "Event Info" graphics view thing. - Since we had a touch screen, I've added zoom in and zoom out buttons to control the sphere camera. Same thing for enabling selection of multiple tracks. You can see these buttons in the screenshots used in the documentation mentioned above. 4) I'm going to start to play around with displaying the track hits and LAr calorimeters in the way we talked about while I was at Berkeley. So if you have any hints (ei: place to find good documentation on the JiveXML format?) or you think I should wait until you are less busy, just let me know. -- Cheers, Karol Krizka |
From: Joao P. <jpp...@lb...> - 2008-11-19 23:35:22
|
Dear all, It's here! I just made a new tag for the alpha release of AMELIA (after correcting a couple more bugs discussed yesterday with Karol), and made a zip package containing the Windows version which is now online. The Linux .deb package should follow soon. Go to http://sourceforge.net/projects/amelia/ and you should see right away the big green download panel on the top. So, here's the mandatory disclaimer: This is an *alpha* release, which naturally has many bugs and incomplete features. But overall it runs pretty well (both in Windows and Linux) and seems to perform very well at least three of its intended functions: - Visualization of events and the ATLAS detector - Calculation of combined invariant masses - A cool, engaging look and interface tuned to appeal to generic users Over the next few days I'll update several elements on the web page (including the interface walktrough). This will however be a slow process since there's another project requiring my utmost attention and sense of urgency. Finally, kudos to Karol. You are the best collaborator I could ever get. Cheers, Joao =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joao Pequenao Mailstop 50R-6222 Lawrence Berkeley National Laboratory 1 Cyclotron Road Berkeley, CA 94720 USA Tel: (510) 486-4290 Fax: (510) 486-4799 Email: jppequenao@LBL.gov Webpage: http://pdg.lbl.gov/~pequenao =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
From: Karol K. <kk...@gm...> - 2008-11-19 05:54:53
|
On Tue, Nov 18, 2008 at 8:46 PM, Karol Krizka <kk...@gm...> wrote: > On Tue, Nov 18, 2008 at 8:19 PM, Joao Pequenao <jpp...@lb...> wrote: >> Hi Karol, >> >> Check my last commit. As I wrote in the log: >> >> Log Message: >> ----------- >> - Corrected the reference to geometry meshes, as per Irrlicht API change >> - Transparent materials are now transparent again >> - Corrected a strange overlap in the Z-Buffer of transparent objects >> - Changed the look of some objects, enabled anisotropic filtering on some >> textures >> - On CMakeLists.txt the parameter for inclusion of QtWebKit was corrected >> (as per API changes) >> >> The only problem now is really the crashing of renderViewports under Linux. >> On Windows, things work pretty well already. I feel tempted to release the >> binaries produced some minutes ago (for Windows) as our alpha. >> > I think that the bigwheel is way too transparent, ei I can barely see > that it's there in parts. But apart from that, I do agree that we can > release the Windows binaries. > > On Linux, the problem seems to be if one does not have Framebuffer > Object, then there is a problem with grabbing the data of the texture. > I've already let the Irrlicht developers know about it. > Ok, I think this has been resolved. I'm not sure what the problem was, but I was stepping up Irrlicht revisions to see when the problems started appearing, and they never appeared even when I reached the latest revision! I'm guessing something must have gotten corrupted with my original checkout... Anyways, there is still one more thing before a release. :P You missed a few meshes in your last commit. The meshes in ATrack3DNode classes still use the old API and crash AMELIA when you load an event. Finally, I've made one commit to the AGeometry class. This is just some cleanup as I've noticed we were doing some extra unneeded redrawing in the function and I've found out that we can grab the texture data in a read-only mode which is supposed to "speed up those calls.". -- Cheers, Karol Krizka > > >> Cheers, >> >> Joao >> >> >> >> Karol Krizka wrote: >> >> On Tue, Nov 18, 2008 at 10:10 AM, Joao Pequenao <jpp...@lb...> wrote: >> >> >> Hi Karol, >> >> I'm not at my office right now (I'm actually at Pixar this morning). >> I noticed yesterday the same problem. It actually affects more things too, >> like the alpha channel of some textures (notice for example the pixel >> end-caps, which look weird now...) >> Before, the material characteristics were applied by node, but now it's by >> material layer. Must change that too... >> >> >> >> Ah ok, good you know what the problem is. Also I've noticed that the >> renderViewports code crashes and I've been looking into that. >> >> >> >> I believe that's the last thing to do before posting binaries. >> >> I'll be back to my office by lunch time and implement that immediately. >> >> >> >> I have to go to classes in a big and in the afternoon I have my long >> Tuesday lab, but I will be at a computer at around 6:00pm fixing >> whatever needs to be fixed. >> >> >> Cheers, >> >> Joao >> >> Karol Krizka wrote: >> >> >> Hi Joao, >> >> I'm having some trouble running the latest version of AMELIA when using the >> latest Irrlicht revision. It keeps crashing at line 881 of AGeometry: >> nodeModels->getMaterial ( 0 ).DiffuseColor.set ( 0,180,180,120 ); >> >> This is because nodeModels is 0. However I managed to fix it by chaning line >> 874 from >> scene::IMesh* TC = Device->getSceneManager()->getMesh ( >> "TC_Barrel01.x" )->getMesh ( 0 ); >> to >> scene::IMesh* TC = Device->getSceneManager()->getMesh ( >> "TC_Barrel01.x" ); >> >> There are a few other lines where you load a mesh and then run getMesh( 0 ), >> and I had to fix those too. But I don't really know how the meshes work in >> Irrlicht, so I'm not sure if this is just some API change or some real >> problem... >> -- >> Cheers, >> Karol Krizka >> >> > |
From: Karol K. <kk...@gm...> - 2008-11-18 17:32:35
|
Hi Joao, I'm just wondering what needs to be done for the release. From what I seen in your last commit, you disabled the tooltips and fixed the problem with the images in the browser. Also, I'm more free this week since I basically don't have any more assignments, so I'll be of more help. Cheers, Karol Krizka |
From: Joao P. <jpp...@lb...> - 2008-11-13 00:53:28
|
So it seems the problem with the binaries was all a Bill Gates prank. This runs pretty well on my Vista machine, as well as on another Vista machine where I just tried the binaries. But not on XP... The reason is Visual Studio automatically includes a vista-only dll belonging to the window manager. I'll try to either deactivate this wonderful "feature" or rebuild on the XP machine. Joao |
From: Joao P. <jpp...@lb...> - 2008-11-13 00:13:37
|
Karol, I distributed many windows binaries in the past and therefore know about the need to include the VC redistributable dlls. I did that yesterday, with no success (including, of course, the manifest files). I also used dependencywalker yesterday and found that apart from the "usual suspects" (i.e, QT related dlls, in our case QtCore4, QtGui4, QtXml4 and QtWebKit4) we also need msjava.dll (because the webpages in the monitors run javascripts. If the user doesn't have the Java runtimes installed on the system, this should do it). Today I tried to add the debug dlls as well, and even put in the distribution folder the whole set of Qt dll files. To no good... Mind you, it runs very very well in my machines where the development environment is installed. But if you try on some "virgin" computer (I have a couple here to test) it just won't work. This is the last obstacle now before a binary release. Cheers, Joao Karol Krizka wrote: > Hi Joao, > > Here are some notes I made when creating a Windows binary for Dugan. > They might help you: > > You need to copy these files from the Visual Express directory. It's > somewhere under redist folder: > Microsoft.VC90.CRT.manifest > msvcm90.dll > msvcp90.dll > msvcr90.dll > > For any other dependencies, use this: > http://www.dependencywalker.com/ > > -- > Cheers, > Karol Krizka > |
From: Karol K. <kk...@gm...> - 2008-11-12 20:01:56
|
Hi Joao, Here are some notes I made when creating a Windows binary for Dugan. They might help you: You need to copy these files from the Visual Express directory. It's somewhere under redist folder: Microsoft.VC90.CRT.manifest msvcm90.dll msvcp90.dll msvcr90.dll For any other dependencies, use this: http://www.dependencywalker.com/ -- Cheers, Karol Krizka |
From: Joao P. <jpp...@lb...> - 2008-11-12 10:37:52
|
Dear all, Over the last few days I did a facelift to the menu of AMELIA. The previous background image was not original and had copyright, and I just made a whole new 3D "Control Room" (attached). Also some small modifications were implemented on the main module's interface and the first "monitor" of the menu points to a new "Getting Started" page (still incomplete). AMELIA looks gorgeous now and is ready to be tested. There's now on the SVN a new test package with several events. This has problems though. AMELIA doesn't seem to be unloading correctly previous events and this is leading to incorrect representations of the new events. Should be easy to solve, but it's 2:40am and I'm really tired... The windows build runs very smoothly. The Linux build runs fine except the menu (since OpenGL was disabled...) I made Windows binaries which run great on my development machine but not on computers without the development environment installed. So this binaries can't be distributed. Once this problem is solved, I'll put it available online. Cheers, Joao |
From: Joao P. <jpp...@lb...> - 2008-11-07 02:44:55
|
Karol, That's great! I had two separate scripts of my own (one to automatically checkout Irrlicht SVN trunk, compile it and copy the include folder and libraries to the system and another to automatically checkout AMELIA SVN and compile it). I also had aliases for them, that's very useful. But your script is more complete, and I'll use it. I've been having problems with my machines. Managed to finally reinstall Windows Vista (BBBLLLARRRGGHHH!) on the desktop, and all the software needed for my work (bazillions of apps, some of which take hours to install or compile). Finally managed to build AMELIA on windows! Looks so nice now! The monitors seem right to me, not displaced like in your screenshot. And the event tool bar is not in there... That's the only major outstanding problem I see right now (from a clean SVN checkout on my newly reformatted machine). I'll check that. I'm still going to have some windows fun tonight. The same updates that crippled my desktop affected now the laptop. So there I'll actually revert to XP. TOMORROW must be R-day (for release). Cheers, Joao Karol Krizka wrote: > Hi Joao, > > Yesterday I managed to get a working DEB package of amelia and I made > a script for generating it automatically. What the script does is: > - Checks out irrlicht trunk (or runs svn up if already there) > - Removes the included jpeglib (which conflicts with the system lib used in Qt) > - Builds a static Irrlicht library > - Checks out amelia trunk (or runs svn up if already there) > - Patches it so it links against jpeg (for Irrlicht) > - Runs cmake > - Runs cpack -G pkg, where pkg is an argument you give to the build > script (ei: ./build.sh DEB creates a debian package) > > I had Dugan test it and he did not find any problems with it. You can > find the package here: > http://hep.phys.sfu.ca/~kka34/amelia-0.0.1-Linux.deb > > You can find the build script here: > http://hep.phys.sfu.ca/~kka34/prepamelia.tar.gz > > -- > Cheers, > Karol Krizka > |
From: Karol K. <kk...@gm...> - 2008-11-06 19:26:09
|
Hi Joao, Yesterday I managed to get a working DEB package of amelia and I made a script for generating it automatically. What the script does is: - Checks out irrlicht trunk (or runs svn up if already there) - Removes the included jpeglib (which conflicts with the system lib used in Qt) - Builds a static Irrlicht library - Checks out amelia trunk (or runs svn up if already there) - Patches it so it links against jpeg (for Irrlicht) - Runs cmake - Runs cpack -G pkg, where pkg is an argument you give to the build script (ei: ./build.sh DEB creates a debian package) I had Dugan test it and he did not find any problems with it. You can find the package here: http://hep.phys.sfu.ca/~kka34/amelia-0.0.1-Linux.deb You can find the build script here: http://hep.phys.sfu.ca/~kka34/prepamelia.tar.gz -- Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2008-11-06 00:02:08
|
Hi Joao, On Wed, Nov 5, 2008 at 2:11 PM, Joao Pequenao <jpp...@lb...> wrote: > FYI, I'm back in Linux, this time to backup all the work files on the > Windows partition. Vista got corrupted after an update and I'll have to > reinstall it now before being able to work. This should delay me for a > few hours... > Vista did the Microsoft thing, eh? Anyways, while you do that, I'll start preparing the Linux builds (or at least establishing a procedure for making them, in case you want to change something special). I have access to a Ubuntu Hardy Heron 32 bit machine and some Scientific Linux 4/5 machines (although I'm not sure what the status of Qt 4.4 is on that distro...). Also, I'll be on Skype until about 6-6:30, in case you want to tell me something. Cheers, Karol Krizka |
From: Joao P. <jpp...@lb...> - 2008-11-05 22:11:57
|
FYI, I'm back in Linux, this time to backup all the work files on the Windows partition. Vista got corrupted after an update and I'll have to reinstall it now before being able to work. This should delay me for a few hours... Joao |
From: Joao P. <jpp...@lb...> - 2008-11-05 18:55:30
|
Karol, We should definitely disable OpenGL for Linux on the Menu then. I'm jumping back to Windows to correct the menu animation bug we found yesterday. Once that and the Linux bug is corrected, I'll create a Tag and binaries for release. We also need to find what happened to the event toolbar! Joao =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Joao Pequenao Mailstop 50R-6222 Lawrence Berkeley National Laboratory 1 Cyclotron Road Berkeley, CA 94720 USA Tel: (510) 486-4290 Fax: (510) 486-4799 Email: jppequenao@LBL.gov Webpage: http://pdg.lbl.gov/~pequenao =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Karol Krizka wrote: > Hey Joao, > > Yesterday evening I've found out what causes the Irrlicht window to > stop working after we switch to the menu and then back. However I > don't really know what a good solution is.... The only way to fix it > is to disable OpenGL acceleration in the main menu. > > The problem is that if we embed Irrlicht into a window and the show > another OpenGL window (QGLWidget or another Irrlicht window), the > first Irrlicht window stops working. > > So I think that for now we should disable the OpenGL acceleration in > the main menu for now under Linux, and instead turn on a bunch of > caching features. I think that will give us reasonable performance, > considering that the menu animations are relatively simple... > > -- > Cheers, > Karol Krizka > |
From: Karol K. <kk...@gm...> - 2008-11-05 17:34:33
|
Hey Joao, Yesterday evening I've found out what causes the Irrlicht window to stop working after we switch to the menu and then back. However I don't really know what a good solution is.... The only way to fix it is to disable OpenGL acceleration in the main menu. The problem is that if we embed Irrlicht into a window and the show another OpenGL window (QGLWidget or another Irrlicht window), the first Irrlicht window stops working. So I think that for now we should disable the OpenGL acceleration in the main menu for now under Linux, and instead turn on a bunch of caching features. I think that will give us reasonable performance, considering that the menu animations are relatively simple... -- Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2008-11-04 00:36:17
|
Hi Joao, Just an update on what I did over the weekend on AMELIA. 1) I've noticed that you've added two new UI's to AMELIA, both displaying a webpage. I've been thinking about doing that too, but I've run into some problems while doing that, but I've managed to fix them over the weekend. The first problem was that AMELIA crashed when I've added a QWebView with http://amelia.sf.net . This was due to the JPEG files embedded in the webpage. Since irrlicht becomes linked with it's own version of LibJPEG, the symbols from it conflict with the ones from the system's LibJPEG, which is used by Qt. The solution is to remove LibJPEG from irrlicht and set it to link against the system libs. How to do it is outline here: http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=30734 The second problem was that the web page was not loaded when we take the screenshot for the ABase menu. I've had to come up with some system to add conditions to update the screenshots on specific signals. What you can now do is add hooks for specific signals to ABase, and if one is called, it updates the pixmap. Pretty cool, eh? For QWebView I hook the loadProgress() signal, which gets called when another part is loaded. Thus we see the webpage loading in the menu... Initially, taking a screenshot of a widget with QPixmap::grabWidget() kept graying out the main window from time to time. This was solved by making sure of the widget that we are taking a screenshot is not in the QLayout when it is hidden. I dunno why this was, but I'm guessing that painting a hidden widget to a pixmap disabled the painting for any of it's parents that are layed out and yeah.... 2) I've just comited a small change to the event manager, which makes it store user generated data about events (ei: tags, date last anaylized) in a separate file from the metadata file. This is something we've discussed some time ago on Skype, but I did not have time to do it. Anyways, the tags and other cool stuff is now stored in a .logbook file. 3) I've found 3 things that are broken in the tour player. Two of which ("actions" are not run and the tour keeps looking) I believe are due to the fact that I removed the QIrrWidget::repainted() signal which called a function in the ATourManager that updated the actions and stopped the tour at the end. I will replace this function with a timer for now, but in the future I want to use a QTimeLine, because it allows us to do much cooler stuff. (Actually, I already have tours "working" with a QTimeLine, and it was very easy for me to run the camera animators forward OR backward or speed the whole thing up. Cool stuff ;) However I'm not 100% sure that I understand how the structure of the tours works (ei: what is the importance of blocks?), so I would like to talk to you on Skype before I commit anything. However that should wait until after release. ) Anyways, I'm going to see if I can fix the tours tonight. 4) I saw this in the morning: http://labs.trolltech.com/blogs/2008/11/03/parallax-sliding and I though it would be quite cool to use something similar in the initial menu. Cheers, Karol Krizka PS: Would it be possible to schedule a Skype meeting for Friday or Wednesday afternoon? |
From: Karol K. <kk...@gm...> - 2008-10-26 06:35:23
|
Hi Joao, Today I made sure that AMELIA works on Windows. There was a problem with the grabPixmap() function when we set the column widgt of a tree widget in the ALayerGUI widget. I have no idea why this was, but commenting that out seemed to have fixed everything. Also, on Windows, I added Direct3D acceleration for the menu instead of OpenGL. I also tried to do the same for the ALayerGUI widget to make the AMainView widget sliding translition smoother and it did work, but then the background was not being drawn everywhere for some reason (Direct3D rendering is still experimental in 4.4), so I did not commit this. I will revisit this when Qt 4.5 becomes stable. I've found another bug in the track model. Basically, when you select a track from one of the tables, AMELIA crashes. I've tracked this down the the AGeometry::selectTrackById() function, which uses the ATrack::node object to change the selection of the track. However, ATrack::node is always null, because when we created the Irrlicht node, we saved the pointer to the "node" member of the track subclass. Anyways you are probably aware of this, but I created a item in the tracker for it (and the pt=et thing) so we won't forget about it. It might be a good idea to do so for any other problems that we come across in SVN and have not been fixed yet. ATrack::node: https://sourceforge.net/tracker2/index.php?func=detail&aid=2196461&group_id=190675&atid=934310 pt=et: https://sourceforge.net/tracker2/?func=detail&aid=2196559&group_id=190675&atid=934310 -- Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2008-10-26 04:16:30
|
Hi Joao, I was just testing the new menu on Windows and for some reason the STracks were not being shown on in the AGeometry display. I've managed to track the problem down to line 13 of ATrack.cpp, were we set the pt of a track to it's et. However the et, as far as a I found so far, is not being set at all so it gets some garbage value. This garbage value just happens to be some large negative number, so it never passes the pT cutoff. So should that line be there? Cheers, Karol Krizka |
From: Karol K. <kk...@sf...> - 2008-10-25 05:14:14
|
Cheers, Karol Krizka On Fri, Oct 24, 2008 at 7:21 PM, Joao Pequenao <jpp...@lb...> wrote: > Hi Karol, > > I hope your midterm went well. > Just saw your changes on the widget movement code. Very smooth! Just wait till I commit it with OpenGL acceleration. ;) I'm almost done, there is just a few things to complete (the centering of the screenshots is not working too well and I need to have them updated when something changes in the actual widgets). > I just implemented and committed a new "Advanced Event Settings" dialog. > We can now choose the reconstruction model for jets, missing ET and tracks. > Awesome! I just looked at it and it looks quite cool. Just a suggestion, maybe we could add a third page to the AMainView with the advanced settings instead of showing a dialog. I think it would look way cooler without loosing too much. > The only problem is... Since your last commit the eventWidget (where we have > the checkboxes for visibility of tracks) is not appearing and AGeometry is > irresponsive to the mouse. Any clue why? > I've just fixed the AGeometry not working. It was a result of me forgetting to add the event receiver to Irrlicht after the latest changes I've done to QIrrWidget. As for the eventWidget, it's working for me... The steps I take are: - Start AMELIA - Go to geometry.ui - Select special-higgs.xml from the event manager (not loading it from the file dialog!) - Watch the thing slide in... What steps are you taking? > I was kicked out of office today (they are retrofitting the building for > seismic safety compliance) and so wasn't able to skype with you today, > sorry. It's alright, it gave me time to work on the new QGraphicsScene approach, which seemed to have been a good thing. Anyways, I'm not sure how much time I will have next week for a meeting, but I will let you know when I find out. Since I'm basically finished with the menu after tonight (unless you tell me what still needs to be done on it), I'm not sure what I should move on to next. I'm thinking that I will make sure that the guided tours still work. What do you think? > I'll try to work on Sunday a little and get the physics from my testbed, > plus some structural changes to the ATrack model. > > Have a great weekend, > You too. Cheers, Karol Krizka |
From: Karol K. <kk...@gm...> - 2008-10-17 05:24:16
|
On Thu, Oct 16, 2008 at 9:08 PM, Joao Pequenao <jpp...@lb...> wrote: > Karol, > > Before answering your questions, I'd like to inform you that the transition > to the new data model (different classes and node types for different track > types) is complete. The old functionalities like pT cutoff and track > selection are again in place. This will be committed in minutes. > I just saw the commit. I'll take a full look at the new data model tomorrow to see it in it's full glory (so far I've just seen diffs produced by svn). > Tomorrow I'll work on the physics, after having done a full revision on > adding 4-vectors today. > Heh, I am looking forward to seeing how the tracks are supposed to look like. :P >> >> 1) The background of the geometry.ui is currently a 1024x730 image, >> which does not get scaled. However our window is 1024x730, which >> includes the toolbar and menubar, so the background does not really >> work. That is why the Designer form does not look correct, because the >> size of the central widget is not 1024x730, but less... It used to >> work in Ameila though, because when we loaded geometry.ui, the central >> widget was automatically resized to 1024x730 (thus the window was even >> bigger). However if I try my new method, the central widget is no >> longer resized, so it looks like it would in the Designer (see >> dynqt-widget). >> >> I think that one solution would be to either make the entire window >> bigger than 1024x730 (so that the central widget is 1024x730 when we >> add the toolbars) or make the background smaller. The problem with the >> latter solution is that it greatly reduces the real-estate that we >> have available. What do you think? >> > > I'll play with that tomorrow. But it seems OK as seen in Designer. > We can not spoil real-estate indeed, and I also don't like the idea of > making the window bigger since some people still have screen resolution of > 1024x768. And with border, menu bar and frame that's exactly the size I have > right now. Ah, but in the geometry.ui file it is only 1024x730 and NOT 1024x768 as it should be (as I understand from your reply). So yeah, if we increase the window size (not the central widget) to 1024x768, everything should be alright. > Unless we reposition the toolbar manually on the code... Will try that > tomorrow and then let you know. >> >> 2) As I mentioned before, using border-image for a background image is >> not very efficient, so when I run my sliding animation there is a lot >> of choppiness. If I replace all border-images with background-images, >> the performance improves greatly. There are several places that I >> think we should be able to do this, because all border-images does is >> automatic scaling. However certain widgets will not be resized (ei: >> background of the tabwidget, the selected track info tool). So would >> it be possible to use a background-image instead of a border-image for >> those? >> >> > > It is possible of course. I'll do it tomorrow. The problem is there will be > no automatic resizing so we should have background images oversized by > default (or in a fixed size we won't allow to change) I think fixed size would be the easiest solution. > Now the tab handles would have to be of a fixed size... Will study this > problem tomorrow. > Also there is currently a thread on the Qt mailing list about animating a bunch of images in a QGraphicsView and performance that I am following. Some points that were brought up include using the time passed since last update in figuring out the next position (like done by our Irrlicht animators) because QTimer cannot be trusted to provide a constant tick signal. Also due the same problem, it was also suggested to use an alternate thread for handling the position updates. I will explore these possibilities over the weekend... Anyways, I have integrated the code I have so far for the transitions between layouts into AMELIA and it seems to work pretty well. I will commit it now. However I have not tested it as much, so let me know if you run into any problems. Also there is a few things that I want to change in the way it changes the toolbars and menubars. Let me know if you have any other suggestions. Cheers, Karol Krizka |
From: Joao P. <jpp...@lb...> - 2008-10-17 04:08:25
|
Karol, Before answering your questions, I'd like to inform you that the transition to the new data model (different classes and node types for different track types) is complete. The old functionalities like pT cutoff and track selection are again in place. This will be committed in minutes. Tomorrow I'll work on the physics, after having done a full revision on adding 4-vectors today. > > 1) The background of the geometry.ui is currently a 1024x730 image, > which does not get scaled. However our window is 1024x730, which > includes the toolbar and menubar, so the background does not really > work. That is why the Designer form does not look correct, because the > size of the central widget is not 1024x730, but less... It used to > work in Ameila though, because when we loaded geometry.ui, the central > widget was automatically resized to 1024x730 (thus the window was even > bigger). However if I try my new method, the central widget is no > longer resized, so it looks like it would in the Designer (see > dynqt-widget). > > I think that one solution would be to either make the entire window > bigger than 1024x730 (so that the central widget is 1024x730 when we > add the toolbars) or make the background smaller. The problem with the > latter solution is that it greatly reduces the real-estate that we > have available. What do you think? > I'll play with that tomorrow. But it seems OK as seen in Designer. We can not spoil real-estate indeed, and I also don't like the idea of making the window bigger since some people still have screen resolution of 1024x768. And with border, menu bar and frame that's exactly the size I have right now. Unless we reposition the toolbar manually on the code... Will try that tomorrow and then let you know. > 2) As I mentioned before, using border-image for a background image is > not very efficient, so when I run my sliding animation there is a lot > of choppiness. If I replace all border-images with background-images, > the performance improves greatly. There are several places that I > think we should be able to do this, because all border-images does is > automatic scaling. However certain widgets will not be resized (ei: > background of the tabwidget, the selected track info tool). So would > it be possible to use a background-image instead of a border-image for > those? > > It is possible of course. I'll do it tomorrow. The problem is there will be no automatic resizing so we should have background images oversized by default (or in a fixed size we won't allow to change) Now the tab handles would have to be of a fixed size... Will study this problem tomorrow. Cheers, Joao |
From: Karol K. <kk...@gm...> - 2008-10-16 18:18:39
|
Hi Joao, While working on the fancy layout switcher, I've run into some problems with the stylesheets in the UI, so I'm wondering if you could take a quick look at that or offer some suggestions. 1) The background of the geometry.ui is currently a 1024x730 image, which does not get scaled. However our window is 1024x730, which includes the toolbar and menubar, so the background does not really work. That is why the Designer form does not look correct, because the size of the central widget is not 1024x730, but less... It used to work in Ameila though, because when we loaded geometry.ui, the central widget was automatically resized to 1024x730 (thus the window was even bigger). However if I try my new method, the central widget is no longer resized, so it looks like it would in the Designer (see dynqt-widget). I think that one solution would be to either make the entire window bigger than 1024x730 (so that the central widget is 1024x730 when we add the toolbars) or make the background smaller. The problem with the latter solution is that it greatly reduces the real-estate that we have available. What do you think? 2) As I mentioned before, using border-image for a background image is not very efficient, so when I run my sliding animation there is a lot of choppiness. If I replace all border-images with background-images, the performance improves greatly. There are several places that I think we should be able to do this, because all border-images does is automatic scaling. However certain widgets will not be resized (ei: background of the tabwidget, the selected track info tool). So would it be possible to use a background-image instead of a border-image for those? -- Cheers, Karol Krizka |