#include "Track.h" //#include "TROOT.h" #include "TVirtualGeoTrack.h" #include "VirtSpacePointRecoHit.h" #include #include Track::Track(AbsTrackRep* defaultRep) : _cardinal_rep(0), _nextHitToFit(0) { trackReps = new TObjArray(defNumTrackReps); trackReps->Add(defaultRep); } Track::Track() : _cardinal_rep(0), _nextHitToFit(0) { trackReps = new TObjArray(defNumTrackReps); } Track::~Track() { for(int i=0;iAt(i); } for(unsigned int i=0;iclone()); } trackReps = new TObjArray(defNumTrackReps); for(int i=0; i<_tr.getNumReps();i++) { trackReps->Add( (_tr.getTrackRep(i))->clone() ); } } void Track::mergeHits(Track* trk){ unsigned int nhits=trk->getNumHits(); for(unsigned int i=0;igetCand().getHit(i,detId,hitId); AbsRecoHit* hit=trk->getHit(i); addHit(hit,detId,hitId); } trk->hits.clear(); } void Track::setCandidate(const TrackCand& cand, bool reset) { _cand=cand; // reset fits if(reset) { for(int i=0;iAt(i))->reset(); } } } void Track::fillGeoTrack(TVirtualGeoTrack* geotrk,unsigned int repid) const { AbsTrackRep* rep=getTrackRep(repid); unsigned int n=_cand.getNHits(); rep->getState().Print(); rep->getStartState().Print(); for(unsigned int i=0; igetDetPlane(rep); TVector3 pos=rep->getPos(pl); std::cout<AddPoint(pos.X(),pos.Y(),pos.Z(),0); }// end loop over hits } void Track::getResiduals(unsigned int detId, // which detector? unsigned int dim, // which projection? unsigned int repid, // which trackrep ? std::vector& result) { unsigned int nhits=getNumHits(); if(repid>=getNumReps())return; AbsTrackRep* rep=getTrackRep(repid);//->clone(); assert(rep->getState()==getTrackRep(repid)->getState()); for(unsigned int ih=0; ihgetDim(); TMatrixT state(repDim,1); DetPlane pl=hit->getDetPlane(rep); rep->extrapolate(pl,state); //rep->setState(state); //rep->setReferencePlane(pl); double res=hit->residualVector(rep,state)[dim][0]; //std::cout<extrapolate(pl); } } void Track::stepalong(double h){ getCardinalRep()->stepalong(h); TVector3 pos=getCardinalRep()->getPos(); // take the other reps with you! if(getNumReps()>1)gotoPoint(pos); } ClassImp(Track)