DifArray Class Reference

#include <DifArray.h>

List of all members.

Public Member Functions

 DifArray (int n, int npar=0)
 DifArray (const HepVector &v, int npar=0)
 DifArray (const DifArray &a)
 ~DifArray ()
DifNumberoperator[] (int i)
DifNumberoperator() (int i)
DifNumber fetch (int i) const
int nElem () const
DifArrayoperator= (const DifArray &)
HepMatrix jacobian () const
void zero (int npar=0)
void print () const

Private Member Functions

void copy (const DifArray &a)
void copy (const HepVector &a, int npar=0)

Private Attributes

int _nElem
DifNumber_pointer


Detailed Description

Definition at line 36 of file DifArray.h.


Constructor & Destructor Documentation

DifArray::DifArray ( int  n,
int  npar = 0 
)

Definition at line 29 of file DifArray.cxx.

References zero().

00029                                 :
00030   _nElem(n),
00031   _pointer(new DifNumber[n])
00032 {zero(npar);}

DifArray::DifArray ( const HepVector &  v,
int  npar = 0 
)

Definition at line 34 of file DifArray.cxx.

References copy().

00034                                               :
00035   _nElem(a.num_row()),
00036   _pointer(new DifNumber[nElem()])
00037 {copy(a,npar);}

DifArray::DifArray ( const DifArray a  ) 

Definition at line 40 of file DifArray.cxx.

References copy().

00040                                    :
00041   _nElem(a.nElem()),
00042   _pointer(new DifNumber[nElem()])
00043 {copy(a);}

DifArray::~DifArray (  ) 

Definition at line 45 of file DifArray.cxx.

References _pointer.

00045 {delete[] _pointer;}


Member Function Documentation

void DifArray::copy ( const HepVector &  a,
int  npar = 0 
) [private]

Definition at line 83 of file DifArray.cxx.

References _pointer, genRecEmupikp::i, nElem(), and DifNumber::setNPar().

00083                                               {
00084   assert(nElem()==a.num_row());
00085   for(int i=0; i<nElem(); i++) 
00086     {
00087       _pointer[i].setNumber(a(i+1));
00088       _pointer[i].setNPar(npar);
00089     } 
00090 }

void DifArray::copy ( const DifArray a  )  [private]

Definition at line 92 of file DifArray.cxx.

References _pointer, genRecEmupikp::i, and nElem().

Referenced by DifArray(), and operator=().

00092                                     {
00093   assert(nElem()==a.nElem());
00094   for(int i=0; i<nElem(); i++) {_pointer[i]=a._pointer[i];}
00095 }

DifNumber DifArray::fetch ( int  i  )  const

Definition at line 60 of file DifArray.cxx.

References _pointer, and nElem().

00060                                    {
00061   i=i-1;
00062   assert(i>=0);
00063   assert(i<nElem());
00064   return _pointer[i];
00065 }

HepMatrix DifArray::jacobian (  )  const

Definition at line 72 of file DifArray.cxx.

References _pointer, genRecEmupikp::i, ganga-rec::j, nElem(), DifNumber::nPar(), and subSeperate::temp.

Referenced by BesVectorErr::covRTPMatrix(), BesPointErr::covRTPMatrix(), BesVectorErr::covRZPMatrix(), BesPointErr::covRZPMatrix(), and TrkHelixUtils::helixFromMomErr().

00072                                   {
00073   int npar=_pointer[0].nPar();
00074   HepMatrix temp(nElem(),npar,0);
00075   for(int i=1; i<=nElem(); i++){
00076     for(int j=1; j<=npar; j++) {
00077       temp(i,j)=_pointer[i-1].derivative(j);
00078     }
00079   } //(int i=1; i<=nElem(); i++) 
00080   return temp;
00081 }

int DifArray::nElem (  )  const [inline]

Definition at line 47 of file DifArray.h.

References _nElem.

Referenced by copy(), fetch(), jacobian(), operator()(), operator[](), print(), and zero().

00047 {return _nElem;} // number of elements

DifNumber & DifArray::operator() ( int  i  ) 

Definition at line 53 of file DifArray.cxx.

References _pointer, and nElem().

00053                                     {
00054   i=i-1;
00055   assert(i>=0);
00056   assert(i<nElem());
00057   return _pointer[i];
00058 }

DifArray & DifArray::operator= ( const DifArray  ) 

Definition at line 67 of file DifArray.cxx.

References copy().

00067                                                 {
00068   copy(rhs);
00069   return *this;
00070 }

DifNumber & DifArray::operator[] ( int  i  ) 

Definition at line 47 of file DifArray.cxx.

References _pointer, and nElem().

00047                                     {
00048   assert(i>=0);
00049   assert(i<nElem());
00050   return _pointer[i];
00051 }

void DifArray::print (  )  const

Definition at line 104 of file DifArray.cxx.

References genRecEmupikp::i, and nElem().

00104                                        {
00105   cout << "nElem=" << nElem() << endl;
00106   for(int i=1; i<=nElem(); i++){
00107     //SKIP cout << "element(" << i << ")=" << _pointer[i-1];
00108   }
00109 
00110 }

void DifArray::zero ( int  npar = 0  ) 

Definition at line 97 of file DifArray.cxx.

References _pointer, genRecEmupikp::i, nElem(), and DifNumber::setNPar().

Referenced by DifArray().

00097                            {
00098   for(int i=0; i<nElem(); i++) {
00099     _pointer[i]=0.0;
00100     _pointer[i].setNPar(npar);
00101   }
00102 }


Member Data Documentation

int DifArray::_nElem [private]

Definition at line 56 of file DifArray.h.

Referenced by nElem().

DifNumber* DifArray::_pointer [private]

Definition at line 57 of file DifArray.h.

Referenced by copy(), fetch(), jacobian(), operator()(), operator[](), zero(), and ~DifArray().


Generated on Tue Nov 29 23:18:16 2016 for BOSS_7.0.2 by  doxygen 1.4.7