/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus * * MAUS is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * MAUS is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MAUS. If not, see . * */ #include // MAUS headers #include "src/common_cpp/DataStructure/SciFiHelicalPRTrack.hh" namespace MAUS { // Constructors SciFiHelicalPRTrack::SciFiHelicalPRTrack() : SciFiBasePRTrack(), _tracker(-1), _R(-1.0), _phi0(-1.0), _dsdz(-1.0), _line_sz_c(-1.0), _line_sz_chisq(-1.0), _circle_x0(-1.0), _circle_y0(-1.0), _circle_chisq(-1.0), _point_spread(-1.0), _pos0(-1.0, -1.0, -1.0), _phi(0) { } SciFiHelicalPRTrack::SciFiHelicalPRTrack(int tracker, int charge, ThreeVector pos0, double phi0, SimpleCircle circle, SimpleLine line_sz, double point_spread, DoubleArray phi, SciFiSpacePointPArray spoints, const DoubleArray& covariance) : SciFiBasePRTrack(charge, covariance, spoints), _tracker(tracker), _R(circle.get_R()), _phi0(phi0), _dsdz(line_sz.get_m()), _line_sz_c(line_sz.get_c()), _line_sz_chisq(line_sz.get_chisq()), _circle_x0(circle.get_x0()), _circle_y0(circle.get_y0()), _circle_chisq(circle.get_chisq()), _point_spread(point_spread), _pos0(pos0), _phi(phi) { this->set_chi_squared(_circle_chisq + _line_sz_chisq); this->set_ndf((2*this->get_num_points()) - 5); } // Destructor SciFiHelicalPRTrack::~SciFiHelicalPRTrack() { // Do nothing } // Assignment operator SciFiHelicalPRTrack &SciFiHelicalPRTrack::operator=(const SciFiHelicalPRTrack &htrk) { if (this == &htrk) { return *this; } SciFiBasePRTrack::operator=(htrk); _R = htrk.get_R(); _phi0 = htrk.get_phi0(); _dsdz = htrk.get_dsdz(); _line_sz_c = htrk.get_line_sz_c(); _line_sz_chisq = htrk.get_line_sz_chisq(); _circle_chisq = htrk.get_circle_chisq(); _circle_x0 = htrk.get_circle_x0(); _circle_y0 = htrk.get_circle_y0(); _tracker = htrk.get_tracker(); _point_spread = htrk.get_point_spread(); _pos0 = htrk.get_pos0(); _phi = htrk.get_phi(); return *this; } void SciFiHelicalPRTrack::form_total_chi_squared() { this->set_chi_squared(_circle_chisq + _line_sz_chisq); } SciFiHelicalPRTrack::SciFiHelicalPRTrack(const SciFiHelicalPRTrack &htrk) : SciFiBasePRTrack(htrk), _tracker(htrk.get_tracker()), _R(htrk.get_R()), _phi0(htrk.get_phi0()), _dsdz(htrk.get_dsdz()), _line_sz_c(htrk.get_line_sz_c()), _line_sz_chisq(htrk.get_line_sz_chisq()), _circle_x0(htrk.get_circle_x0()), _circle_y0(htrk.get_circle_y0()), _circle_chisq(htrk.get_circle_chisq()), _point_spread(htrk.get_point_spread()), _pos0(htrk.get_pos0()), _phi(htrk.get_phi()) { } } // ~namespace MAUS