GSI Forum - RDF feed
type: channel
description: GSI Helmholtzzentrum für Schwerionenforschung
items: Proxy dict successfully used for the event loop
items: Re: Proxy dict successfully used for the event loop

Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Bertram Kopf
date: 2009-11-02T12:39:56-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: ....it has been added in the head! j.
creator: Johan Messchendorp
date: 2009-11-02T16:09:42-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Bertram Kopf
date: 2009-11-02T16:10:22-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: also done .... I changed gSystem->Load("libGlobalTask") in gSystem->Load("libGlobalTasks"), though.... j.
creator: Johan Messchendorp
date: 2009-11-02T16:19:33-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: Hi, This stuff is not compiling on Mac OS (Leopard and Snow Leopard). I get the error: Toggle Spoiler Quote: [ 8%] Built target ParBase [ 8%] Building CXX object pndbase/CMakeFiles/PndBase.dir/proxydict/IfdCompositeKey.o In file included from /usr/include/c++/4.2.1/algorithm:65, from /Users/turany/fairsoft/pandaroot/pndbase/PndStdUtils/string.h:24, from /usr/include/c++/4.2.1/cstring:52, from /usr/include/c++/4.2.1/i686-apple-darwin10/x86_64/bits/c++locale.h:48, from /usr/include/c++/4.2.1/iosfwd:45, from /Users/turany/fairsoft/pandaroot/pndbase/proxydict/IfdKey.h:42, from /Users/turany/fairsoft/pandaroot/pndbase/proxydict/IfdCompositeKey.h:26, from /Users/turany/fairsoft/pandaroot/pndbase/proxydict/IfdCompositeKey.cxx:2 4: /usr/include/c++/4.2.1/bits/stl_algobase.h: In static member function 'static _Tp* std::__copy<true, std::random_access_iterator_tag>::copy(const _Tp*, const _Tp*, _Tp*)': /usr/include/c++/4.2.1/bits/stl_algobase.h:298: error: 'memmove' is not a member of 'std' /usr/include/c++/4.2.1/bits/stl_algobase.h: At global scope: /usr/include/c++/4.2.1/bits/stl_algobase.h:321: error: 'ostreambuf_iterator' was not declared in this scope /usr/include/c++/4.2.1/bits/stl_algobase.h:321: error: template argument 2 is invalid /usr/include/c++/4.2.1/bits/stl_algobase.h:321: error: expected unqualified-id before '>' token /usr/include/c++/4.2.1/bits/stl_algobase.h:326: error: 'ostreambuf_iterator' was not declared in this scope /usr/include/c++/4.2.1/bits/stl_algobase.h:326: error: template argument 2 is invalid /usr/include/c++/4.2.1/bits/stl_algobase.h:326: error: expected unqualified-id before '>' token /usr/include/c++/4.2.1/bits/stl_algobase.h:331: error: template declaration of 'typename __gnu_cxx::__enable_if<std::__is_char<_Tp>::__value, _CharT*>::__type std::__copy_aux' /usr/include/c++/4.2.1/bits/stl_algobase.h:331: error: 'istreambuf_iterator' was not declared in this scope /usr/include/c++/4.2.1/bits/stl_algobase.h:331: error: expected primary-express…
creator: Mohammad Al-Turany
date: 2009-11-04T19:47:06-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Bertram Kopf
date: 2009-11-05T01:52:34-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: Hallo Bertram, Now it compile also on MAC, it runs properly on Linux too. Thanks! regards Mohammad
creator: Mohammad Al-Turany
date: 2009-11-05T07:47:43-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Bertram Kopf
date: 2009-11-05T13:34:39-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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
creator: Mohammad Al-Turany
date: 2009-11-05T13:53:26-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Bertram Kopf
date: 2009-11-05T14:08:55-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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
creator: Mohammad Al-Turany
date: 2009-11-05T14:13:52-00:00

Re: Proxy dict successfully used for the event loop
type: item
description: 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.
creator: Johan Messchendorp
date: 2009-11-05T22:08:03-00:00