#include <MdcHitOnTrack.h>
Inheritance diagram for MdcHitOnTrack:
Public Types | |
typedef std::unary_function< TrkHitOnTrk, bool > | predicate_type |
typedef std::unary_function< TrkHitOnTrk, bool > | predicate_type |
Public Member Functions | |
int | ambig () const |
int | ambig () const |
double | charge () const |
double | charge () const |
virtual TrkHitOnTrk * | clone (TrkRep *parentRep, const TrkDifTraj *trkTraj=0) const =0 |
virtual TrkHitOnTrk * | clone (TrkRep *parentRep, const TrkDifTraj *trkTraj=0) const =0 |
double | dcaToWire () const |
double | dcaToWire () const |
double | dipAngle () const |
double | dipAngle () const |
double | drift (double dca) const |
double | drift () const |
double | drift (double dca) const |
double | drift () const |
double | entranceAngle () const |
double | entranceAngle () const |
double | entranceAngleHit () const |
double | entranceAngleHit () const |
double | fitTime () const |
double | fitTime () const |
double | fltLen () const |
double | fltLen () const |
TrkErrCode | getFitStuff (double &deltaChi) const |
TrkErrCode | getFitStuff (HepVector &derivs, double &deltaChi) const |
TrkErrCode | getFitStuff (double &deltaChi) const |
TrkErrCode | getFitStuff (HepVector &derivs, double &deltaChi) const |
const TrkRep * | getParentRep () const |
const TrkRep * | getParentRep () const |
const TrkRecoTrk * | getParentTrack () const |
const TrkRecoTrk * | getParentTrack () const |
bool | hasResidual () const |
bool | hasResidual () const |
TrkFundHit * | hit () |
const TrkFundHit * | hit () const |
TrkFundHit * | hit () |
const TrkFundHit * | hit () const |
double | hitLen () const |
double | hitLen () const |
double | hitRms () const |
double | hitRms () const |
virtual const Trajectory * | hitTraj () const |
virtual const Trajectory * | hitTraj () const |
bool | isActive () const |
bool | isActive () const |
bool | isUsable () const |
bool | isUsable () const |
const MdcLayer * | layer () const |
const MdcLayer * | layer () const |
unsigned | layerNumber () const |
int | layernumber () const |
unsigned | layerNumber () const |
int | layernumber () const |
virtual const MdcHit * | mdcHit () const |
virtual const MdcHit * | mdcHit () const |
virtual const MdcHitOnTrack * | mdcHitOnTrack () const |
MdcHitOnTrack (const TrkFundHit &fundHit, const MdcHit &baseHit, int ambig, double fittime) | |
virtual const MdcHitOnTrack * | mdcHitOnTrack () const |
MdcHitOnTrack (const TrkFundHit &fundHit, const MdcHit &baseHit, int ambig, double fittime) | |
bool | mustUse () const |
bool | mustUse () const |
bool | operator< (const TrkHitOnTrk &rhs) const |
bool | operator< (const TrkHitOnTrk &rhs) const |
bool | operator== (const TrkHitOnTrk &) const |
bool | operator== (const TrkHitOnTrk &) const |
TrkRecoTrk * | parentTrack () const |
TrkRecoTrk * | parentTrack () const |
PdtPid::PidType | particleType () const |
PdtPid::PidType | particleType () const |
virtual void | print (std::ostream &) const |
virtual void | print (std::ostream &) const |
virtual void | printAll (std::ostream &) const |
virtual void | printAll (std::ostream &) const |
double | rawTime () const |
double | rawTime () const |
bool | resid (double &resid, double &residErr, bool exclude=false) const |
double | resid (bool exclude=false) const |
bool | resid (double &resid, double &residErr, bool exclude=false) const |
double | resid (bool exclude=false) const |
double | residual () const |
double | residual () const |
void | setActivity (bool turnOn) |
void | setActivity (bool turnOn) |
void | setAmbig (int a) |
void | setAmbig (int a) |
void | setFltLen (double f) |
void | setFltLen (double f) |
void | setHitRms (double newRms) |
void | setHitRms (double newRms) |
void | setT0 (double t0) |
void | setT0 (double t0) |
void | setUsability (int usability) |
void | setUsability (int usability) |
virtual unsigned | status () const =0 |
virtual unsigned | status () const =0 |
virtual const SvtHitOnTrack * | svtHitOnTrack () const |
virtual const SvtHitOnTrack * | svtHitOnTrack () const |
virtual unsigned | tdcIndex () const =0 |
virtual unsigned | tdcIndex () const =0 |
virtual bool | timeAbsolute (double &t, double &tErr) const |
virtual bool | timeAbsolute (double &t, double &tErr) const |
virtual bool | timeResid (double &t, double &tErr) const |
virtual bool | timeResid (double &t, double &tErr) const |
const TrkDifTraj * | trkTraj () const |
const TrkDifTraj * | trkTraj () const |
double | weight () const |
double | weight () const |
TrkEnums::TrkViewInfo | whatView () const |
TrkEnums::TrkViewInfo | whatView () const |
int | whichView () const |
int | whichView () const |
int | wire () const |
int | wire () const |
int | wireAmbig () const |
int | wireAmbig () const |
virtual | ~MdcHitOnTrack () |
virtual | ~MdcHitOnTrack () |
Protected Member Functions | |
const MdcHit * | baseHit () const |
const MdcHit * | baseHit () const |
void | changeBase (MdcHit *newBase) |
void | changeBase (MdcHit *newBase) |
bool | isBeyondEndflange () const |
bool | isBeyondEndflange () const |
MdcHitOnTrack (const MdcHitOnTrack &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj, const MdcHit *hb=0) | |
MdcHitOnTrack (const TrkFundHit *baseHit, int ambig, double fittime, int layer, int wire) | |
MdcHitOnTrack (const MdcHitOnTrack &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj, const MdcHit *hb=0) | |
MdcHitOnTrack (const TrkFundHit *baseHit, int ambig, double fittime, int layer, int wire) | |
TrkRep * | parentRep () const |
TrkRep * | parentRep () const |
void | setHitLen (double h) |
void | setHitLen (double h) |
void | setHitResid (double newResid) |
void | setHitResid (double newResid) |
void | setUnusedHit () |
void | setUnusedHit () |
void | setUsedHit () |
void | setUsedHit () |
bool | updateAmbiguity (double dca) |
bool | updateAmbiguity (double dca) |
virtual TrkErrCode | updateMeasurement (const TrkDifTraj *traj, bool maintainAmbiguity) |
virtual TrkErrCode | updateMeasurement (const TrkDifTraj *traj, bool maintainAmbiguity) |
TrkErrCode | updatePoca (const TrkDifTraj *trkTraj, bool maintainAmbiguity) |
TrkErrCode | updatePoca (const TrkDifTraj *trkTraj, bool maintainAmbiguity) |
Protected Attributes | |
double | _hitLen |
double | _hitRms |
bool | _isActive |
int | _isUsable |
TrkRep * | _parentRep |
TrkRep * | _parentRep |
TrkPoca * | _poca |
TrkPoca * | _poca |
double | _resid |
TrkFundHit * | _theHit |
TrkFundHit * | _theHit |
double | _tolerance |
double | _trkLen |
const TrkDifTraj * | _trkTraj |
const TrkDifTraj * | _trkTraj |
Private Member Functions | |
bool | driftCurrent () const |
bool | driftCurrent () const |
double | driftVelocity () const |
double | driftVelocity () const |
MdcHitOnTrack (const MdcHitOnTrack &) | |
MdcHitOnTrack (const MdcHitOnTrack &) | |
MdcHitOnTrack & | operator= (const MdcHitOnTrack &) |
MdcHitOnTrack & | operator= (const MdcHitOnTrack &) |
void | updateCorrections () |
void | updateCorrections () |
Private Attributes | |
int | _ambig |
const MdcHit * | _dHit |
const MdcHit * | _dHit |
double | _drift [2] |
double | _endLen |
double | _fitTime |
const Trajectory * | _hitTraj |
const Trajectory * | _hitTraj |
double | _startLen |
Friends | |
class | TrkBase::Functors::setActive |
class | TrkBase::Functors::setParent |
class | TrkBase::Functors::updateMeasurement |
|
|
|
|
|
00027 : TrkHitOnTrk(&fundHit,10.e-4), 00028 _ambig(ambig), 00029 _hitTraj(baseHit.hitTraj()), 00030 _fitTime(baseHit.rawTime()-t0*1e-9), 00031 _dHit(&baseHit) 00032 { 00033 // need to flag somehow that that we haven't computed things yet... 00034 // now, we know that _drift[0] is for ambig <0, and _drift[1] is ambig >0 00035 // and _drift is signed according to ambig. Thus _drift[0] should be -tive 00036 // and _drift[1] should be +tive. To indicate this are not yet initialized, 00037 // put 'impossible' values here... 00038 _drift[0] = +9999; 00039 _drift[1] = -9999; 00040 setHitResid(-21212121.0); 00041 setHitRms( 0.02 ); 00042 setHitLen(0.5 * baseHit.layer()->zLength()); 00043 setFltLen(0.); 00044 _startLen = hitTraj()->lowRange() - 5.; 00045 _endLen = hitTraj()->hiRange() + 5.; 00046 }
|
|
00091 { ; }
|
|
|
|
00078 : TrkHitOnTrk(hot,newRep,trkTraj) 00079 { 00080 _ambig = hot._ambig; 00081 _hitTraj = hot._hitTraj; 00082 _fitTime = hot._fitTime; 00083 _drift[0] = hot._drift[0]; 00084 _drift[1] = hot._drift[1]; 00085 _startLen = hot._startLen; 00086 _endLen = hot._endLen; 00087 _dHit = (hb==0?hot._dHit:hb); 00088 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reimplemented from TrkHitOnTrk. 00059 { return _ambig; } // wire wrt track direction
|
|
Reimplemented from TrkHitOnTrk. 00059 { return _ambig; } // wire wrt track direction
|
|
00114 { return _dHit; }
|
|
00114 { return _dHit; }
|
|
|
|
00347 { 00348 _dHit = newBase; 00349 }
|
|
|
|
|
|
Implemented in MdcRecoHitOnTrack, TrkBmSpotOnTrk, MdcRecoHitOnTrack, and TrkBmSpotOnTrk. |
|
Implemented in MdcRecoHitOnTrack, TrkBmSpotOnTrk, MdcRecoHitOnTrack, and TrkBmSpotOnTrk. |
|
|
|
00101 { 00102 double dca = -9999.; 00103 if ( getParentRep() == 0 ) { 00104 // cout << "no parent rep" << endl; 00105 return dca; 00106 } 00107 // WARNING: cannot use the internal _poca, as it lags one iteration 00108 // behind the fit... therfore use _EXTERNAL_ residual 00109 if (isActive()) { // FIXME: currently can only use 'resid()' if isActive.. 00110 dca = resid()+drift(); 00111 } else { 00112 TrkPoca poca(getParentRep()->traj(), fltLen(), *hitTraj(), hitLen(), 00113 _tolerance); 00114 if (poca.status().success()) dca = poca.doca(); 00115 } 00116 return dca; 00117 }
|
|
|
|
00170 { 00171 return getParentRep()==0?0:Constants::pi/2-getParentRep()->traj().direction(fltLen()).theta(); 00172 }
|
|
00069 { return _drift[dca<0?0:1]; }
|
|
|
|
00069 { return _drift[dca<0?0:1]; }
|
|
|
|
|
|
|
|
|
|
00246 { 00247 const TrkRep* tkRep = getParentRep(); 00248 assert(tkRep != 0); 00249 double tof = tkRep->arrivalTime(fltLen()); 00250 static HepPoint3D pos; static Hep3Vector dir; 00251 _trkTraj->getInfo(fltLen(), pos, dir); 00252 double eAngle = BesAngle(dir.phi() - pos.phi()); 00253 double dAngle =Constants::pi/2 - dir.theta(); 00254 double z = pos.z(); 00255 // note the special case for INCOMING tracks: 00256 // wire left of track implies hit on the right side of wire 00257 int wireAmb= fabs(eAngle)<Constants::pi/2?_ambig:-_ambig; 00258 00259 static const double epsilon = 0.5e-9; // tof are in s; 00260 double dist1 = _dHit->driftDist(tof+epsilon, wireAmb, eAngle, dAngle, z); 00261 double dist2 = _dHit->driftDist(tof-epsilon, wireAmb, eAngle, dAngle, z); 00262 00263 return (dist2-dist1)/(2*epsilon); // velocity in cm/s 00264 }
|
|
|
|
00150 { 00151 static Hep3Vector dir; 00152 static HepPoint3D pos; 00153 if (getParentRep() == 0) return 0.; 00154 getParentRep()->traj().getInfo(fltLen(), pos, dir); 00155 00156 double angle = dir.phi() - _dHit->phi(-pos.z()); 00157 while(angle<-Constants::pi/2.) angle +=Constants::pi; 00158 while(angle>Constants::pi/2.) angle -=Constants::pi; 00159 return angle; 00160 }
|
|
|
|
00139 { 00140 static Hep3Vector dir; 00141 static HepPoint3D pos; 00142 if (getParentRep() == 0) return 0.; 00143 getParentRep()->traj().getInfo(fltLen(), pos, dir); 00144 00145 return BesAngle(dir.phi() - pos.phi()); 00146 }
|
|
00063 { return _fitTime; }
|
|
00063 { return _fitTime; }
|
|
00091 {return _trkLen;}
|
|
00091 {return _trkLen;}
|
|
|
|
|
|
00272 { 00273 assert (_trkTraj == &(getParentRep()->traj())); 00274 deltaChi=_resid/hitRms(); // NOTE: use _INTERNAL_ residual 00275 return TrkErrCode(TrkErrCode::succeed); 00276 }
|
|
00249 { 00250 if (_poca==0 || _poca->status().failure()) { 00251 return TrkErrCode(TrkErrCode::fail); 00252 } 00253 // FIXME: I wish I could tell poca to NOT iterate 00254 // and ONLY compute the distance & derivatives... 00255 TrkDifPoca poca(*_trkTraj,fltLen(),*hitTraj(), hitLen(),_tolerance); 00256 if (poca.status().failure()) { 00257 return TrkErrCode(TrkErrCode::fail); 00258 } 00259 if (derivs.num_row() != 0) { 00260 poca.fetchDerivs(derivs); 00261 } else { 00262 derivs = poca.derivs(); 00263 } 00264 double sigInv = 1. / hitRms(); 00265 deltaChi = _resid * sigInv; // NOTE: use _INTERNAL_ residual 00266 derivs *= sigInv; 00267 return TrkErrCode(TrkErrCode::succeed); 00268 }
|
|
00073 {return _parentRep;}
|
|
00073 {return _parentRep;}
|
|
|
|
00153 { 00154 return getParentRep()->parentTrack(); 00155 }
|
|
00104 { return _poca != 0; }
|
|
00104 { return _poca != 0; }
|
|
00076 {return _theHit;}
|
|
00075 {return _theHit;}
|
|
00076 {return _theHit;}
|
|
00075 {return _theHit;}
|
|
00092 {return _hitLen;}
|
|
00092 {return _hitLen;}
|
|
00089 {return _hitRms;}
|
|
00089 {return _hitRms;}
|
|
Implements TrkHitOnTrk. |
|
Implements TrkHitOnTrk. 00332 {
00333 return _hitTraj;
00334 }
|
|
|
|
00200 {return _isActive;}
|
|
|
|
|
|
|
|
00201 {return (_isUsable > 0);}
|
|
|
|
|
|
Implements TrkHitOnTrk. |
|
|
|
Implements TrkHitOnTrk. 00164 { 00165 return layernumber(); 00166 }
|
|
00296 { 00297 return _dHit->layernumber(); 00298 }
|
|
Reimplemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
Reimplemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. 00338 {
00339 return 0;
00340 }
|
|
Reimplemented from TrkHitOnTrk. |
|
Reimplemented from TrkHitOnTrk. 00133 { 00134 return this; 00135 }
|
|
|
|
00202 {return (_isUsable > 1);}
|
|
|
|
|
|
|
|
|
|
|
|
00176 { 00177 return this == &rhs; 00178 }
|
|
00177 { return _parentRep;}
|
|
00177 { return _parentRep;}
|
|
|
|
00147 { 00148 return parentRep()->parentTrack(); 00149 }
|
|
|
|
00159 { 00160 return getParentRep()->particleType(); 00161 }
|
|
|
|
00132 { 00133 hit()->printAll(o); 00134 o << " hitlen " << hitLen() 00135 << " fltlen " << fltLen() 00136 << " act " << (isActive() != 0) << endl; 00137 }
|
|
|
|
00141 { 00142 print(o); 00143 }
|
|
|
|
|
|
|
|
|
|
00206 { 00207 assert(getParentRep()!=0); 00208 return getParentRep()->resid(this,resid,residErr,exclude); 00209 }
|
|
00192 { 00193 double r(-99999.9),re(-9999.9); 00194 bool s=getParentRep()->resid(this,r,re,exclude); 00195 if (!s && r<-99999.8) { 00196 #ifdef MDCPATREC_ROUTINE 00197 std::cout<<"ErrMsg(routine) " 00198 << "error calling parentRep()->residual()" << std::endl; 00199 #endif 00200 } 00201 return r; 00202 }
|
|
|
|
00213 { 00214 assert (_trkTraj == &(getParentRep()->traj())); 00215 return _resid; 00216 }
|
|
|
|
00097 { 00098 if (!isUsable() || isActive()==turnOn) return; 00099 if (getParentRep() != 0) { // needed until Rep-less HoTs go away 00100 turnOn ? parentRep()->activateHot(this) 00101 : parentRep()->deactivateHot(this); 00102 } else { 00103 _isActive = turnOn; 00104 } 00105 }
|
|
Reimplemented from TrkHitOnTrk. 00096 { _ambig = a<0?-1:a>0?1:0; }
|
|
Reimplemented from TrkHitOnTrk. 00096 { _ambig = a<0?-1:a>0?1:0; }
|
|
00147 {_trkLen = f;}
|
|
00147 {_trkLen = f;}
|
|
00178 {_hitLen = h;}
|
|
00178 {_hitLen = h;}
|
|
00176 {_resid = newResid;}
|
|
00176 {_resid = newResid;}
|
|
00154 {_hitRms = newRms;}
|
|
00154 {_hitRms = newRms;}
|
|
|
|
|
|
|
|
00171 { 00172 if (hit() != 0) hit()->setUnusedHit(this); 00173 }
|
|
|
|
00109 { 00110 _isUsable = usability; 00111 if (isActive() && !isUsable()) { 00112 _isActive = false; 00113 if(getParentRep() != 0)parentRep()->deactivateHot(this); 00114 } 00115 if (!isActive() && mustUse()) { 00116 _isActive = true; 00117 if(getParentRep() != 0)parentRep()->activateHot(this); 00118 } 00119 }
|
|
|
|
00165 { 00166 if (hit() != 0) hit()->setUsedHit(this); 00167 }
|
|
Implemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
Implemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
|
|
00031 {return 0;}
|
|
Implemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
Implemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
Implements TrkHitOnTrk. |
|
Implements TrkHitOnTrk. 00278 { 00279 double tresid(-1.0); 00280 if(timeResid(tresid,tErr)){ 00281 // add back the track time 00282 t = tresid + getParentRep()->parentTrack()->trackT0(); 00283 return true; 00284 } else 00285 return false; 00286 }
|
|
Implements TrkHitOnTrk. |
|
Implements TrkHitOnTrk. 00268 { 00269 double v = driftVelocity(); 00270 if (v <= 0) return false; 00271 t = (fabs(drift())-fabs(dcaToWire()))/v; 00272 tErr= hitRms()/v; 00273 return true; 00274 }
|
|
00077 { return _trkTraj;}
|
|
00077 { return _trkTraj;}
|
|
|
|
00121 { 00122 if (dca < 0 && ambig() >= 0) { 00123 setAmbig(-1); return isActive(); 00124 } else if (dca > 0 && ambig() <= 0) { 00125 setAmbig(1); return isActive(); 00126 } else { 00127 return false; 00128 } 00129 }
|
|
|
|
00201 { 00202 const TrkRep* tkRep = getParentRep(); 00203 assert(tkRep != 0); 00204 static HepPoint3D pos; static Hep3Vector dir; 00205 _trkTraj->getInfo(fltLen(), pos, dir); 00206 00207 // for bes3 cosmic test 00208 double newFltLen = 0.; 00209 if (mdcHit()->isCosmicFit()){ 00210 HepPoint3D poca = tkRep->position(0.); 00211 if ( pos.y() > poca.y()){ 00212 newFltLen -= fltLen(); 00213 }else{ 00214 newFltLen += fltLen(); 00215 } 00216 }else{ 00217 newFltLen = fltLen(); 00218 } 00219 00220 //double tof = tkRep->arrivalTime(fltLen()); 00221 double tof = tkRep->arrivalTime(newFltLen); 00222 // at this point, since dcaToWire is computed, _ambig must be either -1 or +1 00223 assert( ambig() == -1 || ambig() == 1 ); 00224 double eAngle = BesAngle(dir.phi() - pos.phi()); 00225 double dAngle =Constants::pi/2 - dir.theta(); 00226 double z = pos.z(); 00227 // note the special case for INCOMING tracks: 00228 // wire left of track implies hit on the right side of wire 00229 int wireAmb= fabs(eAngle)<Constants::pi/2?_ambig:-_ambig; 00230 // provide the underlying hit with the *external* information 00231 // needed to compute the drift distance, i.e. those numbers that 00232 // the hit cannot figure out by itself... 00233 double dist = _dHit->driftDist(tof, wireAmb, eAngle, dAngle, z); assert(dist>0); 00234 _fitTime = _dHit->driftTime(tof,z); 00235 _drift[ambig()<0?0:1] = ambig() * dist; 00236 assert( driftCurrent() ); 00237 00238 double newSig = _dHit->sigma(dist, wireAmb, eAngle, dAngle, z); 00239 00240 assert(newSig>0); 00241 setHitRms(newSig); 00242 }
|
|
Implements TrkHitOnTrk. |
|
Implements TrkHitOnTrk. 00176 { 00177 TrkErrCode status=updatePoca(traj,maintainAmb); 00178 if (status.failure()) { 00179 #ifdef MDCPATREC_DEBUG 00180 std::cout<<" ErrMsg(warning) " << "MdcHitOnTrack::updateMeasurement failed " << status << std::endl; 00181 #endif 00182 return status; 00183 } 00184 assert (_poca!=0); 00185 double dca=_poca->doca(); 00186 bool forceIteration = (maintainAmb&&ambig()!=0)?false:updateAmbiguity(dca); 00187 assert(ambig()!=0); 00188 // Check for hits beyond end plates. !!Turn off hit if it is == temp. hack 00189 if (isBeyondEndflange()) setUsability(false); 00190 if (forceIteration || !driftCurrent() ) { 00191 updateCorrections(); // force recomputation of drift for current ambig(), setting of hitRms 00192 forceIteration=true; 00193 } 00194 setHitResid(dca-drift()); 00195 return !forceIteration?status: 00196 TrkErrCode(TrkErrCode::succeed, 11, "Ambiguity flipped"); 00197 }
|
|
|
|
00220 { 00221 _trkTraj = (trkTraj!=0?trkTraj:&(getParentRep()->traj())); 00222 if (_poca==0) { 00223 _poca = new TrkPoca(*_trkTraj,fltLen(), 00224 *hitTraj(), hitLen(),_tolerance); 00225 } else { 00226 *_poca = TrkPoca(*_trkTraj,fltLen(), 00227 *hitTraj(), hitLen(),_tolerance); 00228 } 00229 if(_poca->status().failure()) { 00230 if(isActive()){ 00231 #ifdef MDCPATREC_WARNING 00232 std::cout<<"ErrMsg(warning) " 00233 << " TrkPoca failed in TrkHitOnTrk::updatePoca" 00234 << std::endl; 00235 #endif 00236 } 00237 delete _poca; _poca=0; 00238 return TrkErrCode(TrkErrCode::fail,4); 00239 } 00240 _trkLen = _poca->flt1(); 00241 _hitLen = _poca->flt2(); 00242 double dca=_poca->doca(); 00243 if (!maintainAmb) setAmbig(dca>0?+1:-1); 00244 return TrkErrCode(TrkErrCode::succeed); 00245 }
|
|
|
|
00123 { 00124 // could be cached 00125 double rms=hitRms(); 00126 assert(rms > 0); 00127 return double(1) / ( rms * rms ); 00128 }
|
|
Implements TrkHitOnTrk. |
|
Implements TrkHitOnTrk.
|
|
Reimplemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack. |
|
Reimplemented in MdcRecoHitOnTrack, and MdcRecoHitOnTrack.
|
|
|
|
00308 { 00309 return _dHit->wirenumber(); 00310 }
|
|
00060 { // hit wrt the wire location 00061 return fabs(entranceAngle())<Constants::pi/2?ambig():-ambig();}
|
|
00060 { // hit wrt the wire location 00061 return fabs(entranceAngle())<Constants::pi/2?ambig():-ambig();}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|