GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Tracking » back-propagation with GEANE
icon5.gif  back-propagation with GEANE [message #10704] Wed, 19 May 2010 18:17 Go to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hello all!
I'm faced with one unexpected problem with GEANE and need your help. My task is obtain antiproton parameters in interaction point from reconstructed information in luminosity monitor. So I want use back-propagation from GEANE. I simulated antiprotons with momentum 8.9 GeV/c, and just for test I used information (position and momentum) from first MC hit in lumi as input for FairTrackParP
Also I set origin of coordinates in point (0,0,0) and used BackTrackToVirtualPlaneAtPCA(1) function for back-propagation. As a results I have point near origin of coordinates and momentum in this point.
I compared my results with true information from MC generator and I observed significant differences in momentum coordinates, which lead to differences between reconstructed and simulated angles of particles. I made such tests with dipole&solenoid&transition maps as well as without magnetic field. Without magnetic field differences between reconstructed and simulated angles aren't so significant, but they still exist.
There are files with plots, which I obtained in simulation with magnetic field:

File momentum.eps with plots of momentum coordinates, errors for momentum coordinates and differences between momentum coordinates from MC generator and "reconstructed" momentum coordinates by GEANE.

In file vertex.eps with plots of coordinates of PCA and errors.

In file uncer.eps with plots of differences between reconstructed and simulated angles and momentum magnitude.


So my main question is: Does anybody know something about accuracy for propagation and back-propagation with GEANE?
How GEANE use information about errors of input parameters (position and momentum) ? Only for calculation of covariance matrix or for calculation output parameters too?

Best wishes,
Anastasia.
  • Attachment: momentum.eps
    (Size: 58.53KB, Downloaded 322 times)
  • Attachment: vertex.eps
    (Size: 35.64KB, Downloaded 318 times)
  • Attachment: uncer.eps
    (Size: 279.51KB, Downloaded 323 times)
Re: back-propagation with GEANE [message #10705 is a reply to message #10704] Wed, 19 May 2010 18:46 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *to.infn.it
Could you please write completely the code yo have used to do the back propagation?

Re: back-propagation with GEANE [message #10706 is a reply to message #10705] Wed, 19 May 2010 18:58 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hello Stefano!
This is the code, that I used:

PndMCTrack* myTrack = (PndMCTrack*)(fMCTracks->At(0));

//Get Start point and momentum from MC
PndSdsMCPoint* mcPoint = (PndSdsMCPoint*)(fMCHits->At(0));
StartPos = mcPoint->GetPosition();
TVector3 MCmom;
mcPoint->Momentum(MCmom);
StartMom = TVector3(MCmom.X(),MCmom.Y(),MCmom.Z());

StartPosErr = TVector3(0,0,0);
StartMomErr = TVector3(0,0,0);

//Charge and PDGCode of particle
Int_t PDGCode = myTrack->GetPdgCode();
TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
TParticlePDG *fParticle= fdbPDG->GetParticle(PDGCode);
Double_t fCharge= fParticle->Charge();

TClonesArray& clref1 = *fTrackParIni;
Int_t size1 = clref1.GetEntriesFast();
FairTrackParP *fStart =
new (clref1[size1]) FairTrackParP(StartPos, StartMom, StartPosErr, StartMomErr, fCharge, StartO, StartU, StartV);

TClonesArray& clref = *fTrackParGeane;
Int_t size = clref.GetEntriesFast();
FairTrackParP *fRes = new(clref[size]) FairTrackParP();

//Set origin of coordinate in intial point of track (0,0,0)
TVector3 vtx = myTrack->GetStartVertex();
fPro->SetPoint(vtx);
fPro->BackTrackToVirtualPlaneAtPCA(1);//1 means "closest approach to point"
fPro->Propagate(fStart, fRes, PDGCode);

new((*fTrackParFinal)[i]) FairTrackParP(*(fRes)); //save Track
Re: back-propagation with GEANE [message #10709 is a reply to message #10706] Wed, 19 May 2010 19:25 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *to.infn.it
Hi,
I would use use:

fPro->SetPoint(vtx);
fPro->PropagateToPCA(1,-1);
fPro->Propagate(fStart, fRes, PDGCode);


instead of:

fPro->SetPoint(vtx);
fPro->BackTrackToVirtualPlaneAtPCA(1);//1 means "closest approach to point"
fPro->Propagate(fStart, fRes, PDGCode); 


I am not sure the function BackTrackToVirtualPlaneAtPCA is the one you need, but I sould wrong.

What are you using as StartO, StartU, StartV?

Another comment:

PndMCTrack* myTrack = (PndMCTrack*)(fMCTracks->At(0));

//Get Start point and momentum from MC
PndSdsMCPoint* mcPoint = (PndSdsMCPoint*)(fMCHits->At(0));


I am not sure if this works. You should ask that mcPoint and mcTrack are the same particle: mcPoint->GetTrackID()==0. Without this check, you could also take some secondary and call them "antiprotons".


Re: back-propagation with GEANE [message #10710 is a reply to message #10709] Thu, 20 May 2010 10:43 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi!
Using PropagateToPCA(1,-1) instead of BackTrackToVirtualPlaneAtPCA(1) doesn't make any essential difference. The difference is that for PropagateToPCA you have to use FairTrackParH parametrization for track, but for BackTrackToVirtualPlaneAtPCA(1) you can use both FairTrackParH and FairTrackParP parametrization. But result from PropagateToPCA(1,-1) the same as from using BackTrackToVirtualPlaneAtPCA(1).

Thank you for comment about ask for mcPoint->GetTrackID()==0, I really forgot to check it. But fortunately all particles of my simulation were antiprotons, so adding of this check didn't change the result.

StartO, StartU, StartV are directing vectors of luminosity detector. I take them from GeoManager (PndGeoHandling) as
fGeoH->GetOUVId(mcPoint->GetDetName(), StartO, StartU, StartV);
Re: back-propagation with GEANE [message #10711 is a reply to message #10710] Thu, 20 May 2010 11:01 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *to.infn.it
Hi,
I am not so sure if the Sds planes can be used as StartO/V/Z, considering that you are taking momentum from MC and using an error matrix which is diagonal, and not along the strip sensor.. .but for this I would call for comments from the experts, at the moment I have no clue about.
Re: back-propagation with GEANE [message #10715 is a reply to message #10711] Thu, 20 May 2010 15:54 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,

your code seems correct.
Actually, as you were saying, there is no big difference between BackTrackToVirtualPlaneAtPCA(1) and PropagateToPCA(1, -1): with the first one you must use the FairTrackParP and with the second one the FairTrackParH.

They do the following:
1) BackTrackToVirtualPlaneAtPCA(1):
- finds the PCA to the point you chose
- builds a plane there
- backpropagates from the starting point to this plane
2) PropagateToPCA(1, -1):
- finds the PCA to the point you chose
- find the track length at that point
- backpropagates from the starting point to this track length
The only difference stands in the input/output type and in the fact that you have or not a plane defined.

Quote:

I set origin of coordinates in point (0,0,0) and used BackTrackToVirtualPlaneAtPCA(1) function for back-propagation. As a results I have point near origin of coordinates and momentum in this point.

The backtracked point should contain the true point within the GEANE error.

Quote:

I compared my results with true information from MC generator and I observed significant differences in momentum coordinates, which lead to differences between reconstructed and simulated angles of particles. I made such tests with dipole&solenoid&transition maps as well as without magnetic field. Without magnetic field differences between reconstructed and simulated angles aren't so significant, but they still exist.

Does the term "significant" mean that the differences are outside the GEANE errors? In your plots the differences seem small and compatible with roundoff error.
The problem we know is that in forward propagation the energy is taken at the beginning of the step, whereas in backward the energy is taken at the end of the (forward) step. This can be cured, but in principle the difference is not so big, if the stepping is appropriate.

Concerning the accuracy: GEANE propagates the mean values of the parameters, without taking into account the random processes (dE/dx fluctuations, multiple scattering...). If for example you start from the true value and track 1000 particles with geant3 on to a plane, they will be spread because of these random processes, but if you propagate them with geane you will get 1000 times exactly the same value, the mean value of the distribution.
In your case you start from the MCpoints, which are spread around the mean value, and go back to the true vertex.
The amount of the difference between the GEANE backpropagation and the corresponding MC value can be guessed looking at the error calculated by GEANE: this takes into account also the random processes and tells you how much you are wrong in taking the mean value, neglecting the random effects. It depends basically on the path the particle has to travel from start to end point and on the material amount it has to cross. Hence, the pull quantity (MC - GEANE)/error_GEANE should be a good gaussian. If it is so everything is OK.

There is however a strange thing in the plots: in the error plots there is always a big peak in 0: the error might be small, but it should not be exactly 0, even if you start from errors all equal to 0.
To answer to your question on errors, they are used only in the propagation of the covariance matrix, and not in the calculation of the mean values of the parameters. There is also an option in native fortran GEANE which allows the user to perform the propagation of the mean values without calculating the associated errors.

When you call Propagate it should return a Bool_t true if the propagation succeded and false if it failed.
Can you please try putting:

Bool_t isProp = fPro->Propagate(fStart, fRes, PDGCode);
if(isProp == kTRUE) new((*fTrackParFinal)[i]) FairTrackParP(*(fRes));


and save only the correctly propagated tracks?

Concerning the Sds planes as starting planes, if you use the PropagateToPlane(1, -1) you can build the FairTrackParH directly from the MARS variables and get rid of them. It is true that the errors you set are not the right ones, but as I was saying this should affect only the error calculations, and not the mean values.

Hope this helps,
Alberto and Lia.
Re: back-propagation with GEANE [message #10721 is a reply to message #10715] Fri, 21 May 2010 10:45 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Alberto and Lia,
Thank you for detailed explanation! I added requirement to save only the correctly propagated tracks, but it didn't change even number of events in my histograms.

About "significant":
First of all I'm interesting in knowledge of angle resolution,
so under "significant" I meant differences between simulated and reconstructed values of angles. I don't know how to correct compare them, but I see, that these differences much more bigger, then uncertainties, for example, due to multiple scattering in luminosity monitor. And also I can not explain shape of these differences (for example in angle phi).

In absence of magnetic field I expected differences between simulated and reconstructed values of angles equal to zero. Because I simulated tracks in vacuum inside beam pipe, so there is no any material and I expected obtain PCA equal to (0,0,0).

But you right if I compare differences between coordinates of PCA and momentum coordinates with GEANE errors for these variables it seems everything is fine (with the exception of case with zero errors). I would like to know what is the nature of this non-zero errors in absence of magnetic field? Is it only computing uncertainties?

I add plots for the same variables as in my first message in absence of magnetic field.
It's interesting that without magnetic field I don't have any peaks in zero for errors of momentum and PCA coordinates.

Anastasia.
Re: back-propagation with GEANE [message #10732 is a reply to message #10721] Mon, 24 May 2010 18:13 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
let me ask some questions: you are simulating antiprotons from the IP (0, 0, 0) which travel inside the beam pipe, where there is vacuum. Which is the starting momentum (also the direction)?
The luminosity monitor is positioned at some distance in z direction (how far?), downstream, around the beam pipe, but very close to it, right?

Quote:

About "significant":
First of all I'm interesting in knowledge of angle resolution,
so under "significant" I meant differences between simulated and reconstructed values of angles. I don't know how to correct compare them, but I see, that these differences much more bigger, then uncertainties, for example, due to multiple scattering in luminosity monitor. And also I can not explain shape of these differences (for example in angle phi).

In absence of magnetic field I expected differences between simulated and reconstructed values of angles equal to zero. Because I simulated tracks in vacuum inside beam pipe, so there is no any material and I expected obtain PCA equal to (0,0,0).

... actually we see very small differences in your plots Confused
For example: 0.05 x 10^-6 in phi and 10^-9 in theta... These are round off errors.
Are we misunderstanding something? You say the differences are bigger than what expected from multiple scattering in the luminosity monitor: what is the expected value?

Quote:

But you right if I compare differences between coordinates of PCA and momentum coordinates with GEANE errors for these variables it seems everything is fine (with the exception of case with zero errors). I would like to know what is the nature of this non-zero errors in absence of magnetic field? Is it only computing uncertainties?

To be detected, the antiprotons must exit the beam pipe and enter the luminosity monitor, so they undergo both multiple scattering and energy loss, even if they have travelled for a large part of their path in vacuum and even without magnetic field.

GEANE errors are calculated summing up three different contributions:
1) errors due to the initial error in direction (present even without magnetic field) propagated during tracking;
2) errors propagated by magnetic field during tracking;
3) random effects errors, added at each step.

In your case:
1) you don' t have magnetic field, so no type 2 errors.
2) If you put starting errors equal to 0, you will neither have errors of type 1. (Did you put again the starting error to 0 or did you put there some value?)
3) Concerning the random effects, (dedx and multiple scattering), they contribute to the error of type 3.

If we are saying something wrong, please correct us!
Cheers,
Lia and Alberto.


Re: back-propagation with GEANE [message #10737 is a reply to message #10732] Tue, 25 May 2010 14:57 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia and Alberto,
I'm simulating antiprotons from the IP (0, 0, 0) with beam momentum 8.9 GeV/c in angles range (2,9) mrad for theta and (0,2*Pi) for phi angle.
The luminosity monitor is placed at 11 m downstream in z direction and z axis of the luminosity monitor is rotated for 2.33 degrees at 4.76 m. So it should be placed close to beam pipe.
But in my simulation I switched off beam pipe and I don't have any material before first plane of the luminosity detector.
You are right, in absence of magnetic field differences in my plots are very small. But as I don't have any material I can explain these differences only in two ways:
a) It's accuracy of calculation methods used in GEANE.
b) I did something wrong.
Differences in absence of magnetic field are not important I've asked you just to be sure that I used GEANE correct Rolling Eyes

