--- PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp 2010/06/07 13:33:15 1.1.2.4 +++ PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp 2010/06/24 17:22:10 1.1.2.7 @@ -20,7 +20,7 @@ if (event->GetTrkLevel2()->GetNTracks() == 0) return; - // Reload the TRK parameters only if they have been changed (ie., if another instance of + // Reload the TRK alignment parameters only if they have been changed (ie., if another instance of // this class used a different set of parameters). if (_trkParamsFile != _currTrkParamsFile) { TrkParams::Set(_trkParamsFile, 5); @@ -33,6 +33,14 @@ if (!trkTrack) return; + // Check if good clusters have meaningful energy releases + for (UInt_t ip = 0; ip < 6; ip++) { + if (trkTrack->XGood(ip) == 1 && trkTrack->GetDEDX(ip, 0) <= 0.) + trkTrack->xgood[ip] = 0; // Set it to bad + if (trkTrack->YGood(ip) == 1 && trkTrack->GetDEDX(ip, 1) <= 0.) + trkTrack->ygood[ip] = 0; // Set it to bad + } + if (_currEvent != event->GetReadEntry()) { // Saves the original track data if the current event (recorded in the static member _currEvent) is // different from the actually processed event. This way, multiple instances of the class @@ -60,14 +68,12 @@ // Apply the gaussian spread - cout << GetName() << " " << trkTrack->xm[0]; - cout.flush(); 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); } - cout << GetName() << " " << trkTrack->xm[0] << endl; + // Mask the layers if (_maskedViews) { if ((_maskedViews & T1X) == T1X)