Home » PANDA » PandaRoot » General » Full sim: all detected particles have PDG ID zero
Full sim: all detected particles have PDG ID zero [message #9366] |
Thu, 10 September 2009 10:09 |
Christian Leitold
Messages: 35 Registered: August 2009 Location: Stefan Meyer Institute
|
continuous participant |
From: *smi.oeaw.ac.at
|
|
Hello,
sorry to bother you again, but there is still one very serious problem left in our simulation. We produce events with PndDpmDirect, and then do the full chain with digi, reco, kalman and makeTCands. For analysis, we use PndEventReader, and here comes the problem: All detected particles have a PDG ID of zero, of course very contrary to the McTruth values. Thus, all other selectors than Neutral, Charged, All or McTruth of the FillList method produce empty lists. So, what could be the reason for that behaviour?
Kind regards
Christian
|
|
|
|
|
|
|
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9374 is a reply to message #9372] |
Thu, 10 September 2009 12:00 |
StefanoSpataro
Messages: 2736 Registered: June 2005 Location: Torino
|
first-grade participant |
From: *ext.kfa-juelich.de
|
|
Hi,
I can see different strange things in your log files:
Warning in <TStreamerInfo::BuildCheck>:
The StreamerInfo of class PndDpmDirect read from file data_0/params_sttcombi.root
has the same version (=1) as the active class but a different checksum.
You should update the version to ClassDef(PndDpmDirect,2).
Do not try to write objects with the current class definition,
the files will not be readable.
It seems you are using for the reconstruction a svn release different from the one used for the simulation. Is it possible?
Or maybe you have first done a test with some other svn version, then you have updated your system to a different version of pandaroot and you have restarted the macros without cleaning the old files (therefore, you are still using the old params_sttcombi.root).
Warning in <TClass::TClass>: no dictionary for class PndGemDetector is available
This should be related to the files with the "old" pandaroot, like in the previous case.
-------------------Warning---------------------------
-W FairRunAna : File has less events than requested!!
File contains : 5221 Events
Requested number of events = 12500 Events
The number of events is set to 5221 Events
-----------------------------------------------------
Maybe you have produced a too big file in simulation, which is split into more files. The macros are tuned to run a single file, you are not using the "add" method and then you are reconstructing only a part of the event. You could try to run 5000 events, which stay in only a single file, to check if it works or not.
Then...
*** Event # 1
===== PndLheHitsMaker =====
Total number of hits for tracking: 0
Total number of tracks in TPC: 0
Good tracks in TPC: 0
Working with 0 hits
found 0 tracks
finder : Real Time = 0.00 seconds Cpu Time = 0.00 seconds
===== PndTpcLheTrackFitter =====
Number of tracks for fitting 0
===== PndLhePidMaker: Number of tracks for pid 0
There is some problem in the digitization, you have no hits and then no tracks are created -> the lists are empty after makeTCands.
The log files of sim and digi could be helpful to understand what is wrong.
Then, I would suggest to run fewer events, checking the pandaroot version and being sure that the old files are removed.
Then, if the error persists, please attach the log file also for sim and digi. I think that for this "release" mismatch the digi macro is not able to read properly the sim file, and then some hit containers could be read as empty or not properly filled.
If this is not the case... I don't know...
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9375 is a reply to message #9366] |
Thu, 10 September 2009 13:36 |
Christian Leitold
Messages: 35 Registered: August 2009 Location: Stefan Meyer Institute
|
continuous participant |
From: *smi.oeaw.ac.at
|
|
Thanks for your help. You were right about concerning the old root files -- I had those files from the other revision still in the directory.
Unfortunately, the result is not really better now. Contrary, I now get a total crash already in the reco macro, which happens at the initialization. I have included the reco log with the error output, and also the sim and digi log, just did 20 events this time. The revision is definitely that from the Torino tutorial.
Just to be sure, would that be correct procedure for updating and compiling the code:
cd trunk
svn update -r XXX
rm -r CMakeCache.txt CMakeFiles
cd ../build
cmake ../trunk
make
Have I forgotten anything? Maybe a make clean somewhere? Or anything else?
My collegue Paul Bühler has installed indenpendently from me his own version of Panda ROOT (on the same machine, but in his directory). He uses the current revision. The weird thing is, that his reco task crashes at exactly the same point as mine, and we have so far no clue why.
-
Attachment: 3-reco.log
(Size: 6.01KB, Downloaded 298 times)
-
Attachment: 1-sim.log
(Size: 29.66KB, Downloaded 296 times)
-
Attachment: 2-digi.log
(Size: 39.01KB, Downloaded 306 times)
[Updated on: Thu, 10 September 2009 15:20] Report message to a moderator
|
|
|
|
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9383 is a reply to message #9366] |
Fri, 11 September 2009 14:15 |
Christian Leitold
Messages: 35 Registered: August 2009 Location: Stefan Meyer Institute
|
continuous participant |
From: *smi.oeaw.ac.at
|
|
Alright, thanks a lot, but before using gdb, there is somesthing important Paul Bühler hast just found out: As I have mentioned before, we slightly modified the class PndDpmDirect for our needs. Basically, I have overloaded the constructor of the class, so that it is possible to pass a TF1 pointer to the class, representing an axial gas density distribution. However, the "untouched" original constructor is still there as well, taking only two arguments, pbar momentum and mode.
Now comes the weird thing: If we use the unmodified original source code from the svn, everything runs fine. If we, however, compile the code with our modified PndDpmDirect, the crash occurs even when we call PndDpmDirect with the two arguments only.
So, what is it we have forgotten in implementing our changes to the class?
|
|
|
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9387 is a reply to message #9383] |
Fri, 11 September 2009 22:14 |
StefanoSpataro
Messages: 2736 Registered: June 2005 Location: Torino
|
first-grade participant |
From: *0-87-r.retail.telecomitalia.it
|
|
First of all, have you added a TF1 or a TF1* ?
The main problem is that the code is not able to delete this TF1. maybe because it is not a pointer. Try to use the "*" if it is not in this way.
If not, try to delete this object by yourself in the destructor of your PndDpmDirect.
[ADDED]
I had not read the other posts. I have seen that the TF1* is already a pointer. Then try the second option, try to delete the histo in the destructor.
[Updated on: Fri, 11 September 2009 22:18] Report message to a moderator
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9388 is a reply to message #9366] |
Fri, 11 September 2009 22:56 |
Christian Leitold
Messages: 35 Registered: August 2009 Location: Stefan Meyer Institute
|
continuous participant |
From: *adsl.highway.telekom.at
|
|
Yes, as you say, it is passed as a pointer. The TF1 object itself is created in the sim macro. So I don't think it would be a good idea to delete it in the PndDpmDirect class, would it? So, the memory already gets allocated in the sim macro, and should also be freed there, in my opinion. Paul has changed our PndDpmDirect from the "*.old" version (see above) to the current one, that at least does not crash.
But when looking at it again, I think it is a little bit strange as well. There is that bit of code in the .cxx file:
TF1 * fDensityFunction = new TF1();
Thus, memory is allocated here for a second time. Then, in the constructor:
fDensityFunction = DensityFunction;
where DensityFunction is the argument of the constructor. So, the pointer is now directed at the "original" object from the simulation. Isn't that a memory leak or am I completely misinterpreting the code?
Kind regards
Christian
[Updated on: Fri, 11 September 2009 22:56] Report message to a moderator
|
|
|
|
Re: Full sim: all detected particles have PDG ID zero [message #9391 is a reply to message #9366] |
Mon, 14 September 2009 11:28 |
Christian Leitold
Messages: 35 Registered: August 2009 Location: Stefan Meyer Institute
|
continuous participant |
From: *smi.oeaw.ac.at
|
|
Thanks for your suggestions. Why would you add a fDensityFunction = new TF1(); in the "without density" constructor? If my PndDpmDirect is created with that constructor, a TF1 is never accessed at all.
Kind regards
Christian
|
|
|
Goto Forum:
Current Time: Tue Nov 26 11:19:34 CET 2024
Total time taken to generate the page: 0.00878 seconds
|