#include <TrkExchangeData.h>
Public Member Functions | |
TrkExchangeData () | |
TrkExchangeData (const TrkExchangePar *) | |
TrkExchangeData (const TrkExchangeData &) | |
TrkExchangeData & | operator= (const TrkExchangeData &) |
~TrkExchangeData () | |
TrkExchangePar * | exchange () const |
const d_UShort & | parameters (int index) const |
Static Private Member Functions | |
static const ComPackBase< double > & | paramPacker (int) |
Private Attributes | |
d_UShort | _params [TrkExchangePar::nParam] |
Static Private Attributes | |
static const ComPackSignedExpFloat | _packd0 |
static const ComPackSignedExpFloat | _packz0 |
static const ComPackFlatFloat | _packphi0 |
static const ComPackSignedExpFloat | _packomega |
static const ComPackFlatFloat | _packlambda |
Friends | |
class | TrkExchangeDataK |
Definition at line 30 of file TrkExchangeData.h.
TrkExchangeData::TrkExchangeData | ( | ) |
Definition at line 57 of file TrkExchangeData.cxx.
References _params, and TrkExchangePar::nParam.
00057 { 00058 for(unsigned ipar=0;ipar<TrkExchangePar::nParam;ipar++) 00059 _params[ipar] = 0; 00060 }
TrkExchangeData::TrkExchangeData | ( | const TrkExchangePar * | ) |
Definition at line 62 of file TrkExchangeData.cxx.
References _params, TrkExchangePar::d0(), TrkExchangePar::ex_d0, TrkExchangePar::ex_omega, TrkExchangePar::ex_phi0, TrkExchangePar::ex_tanDip, TrkExchangePar::ex_z0, TrkExchangePar::nParam, TrkExchangePar::omega(), ComPackBase< T >::pack(), paramPacker(), TrkExchangePar::phi0(), ComPackBaseBase::TAG_BAD, TrkExchangePar::tanDip(), and TrkExchangePar::z0().
00062 { 00063 // pack the parameters and the diagonal errors 00064 assert(traj != 0); 00065 for(int ipar=TrkExchangePar::ex_d0;ipar<TrkExchangePar::nParam;ipar++){ 00066 unsigned parpack(0); 00067 const ComPackBase<double>& packpar = paramPacker(ipar); 00068 // convert from tandip to dip 00069 double pval(0) ; 00070 switch (ipar) { 00071 case TrkExchangePar::ex_d0: 00072 pval = traj->d0(); 00073 break; 00074 case TrkExchangePar::ex_phi0: 00075 pval = traj->phi0(); 00076 break; 00077 case TrkExchangePar::ex_omega: 00078 pval = traj->omega(); 00079 break; 00080 case TrkExchangePar::ex_z0: 00081 pval = traj->z0(); 00082 break; 00083 case TrkExchangePar::ex_tanDip: 00084 pval = atan(traj->tanDip()); 00085 break; 00086 } 00087 ComPackBaseBase::StatusCode pcode = packpar.pack(pval,parpack); 00088 assert(pcode !=ComPackBaseBase::TAG_BAD); 00089 _params[ipar] = parpack; 00090 } 00091 }
TrkExchangeData::TrkExchangeData | ( | const TrkExchangeData & | ) |
Definition at line 93 of file TrkExchangeData.cxx.
References EvtCyclic3::other().
00093 { 00094 *this = other; 00095 }
TrkExchangeData::~TrkExchangeData | ( | ) |
TrkExchangePar * TrkExchangeData::exchange | ( | ) | const |
Definition at line 109 of file TrkExchangeData.cxx.
References _params, TrkExchangePar::ex_d0, TrkExchangePar::ex_tanDip, TrkExchangePar::nParam, paramPacker(), ComPackBaseBase::TAG_BAD, tan(), and ComPackBase< T >::unpack().
00109 { 00110 // unpack the parameters and the errors 00111 HepVector pvec(5,0); 00112 for(int ipar=TrkExchangePar::ex_d0;ipar<TrkExchangePar::nParam;ipar++){ 00113 const ComPackBase<double>& packpar = paramPacker(ipar); 00114 ComPackBaseBase::StatusCode pcode = packpar.unpack(_params[ipar],pvec[ipar]); 00115 assert(pcode != ComPackBaseBase::TAG_BAD ); 00116 } 00117 // convert back from dip to tandip 00118 pvec[TrkExchangePar::ex_tanDip] = tan(pvec[TrkExchangePar::ex_tanDip]); 00119 return new TrkExchangePar(pvec); 00120 }
TrkExchangeData & TrkExchangeData::operator= | ( | const TrkExchangeData & | ) |
Definition at line 98 of file TrkExchangeData.cxx.
References _params, TrkExchangePar::ex_d0, TrkExchangePar::nParam, and EvtCyclic3::other().
00098 { 00099 if(this != &other){ 00100 for (int ipar=TrkExchangePar::ex_d0;ipar<TrkExchangePar::nParam;ipar++) 00101 _params[ipar] = other._params[ipar]; 00102 } 00103 return *this; 00104 }
const d_UShort& TrkExchangeData::parameters | ( | int | index | ) | const [inline] |
Definition at line 45 of file TrkExchangeData.h.
References _params.
00045 { 00046 return _params[index]; }
const ComPackBase< double > & TrkExchangeData::paramPacker | ( | int | ) | [static, private] |
Definition at line 39 of file TrkExchangeData.cxx.
References _packd0, _packlambda, _packomega, _packphi0, _packz0, TrkExchangePar::ex_d0, TrkExchangePar::ex_omega, TrkExchangePar::ex_phi0, TrkExchangePar::ex_tanDip, and TrkExchangePar::ex_z0.
Referenced by exchange(), and TrkExchangeData().
00039 { 00040 switch(index) { 00041 case TrkExchangePar::ex_d0: 00042 return _packd0; 00043 case TrkExchangePar::ex_phi0: 00044 return _packphi0; 00045 case TrkExchangePar::ex_omega: 00046 return _packomega; 00047 case TrkExchangePar::ex_z0: 00048 return _packz0; 00049 case TrkExchangePar::ex_tanDip: 00050 return _packlambda; 00051 default: 00052 assert(0); 00053 return _packd0; 00054 } 00055 }
friend class TrkExchangeDataK [friend] |
Definition at line 48 of file TrkExchangeData.h.
const ComPackSignedExpFloat TrkExchangeData::_packd0 [static, private] |
const ComPackFlatFloat TrkExchangeData::_packlambda [static, private] |
const ComPackSignedExpFloat TrkExchangeData::_packomega [static, private] |
const ComPackFlatFloat TrkExchangeData::_packphi0 [static, private] |
const ComPackSignedExpFloat TrkExchangeData::_packz0 [static, private] |
d_UShort TrkExchangeData::_params[TrkExchangePar::nParam] [private] |
Definition at line 51 of file TrkExchangeData.h.
Referenced by exchange(), operator=(), parameters(), and TrkExchangeData().