#include <TrkExchangeData.h>
Public Member Functions | |
TrkExchangePar * | exchange () const |
TrkExchangePar * | exchange () const |
TrkExchangeData & | operator= (const TrkExchangeData &) |
TrkExchangeData & | operator= (const TrkExchangeData &) |
const d_UShort & | parameters (int index) const |
const d_UShort & | parameters (int index) const |
TrkExchangeData (const TrkExchangeData &) | |
TrkExchangeData (const TrkExchangePar *) | |
TrkExchangeData () | |
TrkExchangeData (const TrkExchangeData &) | |
TrkExchangeData (const TrkExchangePar *) | |
TrkExchangeData () | |
~TrkExchangeData () | |
~TrkExchangeData () | |
Static Private Member Functions | |
const ComPackBase< double > & | paramPacker (int) |
const ComPackBase< double > & | paramPacker (int) |
Private Attributes | |
d_UShort | _params [TrkExchangePar::nParam] |
Static Private Attributes | |
const ComPackSignedExpFloat | _packd0 |
const ComPackFlatFloat | _packlambda |
const ComPackSignedExpFloat | _packomega |
const ComPackFlatFloat | _packphi0 |
const ComPackSignedExpFloat | _packz0 |
Friends | |
class | TrkExchangeDataK |
|
00057 { 00058 for(unsigned ipar=0;ipar<TrkExchangePar::nParam;ipar++) 00059 _params[ipar] = 0; 00060 }
|
|
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 }
|
|
00093 {
00094 *this = other;
00095 }
|
|
00106 {}
|
|
|
|
|
|
|
|
|
|
|
|
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 }
|
|
|
|
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 }
|
|
00045 { 00046 return _params[index]; }
|
|
00045 { 00046 return _params[index]; }
|
|
|
|
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 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|