GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » General » Proxy dict successfully used for the event loop
Proxy dict successfully used for the event loop [message #9648] Mon, 02 November 2009 13:39 Go to next message
Bertram Kopf is currently offline  Bertram Kopf
Messages: 110
Registered: March 2006
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi,
meanwhile, I have introduced a global event class "AbsEvt" which contains just two static proxy dictionaries, one for event lifetime and the other one for job lifetime. I tested the event lifetime proxy dict with the EMC digitization by putting the objects "PndEmcWaveform" into it. How to put it into the proxy, you can find in the new task "EmcDigi/PndEmcHitsToTmpWaveform.cxx" and how to get it back, in the task "EmcDigi/PndEmcTmpWaveformToDigi.cxx".
Note: Here, the PndEmcWaveform objects are only transient objects and will be deleted automatically at the end of each event.
The relevant emc macro is "macro/emc/full_tmpWaveform_emc.C" and can be used alternatively to "macro/emc/full_emc.C".
Since I have no svn write permission for the top "CMakeLists.txt" file, you have to add the following two lines to it:

add_subdirectory (parbase)
add_subdirectory (pndbase) (<- here to be added)
add_subdirectory (pndbase/globaltasks) (<- here to be added)
add_subdirectory (pnddata)

Best regards,
Bertram.
Re: Proxy dict successfully used for the event loop [message #9649 is a reply to message #9648] Mon, 02 November 2009 17:09 Go to previous messageGo to next message
Johan Messchendorp is currently offline  Johan Messchendorp
Messages: 693
Registered: April 2007
Location: University of Groningen
first-grade participant

From: *KVI.nl
....it has been added in the head!

j.
Re: Proxy dict successfully used for the event loop [message #9650 is a reply to message #9648] Mon, 02 November 2009 17:10 Go to previous messageGo to next message
Bertram Kopf is currently offline  Bertram Kopf
Messages: 110
Registered: March 2006
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi,

in the last posting I forgot to mention that one has also to add the following two lines in gconfig/rootlogon.C:

...
gSystem->Load("libBase")
gSystem->Load("libPndBase") (<- here to add)
gSystem->Load("libGlobalTask") (<- here to add)
gSystem->Load("libTrkBase")
...

Cheers,
Bertram.
Re: Proxy dict successfully used for the event loop [message #9651 is a reply to message #9650] Mon, 02 November 2009 17:19 Go to previous messageGo to next message
Johan Messchendorp is currently offline  Johan Messchendorp
Messages: 693
Registered: April 2007
Location: University of Groningen
first-grade participant

From: *KVI.nl
also done .... I changed

gSystem->Load("libGlobalTask")

in

gSystem->Load("libGlobalTasks"),

though....

j.
Re: Proxy dict successfully used for the event loop [message #9679 is a reply to message #9651] Wed, 04 November 2009 20:47 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *dip.t-dialin.net
Hi,

This stuff is not compiling on Mac OS (Leopard and Snow Leopard). I get the error:

Toggle Spoiler



as you can see it is related to the namespaces and the fact that BaBar re-implement the string.h in there own namespace (here panda namespace). But searching for for namespaces in the pndbase, the panda namespace seems to be defined but not used.


Toggle Spoiler



On Linux I could compile the stuff but could not run it.

Quote:


Error: Symbol PndEmcHitsToTmpWaveform is not defined in current scope full_tmpWaveform_emc.C:73:
Error: Symbol PndEmcHitsToTmpWaveform is not defined in current scope full_tmpWaveform_emc.C:73:
Error: type PndEmcHitsToTmpWaveform not defined FILE:/home/turany/pandaroot/macro/emc/./full_tmpWaveform_emc.C LINE:73
Warning: Automatic variable PndEmcHitsToTmpWaveform* emcHitsToTmpWaveform is allocated full_tmpWaveform_emc.C:73:
Error: Undeclared variable PndEmcHitsToTmpWaveform* emcHitsToTmpWaveform full_tmpWaveform_emc.C:73:



even though, the libraries are loaded.

Now to the general questions, this stuff is a copy of the BaBar stuff, do we have anybody who really can maintain this, modify it and develop it further?

Looking to the example task, it is a FairTask but without Init, and just create a dictionary in the exec (i.e. for each event) is that what we need, an event by event dictionary?

there is also a lot of other technical questions, but the main one is what is this package is good for? this is still not really clear for me.

regards

Mohammad

Re: Proxy dict successfully used for the event loop [message #9680 is a reply to message #9679] Thu, 05 November 2009 02:52 Go to previous messageGo to next message
Bertram Kopf is currently offline  Bertram Kopf
Messages: 110
Registered: March 2006
continuous participant
From: *pools.arcor-ip.net
Hi Mohammad,
thanks for the bug report. I committed some bug fixes.
Try it now and and let me know if it is compiling and the emc macro is running properly.

Cheers,
Bertram.
Re: Proxy dict successfully used for the event loop [message #9681 is a reply to message #9680] Thu, 05 November 2009 08:47 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *gsi.de
Hallo Bertram,

Now it compile also on MAC, it runs properly on Linux too. Thanks!

regards

Mohammad
Re: Proxy dict successfully used for the event loop [message #9683 is a reply to message #9679] Thu, 05 November 2009 14:34 Go to previous messageGo to next message
Bertram Kopf is currently offline  Bertram Kopf
Messages: 110
Registered: March 2006
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi Mohammad,
Mohammad Al-Turany wrote


Now to the general questions, this stuff is a copy of the BaBar stuff, do we have anybody who really can maintain this, modify it and develop it further?


This stuff is well tested and seems to work also in the new software environment. Since it is (or will be) part of the internal PndRoot software, it is possible for us -if needed - to modify and develop it further. The maintenance is also not difficult, since the code doesn't depend on anything (apart of the std template library) and is just written in c++ utilizing a couple of templates.
BTW: Why do we use Geant3? It is not maintaining anymore. And it is even an external package which we can not easily modify or maintain.

Mohammad Al-Turany wrote


Looking to the example task, it is a FairTask but without Init, and just create a dictionary in the exec (i.e. for each event) is that what we need, an event by event dictionary?



Yes! This is exactly that what I wanted to introduce. An event lifetime dictionary and in addition a job lifetime dictionary (not yet implemented).
The purpose of the event lifetime dictionary is to store and get access to objects which only exists within one event. The proxy takes care of deleting all pointers which are put into this dictionary.
The major purpose of the job lifetime proxy dict is to store and get access to condition objects which do not necessarily change from event to event. In principle, this proxy dict should be used as an interface to the conditions database.
I think, another advantage is, that this proxy provides the data in a type-safe way. Therefore error-prone casts are not needed in our software code.

Best regards,
Bertram.
Re: Proxy dict successfully used for the event loop [message #9686 is a reply to message #9683] Thu, 05 November 2009 14:53 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *gsi.de
Hi,

fine for me, if it is really needed, and if it can be maintained and developed it is ok.

Quote:


BTW: Why do we use Geant3? It is not maintaining anymore. And it is even an external package which we can not easily modify or maintain.


Geant3 in cernlib is not maintained any more and what we use it Geant3VMC which is maintained by the ROOT team and ALICE collaboration, we also participate in the development and maintenance so we can easily change things if needed. The fact that it is external tells you that if it comes to a dead end we just remove it without any effect to our software. But here with the Babar stuff it is different, First it is inside our stuff and you want to integrate it everywhere so taken this out or replacing it is not as easy as removing G3.

Quote:

The major purpose of the job lifetime proxy dict is to store and get access to condition objects which do not necessarily change from event to event. In principle, this proxy dict should be used as an interface to the conditions database.


You said also that this "job lifetime proxy" is not yet implemented, what about the connection to the database? is the plan now to implement (or port?) everything here, including a version management system and so on?

regards

Mohammad
Re: Proxy dict successfully used for the event loop [message #9687 is a reply to message #9686] Thu, 05 November 2009 15:08 Go to previous messageGo to next message
Bertram Kopf is currently offline  Bertram Kopf
Messages: 110
Registered: March 2006
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi,

Mohammad Al-Turany wrote


You said also that this "job lifetime proxy" is not yet implemented, what about the connection to the database? is the plan now to implement (or port?) everything here, including a version management system and so on?



Of course. This is planned on a longer time scale. The first step is done. Namely to provide some tools which are very useful for the connection to the database.

Cheers,
Bertram.
Re: Proxy dict successfully used for the event loop [message #9688 is a reply to message #9687] Thu, 05 November 2009 15:13 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *gsi.de
Hi,

Great, we had problems to find somebody doing the table design, validation and so on for panda, So if you now take this then we (Here in FairRoot) do not need to care about this issue and we can also remove the runtime database completely from the panda part.

Regards

Mohammad
Re: Proxy dict successfully used for the event loop [message #9692 is a reply to message #9688] Thu, 05 November 2009 23:08 Go to previous message
Johan Messchendorp is currently offline  Johan Messchendorp
Messages: 693
Registered: April 2007
Location: University of Groningen
first-grade participant

From: *xs4all.nl
Hold the horses! This goes too fast according to my taste. I find it perfectly OK to try out new things and learn from it. But we *cannot* decide by forum to forget about the existing runtime database tools! This we seriously need to discuss among the developers first.

Johan.
Previous Topic: Association Tools committed
Next Topic: new EMC geometry
Goto Forum:
  


Current Time: Thu Jul 25 18:33:17 CEST 2024

Total time taken to generate the page: 0.00758 seconds