I’m looking for nice way of representing calorimeter clusters in 3D. Currently I am trying to use TEve classes. In the code I see TEveCluster, which looks empty. Is there plan to develop it further, and if yes, in which direction?
I see my cluster as an colored, semi-transparent
ellipsoid(eta, phi, lamda_center, dlambda, dr, energy),
there eta - pseudorapidiry,
lambda_center - distance to cluster center from interaction point, dlambda, dr - lateral and transverse sizes of cluster,
energy - represented by ellipsoid color.
Currently I’m trying to use TGeoSphere&TGeoCombiTrans to get an ellipsoid, and TEveGeoShape to insert it into TEve environment. So if someone is looking for whishlist - It would be great to have an ellipsoid displayed by TEveCluster.
Thanks and cheers,
TEveCluster was meant more for “point-like” clusters, like the ones reconstructed in silicon detectors.
The classes in TEveVSDStructs.h are there mostly for storing data (usually into TTrees) in experiment-framework independent format so that they can be read by standalone root application. VSD - Visualization Summary Data
They do not have associated GUI editors or GL rendering classes.
So, in your case, I think you are going in the right direction as TGeo shapes are the easiest way to get 3D primitives into EVE. The other way is to implement the collection of classes: TEveCaloCluster, TEveCaloClusterEditor and TEveCaloClusterGL – this gives you a full control over parameters, control and the display. Another level of complexity is added if you want the objects to be automatically projectable into r-phi and rho-z views.
For example see TEveJetCone classes (not projectable yet), tutorial tutorials/eve/jetcone.C
Another thing to consider here is how to integrate this with the existing TEveCalo classes (tutorials/eve/calorimeters.C).
Would you be interested to contribute to the development / testing?
thanks a lot for reply,
projective clusters (ellipsoids) are certainly next thing I would like to have.
My idea was to get quick and simple tool to visualize clustering problems inside jets in ATLAS environment. At this moment I can’t spend much time developing this tool, unfortunately, since this kind of work is always pleasant. But if something new will appear on TEve side, I will certainly have a look.
Thanks and cheers,
OK … I will see if I can get my other customers interested in the idea
Using TEveGeoShape is in fact quite a good solution - the objects are already automatically projectable.
So, if you need any help with this solution let me know. We can also put the first implementation of the TEveCaloCluster using / subclassing from TEveGeoShape into ROOT.
Which version of ROOT are you using? Is trunk an option for you?
I’m working in Atlas framework (“athena” is the name of this disaster) with root as a part of framework bundle. Recent release of framework has root 5.22, so there is always some delay in propagating new root features. But for testing I can of course use a trunk.
Thanks and cheers,
OK … it’s on my todo list now. Let me know if it becomes urgent or when/if you have something that can be added into eve.
I somehow was diverted from TEve*, now I’m back and would like to ask some newbie question:
I wrote simple standalone code which makes TEve window with two projections, draws toy calorimeter and one cluster (please see attachment). The problem is that the program crashes when one try to close the application window. I’m sure that I did something stupid and some objects are deleted twice. Would you be so kind to point me to that. And also I’m sorry that I ask for help in the subject which is purely due to my greenness.
Many thanks in advance,
test.tar (30 KB)
First, with the trunk of root, I can not reproduce the crash, neither by “close” button of window manager nor by selecting “Quit ROOT” from the menu.
Probably I fixed the shutdown sequence of TEveManager in response to “close” button.
The crash occurs during destruction of TROOT object. You can avoid this by calling TApplication::Run() with kTRUE as argument (return from run) and then exiting manually. See for example the main function of ALICE event-display (AliEve):
alisoft.cern.ch/viewvc/trunk/EVE … iew=markup
I had to add some libraries to the linker command line in your Makefile:
ROOTGLIBS = $(shell root-config --glibs) -lTable -lTreePlayer -lEG -lGeom -lGed -lRGL -lEve
I also removed the ‘-m32’ flags – I use 64-bit linux and -m64 (or -m32) is also provided by
So … you did nothing really wrong
Please don’t hesitate to ask in case of trouble.
PS: Some time ago I encapsulated the 3d/rphi/rhoz view management in a simple class in eve/tutorials/MultiView.C. This is used from alice_esd.C and alice_vsd.C tutorials. Maybe it can help …