/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
DataFormats/TrackReco/test/testTrack.cc
105 строк
5 KB
Cms Build
Clang-Format
03 июн 2019, 06:38
03 июн 2019, 06:38
0f65aee
Код
Авторство
О чём код?
#include <cppunit/extensions/HelperMacros.h> #include "DataFormats/TrackReco/interface/Track.h" class testTrack : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(testTrack); CPPUNIT_TEST(checkAll); CPPUNIT_TEST_SUITE_END(); public: void setUp() {} void tearDown() {} void checkAll(); }; CPPUNIT_TEST_SUITE_REGISTRATION(testTrack); void testTrack::checkAll() { const double chi2 = 20.0; const int ndof = 10; reco::Track::Point v(1, 2, 3); reco::Track::Vector p(10.1, 20.2, 30.3); double e[] = {1.1, 1.2, 2.2, 1.3, 2.3, 3.3, 1.4, 2.4, 3.4, 4.4, 1.5, 2.5, 3.5, 4.5, 5.5}; reco::TrackBase::CovarianceMatrix cov(e, e + 15); reco::Track t(chi2, ndof, v, p, +1, cov); CPPUNIT_ASSERT(t.chi2() == chi2); CPPUNIT_ASSERT(t.ndof() == ndof); CPPUNIT_ASSERT(t.normalizedChi2() == chi2 / ndof); CPPUNIT_ASSERT(t.vertex() == v); CPPUNIT_ASSERT(t.momentum() == p); //CPPUNIT_ASSERT( t.covariance() == cov ); int k = 0; CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(0, 0), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(1, 0), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(1, 1), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(2, 0), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(2, 1), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(2, 2), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(3, 0), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(3, 1), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(3, 2), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(3, 3), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(4, 0), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(4, 1), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(4, 2), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(4, 3), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(cov(4, 4), e[k++], 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(0, 0), cov(0, 0), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(0, 1), cov(0, 1), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(0, 2), cov(0, 2), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(0, 3), cov(0, 3), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(0, 4), cov(0, 4), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(1, 1), cov(1, 1), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(1, 2), cov(1, 2), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(1, 3), cov(1, 3), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(1, 4), cov(1, 4), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(2, 2), cov(2, 2), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(2, 3), cov(2, 3), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(2, 4), cov(2, 4), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(3, 3), cov(3, 3), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(3, 4), cov(3, 4), 1e-6); CPPUNIT_ASSERT_DOUBLES_EQUAL(t.covariance(4, 4), cov(4, 4), 1e-6); auto qual = reco::TrackBase::qualityByName("highPurity"); CPPUNIT_ASSERT(qual == reco::TrackBase::highPurity); t.setQuality(reco::TrackBase::loose); CPPUNIT_ASSERT(t.quality(reco::TrackBase::loose) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::highPurity) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::confirmed) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::goodIterative) == false); t.setQuality(reco::TrackBase::highPurity); CPPUNIT_ASSERT(t.quality(reco::TrackBase::loose) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::highPurity) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::confirmed) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::goodIterative) == true); t.setQuality(reco::TrackBase::confirmed); CPPUNIT_ASSERT(t.quality(reco::TrackBase::loose) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::highPurity) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::confirmed) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::goodIterative) == true); t.setQuality(reco::TrackBase::undefQuality); CPPUNIT_ASSERT(t.quality(reco::TrackBase::loose) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::highPurity) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::confirmed) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::goodIterative) == false); t.setQuality(reco::TrackBase::loose); t.setQuality(reco::TrackBase::confirmed); CPPUNIT_ASSERT(t.quality(reco::TrackBase::loose) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::highPurity) == false); CPPUNIT_ASSERT(t.quality(reco::TrackBase::confirmed) == true); CPPUNIT_ASSERT(t.quality(reco::TrackBase::goodIterative) == false); reco::TrackBase::AlgoMask am; t.setAlgorithm(reco::TrackBase::ctf); am.set(reco::TrackBase::ctf); CPPUNIT_ASSERT(t.algo() == reco::TrackBase::ctf); CPPUNIT_ASSERT(t.algoMask() == am); am.set(reco::TrackBase::cosmics); t.setOriginalAlgorithm(reco::TrackBase::cosmics); CPPUNIT_ASSERT(t.algo() == reco::TrackBase::ctf); CPPUNIT_ASSERT(t.originalAlgo() == reco::TrackBase::cosmics); CPPUNIT_ASSERT(t.algoMask() == am); }