#include "TrackCand.h" #include #include ClassImp(TrackCand) TrackCand::TrackCand():_curv(0),_dip(0),_inv(false), _mcTrackId(-1),_qoverpSeed(0.){} TrackCand::~TrackCand(){} TrackCand::TrackCand(double curv, double dip, double inv, std::vector detIDs, std::vector hitIDs) : _detId(detIDs),_hitId(hitIDs),_curv(curv), _dip(dip), _inv(inv), _mcTrackId(-1),_qoverpSeed(0.) { assert(_detId.size()==_hitId.size()); _rho.resize(_detId.size(),0.); } TrackCand::TrackCand(double curv, double dip, double inv, std::vector detIDs, std::vector hitIDs,std::vector rhos) : _detId(detIDs),_hitId(hitIDs),_curv(curv), _dip(dip), _inv(inv), _mcTrackId(-1),_qoverpSeed(0.),_rho(rhos) { assert(_detId.size()==_hitId.size()); assert(_detId.size()==_rho.size()); } void TrackCand::addHit(unsigned int detId, unsigned int hitId, double rho) { _detId.push_back(detId); _hitId.push_back(hitId); _rho.push_back(rho); } std::vector TrackCand::GetHitIDs(int detId){ if(detId<0){ // return hits from all detectors return _hitId; } else { std::vector result; unsigned int n=_hitId.size(); for(int i=0;i=0) std::cout << "mcTrackId=" << _mcTrackId << std::endl; std::cout << "seed values for pos,direction, and q/p: " << std::endl; _posSeed.Print(); _dirSeed.Print(); std::cout << "q/p=" << _qoverpSeed << std::endl; assert(_detId.size()==_hitId.size()); std::cout << "detId|hitId|rho "; for(unsigned int i=0;i<_detId.size();++i){ std::cout << _detId.at(i) << "|" << _hitId.at(i) << "|" << _rho.at(i) << " "; } std::cout << std::endl; } void TrackCand::append(const TrackCand& rhs){ unsigned int detId,hitId; double rho; for(unsigned int i=0;i