00001
00002
00003 #include <StBET4pMakerImpBuilder.h>
00004 #include <StBET4pMakerImp.h>
00005
00006 #include <StjTPCMuDst.h>
00007 #include <StjBEMCMuDst.h>
00008 #include <StjEEMCMuDst.h>
00009 #include <StjTPCNull.h>
00010 #include <StjBEMCNull.h>
00011 #include <StjEEMCNull.h>
00012 #include <StjTPCTree.h>
00013 #include <StjBEMCTree.h>
00014
00015 #include <StjTrackListCut.h>
00016
00017 #include <StjTrackCutDca.h>
00018 #include <StjTrackCutDcaPtDependent.h>
00019 #include <StjTrackCutEta.h>
00020 #include <StjTrackCutPossibleHitRatio.h>
00021
00022 #include <StjTowerEnergyListCut.h>
00023
00024 #include <StjTowerEnergyCut2003BemcTower.h>
00025 #include <StjTowerEnergyCutBemcWestOnly.h>
00026 #include <StjTowerEnergyCutEnergy.h>
00027 #include <StjTowerEnergyCutBemcStatus.h>
00028 #include <StjTowerEnergyCutAdc.h>
00029
00030 #include "StBET4pMakerImpBuilderTest.hh"
00031
00032
00033 using namespace std;
00034
00035
00036 CPPUNIT_TEST_SUITE_REGISTRATION( StBET4pMakerImpBuilderTest );
00037
00038 void StBET4pMakerImpBuilderTest::setUp()
00039 {
00040
00041 }
00042
00043 void StBET4pMakerImpBuilderTest::tearDown()
00044 {
00045
00046 }
00047
00048 void StBET4pMakerImpBuilderTest::test2003()
00049 {
00050 StMuDstMaker* uDstMaker(0);
00051 bool doTowerSwapFix = true;
00052 bool useTPC = true;
00053 bool useBEMC = true;
00054 bool useEEMC = false;
00055 bool use2003Cuts = true;
00056 bool use2005Cuts = false;
00057 bool use2006Cuts = false;
00058
00059 StBET4pMakerImpBuilder builder;
00060 StBET4pMakerImp* imp = builder.build(useTPC, useBEMC, useEEMC, use2003Cuts, use2005Cuts, use2006Cuts, uDstMaker, doTowerSwapFix);
00061
00062 imp->Init();
00063
00064 CPPUNIT_ASSERT( dynamic_cast<StjTPCMuDst*>(imp->TPC()) );
00065 CPPUNIT_ASSERT( dynamic_cast<StjBEMCMuDst*>(imp->BEMC()) );
00066 CPPUNIT_ASSERT( dynamic_cast<StjEEMCNull*>(imp->EEMC()) );
00067
00068 StjTowerEnergyListCut* bemcCut = imp->getBEMCEnergyCut();
00069 StjTowerEnergyListCut::CutList bemcCutList = bemcCut->getCutList();
00070 CPPUNIT_ASSERT_EQUAL( (size_t)4, bemcCutList.size() );
00071 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCut2003BemcTower*>(bemcCutList[0]) );
00072 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutEnergy*>(bemcCutList[1]) );
00073 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutBemcStatus*>(bemcCutList[2]) );
00074 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutAdc*>(bemcCutList[3]) );
00075
00076
00077 StjTrackListCut* tpcCut = imp->getTPCTrackCut();
00078 StjTrackListCut::CutList tpcCutList = tpcCut->getCutList();
00079 CPPUNIT_ASSERT_EQUAL( (size_t)3, tpcCutList.size() );
00080 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDca*>(tpcCutList[0]) );
00081 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutEta*>(tpcCutList[1]) );
00082 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutPossibleHitRatio*>(tpcCutList[2]) );
00083
00084 delete imp;
00085 }
00086
00087 void StBET4pMakerImpBuilderTest::test2005()
00088 {
00089 StMuDstMaker* uDstMaker(0);
00090 bool doTowerSwapFix = true;
00091 bool useTPC = true;
00092 bool useBEMC = true;
00093 bool useEEMC = false;
00094 bool use2003Cuts = false;
00095 bool use2005Cuts = true;
00096 bool use2006Cuts = false;
00097
00098 StBET4pMakerImpBuilder builder;
00099 StBET4pMakerImp* imp = builder.build(useTPC, useBEMC, useEEMC, use2003Cuts, use2005Cuts, use2006Cuts, uDstMaker, doTowerSwapFix);
00100
00101 imp->Init();
00102
00103
00104 CPPUNIT_ASSERT( dynamic_cast<StjTPCMuDst*>(imp->TPC()) );
00105 CPPUNIT_ASSERT( dynamic_cast<StjBEMCMuDst*>(imp->BEMC()) );
00106 CPPUNIT_ASSERT( dynamic_cast<StjEEMCNull*>(imp->EEMC()) );
00107
00108 StjTowerEnergyListCut* bemcCut = imp->getBEMCEnergyCut();
00109 StjTowerEnergyListCut::CutList bemcCutList = bemcCut->getCutList();
00110 CPPUNIT_ASSERT_EQUAL( (size_t)4, bemcCutList.size() );
00111 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutBemcWestOnly*>(bemcCutList[0]) );
00112 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutEnergy*>(bemcCutList[1]) );
00113 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutBemcStatus*>(bemcCutList[2]) );
00114 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutAdc*>(bemcCutList[3]) );
00115
00116 StjTrackListCut* tpcCut = imp->getTPCTrackCut();
00117 StjTrackListCut::CutList tpcCutList = tpcCut->getCutList();
00118 CPPUNIT_ASSERT_EQUAL( (size_t)3, tpcCutList.size() );
00119 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDca*>(tpcCutList[0]) );
00120 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutEta*>(tpcCutList[1]) );
00121 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutPossibleHitRatio*>(tpcCutList[2]) );
00122
00123 delete imp;
00124 }
00125
00126 void StBET4pMakerImpBuilderTest::test2006()
00127 {
00128 StMuDstMaker* uDstMaker(0);
00129 bool doTowerSwapFix = true;
00130 bool useTPC = true;
00131 bool useBEMC = true;
00132 bool useEEMC = true;
00133 bool use2003Cuts = false;
00134 bool use2005Cuts = false;
00135 bool use2006Cuts = true;
00136
00137 StBET4pMakerImpBuilder builder;
00138 StBET4pMakerImp* imp = builder.build(useTPC, useBEMC, useEEMC, use2003Cuts, use2005Cuts, use2006Cuts, uDstMaker, doTowerSwapFix);
00139
00140 imp->Init();
00141
00142
00143 CPPUNIT_ASSERT( dynamic_cast<StjTPCMuDst*>(imp->TPC()) );
00144 CPPUNIT_ASSERT( dynamic_cast<StjBEMCMuDst*>(imp->BEMC()) );
00145 CPPUNIT_ASSERT( dynamic_cast<StjEEMCMuDst*>(imp->EEMC()) );
00146
00147 StjTowerEnergyListCut* bemcCut = imp->getBEMCEnergyCut();
00148 StjTowerEnergyListCut::CutList bemcCutList = bemcCut->getCutList();
00149 CPPUNIT_ASSERT_EQUAL( (size_t)3, bemcCutList.size() );
00150 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutEnergy*>(bemcCutList[0]) );
00151 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutBemcStatus*>(bemcCutList[1]) );
00152 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutAdc*>(bemcCutList[2]) );
00153
00154
00155 StjTrackListCut* tpcCut = imp->getTPCTrackCut();
00156 StjTrackListCut::CutList tpcCutList = tpcCut->getCutList();
00157 CPPUNIT_ASSERT_EQUAL( (size_t)4, tpcCutList.size() );
00158 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDca*>(tpcCutList[0]) );
00159 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDcaPtDependent*>(tpcCutList[1]) );
00160 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutEta*>(tpcCutList[2]) );
00161 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutPossibleHitRatio*>(tpcCutList[3]) );
00162
00163 delete imp;
00164 }
00165
00166 void StBET4pMakerImpBuilderTest::testBEMCout()
00167 {
00168 StMuDstMaker* uDstMaker(0);
00169 bool doTowerSwapFix = true;
00170 bool useTPC = true;
00171 bool useBEMC = false;
00172 bool useEEMC = true;
00173 bool use2003Cuts = false;
00174 bool use2005Cuts = false;
00175 bool use2006Cuts = true;
00176
00177 StBET4pMakerImpBuilder builder;
00178 StBET4pMakerImp* imp = builder.build(useTPC, useBEMC, useEEMC, use2003Cuts, use2005Cuts, use2006Cuts, uDstMaker, doTowerSwapFix);
00179
00180 imp->Init();
00181
00182
00183 CPPUNIT_ASSERT( dynamic_cast<StjTPCMuDst*>(imp->TPC()) );
00184 CPPUNIT_ASSERT( dynamic_cast<StjBEMCNull*>(imp->BEMC()) );
00185 CPPUNIT_ASSERT( dynamic_cast<StjEEMCMuDst*>(imp->EEMC()) );
00186
00187 StjTowerEnergyListCut* bemcCut = imp->getBEMCEnergyCut();
00188 StjTowerEnergyListCut::CutList bemcCutList = bemcCut->getCutList();
00189 CPPUNIT_ASSERT_EQUAL( (size_t)0, bemcCutList.size() );
00190
00191 StjTrackListCut* tpcCut = imp->getTPCTrackCut();
00192 StjTrackListCut::CutList tpcCutList = tpcCut->getCutList();
00193 CPPUNIT_ASSERT_EQUAL( (size_t)4, tpcCutList.size() );
00194 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDca*>(tpcCutList[0]) );
00195 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutDcaPtDependent*>(tpcCutList[1]) );
00196 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutEta*>(tpcCutList[2]) );
00197 CPPUNIT_ASSERT( dynamic_cast<StjTrackCutPossibleHitRatio*>(tpcCutList[3]) );
00198
00199 delete imp;
00200 }
00201
00202 void StBET4pMakerImpBuilderTest::testTPCout()
00203 {
00204 StMuDstMaker* uDstMaker(0);
00205 bool doTowerSwapFix = true;
00206 bool useTPC = false;
00207 bool useBEMC = true;
00208 bool useEEMC = true;
00209 bool use2003Cuts = false;
00210 bool use2005Cuts = false;
00211 bool use2006Cuts = true;
00212
00213 StBET4pMakerImpBuilder builder;
00214 StBET4pMakerImp* imp = builder.build(useTPC, useBEMC, useEEMC, use2003Cuts, use2005Cuts, use2006Cuts, uDstMaker, doTowerSwapFix);
00215
00216 imp->Init();
00217
00218
00219 CPPUNIT_ASSERT( dynamic_cast<StjTPCNull*>(imp->TPC()) );
00220 CPPUNIT_ASSERT( dynamic_cast<StjBEMCMuDst*>(imp->BEMC()) );
00221 CPPUNIT_ASSERT( dynamic_cast<StjEEMCMuDst*>(imp->EEMC()) );
00222
00223 StjTowerEnergyListCut* bemcCut = imp->getBEMCEnergyCut();
00224 StjTowerEnergyListCut::CutList bemcCutList = bemcCut->getCutList();
00225 CPPUNIT_ASSERT_EQUAL( (size_t)3, bemcCutList.size() );
00226 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutEnergy*>(bemcCutList[0]) );
00227 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutBemcStatus*>(bemcCutList[1]) );
00228 CPPUNIT_ASSERT( dynamic_cast<StjTowerEnergyCutAdc*>(bemcCutList[2]) );
00229
00230
00231 StjTrackListCut* tpcCut = imp->getTPCTrackCut();
00232 StjTrackListCut::CutList tpcCutList = tpcCut->getCutList();
00233 CPPUNIT_ASSERT_EQUAL( (size_t)0, tpcCutList.size() );
00234
00235 delete imp;
00236 }
00237