--- PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp 2010/06/24 17:22:10 1.1.2.7 +++ PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp 2011/11/30 16:59:03 1.1.2.8 @@ -48,8 +48,8 @@ _currEvent = event->GetReadEntry(); // Save the original cluster status and measured positions for (int i = 0; i < 6; i++) { - _layerXBackup[i] = trkTrack->xgood[0]; - _layerYBackup[i] = trkTrack->ygood[0]; + _layerXBackup[i] = trkTrack->xgood[i]; + _layerYBackup[i] = trkTrack->ygood[i]; _xmBackup[i] = trkTrack->xm[i]; _ymBackup[i] = trkTrack->ym[i]; } @@ -60,18 +60,24 @@ for (int i = 0; i < 6; i++) { trkTrack->xm[i] = _xmBackup[i]; trkTrack->ym[i] = _ymBackup[i]; - _layerXBackup[i] = trkTrack->xgood[0]; - _layerYBackup[i] = trkTrack->ygood[0]; + trkTrack->xgood[i] = _layerXBackup[i]; + trkTrack->ygood[i] = _layerYBackup[i]; } } // Apply the gaussian spread - for (Int_t ip = 0; ip < 6; ip++) { - // gaussian distributed random number Gauss(mean,sigma) (in cm) - trkTrack->xm[ip] += _r3->Gaus(0., _spreadX); - trkTrack->ym[ip] += _r3->Gaus(0., _spreadY); + if (_spreadX != 0.) { + for (Int_t ip = 0; ip < 6; ip++) { + // gaussian distributed random number Gauss(mean,sigma) (in cm) + trkTrack->xm[ip] += _r3->Gaus(0., _spreadX); + } + } + if (_spreadY != 0.) { + for (Int_t ip = 0; ip < 6; ip++) { + trkTrack->ym[ip] += _r3->Gaus(0., _spreadY); + } } // Mask the layers