/[PAMELA software]/PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp
ViewVC logotype

Diff of /PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.2.2 by pam-fi, Tue May 11 15:32:09 2010 UTC revision 1.1.2.5 by pam-fi, Mon Jun 7 13:49:04 2010 UTC
# Line 11  TRandom3* RefitTrackAction::_r3 = new TR Line 11  TRandom3* RefitTrackAction::_r3 = new TR
11  long int RefitTrackAction::_currEvent = -1;  long int RefitTrackAction::_currEvent = -1;
12  TString RefitTrackAction::_currTrkParamsFile = "";  TString RefitTrackAction::_currTrkParamsFile = "";
13    
14    float RefitTrackAction::_xmBackup[6], RefitTrackAction::_ymBackup[6];
15    int RefitTrackAction::_layerXBackup[6], RefitTrackAction::_layerYBackup[6];
16    
17  void RefitTrackAction::OnGood(PamLevel2 *event) {  void RefitTrackAction::OnGood(PamLevel2 *event) {
18    
19      // Do something only if at least one track exists
20      if (event->GetTrkLevel2()->GetNTracks() == 0)
21        return;
22    
23    // Reload the TRK parameters only if they have been changed (ie., if another instance of    // Reload the TRK parameters only if they have been changed (ie., if another instance of
24    // this class used a different set of parameters.    // this class used a different set of parameters).
25    if (_trkParamsFile != _currTrkParamsFile) {    if (_trkParamsFile != _currTrkParamsFile) {
26      TrkParams::Set(_trkParamsFile, 5);      TrkParams::Set(_trkParamsFile, 5);
27      _currTrkParamsFile = _trkParamsFile;      _currTrkParamsFile = _trkParamsFile;
28    }    }
29    
30      if (_sortingMethod)
31        event->SetSortingMethod(_sortingMethod);
32    TrkTrack *trkTrack = event->GetTrack(0)->GetTrkTrack();    TrkTrack *trkTrack = event->GetTrack(0)->GetTrkTrack();
33    if (!trkTrack)    if (!trkTrack)
34      return;      return;
# Line 50  void RefitTrackAction::OnGood(PamLevel2 Line 59  void RefitTrackAction::OnGood(PamLevel2
59    }    }
60    
61    // Apply the gaussian spread    // Apply the gaussian spread
62    
63    for (Int_t ip = 0; ip < 6; ip++) {    for (Int_t ip = 0; ip < 6; ip++) {
64      // gaussian distributed random number Gauss(mean,sigma) (in cm)      // gaussian distributed random number Gauss(mean,sigma) (in cm)
65      trkTrack->xm[ip] += _r3->Gaus(0., _spreadX);      trkTrack->xm[ip] += _r3->Gaus(0., _spreadX);
# Line 88  void RefitTrackAction::OnGood(PamLevel2 Line 98  void RefitTrackAction::OnGood(PamLevel2
98    trkTrack->FitReset();    trkTrack->FitReset();
99    int fail = 0;    int fail = 0;
100    trkTrack->Fit(0, fail, 0);    trkTrack->Fit(0, fail, 0);
101    
102      if (fail) {
103        // Set a flag for the badly-refitted tracks: chi2 < 0
104        if (trkTrack->chi2 >= 0.)
105          trkTrack->chi2 = -1.;
106      }
107  }  }

Legend:
Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.5

  ViewVC Help
Powered by ViewVC 1.1.23