GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Tracking » GEM tracking
Re: GEM tracking [message #8324 is a reply to message #8307] Tue, 28 April 2009 18:11 Go to previous messageGo to previous message
Radoslaw Karabowicz is currently offline  Radoslaw Karabowicz
Messages: 108
Registered: June 2004
Location: GSI
continuous participant
From: *gsi.de
Dear Christian,

Thank you for your answer. This post will be rather long, so prepare;).

First of all: I am using pndroot revision 5003, i will get a new version tomorrow, I did not wanted to change anything in the environment for the test.

I have made a lot of print-outs in my code, which allowed me to make several observations:

1. charge. Both in the Geane and LSL track represtantation constructor you are taking charge of the particle (charge or q/p). At least some people take the charge from root pdg database by:
TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
TParticlePDG *fParticle= fdbPDG->GetParticle(PDGCode);
Double_t fCharge= fParticle->Charge();
but the correct way should be:
Double_t fCharge= fParticle->Charge()/3.;
because in TParticlePDG from root there is:
Double_t fCharge; // charge in units of |e|/3
Fixing this did not improve anything, so it is only a (meaningless) comment.

2. I still cannot make the fitter to run. I mean it is running, but it is not fitting at all. What I mean is that the parameters like momentum change insignificantly. I am doing: initialize track parameters with position and momentum taken from the first GEM point (most people use 0.,0.,0. as the starting point, is what I am using wrong?). I smear the position by (0.1,0.1,0.1) and increase the momentum by 0.1 to see if the fitter will fix it (should it?). The example printouts come from my PndGemKalmanTask and from yours Kalman.cxx (i print the track parameter in the loop of Kalman::processTrack(Track* trk)):

starting track0
FIRST GEM POINT AT: (x, y, z)
******** -6.55763 27.2351 89.3803
WITH MOMENTUM: (px, py, pz ----> |p|)
******** -0.192626 0.445268 1.54116 ---> 1.61572
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
8 hits in track 0
starting fit
********************************************************

before first iteration in Kalman::processTrack, 0.1 has been added to momentum.mag
0: result pos = (-6.47268,27.2066,89.3913)
0: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.47258 27.2067 89.3913
FairGeanePro::Propagate --------------------------- -6.47133 27.2036 89.3803
FairGeanePro::Propagate --------------------------- -6.70876 27.6091 90.6207
FairGeanePro::Propagate --------------------------- -10.8173 35.6645 119.38
FairGeanePro::Propagate --------------------------- -10.9983 35.9863 120.621
FairGeanePro::Propagate --------------------------- -15.6744 43.7319 149.38
FairGeanePro::Propagate --------------------------- -15.988 43.9828 150.621
FairGeanePro::Propagate --------------------------- -20.9761 51.4469 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.7575 51.3515 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5577 51.0004 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.4667 43.6138 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.136 43.3895 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -11.0507 35.9565 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.826 35.6454 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.22762 27.9268 90.6207

before second iteration in Kalman::processTrack
1: result pos = (-6.19682,27.4796,89.3803)
1: result mom = (-0.273583,0.43237,1.63766) ---> 1.71573
FairGeanePro::Propagate --------------------------- -6.51044 27.267 89.3803
FairGeanePro::Propagate --------------------------- -6.72045 27.6048 90.6207
FairGeanePro::Propagate --------------------------- -11.0317 35.5209 119.38
FairGeanePro::Propagate --------------------------- -11.1274 35.9024 120.621
FairGeanePro::Propagate --------------------------- -15.7653 43.6395 149.38
FairGeanePro::Propagate --------------------------- -16.0421 43.9262 150.621
FairGeanePro::Propagate --------------------------- -21.0838 51.3342 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.771 51.3386 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5622 50.9962 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.3376 43.7225 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.04 43.4701 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.9413 36.0422 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.7573 35.6996 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.18766 27.9631 90.6207

before third iteration in Kalman::processTrack
2: result pos = (-6.17669,27.4995,89.3803)
2: result mom = (-0.27435,0.431638,1.63773) ---> 1.71573
FairGeanePro::Propagate --------------------------- -6.50937 27.2686 89.3803
FairGeanePro::Propagate --------------------------- -6.7202 27.6054 90.6207
FairGeanePro::Propagate --------------------------- -11.0291 35.5213 119.38
FairGeanePro::Propagate --------------------------- -11.1251 35.9029 120.621
FairGeanePro::Propagate --------------------------- -15.7649 43.6389 149.38
FairGeanePro::Propagate --------------------------- -16.0422 43.9256 150.621
FairGeanePro::Propagate --------------------------- -21.0853 51.3326 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.7713 51.3384 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5623 50.9961 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.337 43.7229 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.0396 43.4704 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.9409 36.0425 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.757 35.6998 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.18749 27.9632 90.6207

before forth iteration in Kalman::processTrack
3: result pos = (-6.1766,27.4996,89.3803)
3: result mom = (-0.274355,0.431634,1.63773) ---> 1.71573
FairGeanePro::Propagate --------------------------- -6.50936 27.2686 89.3803
FairGeanePro::Propagate --------------------------- -6.7202 27.6054 90.6207
FairGeanePro::Propagate --------------------------- -11.0291 35.5212 119.38
FairGeanePro::Propagate --------------------------- -11.1251 35.9029 120.621
FairGeanePro::Propagate --------------------------- -15.7649 43.6389 149.38
FairGeanePro::Propagate --------------------------- -16.0422 43.9256 150.621
FairGeanePro::Propagate --------------------------- -21.0853 51.3326 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.7713 51.3384 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5623 50.9961 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.337 43.723 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.0395 43.4704 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.9409 36.0425 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.757 35.6998 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.18749 27.9632 90.6207