In magnetic field situation become worse: I have difference 2*10^-3 rad for phi angle an 7*10^-6 rad for theta angle. From multiple scattering I expect uncertainties about 6*10^-5 rad for this beam momentum and for phi angle I obtained much more difference. Also I worried about two spots in plot of momentum magnitude (Delta P(P_MC) in file uncer.eps from my first post). Here Delta P is a difference between true simulation value P_MC and magnitude of momentum obtained after back-propagation. Do you know any reason why I obtained two different value for momentum magnitude after back-propagation?

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10750 is a reply to message #10737] Thu, 27 May 2010 18:09 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
thank you for the info Smile
Quote:

You are right, in absence of magnetic field differences in my plots are very small. But as I don't have any material I can explain these differences only in two ways:
a) It's accuracy of calculation methods used in GEANE.
b) I did something wrong.
Differences in absence of magnetic field are not important I've asked you just to be sure that I used GEANE

I really believe that 10^-8/9 are rounding errors, so without magnetic field the deltas can be explained this way.

Quote:

In magnetic field situation become worse: I have difference 2*10^-3 rad for phi angle an 7*10^-6 rad for theta angle. From multiple scattering I expect uncertainties about 6*10^-5 rad for this beam momentum and for phi angle I obtained much more difference.

Any initial delta due to the spread (even little) of the momentum is worsened by the presence of the magnetic field, in particular in this case where your particles travel through the transient field, that is inhomogeneous (in GEANE part of the error matrix is dedicated to the calculation of the transportation of the initial error due to magnetic field).
So you have the geant3 particle that moves from the vertex, through the magnetic field and the layer of luminosity monitor, it spreads its momentum. Then you take this spread momentum as starting point, so you start from a wrong one, repropagate backward the mean value, which will arrive in the PCA to a value different from the MC one.
About the amount of this difference, I think it could be estimated by simulating several (enough to have a statistically valid sample) particles with fixed direction and distributing the momentum on the first luminosity monitor layer: it should be spread and the width of the distribution should tell you the amount of the difference you get later with GEANE. It should moreover be of the order of magnitude of the error calculated by GEANE itself.

