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

Annotation of /PamCut/TrkCuts/TrkChi2DeflTimeCut/TrkChi2DeflTimeCut.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Fri May 27 14:01:39 2011 UTC (13 years, 6 months ago) by pam-fi
Branch: MAIN
Changes since 1.3: +24 -22 lines
File MIME type: text/plain
New function with 5 parameters added.

1 pam-fi 1.1 /*
2     * TrkChi2DeflTimeCut.h
3     *
4     * Created on: 6-oct-2009
5     * Author: S. Ricciarini
6     */
7    
8     /*! @file TrkChi2DeflTimeCut.h The TrkChi2DeflTimeCut class definition file */
9    
10     #ifndef TRKCHI2DEFLTIMECUT_H_
11     #define TRKCHI2DEFLTIMECUT_H_
12    
13     #include "../../PamCutBase/PamCutBase.h"
14    
15     #include <TH2F.h>
16     #include <TTimeStamp.h>
17    
18 pam-fi 1.3 /*! @brief The tracker chi2 vs |deflection| cut.
19 pam-fi 1.1 *
20 pam-fi 1.3 * Events whose track has been fitted with a chi2 greater than Chi2(|eta|) are discarded.
21 pam-fi 1.4 * 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     *
23     * 4 parameters p0...p3:
24 pam-fi 1.1 *
25 pam-fi 1.3 * Chi2(|eta|) = p0 + ( p1 * |eta|^p2 * (1 + (p3 * |eta|)^2) )
26     * with eta expressed in GV^-1
27 pam-fi 1.1 *
28 pam-fi 1.4 * 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 pam-fi 1.3 * ...
35 pam-fi 1.4 * first_day last_day p0 p1 p2 ...
36 pam-fi 1.3 * 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)
39     *
40     * For a given event the associated day is determined; the FIRST (starting from first row) time interval of the calibration file, which contains the event day, gives the parameters to be inserted in the Chi2(|eta|) for the given event.
41     * If the event day does not fall in any of the intervals of the calibration file, then the event is discarded.
42 pam-fi 1.1 *
43     */
44    
45     class TrkChi2DeflTimeCut: public PamCut {
46    
47     public:
48     /*! @brief Constructor.
49     *
50     * @param cutName The cut's name.
51 pam-fi 1.3 * @param calibFile Path for the calibration text file.
52 pam-fi 1.4 * @param nPar Number of parameters used for the Chi2 function. Maximum allowed: 5. Default: 4.
53 pam-fi 1.1 */
54 pam-fi 1.4 TrkChi2DeflTimeCut(const char *cutName, const char *calibFile, int nPar=4) :
55     PamCut(cutName), _calibFile(calibFile), _nPar(nPar) {
56 pam-fi 1.1
57     _chi2CutTable.open(_calibFile);
58     while (! _chi2CutTable.eof()) {
59    
60     _chi2CutTable >> _tstringtemp;
61 pam-fi 1.3 _iDayFirst.push_back(_tstringtemp.Atoi());
62    
63 pam-fi 1.1 _chi2CutTable >> _tstringtemp;
64 pam-fi 1.3 _iDayLast.push_back(_tstringtemp.Atoi());
65 pam-fi 1.1
66 pam-fi 1.4 if (_nPar>=0 && _nPar<=5) {
67     for (int iPar=0; iPar<_nPar; iPar++) {
68 pam-fi 1.1
69 pam-fi 1.4 _chi2CutTable >> _tstringtemp;
70     _p[iPar].push_back(_tstringtemp.Atof());
71    
72     }
73     }
74    
75 pam-fi 1.1 }
76     _chi2CutTable.close();
77    
78     }
79    
80     /*! @brief Destructor. */
81     ~TrkChi2DeflTimeCut() {
82    
83     }
84    
85 pam-fi 1.3 /*! @brief The tracker chi2 vs |deflection| check.
86 pam-fi 1.1 *
87     *
88     * @param event The event to analyze.
89 pam-fi 1.3 * @return #CUTOK if chi2 < Chi2(|eta|).
90 pam-fi 1.1 * @return 0 if not
91     */
92     int Check(PamLevel2 *event);
93    
94     private:
95    
96 pam-fi 1.2 virtual double _GetChi2(PamLevel2 *event);
97    
98 pam-fi 1.1 const char* _calibFile;
99 pam-fi 1.4 int _nPar;
100 pam-fi 1.1
101     TString _tstringtemp;
102    
103 pam-fi 1.3 std::vector<Int_t> _iDayFirst;
104     std::vector<Int_t> _iDayLast;
105 pam-fi 1.4 std::vector<Double_t> _p[5];
106 pam-fi 1.1
107     ifstream _chi2CutTable;
108    
109 pam-fi 1.4 Double_t _pSel[5];
110 pam-fi 1.1
111     TTimeStamp _time;
112    
113     };
114     #endif /* TRKCHI2DEFLTIMECUT_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23