TupleCut.cxx

Go to the documentation of this file.
00001 
00012 // for truncation warning in debug mode
00013 #ifdef _MSC_VER
00014 #include "msdevstudio/MSconfig.h"
00015 #endif
00016 
00017 #include "TupleCut.h"
00018 
00019 #include "datasrcs/DataSource.h"
00020 
00021 #include <algorithm>
00022 
00023 using namespace hippodraw;
00024 
00025 TupleCut::
00026 TupleCut ()
00027   : m_column ( 0 ),
00028     m_invert ( false ),
00029     m_enabled ( true )
00030 {
00031 }
00032 
00033 void
00034 TupleCut::
00035 setEnabled ( bool yes )
00036 {
00037   m_enabled = yes;
00038 }
00039 
00040 bool
00041 TupleCut::
00042 isEnabled () const
00043 {
00044   return m_enabled;
00045 }
00046 
00047 bool TupleCut::acceptRow ( const DataSource * ntuple, 
00048                            unsigned int i ) const
00049 {
00050   bool shouldBeAccepted = true;
00051 
00052   if ( m_enabled ) {
00053     double value = ntuple -> valueAt ( i, m_column );
00054     bool included = m_range.includes ( value );
00055     shouldBeAccepted  = 
00056       ( included && ! m_invert ) ||
00057       ( !included && m_invert );
00058   }
00059 
00060   return shouldBeAccepted;
00061 }
00062 
00063 void TupleCut::setColumn( unsigned int column  )
00064 {
00065   m_column = column;
00066 }
00067 
00068 unsigned int
00069 TupleCut::
00070 getColumn () const
00071 {
00072   return m_column;
00073 }
00074 
00075 void
00076 TupleCut::
00077 setRange ( const Range & range )
00078 {
00079   m_range = range;
00080 }
00081 
00082 const Range &
00083 TupleCut::
00084 getRange ( ) const
00085 {
00086   return m_range;
00087 }
00088 
00089 void
00090 TupleCut::
00091 setInversion ( bool state )
00092 {
00093   m_invert = state;
00094 }
00095 
00096 bool
00097 TupleCut::
00098 getInversion ( ) const
00099 {
00100   return m_invert;
00101 }
00102 
00103 void TupleCut::toggleInverted()
00104 {
00105   m_invert = m_invert ? false : true;
00106 }
00107 
00108 const std::string &
00109 TupleCut::
00110 getLabel () const
00111 {
00112   return m_label;
00113 }
00114 
00115 void
00116 TupleCut::
00117 setLabel ( const std::string & label )
00118 {
00119   m_label = label;
00120 }

Generated for HippoDraw Class Library by doxygen