Another test to see that everything works fine could be to switch off the multiple scattering during geant3 simulation, in this case the deltas should become smaller, since practically you would simulate with geant3 in the same way you track with GEANE.

Quote:

Also I worried about two spots in plot of momentum magnitude (Delta P(P_MC) in file uncer.eps from my first post). Here Delta P is a difference between true simulation value P_MC and magnitude of momentum obtained after back-propagation. Do you know any reason why I obtained two different value for momentum magnitude after back-propagation?

I' ve been thinking about this too... ok, they are two values really close (10^-6), but it is strange to have these two "spots". I don' t know exactly what to say here.
If I understood correctly from a picture of the luminosity monitor the first layer is made up by 4 sensors, is this correct? So I guess your StartPos could belong to any of the four sensors... Could it be that when you start from one sensor you get one of the two spots, and when you start from another you get the other one? ...but this is just a guess! Wink

Is the code available in the svn? It would be helpful if I could recreate your results, maybe I could make more checks and give you more precise answers...
Cheers,
Lia.
Re: back-propagation with GEANE [message #10759 is a reply to message #10750] Wed, 02 June 2010 13:47 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia!
I made tests for fixed direction that you suggested me Rolling Eyes

Quote:

About the amount of this difference, I think it could be estimated by simulating several (enough to have a statistically valid sample) particles with fixed direction and distributing the momentum on the first luminosity monitor layer: it should be spread and the width of the distribution should tell you the amount of the difference you get later with GEANE. It should moreover be of the order of magnitude of the error calculated by GEANE itself.


I found out that momentum on the first luminosity monitor layer is not spread at all, but momentum on the second luminosity monitor layer is spread and amount of this spread is the same order as errors of momentum coordinates after back-propagation with GEANE. Good news that difference between "reconstructed" with GEANE and true values smaller then spread of momentum coordinate on the second layer. But I used MC hit information from the first layer and as I understand it is a hit on the first surface of the first layer of luminosity monitor, before any multiple scattering. Maybe GEANE use this information inside out as a hit from the last surface of the first layer and this is the reason why errors after back-propagation with GEANE the same as spread after muliple scattering?
In file momentum_1stMChit.ps you can see plots for momentum coordinate of MC hits from the first (0) and the second(1) layres. In file momentum_rec.ps you can see momentum coordinate, errors and differences between "reconstructed" with GEANE and true values of momentum coordinates.

Quote:

Another test to see that everything works fine could be to switch off the multiple scattering during geant3 simulation, in this case the deltas should become smaller, since practically you would simulate with geant3 in the same way you track with GEANE.


Can you tell me how I can switch off the multiple scattering, please?

Quote:

If I understood correctly from a picture of the luminosity monitor the first layer is made up by 4 sensors, is this correct? So I guess your StartPos could belong to any of the four sensors... Could it be that when you start from one sensor you get one of the two spots, and when you start from another you get the other one? ...but this is just a guess! Wink


It's not true. The luminosity monitor consists only from 4 layers and each of them contain only one sensor plane. And I check that my first MC hit is indeed hit from first layer.

My code is not available in SVN now(
Because we use MVD classes and now we are waiting for new realise from MVD group to avoid any conflict between different version of code.

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10766 is a reply to message #10759] Thu, 03 June 2010 10:57 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,

Quote:

Maybe GEANE use this information inside out as a hit from the last surface of the first layer and this is the reason why errors after back-propagation with GEANE the same as spread after muliple scattering?

Actually this should not happen, since you set the starting position with StartPos, and this is on the entering surface of the luminosity monitor, so GEANE starts from there and moves in the vacuum back to (0, 0, 0). Could there be a mismatch between the StartPos and the starting plane? Are you sure that the starting plane contains the point (i.e. is the first surface)? Anyway, the important thing here is the orientation of the plane, since as starting point it takes StartPos.

I see in the plots with fixed momentum direction you don' t have the zero errors... How do the reconstructed momentum distributions look like if you separate the cases with and without 0 error in the test with random starting momentum and magnetic field on? Is there any difference between the two?

Quote:

Can you tell me how I can switch off the multiple scattering, please?

You should set to 0 the value in gconfig/SetCuts.C:
gMC->SetProcess("MULS",0); /**multiple scattering*/

Quote:

The luminosity monitor consists only from 4 layers and each of them contain only one sensor plane. And I check that my first MC hit is indeed hit from first layer.

Ok, then it does not depend on geometry.

Quote:

My code is not available in SVN now(Because we use MVD classes and now we are waiting for new realise from MVD group to avoid any conflict between different version of code.

Ok, I see. I will wait Smile

Cheers,
Lia.
Re: back-propagation with GEANE [message #10794 is a reply to message #10766] Fri, 11 June 2010 13:43 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia!

Quote:

Could there be a mismatch between the StartPos and the starting plane? Are you sure that the starting plane contains the point (i.e. is the first surface)? Anyway, the important thing here is the orientation of the plane, since as starting point it takes StartPos.

The main difficult here, that our planes rotated relative to the z-axis. So for hits with different (x,y) coordinates we have different z. Distribution for z-coordinate of the first MC coordinate seems to be reasonable. Also I saw several events with event display and MC hits always on the first surface of the plane.

Quote:


I see in the plots with fixed momentum direction you don' t have the zero errors... How do the reconstructed momentum distributions look like if you separate the cases with and without 0 error in the test with random starting momentum and magnetic field on? Is there any difference between the two?

There is only one difference between case with 0 errors and case non-zero errors. Do you remember two spots in plot of difference between simulated and "reconstructed" momentum magnitude? Spot around zero corresponds to 0 errors in momentum coordinates and spot around -2*10^-5 GeV/c corresponds to non-zero errors. But other distributions in both cases look the same.
Also I figured out that if I fix direction of particle momentum (angle phi and theta) I always have only one peak in errors distribution, but it can be as zero peak as well as non-zero peak. For example for (phi,theta)=(0, 0.45) I have non-zero peak, for (phi,theta)=(45, 0.45) also non-zero peak, but for (phi,theta)=(90, 0.45) I have zero peak. Maybe here magnetic field from solenoid & dipole play a main role, but how it can influence for calculation errors in GEANE?

Quote:

You should set to 0 the value in gconfig/SetCuts.C:
gMC->SetProcess("MULS",0); /**multiple scattering*/

I switched off multiple scattering, but nothing changed after it in my histogram. And it's confirm that MC hits which I used are always on the first surface of the plane and I don't have any sources of multiple scattering in my test.

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10798 is a reply to message #10794] Fri, 11 June 2010 17:09 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
Quote:

Spot around zero corresponds to 0 errors in momentum coordinates and spot around -2*10^-5 GeV/c corresponds to non-zero errors. But other distributions in both cases look the same.
Also I figured out that if I fix direction of particle momentum (angle phi and theta) I always have only one peak in errors distribution, but it can be as zero peak as well as non-zero peak.

These are good news! Then we have two group of tracks:
1) in one case the tracks behave as you expect: no energy loss, no multiple scattering, giving as results a difference between reco and MC equal to 0 and the corresponding error 0 as well;
2) the other case is the one we have to understand: something happens and creates the difference reco - MC and the corresponding error (which takes into account that the particle has undergone some process).

The fact that with fixed momentum and position you have either one case or the other could suggest (as you were saying) that the magnetic field could play a role in this behaviour. At least in the reco - MC different from 0. I still don' t get exactly the GEANE error different from zero, since the presence of the magnetic field should transport starting errors in a typical way, but should not add new errors if the starting value is 0. So the errors cannot be directly linked to the magnetic field.

You said that even switching off the multiple scattering the delta reco - MC is still there, then it is not multiple scattering.

If it is not multiple scattering then it has to be energy loss! Wink
Maybe some particles (depending on their initial pos and mom) in GEANE can make one (or more) step(s) inside the luminosity monitor before exiting it and here there is an energy loss with associated error. In fact the reco momentum is lower than the MC one...
What do you think?

Cheers,
Lia.

Re: back-propagation with GEANE [message #10799 is a reply to message #10798] Fri, 11 June 2010 18:35 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Quote:

Maybe some particles (depending on their initial pos and mom) in GEANE can make one (or more) step(s) inside the luminosity monitor before exiting it and here there is an energy loss with associated error. In fact the reco momentum is lower than the MC one...
What do you think?


If it's really happen, it can explain everything. Is it possible to print out information about particle propagation/back-propagation in GEANE (like position, material through which particle goes, energy loss, etc.) in each event?
Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10800 is a reply to message #10799] Mon, 14 June 2010 11:27 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
to print the information you can use the function Erxyzc() of TGeant3 (which corresponds to the fortran ERXYZC). If you look in TGeant3gu.cxx, in eustep(), it is already there for debugging:
if (geant3->Gcflag()->idebug * geant3->Gcflag()->iswit[2] != 0) geant3->Erxyzc();
you just have to enable it (outside the "if" statement) here in TGeant3gu.cxx, recompile geant3, run GEANE and it will print:

=====> starting GEANE tracking for MUON - NEPRED = 1 with options : LE
X Y Z R NAME NUMBER SLENG STEP DESTEP GEKIN MECHANISMS


so you can understand which particle is tracked, where (name is the name of the volume), the energy deposit and which is the process (DESTEP and MECHANISMS).

Cheers,
Lia.
Re: back-propagation with GEANE [message #10820 is a reply to message #10800] Wed, 23 June 2010 11:31 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia!
Finally I understood source of our problem! Smile
It's rounding accuracy!
For example without magnetic field I don't need to rotate the luminosity monitor and middle of the first plane always in 1100 cm. The thickness of plane 150 mkm, so position of first surface of first plane should be always in 1099.9925 cm. But we use TVector3 for store hit information (and I think it use double to store each coordinate), so z coordinate is not exactly 1099.9925 it is 1099.992554. Then GEANE takes this number and it's rounded to 1099.9926. And for GEANE it means that this point placed inside silicon plane (after 1 mkm of silicon), so GEANE calculate energy loss and so on. Without magnetic field z coordinate of first hit always the same (1099.992554) and I always have energy loss, because GEANE round it to 1099.9926. With magnetic field I have to rotate my planes, so z coordinate of hit on the first plane depends from x coordinate. For GEANE number 1099.99254 and 1099.99255 are not the same, because it is rounded in 1099.9925(outside Lumi) and 1099.9926(inside Lumi) respectively. What's why in half of events I have energy loss and in half of events I haven't. It doesn't depend from particle direction and other things it's only statistics.

This is log file:

StartPos:
TVector3 A 3D physics vector (x,y,z) = (3.455978,-5.988487,1099.992554)
StartMom:
TVector3 A 3D physics vector (x,y,z) =(0.027962,-0.048452,8.899824)
=====> starting GEANE tracking for ANTIPROTON NEPRED = 1 with options : BLE
X Y Z R NAME NUMBER SLENG STEP DESTEP GEKIN MECHANISMS
3.4560 -5.9885 1099.9926 6.9142 LumA 0 0.0000 0.0000 0.0 eV 8.011 GeV NULL
3.4560 -5.9885 1099.9871 6.9141 LumA 0 0.0056 0.0056 19.5 keV 8.011 GeV NEXT NEXT LOSS
3.4560 -5.9885 1099.9871 6.9141 cave 1 0.0056 0.0000 0.0 eV 8.011 GeV NULL
2.3716 -4.1094 754.8403 4.7447 cave 1 345.1591 345.1536 0.0 eV 8.011 GeV FIEL
1.2872 -2.2304 409.6935 2.5752 cave 1 690.3127 345.1536 0.0 eV 8.011 GeV FIEL
0.2028 -0.3514 64.5467 0.4057 cave 1 1035.4663 345.1536 0.0 eV 8.011 GeV FIEL
-0.8816 1.5276 -280.6001 1.7638 cave 1 1380.6199 345.1536 0.0 eV 8.011 GeV FIEL
-1.9660 3.4066 -625.7469 3.9332 cave 1 1725.7734 345.1536 0.0 eV 8.011 GeV FIEL
-3.0504 5.2857 -970.8937 6.1027 cave 1 2070.9270 345.1536 0.0 eV 8.011 GeV FIEL
-3.4560 5.9885-1099.9927 6.9142 cave 1 2200.0286 129.1016 0.0 eV 8.011 GeV FIEL PRED


Is it possible to improve accuracy of input for GEANE? (and using for instance 1099.992554 instead of 1099.9926)

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10825 is a reply to message #10820] Wed, 23 June 2010 18:30 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
nice to hear that the misterious behaviour has an explanation! Wink

Changing the precision of input variables of GEANE is not so straighforward, but you could try to register the MC point on the LUMI exactly on the surface by changing the value of EPSIL (i.e. boundary crossing precision) in the media file:
silicon            1  28.0855 14.0 2.33
                   1  1  20.  **.001**     
                   0

You can try running a simulation with a smaller value, e.g. 0.0001. It slows down the simulation but should find the surface more precisely and then GEANE should start from a more correct position.

Cheers,
Lia.
Re: back-propagation with GEANE [message #10830 is a reply to message #10825] Thu, 24 June 2010 15:19 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia!
I played with EPSIL parameter for silicon in the media file, but it doesn't change anything. Maybe precision on the MC point depends from other parameters? Because 1099.992554 is a number with an accuracy of six decimal places, but in the media file I used .001 and as far as I understand it's mean "with an accuracy of three decimal places".

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10837 is a reply to message #10830] Mon, 28 June 2010 12:35 Go to previous messageGo to next message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Hi Anastasia,
EPSIL is the boundary crossing precision in cm.
I simulated 100 events of 1 GeV/c muons at theta = [-10, 10] deg, phi random, with magnetic field in the usual cave (air) on a silicon plane orthogonal to the z axis, placed at 300 cm and 0.02 cm thick --> the surface should be at 300 - 0.02 = 299.98 cm.

In the plot I attach I draw the z coordinate registered on this plane in different cases:
1) with the epsil as it is on svn, 0.001 both for air and for silicon
2) with the epsil = 0.0001 for silicon and = 0.001 for air
3) with the epsil = 0.0001 both for air and for silicon

In the third case, where I ask for a precision of 1 mum, the registered z coordinate after simulation is closer to the real surface (by printing the values from root with the Scan function I get in the three cases: 1) 299.98025, 2) 299.98025, 3) 299.98004 cm).

