GSI Helmholtzzentrum für Schwerionenforschung
Dear all, I decided to test genfit2 performances with the psi(2S) sample macros we are using form our analysis qa, i.e. psi(2s) -> J/psi pi+pi- and J/psi->mu+ mu- I am comparing results with genfit1 (1 iteration) with genfit2 (1 iteration) and genfit2 (3 iterations). I have taken the macros in macro/qa/run3 and modified the reco_complete and the pid_complete, in the following way: reco_complete.C Genfit1: untouched Genfit2: PndRecoKalmanTask2 instead of PndRecoKalmanTask for both TS and FS kalman tasks. Removed the lines SetTrackRep(0); Genfit2 3 iter: as Genfit2, but adding the lines ->SetNumIterations(3) for both TS and FS kalman tasks pid_complete.C In the three cases, in order to remove the "non fitted tracks" selection (which does not work in genfit2 up to now), added corr->SetFlagCut(kFALSE); Here the comparison genfit1 (1 iter) vs genfit2 (1 iter): genfit2 (1 iter) vs genfit2 (3 iter) genfit2 (3 iter) vs genfit1 (1 iter) For 1 iteration genfit, it seems that genfit2 has more counts than genfit1 in the low p range (below 0.3 GeV/c), but checking the full truth match invariant mass distributions, J/psi is narrower with genfit1 while psi(2s) is more or less the same. Comparing genfit2 with 1 and 3 iterations, we can see that the gain in low p vanishes, maybe they were just fakes and with 3 iterations such tracks are ruled out. The J/psi and psi(2s) invariant mass are almost equivalent. Comparing genfit2 3 iterations against genfit1, even in this case genfit1 seems to win but just for a bit. Are these results coherent to what presented before?
Hello Stefano, which trunk-rev are you using for these tests? I am asking because in the trunk-rev 28747 there are a few problems that I did not find in my development-branch, where only genfit2 is in, and genfit was deleted. The distribution of the kaon momentum looks not correct, for example. Concerning the macro pid_complete.C, you wrote: "In the three cases, in order to remove the "non fitted tracks" selection (which does not work in genfit2 up to now), added corr->SetFlagCut(kFALSE);" In genfit, as well as I understood, the flag <0 is set by the pidCorr when the fit does not converge. But genfit does not make any convergence check to the track; in genfit2 the fit convergence is checked (for example, there are non-convergence criteria based upon p-value and chi2 checks, e.g. by default settings = 10^-3 and 0.1% respectively; both parameters are user-ajustable; and genfi2 also makes use of different fitters). I assume this is the reason why you do not get a negative flag, when using genfit2. So, only good tracks should have passed the reco-selection. I think that one can set a flag, using the fitStatus() function. I did not change that part of the GenfitTools interface, just thinking it would work the same for gf1 and gf2. My former tests showed something different from your tests, in comparing gf1 vs gf2, on analyses. Please, confirm which trunk revision are you currently using, and I'll try to figure out what is going wrong. cheers, Elisabetta
As an addendum, I checked genfit with and without the flag cut: Without the flag cut there is a higher noise in the low momentum region, but at the end in the mc plots the two distributions are the same. This means the Flag cut does not affect so much the genfit1 efficiency.