00001
00002
00003 #include <StjTrackList.h>
00004
00005 #include <StjTrackListCut.h>
00006
00007 #include <StjTrackCutDca.h>
00008 #include <StjTrackCutDcaPtDependent.h>
00009 #include <StjTrackCutEta.h>
00010 #include <StjTrackCutPossibleHitRatio.h>
00011 #include <StjTrackCutNHits.h>
00012 #include <StjTrackCutFlag.h>
00013
00014 #include <iostream>
00015 #include <set>
00016 #include <cmath>
00017
00018 #include "StjTrackListCutTest.hh"
00019
00020 using namespace std;
00021
00022
00023 CPPUNIT_TEST_SUITE_REGISTRATION( StjTrackListCutTest );
00024
00025 void StjTrackListCutTest::setUp()
00026 {
00027
00028 }
00029
00030 void StjTrackListCutTest::tearDown()
00031 {
00032
00033 }
00034
00035
00036 void StjTrackListCutTest::testFlag()
00037 {
00038 StjTrackListCut *cut = new StjTrackListCut();
00039 cut->addCut(new StjTrackCutNHits());
00040
00041 StjTrackList listIn;
00042
00043 StjTrack track1;
00044 track1.flag = 30;
00045 listIn.push_back(track1);
00046
00047 StjTrack track2;
00048 track2.flag = -3;
00049 listIn.push_back(track2);
00050
00051 StjTrackList listExpected;
00052 listExpected.push_back(track1);
00053
00054
00055 StjTrackList listActual = (*cut)(listIn);
00056
00057 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00058
00059 delete cut;
00060 }
00061
00062 void StjTrackListCutTest::testNHits()
00063 {
00064 StjTrackListCut *cut = new StjTrackListCut();
00065 cut->addCut(new StjTrackCutNHits());
00066
00067 StjTrackList listIn;
00068
00069 StjTrack track1;
00070 track1.nHits = 13;
00071 listIn.push_back(track1);
00072
00073 StjTrack track2;
00074 track2.nHits = 11;
00075 listIn.push_back(track2);
00076
00077 StjTrack track3;
00078 track3.nHits = 12;
00079 listIn.push_back(track3);
00080
00081 StjTrackList listExpected;
00082 listExpected.push_back(track1);
00083
00084
00085 StjTrackList listActual = (*cut)(listIn);
00086
00087 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00088
00089 delete cut;
00090 }
00091
00092 void StjTrackListCutTest::test2005()
00093 {
00094 StjTrackListCut *cut = new StjTrackListCut();
00095 cut->addCut(new StjTrackCutDca());
00096 cut->addCut(new StjTrackCutEta());
00097
00098
00099 StjTrackList listIn;
00100
00101 StjTrack track1;
00102 track1.Tdca = 2.9;
00103 track1.eta = 0.2;
00104 listIn.push_back(track1);
00105
00106 StjTrack track2;
00107 track2.Tdca = 3.1;
00108 track2.eta = 0.2;
00109 listIn.push_back(track2);
00110
00111 StjTrack track3;
00112 track3.Tdca = 2.9;
00113 track3.eta = 2.1;
00114 listIn.push_back(track3);
00115
00116 StjTrack track4;
00117 track4.Tdca = 2.9;
00118 track4.eta = -2.1;
00119 listIn.push_back(track4);
00120
00121 StjTrackList listExpected;
00122 listExpected.push_back(track1);
00123
00124
00125 StjTrackList listActual = (*cut)(listIn);
00126
00127 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00128
00129 delete cut;
00130 }
00131
00132
00133 void StjTrackListCutTest::test2006()
00134 {
00135 StjTrackListCut *cut = new StjTrackListCut();
00136 cut->addCut(new StjTrackCutDca());
00137 cut->addCut(new StjTrackCutDcaPtDependent());
00138 cut->addCut(new StjTrackCutEta());
00139
00140
00141 StjTrackList listIn;
00142
00143 StjTrack track1;
00144 track1.pt = 0.8;
00145 track1.Tdca = 2.9;
00146 track1.dcaD = 2.9;
00147 track1.eta = 0.2;
00148 listIn.push_back(track1);
00149
00150 StjTrack track2;
00151 track2.pt = 0.8;
00152 track2.Tdca = 2.9;
00153 track2.dcaD = 3.1;
00154 track2.eta = 0.2;
00155 listIn.push_back(track2);
00156
00157 StjTrack track3;
00158 track3.pt = 0.8;
00159 track3.Tdca = 2.9;
00160 track3.dcaD = 2.9;
00161 track3.eta = 2.1;
00162 listIn.push_back(track3);
00163
00164 StjTrack track4;
00165 track4.pt = 0.8;
00166 track4.Tdca = 2.9;
00167 track4.dcaD = 2.9;
00168 track4.eta = -2.1;
00169 listIn.push_back(track4);
00170
00171 StjTrack track5;
00172 track5.pt = 0.4;
00173 track5.Tdca = 2.9;
00174 track5.dcaD = 1.9;
00175 track5.eta = 1.1;
00176 listIn.push_back(track5);
00177
00178 StjTrack track6;
00179 track6.pt = 0.4;
00180 track6.Tdca = 2.9;
00181 track6.dcaD = 2.1;
00182 track6.eta = 1.1;
00183 listIn.push_back(track6);
00184
00185 StjTrack track7;
00186 track7.pt = 0.8;
00187 track7.Tdca = 2.9;
00188 track7.dcaD = 1.1;
00189 track7.eta = 1.1;
00190 listIn.push_back(track7);
00191
00192 StjTrack track8;
00193 track8.pt = 0.8;
00194 track8.Tdca = 2.9;
00195 track8.dcaD = 1.5;
00196 track8.eta = 1.1;
00197 listIn.push_back(track8);
00198
00199 StjTrack track9;
00200 track9.pt = 1.1;
00201 track9.Tdca = 2.9;
00202 track9.dcaD = 0.9;
00203 track9.eta = 1.1;
00204 track9.nHits = 10;
00205 track9.nHitsPoss = 11;
00206 listIn.push_back(track9);
00207
00208 StjTrack track10;
00209 track10.pt = 1.1;
00210 track10.Tdca = 2.9;
00211 track10.dcaD = 1.1;
00212 track10.eta = 1.1;
00213 listIn.push_back(track10);
00214
00215 StjTrackList listExpected;
00216 listExpected.push_back(track5);
00217 listExpected.push_back(track7);
00218 listExpected.push_back(track9);
00219
00220
00221 StjTrackList listActual = (*cut)(listIn);
00222
00223 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00224
00225 delete cut;
00226 }