Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

NTupleProjector.h

Go to the documentation of this file.
00001 /* -*- mode: c++; -*-  */
00002 
00014 #ifndef _NTupleProjector_H_
00015 #define _NTupleProjector_H_
00016 
00017 #include "ProjectorBase.h"
00018 
00019 class DataSource;
00020 class TupleCut;
00021 
00043 class MDL_HIPPOPLOT_API NTupleProjector : virtual public ProjectorBase
00044 {
00045 
00048   mutable bool m_is_valid;
00049 
00050 protected:
00051 
00061   std::vector< std::string > m_binding_options;
00062 
00064   mutable std::vector< std::string > m_bindings;
00065 
00070   std::vector< unsigned int > m_columns;
00071 
00073   std::vector < const TupleCut * > m_cut_list;
00074 
00077   const DataSource * m_ntuple;
00078 
00084   unsigned int m_min_bindings;
00085 
00088   NTupleProjector ( unsigned int columns );
00089 
00091   NTupleProjector ( const NTupleProjector & projector );
00092 
00095   Range dataRange ( int column ) const;
00096 
00098   Range dataRangeWithError ( int data, int error ) const;
00099 
00101   double getPos ( int column ) const;
00102 
00105   double getPosWithError ( int data, int error ) const;
00106 
00110   void setAxisBinding ( int axis, const std::string & label );
00111 
00112 public:
00113 
00115   ~NTupleProjector();
00116 
00119   virtual void update ( const Observable * );
00120 
00125   virtual void willDelete ( const Observable * );
00126 
00128   virtual const std::vector< std::string > & bindingOptions () const;
00129 
00134   virtual const std::vector < std::string > & getAxisBindings () const;
00135 
00136 
00140   unsigned int indexOfBindingOption ( const std::string & axis ) const;
00141 
00144   int indexOf ( const std::string & label ) const;
00145 
00148   virtual void setXErrorOption ( bool enable );
00149 
00152   virtual void setYErrorOption ( bool enable );
00153 
00158   virtual void setAxisBinding ( const std::string & axis, 
00159                                 const std::string & label );
00160 
00166   virtual void setAxisBindings ( const std::vector < std::string > & labels );
00167 
00172   virtual void setNTuple ( const DataSource * source );
00173 
00175   virtual const DataSource * getNTuple () const;
00176 
00178   virtual DataSource * getNTuple ();
00179 
00181   virtual const std::string & getNTupleName () const;
00182 
00187   virtual void changedNTuple() = 0;
00188 
00191   virtual Range dataRangeOn ( hippodraw::Axes::Type ) const = 0;
00192 
00194   virtual void addCut ( const TupleCut * cut );
00195 
00198   virtual void removeCut ( const TupleCut * cut );
00199 
00201   const std::vector < const TupleCut * > & getCutList () const;
00202 
00205   bool acceptRow ( unsigned int i ) const;
00206 
00209   virtual const std::string & getTitle() const;
00210 
00211   virtual const std::string & getXLabel() const;
00212   virtual const std::string & getYLabel ( bool flag = false ) const;
00213 
00216   int getNumberOfEntries () const;
00217   
00220   virtual bool inRange ( int row ) const;
00221 
00223   virtual double getAverage ( hippodraw::Axes::Type axis ) const;
00224 
00225   /* Implements ProjectorBase. */
00226   virtual bool isEmpty () const;
00227 
00228   /* Create an NTuple given the present set of cuts.
00229    */
00230   virtual NTuple * getNTupleAfterCuts () const;
00231 
00234   bool isDataValid () const;
00235 
00236 };
00237 
00238 #endif // _NTupleProjector_H_

Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3