Home » Analysis and Reconstruction » Tracking & Vertexing » Questions about fitting in MarlinTPC
Questions about fitting in MarlinTPC [message #1975] 
Fri, 07 May 2010 01:28 
killenberg Messages: 125 Registered: July 2005 Location: CERN 



Hello,
Christoph had a few questions about the track fitting in MarlinTPC and we both
think they are of general interest. So I answer them here.
Quote:  1.) Is there a "simple" chi^2 fit processor for straight lines?

You can use the TrackFitterSimpleChiSquareProcessor and fix the curvature to 0. Use the parameters OmegaStart=0 and FixOmega=true.
An other alternative is the LinearRegressionProcessor. The linear regression is equivalent to a chi^2 minimisation with all errors being 1.
Quote:  2.) A chi^2 helix fitter seems to be implemented in TrackFitterSimpleChiSquareProcessor. Why are defocussing and diffusion parameters of the fit? To fit a function one only needs the functions, its parameters and errors. Why are there other parameters, which are not part of the fit?

The SimpleChiSquare fitter does not use the errors of the hits (for instance to be able to run with the current hit finders which do not set the errors. At least the TopoFinder does not).
In a first version all errors were set to 1, but it turned out that the errors in xy and z can be very different, and they both depend on z.
The SimpleChiSquare fitter estimates the errors as
sigma_xy = sqrt( TransDefocussing^2 + TransDiffusionCoef^2 * z )
sigma_z = sqrt( LongDefocussing^2 + LongDiffusionCoef^2 * z )
where z is the drift distance. The names are missleading. Originally the idea was to use defocussing and diffusion coefficients from the conditions data. But it turned out that calculating the required values from them is not straight forward.
So "Defocussing" is the intrinsic detector resoution at zero drift, and "Diffusion" is the drift distance (diffusion) dependent part of the resolution.
The documentation is definitely wrong, and we probably should also change the names to be clear.
Quote: 
3.) Is it corrent that neither dEdx (and its error) nor the covariance matrix are stored, or not even calculated?

Unfortunately yes. dEdx is not calculated at all. The covariance matrix is available in the Minuit fit, but it is not stored. The fitter is still alpha and got stuck in the phase when I was struggling that the fit converged at all. In the end it turned out that there was a problem with the start parameters and the pattern recognition (track finding). So the fit should converge, but I did not have the time to finish it yet.
Quote: 
4.) The base class / base fitter is TrackFitterSimpleChiSquare. Is it correct that some things are not cleanly implemented, i. e. hardcoded?

The actual base class is TrackFitterBase. This imlements a generic version of calculateResiduals() (residual = distance perpendicular to the helix).
TrackFitterSimpleChiSquare inherits from this and implements the fitting function.
TrackFitterSimpleChiSquarePads inherits the fitter function from TrackFitterSimpleChiSquare, but reimplements calculateResiduals() to return the residuals along the pad row.
Minuit needs limits for the track parameters to converge reliably. These are currently hardcoded:
 omega=[1 .. 1] (only tracks with radius larger 1 mm)
 D0=[100 .. 100] (impact parameter + 100 mm)
 phi=[2 pi .. 2 pi] (two full circles, no real limit)
 tanLambda=[100 .. 100] (only tracks with less than 100 cm z variation on 1
cm on the xy projection)
 D0=[1000 .. 1000] (only tracks with Z0 + 1 m)
The only problematic value is D0, since this is a sort of "vertex constraint". In prototype geometry D0 can be large, depending on the orientation of the readout module in global coordinates.
+ 1 m in z is fine for the LP, but still hard coded is not good.
How about using + 100 mm around the start value from the seed track, for both D0 and Z0?
The other values should be no real limitation, although it should be in the documentation in case someone has problems in exotic cases.
Cheers
Martin
Martin Killenberg
CERN
martin.killenberg@cern.ch



Goto Forum:
Current Time: Sat Jun 23 22:05:54 Pacific Daylight Time 2018
