//************************************************************* void MINDsetup::setResolution(){ //************************************************************* /* */ _msetup.message("+++ setResolution function +++",bhep::VERBOSE); resolution = EVector(meas_dim,0); resolution[0] = resx*mm; resolution[1] = resy*mm; // cov of measurements cov = EMatrix(meas_dim,meas_dim,0); for (size_t i = 0; i < (size_t)meas_dim; i++) cov[i][i] = resolution[i]*resolution[i]; }
//-------------------------------------------------------------------- RP::Trajectory* KFSvcManager::CreateTrajectory(std::vector<const Hit* > hits, std::vector<double> hitErrors) //-------------------------------------------------------------------- { log4cpp::Category& klog = log4cpp::Category::getRoot(); klog << log4cpp::Priority::DEBUG << " In CreateTrajectory --> " ; klog << log4cpp::Priority::DEBUG << "Cov Matrix --> " ; EVector m(3,0); fCov = EMatrix(3,3,0); for (size_t i=0; i<3; ++i) { fCov[i][i] = hitErrors[i]; } klog << log4cpp::Priority::DEBUG << "Cov Matrix --> " << fCov; // destroy measurements in fMeas container //stc_tools::destroy(fMeas); RP::measurement_vector fMeas; auto size = hits.size(); klog << log4cpp::Priority::DEBUG << " size of hits --> " << size; klog << log4cpp::Priority::DEBUG << " fill measurement vector --> " << size; for(auto hit : hits) { m[0]=hit->XYZ().X(); m[1]=hit->XYZ().Y(); m[2]=hit->XYZ().Z(); klog << log4cpp::Priority::DEBUG << "+++hit x = " << m[0] << " y = " << m[1] << " z = " << m[2]; klog << log4cpp::Priority::DEBUG << "Create a measurement " ; Measurement* meas = new Measurement(); string type=RP::xyz; meas->set_name(type); // the measurement type meas->set_hv(HyperVector(m,fCov,type)); // the HyperVector meas->set_deposited_energy(hit->Edep()); // the deposited energy meas->set_name(RP::setup_volume,"mother"); // the volume // the position of the measurement klog << log4cpp::Priority::DEBUG << "Create measurement plane " ; meas->set_position_hv(HyperVector(m,EMatrix(3,3,0),RP::xyz)); // Add the measurement to the vector fMeas.push_back(meas); } // add the measurements to the trajectory klog << log4cpp::Priority::INFO << " Measurement vector created " ; Trajectory* trj = new Trajectory(); trj->add_constituents(fMeas); klog << log4cpp::Priority::INFO << " Trajectory --> " << *trj ; return trj; }