GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Tracking » Conversion of track parameters
Conversion of track parameters Mon, 13 July 2009 11:54
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
Hello,
let's assume that I have one track represented by a parabula (FairTrackParP), and I want to convert it into a helix (FairTrackParH). What should I do exactly?

I have seen there is a class FairGeaneUtil doing conversions, but it is not using FairTrackPar objects, and for me SC SD Pt MARS are just ununderstandable acronyms.

Is there some function doing the covnersion in a simple way?
Re: Conversion of track parameters [message #8971 is a reply to message #8970] Mon, 13 July 2009 12:20
 Anonymous Poster From: *pool.einsundeins.de
Hi,

dont know if it will help a lot, but it's a start:

SC = FairTrackParH
SD = FairTrackParP
MARS = master reference system \vec{x} & \vec{p}

The names parabola and helix are questionable and you can ignore them for any practical purposes. What the real difference between SD and SC is, that SD cones from a fixed geometrical plane (the D stands for detector), whereas SC is defined in a plane perpendicular to the track.

Cheers, Christian
Re: Conversion of track parameters [message #8973 is a reply to message #8971] Mon, 13 July 2009 13:33
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
Thanks,
even if those functions do not solve my problem.
I have decided to use the following constructor, which should do the job:

FairTrackParP *parabula....
FairTrackParH *helix = new FairTrackParH(TVector3(parabula->GetX(), parabula->GetY(), parabula->GetZ()),
TVector3(parabula->GetPx(), parabula->GetPy(), parabula->GetPz()),
TVector3(parabula->GetDX(), parabula->GetDY(), parabula->GetDZ()),
TVector3(parabula->GetDPx(), parabula->GetDPy(), parabula->GetDPz()),
parabula->GetQ());

which is not so... stylish, bit it should work. Maybe one should implement a constructor from a generic FairTrackPar, such as:

FairTrackParP::FairTrackParP(const FairTrackPar* xxx);
FairTrackParH::FairTrackParH(const FairTrackPar* xxx);

to have something easier to write.

[Updated on: Mon, 13 July 2009 13:34]

Report message to a moderator

Re: Conversion of track parameters [message #8974 is a reply to message #8973] Mon, 13 July 2009 14:06
 Anonymous Poster From: *e18.physik.tu-muenchen.de
Hi,

well you lose all correlations that way... So it is not just an elegance issue...

Christian

Re: Conversion of track parameters [message #8975 is a reply to message #8974] Mon, 13 July 2009 14:33
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
Ok,
I lose error correlation, but for me the function:

FairGeaneutile::FromSCToSD(Double_t PC[3], Double_t RC[15], Double_t H[3], Double_t CH,
Double_t DJ[3], Double_t DK[3],
Int_t &IERR, Double_t &SPU,
Double_t* PD, Double_t* RD);

is almost impossible to understand and to use.
We need a function which moves easily from FairTrackParP to FairtrackParH and vice versa. I supposed it was already imp,emented, but it seems not yet.

Could this kind of function be implemented? I think it should be not so difficult, at least for somebody who knows what those variables mean and how to use them.

Re: Conversion of track parameters [message #8976 is a reply to message #8975] Mon, 13 July 2009 16:01
 Alberto Rotondi Messages: 9Registered: June 2007 occasional visitor From: *pv.infn.it
Dear Stefano,

I wrote the routines that change references. The systems are defined in:
http://www.pv.infn.it/~rotondi/tracking.pdf
and explained in the routine comments.

If you want to avoid the direct use of these, I will think
about with Lia and we will try to solve.

As a last remarks, remember that the helix and parabola labels are
meaningless: the tracking is always made by using helix pieces!
The SC system is the transverse system, with momentum perp to
the reference plane (is called helix); the SD system has the reference plane coincident with that of the detector (it is called
for misterious reasons parabola)

best regards
Alberto
Re: Conversion of track parameters [message #8977 is a reply to message #8976] Tue, 14 July 2009 09:55
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
Thanks,
the mathematics is clear, but I think a direct implementation inside the classes could avoid the developer doing wrong assignments (such as, in the previous case, diagonalize the covariance matrix).

About the labels, I am just trying to do track extrapolation based on helix assumption, without geane (faster). Therefore I need the helix parameters, such as lambda, phi, etc etc. The track parameters are stored inside the PndTrack as FairTrackParP, and the conversion between these two parametrizations is missing.

regards
Re: Conversion of track parameters [message #8978 is a reply to message #8977] Tue, 14 July 2009 10:57
 Anonymous Poster From: *e18.physik.tu-muenchen.de
Hi,

so, I guess the real question here is: Who can provide a proper set of constructors for the FairTrackParams? I cant do it. Who can?

Cheers, Christian
Re: Conversion of track parameters [message #8980 is a reply to message #8978] Tue, 14 July 2009 14:03
 Lia Lavezzi Messages: 291Registered: May 2007 Location: Torino first-grade participant From: *47-151.net24.it
Hi all,
I can create two new constructors to make the conversion from parabola to helix (and reverse), i.e.:
FairTrackParP(FairTrackParH *helix)
and
FairTrackParH(FairTrackParP *parab)

If it is ok, I can do it!
Ciao,
Lia.
Re: Conversion of track parameters [message #8983 is a reply to message #8980] Tue, 14 July 2009 14:23
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
That would be nice!
Re: Conversion of track parameters [message #8984 is a reply to message #8983] Tue, 14 July 2009 15:10
 StefanoSpataro Messages: 2736Registered: June 2005 Location: Torino first-grade participant From: *to.infn.it
By the way,
the conversion is very important, even because inside PndTrack the track parametrization is using FairTrackParP, while in Fairgeanepro the propagation to volume is not implemented using FairTrackParP but only with FairTrackParH.

This means that in order to propagate one track to volume one has to convert the param from P to H and I think this is not so nice.
Re: Conversion of track parameters [message #8987 is a reply to message #8984] Wed, 15 July 2009 16:42
 Lia Lavezzi Messages: 291Registered: May 2007 Location: Torino first-grade participant From: *47-151.net24.it
Hi,
after testing the changes I uploaded to svn the new versions of the FairTrackPar* classes.

1) In FairTrackParP/H, there are two new constructors:
FairTrackParP(FairTrackParH *helix, TVector3 dj, TVector3 dk, Int_t &ierr)
and
FairTrackParH(FairTrackParP *parab, Int_t &ierr)
which allow the user to create a parabola from an helix, by setting also the unit vector which span the plane, (and an helix from a parabola) without directly calling FairGeaneUtil functions. The transformation is not always possible, the problematic cases are flagged in FairGeaneUtil by the IERR flag, so I kept it also here and I printed an error message.

2) In FairTrackPar, Stefano, I added your two functions to easily get momentum and position in MARS (master reference system) as a 3-vector.

Obviously if you find that something does not work as it should, please tell me!
Ciao,
Lia.
 Previous Topic: new features in GENFIT Next Topic: Event Display and PndTrack
Goto Forum:

Current Time: Tue May 28 04:12:56 CEST 2024

Total time taken to generate the page: 0.01093 seconds