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

Annotation of /PamCut/TrkCuts/TrkSigmaDeflCut/TrkSigmaDeflCut.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Wed May 27 13:30:09 2009 UTC (15 years, 6 months ago) by pam-fi
Branch: DEV
CVS Tags: v0r00
Changes since 1.1: +0 -0 lines
First import

1 pam-fi 1.1 /*
2     * TrkSigmaDeflCut.cpp
3     *
4     * Created on:23-apr-2009
5     * Author: S. Ricciarini
6     */
7    
8     /*! @file TrkSigmaDeflCut.cpp The TrkRigGeoCut class implementation file */
9    
10     #include "TrkSigmaDeflCut.h"
11    
12     TrkSigmaDeflCut::TrkSigmaDeflCut(const char *cutName, const char* rigBinListFileName) :
13     PamCut(cutName), _binning(0) {
14    
15     ifstream rigBinList;
16     rigBinList.open(rigBinListFileName);
17     TString bin;
18    
19     while (!rigBinList.eof()) {
20     rigBinList >> bin;
21     if (bin != "") {
22     _binning.push_back(bin.Atof());
23     #ifdef DEBUGPAMCUT
24     cout << "Bin: " << bin.Atof() << endl;
25     #endif
26     }
27     }
28    
29     rigBinList.close();
30    
31     #ifdef DEBUGPAMCUT
32     cout << "\nNumber of bins: " << _binning.size() << endl;
33     #endif
34     }
35    
36     int TrkSigmaDeflCut::Check(PamLevel2 *event) {
37    
38     TrkTrack *trkTrack = event->GetTrack(0)->GetTrkTrack();
39    
40     float sigmaDefl = pow(trkTrack->coval[4][4],0.5);
41     float rigMod = trkTrack->GetRigidity();
42    
43     // cout << "sigmaDefl: " << sigmaDefl << endl;
44     // cout << "rigMod: " << rigMod << endl;
45    
46     // check on overall binning interval
47     if (rigMod >= _binning[_binning.size() - 1] || rigMod < _binning[0]) {
48     return 0;
49     }
50    
51     //Bin upper limit identification: after this loop, the bin containing rigMod is defined as (_binning[i-1] , _binning[i])
52     int i = 1;
53     while (_binning[i] < rigMod) {
54     i++;
55     }
56    
57     // cout << "binmax: " << _binning[i] << endl;
58    
59     if ( ! ( sigmaDefl < 1./_binning[i]) ) { // required condition: sigma_defl < |defl_min(bin)| = 1./|rig_max(bin)| = 1./_binning[i]
60     return 1;
61     }
62    
63     // cout << "OK" << endl;
64     // cout << endl;
65    
66     return CUTOK;
67     }

  ViewVC Help
Powered by ViewVC 1.1.23