GSI Helmholtzzentrum für Schwerionenforschung
Hi all, I try to do fast simulation with this decay chain: pbp->Ds+ Ds-; Ds- ->K+K-pi-; Ds+ ->e+ nv eta; eta->pi+pi-pi0 (gamma gamma). From the examples in macro/scrut, I got some problems for simulating the neutral channel: 1) in simulation macro: // generate electro-magnetic / hadronic split offs in the EMC? switch off when running w/o EMC Bool_t enableSplitoff = kFALSE; //enable the producting of parametrized neutral (hadronic) split offs if (enableSplitoff) fastSim->EnableSplitoffs(BaseDir+"/fsim/splitpars.dat"); From the comments there, if I understand correctly, the "enableSplitoff" seems should be switched on for eta->pi+pi-pi0 (gamma gamma). I tried kTRUE, but it crashed. 2) in analysis: // *** name of the only PidAlgo TClonesArray in fsim TString pidalg = "PidChargedProbability"; Does it mean no neutral algorithm in fast simulation? then, how to fill the neutral list? Thanks in advance. Lu
Dear Lu, actually you don't need the turn on that split-offs switch for your channel. The generation of e.-m. and hadronic split-offs was supposed to somehow remodel neutral secondaries induced by charged tracks. However the code is quite old and was parametrized in the 'old' Babar-like framework. Therefore it should be taken with care. But at least it shouldn't crash, so I'm gonna take a look. Best, Klaus
Dear Lu, I just updated macro/scrut concerning the split-off generation. If you like you can svn up that directory and retry with using split-offs to see the difference in the neutrals multiplicity. Please let me know if it still crashes. Best, Klaus
Dear Klaus, Thanks. It works now. Then, coming to the second question, since "PidChargedProbability" is for charged particle, how to fill the neutral list? Best regards, Lu
How do you fill photon list in the full reco? It should be the same.
In the full reconstruction, I used theAnalysis->FillList(gam,"Neutral"); but it makes the ana macro crash in the fast sim with this warning: Warning in <PndAnaPidCombiner::PndAnaPidCombiner::ReadTCA()>: No "PidAlgoIdealCharged" array found. *** Break *** segmentation violation Best regards, Lu
Yes, just take the same name 'PidChargedProbability' for neutrals, I think without that parameter the FillList crashes (Ralf is looking at it...). Best, Klaus
Dear Klaus and Ralf, it is still not clear to me how we should fill up the neutral list in the new release. I am running in the trunk 24275 right now. For example, in the old release if I type: theAnalysis->FillList(gammas, "Neutral"); this works ["works"....great word! At least it does not produce a crash] In the new /macro/scrut for charged particles one has to fill up lists in this way: theAnalysis->FillList(kplus, "KaonAllPlus", pidalg); //example for kaon+ list But for neutral particles I think it is wrong to write: theAnalysis->FillList(gammas, "Neutral", pidalg); especially if I read in the macro: // *** name of the only PidAlgo TClonesArray in fsim TString pidalg = "PidChargedProbability"; Now, to write simply: theAnalysis->FillList(gammas, "Neutral"); gives a Seg Fault, as the info concerning the pid-algorithm MUST be passed, for how this is defined. So, my question follows that posed from Lu in the past days: how shall we fill up the list of neutrals in the new release? Without this, here we are stacked, as in all channels we try to reconstruct, at least one photon gets involved. Thank you for your suggestion, Elisabetta
Hi, I'm on it. You should never have been forced to provide a PidAlgo. Cheers Ralf
Hi Ralf, thank you to take care of this. If I do not write any pid information in the neutral list, I got a Segmentation Fault. So I cannot run that macro at all. If I define a new string: TString pidalg0 ="PidNeutralProbability"; and I pass this parameter, actually it runs. Would it be ok, in your opinion? I see that in PidClassifier/PndPidIdealAssociatorTask.cxx, "PidNeutralProbability"; exists. cheers, Elisabetta
Hi Elisabetta, Yes, it would be OK as long as you don't access PID information. I.e. don't select on the numbers from the charged PID in your neutral candidates. Cheers Ralf
Hi Ralf, Regarding to the issue of FillList, I just found that scrut/ana_jpsi.C crashes due to this operation: theAnalysis->FillList(mclist, "McTruth"); It doesn't work any more in the version of 24297, but works with the previous one #24275 (Elisabetta tests). Is it caused by the on-going modifications of code? and can be fixed in soon? Thanks in advance. Best, Lu
Hi. I checked in the fix for not providing a pidalgo. Regarding the issue with FillList(... "MCTruth") I found nothing wrong in my fresh trunk. Please see with svn diff if you have some accidental changes. Cheers Ralf
Hi, I didn't touch the example code...and it still doesn't work even for the newly download. uh...what can I do anyway? Best, Lu
Hi Lu, I just checked out mar14 and run the example with root -l -b -q 'simfast.C("psi","psi2s_jpsi2mu_2pi.dec",6.23,1000,"psi(2S)")' root -l -b 'ana_jpsi.C("psi_fast.root")' and it runs without any problem. Did you start a new shell for checking out and compiling and stuff? It can always be that your environment is spoiled, which leads to strange effects. Best, Klaus
Hi Klaus, Thanks for your checking. My problem sounds pretty strange somehow.. The working environment looks fine, and ana_jpsi.C can work when I comment the line filling the MC list. By the way, I met a problem in compiling mar14: [ 93%] Built target LmdTool [ 93%] Building CXX object lmd/CMakeFiles/Model.dir/LmdFit/ModelFramework/fit/ModelFitFacade.cxx.o /private/pandaroot_mar14/pandaroot/lmd/LmdFit/ModelFramework/fit/ModelFitFacade.cxx: In member function 'ModelFitResult ModelFitFacade::Fit()': /private/pandaroot_mar14/pandaroot/lmd/LmdFit/ModelFramework/fit/ModelFitFacade.cxx:68:11: error: no match for 'operator==' in '0 == ((ModelFitFacade*)this)->ModelFitFacade::estimator' /private/pandaroot_mar14/pandaroot/lmd/LmdFit/ModelFramework/fit/ModelFitFacade.cxx:68:11: note: candidate is: operator==(int, int) <built-in> /private/pandaroot_mar14/pandaroot/lmd/LmdFit/ModelFramework/fit/ModelFitFacade.cxx:81:11: error: no match for 'operator==' in '0 == ((ModelFitFacade*)this)->ModelFitFacade::minimizer' /private/pandaroot_mar14/pandaroot/lmd/LmdFit/ModelFramework/fit/ModelFitFacade.cxx:81:11: note: candidate is: operator==(int, int) <built-in> make[2]: *** [lmd/CMakeFiles/Model.dir/LmdFit/ModelFramework/fit/ModelFitFacade.cxx.o] Error 1 make[1]: *** [lmd/CMakeFiles/Model.dir/all] Error 2 make: *** [all] Error 2 Best, Lu
Hi Lu, do you work on your own computer? Maybe it's something with the external packages? Because it just worked for me half an hour ago on my GSI machine. Best, Klaus
Hi Klaus, I'm using own computer with the external package of apr13. There's no problem before today... Best, Lu
Hello Lu, I uploaded a fix for this compilation error. Could you give it a test and let me know if it works? Thank you. Cheers, Stefan
Hi Stefan, it still has the same error during installing. Best, Lu
Hi, @Lu: ah sry, I just saw that you are using the mar14 release... That would explain the same error. I commited this fix into the trunk. I actually do not know if I'm allowed to commit to the release code. @all: How am I supposed to commit this change into the release branch? I tried to switch this file to the mar14 version, apply the fix and then commit this file. However the permission for the commit was denied. Is this the wrong way to fix it or am I simply missing the permissions. Best regards, Stefan
I will do this, just give me the time to reach a PC.
Now mar14 is updated, please try now.
The installation works now, and the example in scrut also works. Thanks to all helps. Lu