ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameTools/src/Selection.cxx
Revision: 1.2
Committed: Wed Jun 6 08:22:12 2012 UTC (12 years, 11 months ago) by rkogler
Content type: text/plain
Branch: MAIN
Changes since 1.1: +16 -4 lines
Log Message:
name stored and cosmetics

File Contents

# User Rev Content
1 rkogler 1.2 #include <iomanip>
2    
3 peiffer 1.1 #include "../include/Selection.h"
4    
5     Selection::Selection(std::string name):
6     m_logger ( name.c_str() ){
7 rkogler 1.2
8     m_name = name.c_str();
9 peiffer 1.1 clearSelectionModulesList();
10 rkogler 1.2 Ntotal=0;
11 peiffer 1.1 }
12    
13     void Selection::addSelectionModule(SelectionModule* sel){
14     m_cuts.push_back(sel);
15     m_cutflow.push_back(0);
16     }
17    
18     void Selection::clearSelectionModulesList(){
19     m_cuts.clear();
20     m_cutflow.clear();
21 rkogler 1.2 Ntotal=0;
22 peiffer 1.1 }
23    
24     bool Selection::passSelection(BaseCycleContainer *bcc){
25 rkogler 1.2 Ntotal++;
26 peiffer 1.1 if(m_cuts.size()!=m_cutflow.size()){
27     m_logger << WARNING << "size of cut list != number of entries in cut flow table "<< SLogger::endmsg;
28     }
29     for(unsigned int i=0; i<m_cuts.size(); ++i){
30     if(!m_cuts[i]->pass(bcc)) return false;
31     m_cutflow[i]++;
32     }
33     return true;
34     }
35    
36     bool Selection::passInvertedSelection(BaseCycleContainer *bcc){
37    
38     for(unsigned int i=0; i<m_cuts.size(); ++i){
39     if(!m_cuts[i]->pass(bcc)) return true;
40     }
41     return false;
42     }
43    
44     void Selection::printCutFlow(){
45 rkogler 1.2
46     using namespace std;
47    
48     m_logger << INFO << "-------------------------- Cut Flow Table -------------------------"<< SLogger::endmsg;
49 peiffer 1.1 if(m_cuts.size()!=m_cutflow.size()){
50     m_logger << WARNING << "size of cut list != number of entries in cut flow table "<< SLogger::endmsg;
51     }
52     else{
53 rkogler 1.2 m_logger << INFO << setw(12) << "Events" << " | Description" << SLogger::endmsg;
54     m_logger << INFO << "-------------+-----------------------------------------------------"<< SLogger::endmsg;
55     m_logger << INFO << setw(12) << Ntotal << " | Events entered the selection. " << SLogger::endmsg;
56 peiffer 1.1 for(unsigned int i=0; i<m_cuts.size(); ++i){
57 rkogler 1.2 m_logger << INFO << setw(12) << m_cutflow[i] << " | left after: " << m_cuts[i]->description() << SLogger::endmsg;
58 peiffer 1.1 }
59     }
60 rkogler 1.2 m_logger << INFO << "-------------+-----------------------------------------------------"<< SLogger::endmsg;
61 peiffer 1.1
62     }