before fifth iteration in Kalman::processTrack
4: result pos = (-6.1766,27.4996,89.3803)
4: result mom = (-0.274355,0.431634,1.63773) ---> 1.71573
FairGeanePro::Propagate --------------------------- -6.50936 27.2686 89.3803
FairGeanePro::Propagate --------------------------- -6.7202 27.6054 90.6207
FairGeanePro::Propagate --------------------------- -11.0291 35.5212 119.38
FairGeanePro::Propagate --------------------------- -11.1251 35.9029 120.621
FairGeanePro::Propagate --------------------------- -15.7649 43.6389 149.38
FairGeanePro::Propagate --------------------------- -16.0422 43.9256 150.621
FairGeanePro::Propagate --------------------------- -21.0853 51.3326 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.7713 51.3384 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5623 50.9961 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.337 43.723 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.0395 43.4704 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.9409 36.0425 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.757 35.6998 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.18749 27.9632 90.6207

before sixth iteration in Kalman::processTrack
5: result pos = (-6.1766,27.4996,89.3803)
5: result mom = (-0.274355,0.431635,1.63773) ---> 1.71573
FairGeanePro::Propagate --------------------------- -6.50936 27.2686 89.3803
FairGeanePro::Propagate --------------------------- -6.7202 27.6054 90.6207
FairGeanePro::Propagate --------------------------- -11.0291 35.5212 119.38
FairGeanePro::Propagate --------------------------- -11.1251 35.9029 120.621
FairGeanePro::Propagate --------------------------- -15.7649 43.6389 149.38
FairGeanePro::Propagate --------------------------- -16.0422 43.9256 150.621
FairGeanePro::Propagate --------------------------- -21.0853 51.3326 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.7713 51.3384 180.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -21.5623 50.9961 179.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.337 43.723 150.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -16.0395 43.4704 149.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.9409 36.0425 120.621
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -10.757 35.6998 119.38
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.18749 27.9632 90.6207
GEANETRACKREP: USING BACKPROPAGATION!
FairGeanePro::Propagate --------------------------- -6.1766 27.4996 89.3803
ChiSq=13.963
********************************************************

Resulting position and momentum after 6 iterations of Kalman::processTrack
result pos = (-6.1766,27.4996,89.3803)
result mom = (-0.274355,0.431635,1.63773) ----> 1.71573


Observation:

The momentum |p| changes very little in the process of the fitting, the three components do change considerably, from
(-0.204548,0.472827,1.63655) to (-0.274355,0.431635,1.63773), but the |p| changes only from 1.71572 to 1.71573. This kind of behaviour I see for each and every particle that I tried to fit (you can check the attached file). Do you fix the overall particle momentum so that it cannot change during the fitting?


3. I have modified the RecoHit from:
TVector3 oo (0.,0.,hit->GetZ()),
uu ( TMath::Cos(phiAValue),TMath::Sin(phiAValue),0),
vv (-TMath::Sin(phiAValue),TMath::Cos(phiAValue),0);
_hitCoord[0][0] = TMath::Sqrt(hitX*hitX+hitY*hitY);
_hitCoord[1][0] = 0.;
_hitCov[0][0] = hit->GetDr();
_hitCov[1][1] = hit->GetDp();
to:
TVector3 oo (0.,0.,hit->GetZ()),
uu ( 1.0, 0.0, 0.0),
vv ( 0.0, 1.0, 0.0);

_hitCoord[0][0] = hitX;
_hitCoord[1][0] = hitY; // by the way, should it be [1][0] or [1][1]?

_hitCov[0][0] = 0.1;
_hitCov[1][1] = 0.1;

Both versions work exactly the same.

4. I have tried to use the LSL track representation:

starting track0
******** -6.55759 27.2354 89.3803
******** -0.192626 0.445268 1.54116 ---> 1.61572
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
-I- PndGemRecoHit::PndGemRecoHit(PndGemHit*) called.
8 hits in track 0
starting fit
********************************************************
0: result pos = (-6.47264,27.2069,89.3913)
0: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
FitterException thrown with whatString:
cov[0][0]<1.-50
in line: 225 in file: /misc/karabowi/pandaroot-5003/trunk/genfit/Kalman.cxx
FitterException Info Output
===========================
===========================
1: result pos = (-6.47264,27.2069,89.3913)
1: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
2: result pos = (-6.47264,27.2069,89.3913)
2: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
3: result pos = (-6.47264,27.2069,89.3913)
3: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
4: result pos = (-6.47264,27.2069,89.3913)
4: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
5: result pos = (-6.47264,27.2069,89.3913)
5: result mom = (-0.204548,0.472827,1.63655) ---> 1.71572
********************************************************
result pos = (-6.47264,27.2069,89.3913)
result mom = (-0.204548,0.472827,1.63655) ----> 1.71572


The exception using this representation is for every track, the parameters doesn't change at all... (check attached file, it unfortunately lacks information about exceptions).

5. I have similar exception in Geane as in LSL when I do not smear the position of the first GEM point as starting position for the Kalman.

Conclusion:

I seem to have some output from the fitter, but the problem is that the parameters do not change as I would like them to change.
In particular in the Geane rep. the momentum |p| stay constant in the process of fitting, the LSL doesn't work for me at all.
Could you take a look at the attached files and tell me if the fitter output looks normally?

That it for today.
Yours,
radek

ps. Thank you for patience, if you got down here;)
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: change in genfit exception handling
Next Topic: GEM Tracking inside LHETRACK
Goto Forum:
  


Current Time: Sun Apr 28 02:54:36 CEST 2024

Total time taken to generate the page: 0.01064 seconds