diff --git a/Utilities/KalTest/src/kaltracklib/TKalDetCradle.cxx b/Utilities/KalTest/src/kaltracklib/TKalDetCradle.cxx index 0ff61c7073b50eea9ce7f33d1397f0b21b7bcaae..010face67afbfa9d24e1a533f3c9d906886ca9a1 100644 --- a/Utilities/KalTest/src/kaltracklib/TKalDetCradle.cxx +++ b/Utilities/KalTest/src/kaltracklib/TKalDetCradle.cxx @@ -100,8 +100,11 @@ void TKalDetCradle::Transport(const TKalTrackSite &from, // site from const TVMeasLayer& ml_to = to.GetHit().GetMeasLayer() ; TVector3 x0; this->Transport(from, ml_to, x0, sv, F, Q ) ; - - THelicalTrack hel(sv, x0, to.GetHit().GetBfield()) ; + + double bfield = to.GetHit().GetBfield(); + TVTrack* trk = 0; + if (bfield==0) trk = new TStraightTrack(sv, x0); + else trk = new THelicalTrack(sv, x0, bfield); // --------------------------------------------------------------------- // Move pivot from last expected hit to actural hit at site to @@ -113,14 +116,14 @@ void TKalDetCradle::Transport(const TKalTrackSite &from, // site from Int_t sdim = sv.GetNrows(); // number of track parameters TKalMatrix DF(sdim, sdim); // propagator matrix segment - hel.MoveTo(to.GetPivot(), fid, &DF); // move pivot to actual hit (to) + trk->MoveTo(to.GetPivot(), fid, &DF); // move pivot to actual hit (to) F = DF * F; // update F accordingly - hel.PutInto(sv); // save updated hel to sv + trk->PutInto(sv); // save updated hel to sv } else { to.SetPivot(x0); // if it is a 1-dim hit } - + delete trk; } //