Diana Software
QVectorView.cc
Go to the documentation of this file.
1 #include "QVectorView.hh"
2 #include <iostream>
3 
4 QObjectImp(Diana::QVectorView);
5 QObjectImp(Diana::QVectorConstView);
6 
8 
9 QVectorView::QVectorView(QVector& in, size_t start, size_t size)
10 {
11  if(start+size > in.Size()) DianaThrow( "QVectorView not allowed" );
12  fVector = new QVector(in,false);
13  fVector->fData = in.fData+start*in.fStride;
14  fVector->fSize = size;
15 }
16 
18 {
19  if(fVector) delete fVector;
20  fVector = NULL;
21 }
22 
23 QVectorConstView::QVectorConstView(const QVector& in, size_t start, size_t size)
24 {
25  if(start+size > in.Size()) DianaThrow ( "QVectorView not allowed" );
26  fVector = new QVector(in,false);
27  fVector->fData = in.fData+start*in.fStride;
28  fVector->fSize = size;
29 }
30 
32 {
33  if(fVector) delete fVector;
34  fVector = NULL;
35 }
36 
#define DianaThrow(obj)
Definition: QDianaDebug.hh:26
#define Q_END_NAMESPACE
Definition: QDiana.hh:22
#define Q_BEGIN_NAMESPACE
Definition: QDiana.hh:20
QObjectImp(Diana::QVectorView)
QVector * fVector
Definition: QVectorView.hh:75
virtual ~QVectorConstView()
destructor
Definition: QVectorView.cc:31
QVector * fVector
Definition: QVectorView.hh:42
virtual ~QVectorView()
destructor: do not destroy the input QVector
Definition: QVectorView.cc:17
Interface for vectors in Diana analysis.
Definition: QVector.hh:30
UInt_t Size() const
size of QVector
Definition: QVector.hh:54
UInt_t fSize
size of the array
Definition: QVector.hh:436
UInt_t fStride
data stride
Definition: QVector.hh:441
Double_t * fData
array
Definition: QVector.hh:444