Then the epsil value has an effect, but maybe it is not enough in your case, because we are in a very ideal case and we are talking of rounding errors that are below the limit set by epsil. Confused
Anyway it should happen that in real life the rounding errors are covered by physical effect errors and finite resolutions and you can neglect them, I hope...
Cheers,
Lia.
  • Attachment: epsil.ps
    (Size: 10.13KB, Downloaded 236 times)
Re: back-propagation with GEANE [message #10838 is a reply to message #10837] Mon, 28 June 2010 14:01 Go to previous messageGo to next message
Anastasia Karavdina is currently offline  Anastasia Karavdina
Messages: 76
Registered: May 2010
Location: Mainz, Germany
continuous participant

From: *kph.uni-mainz.de
Hi Lia,
I think you right and in real life the rounding errors will be covered by resolution. And the most important now that we resolved mysterious problem with two spots in plot of momentum difference Smile
Thank you very much for your help!

Cheers,
Anastasia.
Re: back-propagation with GEANE [message #10839 is a reply to message #10838] Mon, 28 June 2010 15:13 Go to previous message
Lia Lavezzi
Messages: 291
Registered: May 2007
Location: Torino
first-grade participant

From: *pv.infn.it
Thank you to you for your tests with GEANE!
The feedback from other people using it is very important and always very welcome! Smile
Cheers,
Lia.
Previous Topic: [FIXED]A crash in reco
Next Topic: [ERRATA] STT plots from last collaboration meeeting
Goto Forum:
  


Current Time: Sat Jun 15 06:35:54 CEST 2024

Total time taken to generate the page: 0.01166 seconds