All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
NTupleImplementation.h
Go to the documentation of this file.
1 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/NTupleImplementation.h,v 1.7 2006/12/10 20:29:17 leggett Exp $
2 #ifndef GAUDIKERNEL_NTUPLEIMP_H
3 #define GAUDIKERNEL_NTUPLEIMP_H
4 
5 // Framework include files
6 #include "GaudiKernel/NTuple.h"
7 #include "GaudiKernel/Kernel.h"
8 
9 // Forward declarations
10 class INTupleSvc;
11 class IConversionSvc;
12 
13 namespace NTuple {
14  // Concrete N tuple class definition
15  class GAUDI_API TupleImp : public Tuple {
16  protected:
20  bool m_isBooked;
22  std::string m_title;
26  char* m_buffer;
31  private:
33  TupleImp(const TupleImp&) ;
34 
35  public:
37  virtual INTupleItem* i_find(const std::string& name) const;
38  public:
40  TupleImp( const std::string& title);
42  virtual ~TupleImp();
45  return m_items;
46  }
48  const ItemContainer& items() const {
49  return m_items;
50  }
52  virtual const std::string& title() const {
53  return m_title;
54  }
56  virtual const INTupleItem* find(const std::string& name) const {
57  return i_find(name);
58  }
60  virtual INTupleItem* find(const std::string& name) {
61  return i_find(name);
62  }
64  char* buffer() {
65  return m_buffer;
66  }
68  const char* buffer() const {
69  return m_buffer;
70  }
73  return m_cnvSvc;
74  }
77  m_cnvSvc = svc;
78  }
81  return m_ntupleSvc;
82  }
84  void setTupleService( INTupleSvc* svc ) {
85  m_ntupleSvc = svc;
86  }
88  virtual StatusCode attachSelector(ISelectStatement* sel);
90  virtual ISelectStatement* selector();
92  virtual void setBuffer(char* buff);
94  virtual void reset();
96  virtual StatusCode add(INTupleItem* item);
98  virtual StatusCode remove(INTupleItem* item);
100  virtual StatusCode remove(const std::string& name);
102  virtual StatusCode write();
104  virtual StatusCode writeRecord();
106  virtual StatusCode read();
108  virtual StatusCode readRecord();
110  virtual StatusCode save();
111 
112  }; // end class definition: Tuple
113 
114 
115  // Concrete column wise N tuple class definition
116  class ColumnWiseTuple : public TupleImp {
117  public:
119  ColumnWiseTuple(const std::string& title ) : TupleImp(title) {
120  }
122  virtual ~ColumnWiseTuple() {
123  }
125  virtual const CLID& clID() const {
126  return classID();
127  }
129  static const CLID& classID() {
130  return CLID_ColumnWiseTuple;
131  }
132  }; // end class definition: ColumnWiseTuple
133 
134  // Concrete column wise N tuple class definition
135  class RowWiseTuple : public TupleImp {
136  public:
138  RowWiseTuple( const std::string& title ) : TupleImp(title) {
139  }
141  virtual ~RowWiseTuple() {
142  }
144  virtual const CLID& clID() const {
145  return classID();
146  }
148  static const CLID& classID() {
149  return CLID_RowWiseTuple;
150  }
151  }; // end class definition: RowWiseTuple
152 } // end name space NTuple
153 
154 #endif // GAUDIKERNEL_NTUPLEIMP_H
virtual ~ColumnWiseTuple()
Standard Destructor.
bool m_isBooked
Flag wether N tuple is booked.
A select statement can either contain.
IConversionSvc * m_cnvSvc
Reference to the conversion service used.
ColumnWiseTuple(const std::string &title)
Standard Constructor.
virtual INTupleItem * find(const std::string &name)
Find an item row of the Ntuple.
const ItemContainer & items() const
Access item container (CONST)
virtual ~RowWiseTuple()
Standard Destructor.
std::vector< INTupleItem * > ItemContainer
Definition: INTuple.h:86
static const CLID & classID()
Static access to class defininition structure.
INTupleSvc * m_ntupleSvc
Reference to N-tuple service used.
char * buffer()
Access N tuple data buffer.
NTuple interface class definition.
Definition: INTuple.h:27
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
ItemContainer & items()
Access item container.
std::string m_title
N tuple title.
Abstract base class which allows the user to interact with the actual N tuple implementation.
Definition: NTuple.h:367
char * m_buffer
Buffer size.
virtual const CLID & clID() const
Retrieve Reference to class defininition structure.
ItemContainer m_items
Container with N tuple _Columns.
void setTupleService(INTupleSvc *svc)
Access conversion service.
tuple item
print s1,s2
Definition: ana.py:146
const char * buffer() const
Access N tuple data buffer (CONST)
void setConversionService(IConversionSvc *svc)
Access conversion service.
ISelectStatement * m_pSelector
Possibly hanging selector.
virtual const std::string & title() const
Object title.
RowWiseTuple(const std::string &title)
Standard Constructor.
#define GAUDI_API
Definition: Kernel.h:108
virtual const INTupleItem * find(const std::string &name) const
Find an item row of the Ntuple (CONST)
static const CLID & classID()
Static access to class defininition structure.
INTupleSvc * tupleService() const
Access conversion service.
IConversionSvc * conversionService() const
Access conversion service.
virtual const CLID & clID() const
Retrieve Reference to class defininition structure.