16 #include <gsl/gsl_vector.h>
40 explicit QVector(
const UInt_t size);
74 const double &
operator[] (
const UInt_t i)
const;
298 void Resize(
const UInt_t newsize);
305 void Append(
const double val);
311 double Norma()
const;
315 double Sum(UInt_t nelem, UInt_t first = 0)
const;
326 double GetMean(
const UInt_t nelem,
const UInt_t first = 0)
const {
327 return Sum(nelem,first)/nelem;
337 double GetRMS(
const UInt_t nelem,
const UInt_t first = 0)
const;
365 int GetMaxIndex(
const UInt_t nelem,
const UInt_t first)
const;
369 int GetMinIndex(
const UInt_t nelem,
const UInt_t first)
const;
402 void SetArray(
const double *orig,
const UInt_t size);
413 virtual void Dump(std::ostream& o)
const;
416 void Draw(Option_t* option=
"");
419 TGraph*
GetGraph(
double samplingFrequency = 1.,
double scale = 1.)
const;
430 QVector(
double*
vec,
const UInt_t size,
const UInt_t stride);
451 static double *
ArrayAlloc(
const UInt_t size);
452 static void ArrayCopy(
const double* orig,
const UInt_t origStride,
double* dest,
const UInt_t destStride,
const UInt_t size);
470 Diana::QVector
operator+(
double t,
const Diana::QVector&v);
471 Diana::QVector
operator-(
double t,
const Diana::QVector&v);
472 Diana::QVector
operator*(
double t,
const Diana::QVector&v);
473 Diana::QVector
operator/(
double t,
const Diana::QVector&v);
474 Diana::QVector
abs(
const Diana::QVector &v);
475 Diana::QVector
sin(
const Diana::QVector &v);
476 Diana::QVector
cos(
const Diana::QVector &v);
477 Diana::QVector
tan(
const Diana::QVector &v);
478 Diana::QVector
exp(
const Diana::QVector &v);
479 Diana::QVector
log(
const Diana::QVector &v);
480 Diana::QVector
log10(
const Diana::QVector &v);
481 Diana::QVector
pow(
const Diana::QVector &v,
double p);
482 Diana::QVector
pow(
double p,
const Diana::QVector &v);
483 Diana::QVector
pow(
const Diana::QVector &u,
const Diana::QVector &v);
484 double max(
const Diana::QVector &v);
485 double min(
const Diana::QVector &v);
#define Q_BEGIN_NAMESPACE
Diana::QVector operator/(double t, const Diana::QVector &v)
Diana::QVector tan(const Diana::QVector &v)
Diana::QVector operator-(double t, const Diana::QVector &v)
Diana::QVector pow(const Diana::QVector &v, double p)
Diana::QVector log(const Diana::QVector &v)
Diana::QVector operator*(double t, const Diana::QVector &v)
Diana::QVector sin(const Diana::QVector &v)
Diana::QVector abs(const Diana::QVector &v)
Q_END_NAMESPACE Diana::QVector operator+(double t, const Diana::QVector &v)
Diana::QVector log10(const Diana::QVector &v)
double min(const Diana::QVector &v)
Diana::QVector cos(const Diana::QVector &v)
Diana::QVector exp(const Diana::QVector &v)
double max(const Diana::QVector &v)
Interface to FFTW's FFT plans.
An array of complex matrices that have been laid out in memory.
Interface for complex matrices in Diana analysis.
Interface for matrices in Diana analysis.
base class for objects handled by QEvent and QGlobalDataManager.
Real to complex FFT using FFTW3.
Interface for complex vectors in Diana analysis.
QVectorView for const QVector.
Interface for raw daq vectors in Diana.
subview of an existing QVector, useful to operate on a QVector slice
Interface for vectors in Diana analysis.
const QVector & Rebin(const int rebin, bool sum=false)
Rebin the vector.
const QVector & operator*=(const double t)
multiplication by scalar
QVector Derivative3PF(const double delta=1.) const
compute derivative with 3 point interpolation, forward mode
QVector operator-() const
revert sign to all components
QVector Div(const QVector &other) const
multiplication element by element
static void ArrayCopy(const double *orig, const UInt_t origStride, double *dest, const UInt_t destStride, const UInt_t size)
const QVector & Differentiate()
make vector derivative
UInt_t Size() const
size of QVector
virtual void Clear()
clear the vector
QVector operator+(const QVector &other) const
sum vector
const QVector & operator+=(const double v)
sum scalar to all elements
virtual ~QVector()
destructor
QVector DerivativeEulero(const double delta=1.) const
compute derivative with Eulero interpolation, backward mode
UInt_t fSize
size of the array
static void ArrayFree(double *array)
QVector Mult(const QVector &other) const
multiplication element by element
double GetRMS() const
Get RMS.
QVector Derivative5P(const double delta=1.) const
compute derivative with 5 point interpolation, symmetric
void Draw(Option_t *option="")
Draw root.
double & operator[](const UInt_t i)
retrieve an element
const double * GetConstArray() const
QVector Derivative2P(const double delta=1.) const
compute derivative with 2 point interpolation, uses Differentiate()
virtual void Dump(std::ostream &o) const
Dump object to stream.
void SetMathVector() const
double GetMax() const
get maximum element
double GetMean(const UInt_t nelem, const UInt_t first=0) const
Get Mean.
const bool fDataOwner
if this vector onws its data
QVector Derivative3PB(const double delta=1.) const
compute derivative with 3 point interpolation, backward mode
UInt_t fStride
data stride
QMatrix T() const
transpose
TGraph * GetGraph(double samplingFrequency=1., double scale=1.) const
Get a root TGraph (owned by the caller)
static double * ArrayAlloc(const UInt_t size)
const QVector & Reverse()
time reversal of the vector
QVector GetSubVector(UInt_t size, UInt_t start=0, UInt_t stride=1)
double * GetArray() const
get an array of doubles, owned by the caller!
double GetMedian() const
Get median.
QVector Derivative2PF(const double delta=1.) const
compute derivative with forward 2 point interpolation
const QVector & ShiftReal(const double fstep)
Cyclic shift of vector by a real number, first shift by the integer part of fstep then linear interpo...
QVector Abs() const
Return a vector of the absolute values.
const QVector & Shift(const int nstep)
Cyclic shift of vector.
void Append(const double val)
append
QMatrix Reshape(UInt_t n, UInt_t m)
reshape the vector into a matrix
double Norma() const
norma
double operator*(const QVector &other) const
scalar product
void SetArray(const double *orig, const UInt_t size)
get a constant pointer to the content
QVector()
default constructor
QVector Derivative5PB(const double delta=1.) const
compute derivative with 5 point interpolation, backward mode
double GetMedianAbsoluteDeviation() const
Get median absolute deviation.
const QVector & operator=(const QVector &orig)
copy the content from another QVector
const QVector & Integrate(const double constTerm=0)
Integrate vector.
std::vector< double > GetArrayVector() const
get a pointer to the content
const QVector & Sort(const bool asc=true)
sort this vector
QVector Derivative3P(const double delta=1.) const
compute derivative with 3 point interpolation, symmetric
double Sum() const
sum elements
QVector operator/(double t) const
divide by scalar
double & operator()(const UInt_t i)
const QVector & operator/=(const double v)
divide by scalar
void Resize(const UInt_t newsize)
resize a QVector
double GetMin() const
get minimum element
std::string sqlString() const
const QVector & operator-=(const double v)
subtract scalar to all elements
void Initialize(const double val=0)
initialize elements (default to 0)
gsl_vector * fMathVec
temporary gsl_vector to use the gsl library
UInt_t GetMaxIndex() const
get maximum element index
UInt_t GetMinIndex() const
get minimum element index