ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameTools/src/Selection.cxx
(Generate patch)

Comparing UserCode/UHHAnalysis/SFrameTools/src/Selection.cxx (file contents):
Revision 1.1 by peiffer, Fri May 25 09:31:04 2012 UTC vs.
Revision 1.6 by peiffer, Wed Jun 12 12:33:40 2013 UTC

# Line 1 | Line 1
1 < #include "../include/Selection.h"
1 > #include <iomanip>
2  
3 + #include "../include/Selection.h"
4  
5   Selection::Selection(std::string name):
6    m_logger ( name.c_str() ){
7 +
8 +  m_name = name.c_str();
9    clearSelectionModulesList();
10 +  Ntotal=0;
11 +  m_isactive = true;
12 + }
13 +
14 + void Selection::resetCutFlow(){
15 +  Ntotal=0;
16 +  for(unsigned int i=0; i<m_cuts.size(); ++i){
17 +    m_cutflow[i]=0;
18 +  }
19   }
20  
21   void Selection::addSelectionModule(SelectionModule* sel){
22 +  m_logger << DEBUG << "Adding selection module: " << sel->description() << SLogger::endmsg;
23    m_cuts.push_back(sel);
24    m_cutflow.push_back(0);
25   }
# Line 14 | Line 27 | void Selection::addSelectionModule(Selec
27   void Selection::clearSelectionModulesList(){
28    m_cuts.clear();
29    m_cutflow.clear();
30 +  Ntotal=0;
31   }
32  
33   bool Selection::passSelection(BaseCycleContainer *bcc){
34 +
35 +  if (!m_isactive) return true; // always true if the selection is not active
36 +
37 +  Ntotal++;
38    if(m_cuts.size()!=m_cutflow.size()){
39      m_logger << WARNING << "size of cut list != number of entries in cut flow table "<< SLogger::endmsg;
40    }
# Line 28 | Line 46 | bool Selection::passSelection(BaseCycleC
46   }
47  
48   bool Selection::passInvertedSelection(BaseCycleContainer *bcc){
49 +
50 +  if (!m_isactive) return true; // always true if the selection is not active
51    
52    for(unsigned int i=0; i<m_cuts.size(); ++i){
53      if(!m_cuts[i]->pass(bcc)) return true;
# Line 35 | Line 55 | bool Selection::passInvertedSelection(Ba
55    return false;
56   }
57  
58 + bool Selection::passSelection(){
59 +  EventCalc* calc = EventCalc::Instance();
60 +  BaseCycleContainer* bcc = calc->GetBaseCycleContainer();
61 +  return passSelection(bcc);
62 + }
63 +
64 + bool Selection::passInvertedSelection(){
65 +  EventCalc* calc = EventCalc::Instance();
66 +  BaseCycleContainer* bcc = calc->GetBaseCycleContainer();
67 +  return passInvertedSelection(bcc);
68 + }
69 +
70   void Selection::printCutFlow(){
71 <  m_logger << INFO << "--------------- Cut Flow Table ---------------"<< SLogger::endmsg;
71 >
72 >  using namespace std;
73 >
74 >  m_logger << INFO << "--------------- Cut Flow Table of Selection " << m_name << " ---------------"<< SLogger::endmsg;
75 >  if (!m_isactive){
76 >    m_logger << INFO <<  "Selection was not active." << SLogger::endmsg;
77 >    m_logger << INFO << "-----------------------------------------------------------------------------"<< SLogger::endmsg;
78 >    return;
79 >  }
80 >
81    if(m_cuts.size()!=m_cutflow.size()){
82      m_logger << WARNING << "size of cut list != number of entries in cut flow table "<< SLogger::endmsg;
83    }
84    else{
85 +      m_logger << INFO << setw(12) << "Events" <<  " |  Description" << SLogger::endmsg;
86 +      m_logger << INFO << "-------------+-----------------------------------------------------"<< SLogger::endmsg;
87 +      m_logger << INFO << setw(12) << Ntotal << " | Events entered the selection. " << SLogger::endmsg;
88      for(unsigned int i=0; i<m_cuts.size(); ++i){
89 <      m_logger << INFO << m_cutflow[i] << "    " << m_cuts[i]->description() << SLogger::endmsg;
89 >      m_logger << INFO << setw(12) << m_cutflow[i] << " | left after: " << m_cuts[i]->description() << SLogger::endmsg;
90      }
91    }
92 <  m_logger << INFO << "----------------------------------------------"<< SLogger::endmsg;
92 >  m_logger << INFO << "-------------+---------------------------------------------------------------"<< SLogger::endmsg;
93  
94   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines