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

Diff of /PamCut/TrkCuts/TrkChi2DeflTimeCut/TrkChi2DeflTimeCut.h

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

revision 1.3 by pam-fi, Fri Feb 19 15:14:37 2010 UTC revision 1.4 by pam-fi, Fri May 27 14:01:39 2011 UTC
# Line 18  Line 18 
18  /*! @brief The tracker chi2 vs |deflection| cut.  /*! @brief The tracker chi2 vs |deflection| cut.
19   *   *
20   * Events whose track has been fitted with a chi2 greater than Chi2(|eta|) are discarded.   * Events whose track has been fitted with a chi2 greater than Chi2(|eta|) are discarded.
21   * Chi2(eta) is a function which gives the maximum value of chi2 associated to a certain   * Chi2(|eta|) is a function which gives the value of chi2 distribution, corresponding to a given quantile (depending on the calibration text file), as a function of |deflection| (|eta|); in current implementation it is parameterized as:
22   * |deflection| (|eta|); in current implementation it is parameterized as:   *
23     *   4 parameters p0...p3:
24   *   *
25   *   Chi2(|eta|) = p0 + ( p1 * |eta|^p2 * (1 + (p3 * |eta|)^2) )   *   Chi2(|eta|) = p0 + ( p1 * |eta|^p2 * (1 + (p3 * |eta|)^2) )
26   *   with eta expressed in GV^-1   *   with eta expressed in GV^-1
27   *   *
28   * where p0, p1 and p2 are parameters. These are read from a calibration text file, whose format must be:   *   5 parameters p0..p4
29     *
30     *   Chi2(|eta|) = p0 + ( p1 * |eta|^p2 * (1 + (p3 * |eta|)^p4) )
31     *   with eta expressed in GV^-1
32     *
33     * The parameters are read from a calibration text file (prepared for a given quantile, e.g. 95%), whose format must be:
34   * ...   * ...
35   * first_day    last_day        p0      p1      p2      p3   * first_day    last_day        p0      p1      p2      ...
36   * with first_day and last_day expressed in the format YYMMDD   * with first_day and last_day expressed in the format YYMMDD
37   * ...   * ...
38   * where each row corresponds to a given time interval (first_day,last_day)   * where each row corresponds to a given time interval (first_day,last_day)
# Line 43  public: Line 49  public:
49     *     *
50     * @param cutName The cut's name.     * @param cutName The cut's name.
51     * @param calibFile Path for the calibration text file.     * @param calibFile Path for the calibration text file.
52       * @param nPar Number of parameters used for the Chi2 function. Maximum allowed: 5. Default: 4.
53     */     */
54    TrkChi2DeflTimeCut(const char *cutName, const char *calibFile) :    TrkChi2DeflTimeCut(const char *cutName, const char *calibFile, int nPar=4) :
55      PamCut(cutName), _calibFile(calibFile) {      PamCut(cutName), _calibFile(calibFile), _nPar(nPar) {
56    
57      _chi2CutTable.open(_calibFile);      _chi2CutTable.open(_calibFile);
58      while (! _chi2CutTable.eof()) {      while (! _chi2CutTable.eof()) {
# Line 56  public: Line 63  public:
63        _chi2CutTable >> _tstringtemp;        _chi2CutTable >> _tstringtemp;
64        _iDayLast.push_back(_tstringtemp.Atoi());        _iDayLast.push_back(_tstringtemp.Atoi());
65                
66        _chi2CutTable >> _tstringtemp;        if (_nPar>=0 && _nPar<=5) {
67        _p0.push_back(_tstringtemp.Atof());          for (int iPar=0; iPar<_nPar; iPar++) {
         
       _chi2CutTable >> _tstringtemp;  
       _p1.push_back(_tstringtemp.Atof());  
   
       _chi2CutTable >> _tstringtemp;  
       _p2.push_back(_tstringtemp.Atof());        
   
       _chi2CutTable >> _tstringtemp;  
       _p3.push_back(_tstringtemp.Atof());        
68                
69              _chi2CutTable >> _tstringtemp;
70              _p[iPar].push_back(_tstringtemp.Atof());
71            
72            }
73          }
74                
75      }      }
76      _chi2CutTable.close();      _chi2CutTable.close();
77    
# Line 92  private: Line 96  private:
96      virtual double _GetChi2(PamLevel2 *event);      virtual double _GetChi2(PamLevel2 *event);
97    
98      const char* _calibFile;      const char* _calibFile;
99        int _nPar;
100    
101      TString _tstringtemp;      TString _tstringtemp;
102            
103      std::vector<Int_t> _iDayFirst;      std::vector<Int_t> _iDayFirst;
104      std::vector<Int_t> _iDayLast;      std::vector<Int_t> _iDayLast;
105      std::vector<Double_t> _p0;      std::vector<Double_t> _p[5];
     std::vector<Double_t> _p1;  
     std::vector<Double_t> _p2;  
     std::vector<Double_t> _p3;  
106    
107      ifstream _chi2CutTable;      ifstream _chi2CutTable;
108            
109      Double_t _p0sel, _p1sel, _p2sel, _p3sel;      Double_t _pSel[5];
110            
111      TTimeStamp _time;      TTimeStamp _time;
112    

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

  ViewVC Help
Powered by ViewVC 1.1.23