Home » PANDA » PandaRoot » Analysis » Tutorial macro
Tutorial macro [message #15097] |
Mon, 05 August 2013 14:56 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Dear all,
I tried to run the macros of the tutorial in /tutorial/apr13/*.C before running my specific analysis macro, just to be sure that things are under control; they look running smooth. However I get the message that the particle with PDG code 30443 is not in the list.
I checked also the macros in /macro/run/*.C, in the same release apr13, and I get a different warning related to the missing PDG code: this time is the ppbarsystem: 88888. However, it looks that in the way that the simulation macro here is provided, it produces a segmentation violation when it arrives to simulate the last event (whatever it is: 5, 10, 100....). The problem occurs at the last line of the simulation macro,
exit(0);
If I comment this line, the simulation macro provided in /macro/run/sim_complete.C looks working as the sim-macro of the /tutorial/apr13/ and I can run the digi-, reco-, -pid and my specific analysis macro. Did anybody experienced the same problem?
May I ask why that line was added in the macros provided in /macro/run/*.C? and how is correct, then?
The ROOT version which I am currently using is 5.34;
Pandaroot release: apr13
Fairroot Revision: 20995
Thanks in advance for your help in understanding,
Elisabetta
|
|
|
|
|
|
|
Re: Tutorial macro [message #15115 is a reply to message #15108] |
Wed, 07 August 2013 09:16 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ext.kfa-juelich.de
|
|
Hello Klaus,
I updated the trunk to run the tutorial macro in /tutorial/rho/ as you recently suggested. I can easy run sim-, digi-, reco-, pid- macros. But when I try to run the analysis macros of this new tutorial (without changing anything) I am in troubles:
1) tut_ana_comb.C
This macro is stopping since the beginning, because at the line l.105 it is combined:
****
RhoCandidate *combCand;
combCand= muplus[j]->Combine(*muminus[k]);
*****
This is not ok, as it produces the following error message:
*****
Error: Can't call RhoCandidate::Combine(*muminus[k]) in current scope tut_ana_comb.C:105:
Possible candidates are...
(in RhoCandidate)
/home/prencipe/panda/pandaroot/trunkbuild/lib/libRho.so -1:-1 0 public: RhoCandidate* RhoCandidate::Combine(RhoCandidate* c);
/home/prencipe/panda/pandaroot/trunkbuild/lib/libRho.so -1:-1 0 public: RhoCandidate* RhoCandidate::Combine(RhoCandidate* c1,RhoCandidate* c2);
/home/prencipe/panda/pandaroot/trunkbuild/lib/libRho.so -1:-1 0 public: RhoCandidate* RhoCandidate::Combine(RhoCandidate* c1,RhoCandidate* c2,RhoCandidate* c3);
*** Interpreter error recovered ***
*******
In the old tutorial, I used to combine lists, and it worked, and even here it would work. But in this macro RhoCandidates are combined, and I cannot run this macro in this way. How did you manage to compile this macro?
2) tut_ana_pid.C This works fine to me.
3) tut_ana_mcmatch.C This macro runs, but the plots of the full truth-match are empty. Actually also in the old tutorial they collected 0 entries in my case....do you have any hint how could I solve such a problem?
4) tut_ana_mclist.C This runs smooth
5) tut_ana_fit.C This is the worst case: it produces a segmentation violation. How did you manage to run this macro for the kinematic fit in /tutorial/rho/?
6) tut_ana.C It does not work, as the previous macros crash.
7) tut_makegifs.C It does not work
So, let's summarize: in this new rho-tutorial, without changing anything, for me the only analysis-macro working is the ana_pid. Any idea why I met these troubles? Do I miss anything, any setting, any change which am I supposed to do before running the analysis macros of /tutorial/rho?
http://panda-wiki.gsi.de/cgi-bin/view/Computing/PandaRootRhoTutorial
Thank you very much in advance for your useful help,
Elisabetta
|
|
|
|
|
|
|
Re: Tutorial macro - tut_pid.C - crash due to kSigFloatingException [message #15166 is a reply to message #15097] |
Fri, 09 August 2013 15:15 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Uhmmm...maybe I was too optimistic yesterday on the trunk rev-21003.
I tried all /tutorial/rho macros over a reduced sample of 100 events on 2 different analysis, and everything looked working smooth. Today I tried to run more events. Here I attach the file.dec which I am currently using, and the sim-macro, where the only modified parameter compared to the tutorial sim-macro in /tutorial/rho/ is the momentum (I am running a simulation for the psi(4040)).
I also attach here the plot of the psi(4040) which I obtain running the first 200 events, and it looks ok (true pid).
I made 5 attempts before posting this message, and I got a segmentation fault always at the same point: event #216
I am running a sample of 5000 events right now.
tut_sim.C OK
tut_digi.C OK
tut_rec.C OK
tut_pid.C it crashes at the event #216
Here below is the error message. Any idea what is going wrong? Did anybody meet the same problem before? is there the possibility to flag/exclude an event in pandaroot simulations?
I see here a "kSigFloatingException" break.
Just an idea: I am using PHOTOS. Can we use it in PANDA or is it still too soon? In this simulation my J/psi decays to mu+ mu- using the model VLL, and to e+e- using the model VLL + PHOTOS for electrons only.
Thanks for any hint, Elisabetta
*******************
FairGeanePro:FindPCA: Track2ToPoint quitFlag 1 ABORT
FairGeanePro:FindPCA: Track2ToPoint quitFlag 1 ABORT
FairGeanePro:FindPCA: Track2ToPoint quitFlag 1 ABORT
FairGeanePro:FindPCA: Track2ToPoint quitFlag 1 ABORT
FairGeanePro:FindPCA: Track2ToPoint quitFlag 1 ABORT
===== PndPidCorrelator - Event: 214 - Number of tracks for pid 6 - Number of Clusters for pid: EMC: 5 FSC: 5
===== PndPidCorrelator - Event: 215 - Number of tracks for pid 4 - Number of Clusters for pid: EMC: 14 FSC: 0
===== PndPidCorrelator - Event: 216 - Number of tracks for pid 5 - Number of Clusters for pid: EMC: 6 FSC: 0
*** Break *** floating point exception
[6]+ Stopped root -b tut_pid.C
===========================================================
There was a crash (kSigFloatingException).
This is the entire stack trace of all threads:
===========================================================
#0 0x002ed416 in __kernel_vsyscall ()
#1 0x0038ae43 in __waitpid_nocancel () from /lib/libc.so.6
#2 0x003274c3 in do_system () from /lib/libc.so.6
#3 0x0014f24d in system () from /lib/libpthread.so.0
#4 0x00aaa873 in TUnixSystem::Exec (this=0x9a3a750,
shellcmd=0x18e44bf0 " /home/prencipe/panda/ExternalPackages092012/build_sep12/etc/gdb-backtrac e.sh 4065 1>&2")
at /home/prencipe/panda/ExternalPackages092012/sep12/tools/root/core/unix/s rc/TUnixSystem.cxx:2084
#5 0x00aab09c in TUnixSystem::StackTrace (this=0x9a3a750)
at /home/prencipe/panda/ExternalPackages092012/sep12/tools/root/core/unix/s rc/TUnixSystem.cxx:2332
#6 0x00aa8bc7 in TUnixSystem::DispatchSignals (this=0x9a3a750,
sig=kSigFloatingException)
at /home/prencipe/panda/ExternalPackages092012/sep12/tools/root/core/unix/s rc/TUnixSystem.cxx:1210
#7 0x00aa6f19 in SigHandler (sig=kSigFloatingException)
at /home/prencipe/panda/ExternalPackages092012/sep12/tools/root/core/unix/s rc/TUnixSystem.cxx:367
#8 0x00aae4af in sighandler (sig=8)
at /home/prencipe/panda/ExternalPackages092012/sep12/tools/root/core/unix/s rc/TUnixSystem.cxx:3622
#9 <signal handler called>
#10 0xa00ff376 in ertrch () at erdecks/ertrch.F:134
#11 0xa010182c in ertrgo () at erdecks/ertrgo.F:249
===========================================================
The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#10 0xa00ff376 in ertrch () at erdecks/ertrch.F:134
#11 0xa010182c in ertrgo () at erdecks/ertrgo.F:249
===========================================================
-
Attachment: psi4040.eps
(Size: 8.76KB, Downloaded 283 times)
-
Attachment: tut_sim.C
(Size: 7.47KB, Downloaded 286 times)
-
Attachment: Y4040.dec
(Size: 0.18KB, Downloaded 261 times)
|
|
|
|
|
|
|
|
Re: Tutorial macro - tut_pid.C - crash due to kSigFloatingException [message #15181 is a reply to message #15178] |
Mon, 12 August 2013 10:41 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Hi Stefano,
in the meantime I simulated other decay channels, and even with the same which we talked about, if I start again sim-, digi-, reco-, pid-, no crash occurs. The point is that for that file that we talked about last week, the crash definitively occurs at the level of the pid- macro. So, let's say, this is *randomly* working, or *randomly* not working, depends on how you like to see it.
I had to repeat again all the process (sim, digi, rec, pid) to see my 5000 events of psi(4040). The previous file is not usable at all, as it crashes always at the same event. So, I wish to ask again if is there a way to flag an event in pandaroot.
Thank you to take care of this.
Elisabetta
|
|
|
|
|
Re: Tutorial macro - tut_pid.C - crash due to kSigFloatingException [message #15188 is a reply to message #15186] |
Tue, 13 August 2013 08:21 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Hello Klaus and Stefano,
yes of course I can skip an event in such a way. I saw it. But this is not the matter. The problem is why this happens.
Yesterday I tried to simulate a few thousands events for the analysis of Y(4160), to study the interference with Y(4260), for instance, if they decay to the same channel. Well, in the usual 4-macro-process (sim-, digi-, rec-, pid-) of the first 5000 events everything looked running smooth. Then I run additional 7000 events. The same crash, with exactly the same error message, with exactly the same segmentation fault, occurs at the event number:
432
467
900
1907
...
...
and several other events which I am taking a look right now. So, should I have to run the macro-pid interactively and see every fee events where it is stopping, and which event should I skip?
This looks a bug, in my limited experience.
The crash occurs at the level of the geanE routine lines:
#10 0xa00ff376 in ertrch () at erdecks/ertrch.F:134
#11 0xa010182c in ertrgo () at erdecks/ertrgo.F:249
I had a look, and it is where it is defined:
STOPP = -XCOEF2+SIGN(ONE,XCOEF1)* SQRT(XCOEF2
+ **2 -(XCOEF3-GEKIN*RMASS/XCOEF1))
Now, if at that event a negative root square is evaluated or a coefficient is 0 and this produces a break, this must be further investigate from me. But one thing is sure: the crash occurs, and in my case (several analysis) it happens 50 per cent of times..
Why does it happen always at the level of the pid macro, and not in the simulation, for instance, this is still not clear to me. I can hardly think that these kind of problems happen to me, only.
I think we should discuss this during the next meeting.
Best regards, Elisabetta
|
|
|
|
macro_pid.C - crash due to kSigFloatingException [message #15191 is a reply to message #15189] |
Tue, 13 August 2013 11:58 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ext.kfa-juelich.de
|
|
Dear Stefano,
my macros have nothing special at this level. I attach here all 4 (it is the last analysis attempt which I have performed in the trunk. A dummy particle is used, as in the evt.pdl file I did not see the Y(4260). It is the one supposed to have spin 1 and charged = 0. The pandaroot revision is 21003).
Just to summarize: the same kind of crash as I posted last week occurs at the events:
432
467
900
1907
5213
I run those interactively, not on the grid, as I am not simulating millions of events, but I am debugging the code.
Last Saturday I processed 5000 events, and it looked ok. This week I have again the problem that we are talking here, on a sample of 7000 generated events.
I am running the last 1500 events right now by the pid macro).
Thanks a lot to take care of this. Here are the macros + the dec file (copied and past from the /tutorial/rho, basically). As mentioned, here I am simulating the psi(4160) and I am trying to study some interference effect due to Y(4260). So the momentum is calculated at a mass point in between those 2 states.
Best regards, Elisabetta
-
Attachment: tut_dig.C
(Size: 4.59KB, Downloaded 227 times)
-
Attachment: tut_rec.C
(Size: 4.80KB, Downloaded 236 times)
-
Attachment: tut_pid.C
(Size: 3.59KB, Downloaded 282 times)
-
Attachment: tut_sim.C
(Size: 7.64KB, Downloaded 254 times)
-
Attachment: Ymix.dec
(Size: 0.27KB, Downloaded 261 times)
|
|
|
Re: tut_pid.C - crash due to kSigFloatingException [message #15195 is a reply to message #15189] |
Tue, 13 August 2013 13:58 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ext.kfa-juelich.de
|
|
Hi Stefano,
a further report on my debugging from here: as geane is used in reco- and pid- macros, I limited my attention to those events for which I got the segmentation fault, e.g., I set up in the reco-macro and pid-macro:
fRun->Run(430,453);
and I run both macros again, reco- and pid- over those events only. So I can see what happens with the event #432, for instance, which had produced the crash 5 times/5, yesterday, when I run the pid-macro, only.
What happens here is the following:
1) if I run the pid-macro over all reco.root file built yesterday, it crashes.
2) if I build again the reco.root file only for that little bunch of 5 events (e.g. from the event labelled as 430 to the event labelled as 435), the pid macro run smooth.
I repeated this for the event #467 and #900, too. If I build again the reco.root file, those events do not produce any crash when running over those the pid-macro.
Elisabetta
|
|
|
|
|
|
Re: tut_pid.C - crash due to kSigFloatingException [message #15211 is a reply to message #15210] |
Wed, 14 August 2013 16:20 |
StefanoSpataro
Messages: 2736 Registered: June 2005 Location: Torino
|
first-grade participant |
From: 2.235.190*
|
|
Hi Soeren,
I give you my personal explanation, which I already wrote to Elisabetta by Skype.
There is some not initialized variable, like a hit position, which is provided to geane by the pidcorrelator, and in Fedora it generates a crash. In this sense it is not a problem of geane itself, but of the parameters sent to geane (some NaN, or some dummy not initialized value).
In particular there is a strange warning appearing in the digi stage, about "not existing emc module 8", and I sent a mail to Dima to fix it.
If my thoughts are correct, the problem stands in the "pid detectors" or in the correlator itself, and this is the reason why the reco does not crash.
The fact that I sent several hundreds of thousand events w/o crashes, means that "probably" it is a compiler issue, maybe my gcc is more permissive while Elisabetta gcc is more strict and produces crash.
I would be happy to see the crash by myself in order to understand really what is going wrong, and if my suspects are correct.
|
|
|
|
Re: Tutorial macro - tut_pid.C - crash due to kSigFloatingException [message #15377 is a reply to message #15166] |
Fri, 30 August 2013 11:20 |
Lia Lavezzi
Messages: 291 Registered: May 2007 Location: Torino
|
first-grade participant |
From: *pv.infn.it
|
|
Hi,
I made some tests yesterday and I asked Elisabetta to check the results with her events too and it results that the problem of geane is actually due to a track with momentum 0.
To be more clear: before the propagation there is a check on the "last" momentum, to be sure it is > 0, but afterwards the "first" momentum is fed into geane for the propagation. As pointed out also by Stefano, sometimes the first and last points have very different momenta and, in the case of the crash, the first momentum is 0 and so geane crashes.
Moreover in the test I made I get for the track failing in propagation:
first pos = (26.930000,65.389999,190.124405)
first mom = (0.000000,0.000000,0.000000)
last pos = (26.930000,65.389999,190.124405)
last mom = (0.628132,1.180328,3.604733)
So the first and last positions coincide (also, at a very high z, even though in the track cand list there are also mvd hits associated).
The track has flag = -1, so it could be easily skipped just by requesting that if(track->GetFlag() < 0) continue;
Is it possible to add this line to skip wrongly fitted tracks? Is there a reason why we decided not to skip them?
Regards,
Lia.
|
|
|
|
|
|
Re: Tutorial macro - tut_pid.C - crash due to kSigFloatingException [message #15382 is a reply to message #15381] |
Fri, 30 August 2013 14:16 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *ikp.kfa-juelich.de
|
|
Thank a lot Lia for this check!
Stefano, I am in favor to add that line in the PidCorrelator, actually. At least for the time being...
But I have one question more, today, for geane experts:
is it correct that the geane check on a track is the requirement to have momentum of last track point>0.1 (=100MeV/c)?
Then, what happens for very very low momentum particles: are they skipped and not fitted at all? I am asking this naive question because for people like me, interested in charm spectroscopy, like DsJ mesons, it is important to reconstruct even very low momentum tracks (talking here of the reconstruction of particles with very Very thin width, for which it is fundamental to have good reconstruction efficiency for very low momentum).
Thanks all for your feedback,
Elisabetta
|
|
|
|
|
|
Goto Forum:
Current Time: Sat Dec 07 09:25:34 CET 2024
Total time taken to generate the page: 0.00772 seconds
|