Home » PANDA » PandaRoot » Tracking » PndTracking2 - mvd and stt code with genfit2
PndTracking2 - mvd and stt code with genfit2 [message #16612] |
Tue, 13 May 2014 22:52 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *web.vodafone.de
|
|
Dear Gianluigi and dear PndTrackers,
I am in the process to test genfit2 in pandaroot, trunk 24275. Apparently it looks compiling now, still as preliminary version and not with all detectors included;
I also simulated and digitized 100 events, using as MC generator the easiest BoxGenerator. It works fine.
I am testing right now the reco_complete.C macro.
In the current macro which I am using (/macro/run/reco_complete.C), I commented out some detectors, such as mvd, drc, lmd, because they have created some troubles when trying to compile pandaroot and/or to simulate events. So, for the time being, I am basically trying to understand if adidtional problems occur with genfit2 + stt panda code.
In the reco- macro, I see that an error occur at the line:
PndTrkTracking2* tracking = new PndTrkTracking2(0,false,false,false);
So, no events are reconstructed at all, right now.
Does it happen because PndTrkTracking2 work with mvd+stt together? just in case, is there the way to disantangle in this class mvd from stt?
is there any suggestion how shall I replace this line in the reco_complete.C macro, if I wish to test genfit2 with stt code only, or with all detector excluding mvd, in the reconstruction process?
has anybody any idea why in compliling pandaroot, while substituting genft(1) with genfit2, I cannot compile pandaroot? I did not expct at that level a problem with the mvd.
Of course, in the CMakeList.txt of all detectors and in the main one, genfit2 has already replaced genfit(1).
Many thanks in advance for your suggestion.
Best regards, Elisabetta
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16615 is a reply to message #16612] |
Wed, 14 May 2014 12:06 |
Gianluigi Boca
Messages: 177 Registered: March 2004
|
first-grade participant |
From: *pv.infn.it
|
|
Dear Elisabetta,
normally the offline Pattern Recognition works with the Mvd hits also.
However the code works also when there are no Mvd hits. The results are worse of course.
So I am a bit surprised that you have a crash there.
Please report the crash error message, then I'll be able to understand better what's going on and fix it
cheers
Gianluigi
Elisabetta Prencipe (2) wrote on Tue, 13 May 2014 22:52Dear Gianluigi and dear PndTrackers,
I am in the process to test genfit2 in pandaroot, trunk 24275. Apparently it looks compiling now, still as preliminary version and not with all detectors included;
I also simulated and digitized 100 events, using as MC generator the easiest BoxGenerator. It works fine.
I am testing right now the reco_complete.C macro.
In the current macro which I am using (/macro/run/reco_complete.C), I commented out some detectors, such as mvd, drc, lmd, because they have created some troubles when trying to compile pandaroot and/or to simulate events. So, for the time being, I am basically trying to understand if adidtional problems occur with genfit2 + stt panda code.
In the reco- macro, I see that an error occur at the line:
PndTrkTracking2* tracking = new PndTrkTracking2(0,false,false,false);
So, no events are reconstructed at all, right now.
Does it happen because PndTrkTracking2 work with mvd+stt together? just in case, is there the way to disantangle in this class mvd from stt?
is there any suggestion how shall I replace this line in the reco_complete.C macro, if I wish to test genfit2 with stt code only, or with all detector excluding mvd, in the reconstruction process?
has anybody any idea why in compliling pandaroot, while substituting genft(1) with genfit2, I cannot compile pandaroot? I did not expct at that level a problem with the mvd.
Of course, in the CMakeList.txt of all detectors and in the main one, genfit2 has already replaced genfit(1).
Many thanks in advance for your suggestion.
Best regards, Elisabetta
|
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16617 is a reply to message #16616] |
Wed, 14 May 2014 13:52 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Dear Gianluigi and dear Martin,
unfortunately the error appear when I just try "make" of the trunk24275, so there is not a lot to learn from it.
Here it is:
[ 56%] Generating G__MvdDict.cxx
Scanning dependencies of target Mvd
[ 56%] Building CXX object mvd/CMakeFiles/Mvd.dir/G__MvdDict.cxx.o
Linking CXX shared library ../lib/libMvd.so
/usr/bin/ld: cannot find -lRecoHits
/usr/bin/ld: cannot find -lgenfit2
/usr/bin/ld: cannot find -ltrackrep
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libMvd.so.0.0.0] Error 1
make[1]: *** [mvd/CMakeFiles/Mvd.dir/all] Error 2
make: *** [all] Error 2
***************8
If I comment out mvd from the CMakeList.txt of the trunk24275, then it compiles 100%, and I can simulate and digitize events....but without the mvd....
Of course to comment the mvd out of the CMakeList.txt, it is not a solution. It is just a checking if troubles apper even with other detectors. I get such a problem with mvd mainly; then also dirc amd lmd produce crashes, but only when I run the macros.
In your experience, do you have any idea at which level genfit acts in the mvd code, so I can understand why the compilation is stopped at 56% ? It does not make so much sense to me...
By the way, PndTracking2, in he reconstruction macro, without adding the mvd in the main CMakelist.txt of pandaroot, does not work at all (always in the hypothesis to use genfit2, of course).
cheers, Elisabetta
|
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16620 is a reply to message #16619] |
Wed, 14 May 2014 14:06 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
..one more adding for Gianluigi:
as I am strongly modifying also /GenFitTools/, probably there is still something that I have to fix there. At least, this is what I understand from the error message which I have got, that is also related to the TrackRep. My question for you, then, it is just if it's possible to use PndTracking2 with stt only, in the way that the macro reco_complete.C suggests. Or if I have to write another macro, such as "reco_stt.C" for instance, to test the results.
thank you again for your answers,
Elisabetta
|
|
|
|
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16626 is a reply to message #16619] |
Wed, 14 May 2014 16:47 |
Gianluigi Boca
Messages: 177 Registered: March 2004
|
first-grade participant |
From: *pv.infn.it
|
|
hi Elisabetta,
this is NOT a pattern recognition error in PndTrkTracking2 rather the class
GFAbsTrackRep is missing : as Ralf pointed out, there must be some missing library.
Besides, I checked the Pattern Recognition code again.
It actually returns with no results (== no PndTrackCand-idates) if the TClonesArray of the Mvd MC Points
is missing.
In other words : you have no crash, but you don't get any PndTrackCand-idates.
I have changed one line of code in PndTrkTracking2.cxx and I fixed that. Now one should get PndTrackCand-idates
also when the Mvd are NOT simulated.
In case you need more help, please let know
Cheers ! Gianluigi
Elisabetta Prencipe (2) wrote on Wed, 14 May 2014 14:00Hi Gianluigi,
the error which I get when running the reco_complete.C macro is a bit *cryptical*:
****************************************************
FairRootManager::OpenOutFile("reco_complete.root")
Error in <TClonesArray::SetClass>: called with a null pointer
dlopen error: /home/prencipe/panda/apr13.build/lib/libgenfitAdapters.so: undefined symbol: _ZTI13GFAbsTrackRep
Load Error: Failed to load Dynamic link library /home/prencipe/panda/apr13.build/lib/libgenfitAdapters.so
Error in <TCint::AutoLoadCallback>: failure loading dependent library libgenfitAdapters.so for class PndRecoKalmanTask
Info in (PndGeoHandling::Instance): Making a new instance using the framework.
It is saying that I call a null pointer. then I assume it is because the mvd detector is commented out from the CMakeList.txt. However, up to now, with the mvd code included in the CMakelist.txt of the trunk24275, I don't get even pandaroot compiling....
So, for the time being, I would do the following: just test pandaroot with genfit2, when only the stt detector is active. Do you have any suggestion or/and other better thought?
cheers and thank you, Elisabetta
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16665 is a reply to message #16612] |
Mon, 19 May 2014 14:39 |
Johannes Rauch
Messages: 41 Registered: September 2010 Location: TUM
|
continuous participant |
From: *natpool.mwn.de
|
|
Dear Elisabetta,
in genfit2, a namespace genfit is used. Besides some GFRave classes, nothing is named GF... anymore. So whenever you get warning/errors that GF... has not been found, you forgot to change this in the code.
Also, per default, there will is one library, named libgenfit2. No more libRKTrackRep, libGFRave etc.
If you check in your changes into the genfit2 development branch I created, it would be much easier for me to help you.
Kind regards,
Johannes
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16668 is a reply to message #16665] |
Mon, 19 May 2014 16:16 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Dear Johannes,
first of all I thank you to answer to this email.
Yes, the fact that GF classes do not exist anymore is pretty clear at a first look, as well as the old classes with reasonable similar names in genfit_1 vs genfit_2, look working in different ways. Let's say: genfit is just the *traditional* name of what you are working on, but genfit2 is a complete different package for Kalman Filter, compared to genfit_1...
Up to now, I have troubles to create a svn account from here, as I mentioned to you in a private email a couple of times.
I do not get genfit2 compiling with the pandaroot mvd code, yet, inside pandaroot. I do not manage to have Rave* or GLB* classes running neither in the standalone version of genfit2; so, it had to be taken out for the time being from pandaroot: there are already to many incompatibility problems with this new tool, here. Better not to add more mess for the time being!
This is not only a problem of pandaroot. GLB and RAVE* are not working for me in the standalone version of genfit2, as mentioned 2 months ago, and I have no clue what to do in order to get those running (in the standalone version available that you pointed me some time ago).
What I managed to do 2 months ago, was getting pandaroot rev 24725 compiling with genfit2, but some detectors had to be commented out from the main pandaroot CMakeList.txt (mvd, dirc, lmd).
Then, I can run it inside pandaroot! But I wish to see it running wit hall panda detectors.
The mvd creates a crash even in compilation; the other detector packages are in conflict only when I try to digitize events, after simulating those.
I am in the process to debug what happens at the level of the mvd code, and why pandaroot does not compile. I realized that in one class of the mvd tools still GF*classes were included. However, I do expect, in such a case, that pandaroot would not work, but definitively it should compile.
There are several dependencies from other pandaroot packages, which I have to solve, yet. Then, the package GenfitTools, which transforms genfit_tracks to pnd_tracks, is going to be completely re-written, as there are not any more recohits in genfit2, but SpacePoints, SpaceMeasurements, or WireMeasurements, or PlanarMeasurement. This introduces, to my first approach, a level of complication more in this work.
This is the situation right now. I can send you the package, until I do not manage to get a svn account. This is the best I can do, in this moment.
As you are so kind to answer to my questions, then I would ask you again about the difference between the RKTrackRep in genfit1 vs genfit2, and why AbsTrackRep is not anymore in genfit. What shall I use instead? It is not clear to me. This is just one example of classes in the new genfit2 which I do not understand why/how they are written, as no documentation is available in this sense.
Thank you very much in advance because you showed the wish to cooperate with us.
cheers, Elisabetta
cheers, Elisabetta
|
|
|
Re: PndTracking2 - mvd and stt code with genfit2 [message #16678 is a reply to message #16612] |
Wed, 21 May 2014 10:54 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Dear pnd-tracking friends,
the conflicts between genfit2 and mvd/dirc codes are solved. Now I manage to compile pandaroot rev-24275, with the last updated version of the mvd code (thanks Stefano for this!)
I can simulate and digitize events inside the pandaroot framework, with the new genfit2 tracking tool and the full panda detector tools, and it runs smooth.
In the reconstruction of the events, I have still some troubles with the PndRecoKalmanTask. So, still some modifications have to be done to GenfitTool2.
The basic idea is to add to a new pandaroot trunk, whenever all conflicts are solved and tests are completely performed, 2 new packages: /genfit2 and /GenfitTools2.
I think it's needed to add also /mvd2, as the one that we get right now is not compatible with genfit2.
I added in the svn /pandaroot/development/prencipe 2 packages: /genfit2 (adapted for panda, with 2 CMakeLists: CMakeList_panda.txt and CMakeList_standalone.txt), and a new version of GenfitTool (2), which is modified in order to run genfit2 in pandaroot.
Several other packages had to be modified, but with those I am still doing my tests (mvd, hyp, ...)
Hopefully I will solve all conflicts in 1-2 weeks, I would present this work and the first tests performed with genfit2 to the upcoming collaboration meeting.
Is there a standard macro which was used to test genfit (1) years ago, somewhere?
This is all for now.
cheers, Elisabetta
|
|
|
Goto Forum:
Current Time: Wed Oct 09 12:44:47 CEST 2024
Total time taken to generate the page: 0.00764 seconds
|