/[PAMELA software]/PamCut/TrkCuts/TrkChi2DeflTimeCut/TrkChi2DeflTimeCut.cpp
ViewVC logotype

Diff of /PamCut/TrkCuts/TrkChi2DeflTimeCut/TrkChi2DeflTimeCut.cpp

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

revision 1.1 by pam-fi, Fri Oct 23 15:34:31 2009 UTC revision 1.4 by pam-fi, Sat Feb 20 12:56:45 2010 UTC
# Line 7  Line 7 
7    
8  #include "TrkChi2DeflTimeCut.h"  #include "TrkChi2DeflTimeCut.h"
9    
10    double TrkChi2DeflTimeCut::_GetChi2(PamLevel2 *event) {
11      return event->GetTrack(0)->GetTrkTrack()->chi2;
12    }
13    
14  int TrkChi2DeflTimeCut::Check(PamLevel2 *event) {  int TrkChi2DeflTimeCut::Check(PamLevel2 *event) {
15    
16    Double_t chi2 = event->GetTrack(0)->GetTrkTrack()->chi2;    double chi2 = _GetChi2(event);
17    if (chi2 < 0.)    if (chi2 < 0.)
18      return 0;      return 0;
19    Double_t eta2 = event->GetTrack(0)->GetTrkTrack()->GetDeflection(); //Sign doesn't matter    Double_t etaMod = fabs(event->GetTrack(0)->GetTrkTrack()->GetDeflection());
   eta2 *= eta2;  // Now eta2 is deflection^2  
   
 #ifdef DEBUGPAMCUT  
   
   h_trk_chi2_defl[0]->Fill(event->GetTrack(0)->GetTrkTrack()->GetDeflection(), pow(chi2,0.25));  
   
 #endif  
20    
21    _time.Set(event->GetOrbitalInfo()->absTime, kFALSE, 0, kFALSE);    _time.Set(event->GetOrbitalInfo()->absTime, kFALSE, 0, kFALSE);
22    // TTimestamp::GetDate() returns date in format YYYYMMDD so to compare it    // TTimestamp::GetDate() returns date in format YYYYMMDD so to compare it
23    // with 4-digits dates (YYMM) we must subtract 20000000 and then divide by 100 (divide by integer)    // with 6-digits dates (YYMMDD) we must subtract 20000000
24    
25      Int_t iDaySel = (_time.GetDate(kFALSE) - 20000000); // note: GetDate returns an unsigned integer
26    
27    Int_t iMonthSel = (_time.GetDate(kFALSE) - 20000000)/100; // note: GetDate returns an unsigned integer    bool found = false;
28          for (UInt_t i = 0; i < _iDayFirst.size(); i++) {
29    for (UInt_t i=0; i<_iMonth.size(); i++) {      if (_iDayFirst[i] <= iDaySel && iDaySel <= _iDayLast[i]) {
30      if (_iMonth[i]==iMonthSel) {        _p0sel = _p0[i];
31        _p0sel=_p0[i];        _p1sel = _p1[i];
32        _p1sel=_p1[i];        _p2sel = _p2[i];
33        _p2sel=_p2[i];        _p3sel = _p3[i];
34  //      cout << "FOUND: month " << iMonthSel << endl;        //      cout << "FOUND: day " << iDaySel << endl;
35  //      cout << _p0sel << " " << _p1sel << " " << _p2sel << endl;        //      cout << _iDayFirst[i] << " " << _iDayLast[i] << endl;
36          //      cout << _p0sel << " " << _p1sel << " " << _p2sel << " " << _p3sel << endl;
37          found = true;
38        break;        break;
39      }      }
40    }    }
     
   if (chi2 > _p0sel + _p1sel * eta2 + _p2sel * eta2 * eta2) {  
     return 0;  
   }  
   
 #ifdef DEBUGPAMCUT  
41    
42    h_trk_chi2_defl[1]->Fill(event->GetTrack(0)->GetTrkTrack()->GetDeflection(), pow(chi2,0.25));    if (!found)
43        return 0;
44    
45  #endif    if (chi2 > _p0sel + _p1sel * pow(etaMod, _p2sel) * (1. + pow(_p3sel * etaMod, 2))) {
46        return 0;
47      }
48    
49    return CUTOK;    return CUTOK;
50    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.23