// DetectorSimulator_t.cpp #include "DetectorSimulatorTest.h" #include #include #include #include "trfutil/trfstream.h" #include "trfbase/VTrack.h" #include "LayerTest.h" #include "DetectorTest.h" #include "LayerSimulatorTest.h" using std::cout; using std::cerr; using std::endl; using std::string; using namespace trf; //********************************************************************** int main( ) { string component = "DetectorSimulator"; string ok_prefix = component + " (I): "; string error_prefix = component + " test (E): "; cout << ok_prefix << "---------- Testing component " + component + ". ----------" << endl; // Make sure assert is enabled. bool assert_flag = false; assert ( ( assert_flag = true, assert_flag ) ); if ( ! assert_flag ) { cerr << "Assert is disabled" << endl; return 1; } //******************************************************************** cout << ok_prefix << "Check return status." << endl; cout << trf_format; assert( ! DetectorSimulator::OK ); assert( DetectorSimulator::UNKNOWN_NAME != DetectorSimulator::OK ); assert( DetectorSimulator::LAYER_MISMATCH != DetectorSimulator::OK ); //******************************************************************** cout << ok_prefix << "Check constructor." << endl; LayerPtr plyr1, plyr2, plyr3; plyr1 = new LayerTest(1.0); plyr2 = new LayerTest(2.0); plyr3 = new LayerTest(3.0); DetectorSimulator::LayerSimulatorPtr plsim1( new LayerSimulatorTest(plyr1) ); DetectorSimulator::LayerSimulatorPtr plsim2( new LayerSimulatorTest(plyr2) ); DetectorSimulator::LayerSimulatorPtr plsim3( new LayerSimulatorTest(plyr3) ); DetectorPtr pdet12; pdet12 = new TwoLayerDetectorTest("LYR1",plyr1,"LYR2",plyr2); DetectorPtr pdet3; pdet3 = new OneLayerDetectorTest("LYR3",plyr3); cout << *pdet12 << endl; cout << *pdet3 << endl; TwoLayerDetectorSimulatorTest dsim12(pdet12,"LYR1",plsim1,"LYR2",plsim2); OneLayerDetectorSimulatorTest dsim3(pdet3,"LYR3",plsim3); cout << dsim12 << endl; cout << dsim3 << endl; assert( dsim12.get_generators().size() == 2 ); assert( dsim3.get_generators().size() == 1 ); //******************************************************************** cout << ok_prefix << "Combine detector simulators." << endl; DetectorPtr pdet123; pdet123 = new TwoSubDetectorTest(pdet12,pdet3); cout << *pdet123 << endl; TwoSubDetectorSimulatorTest dsim123(pdet123,dsim12,dsim3); assert( dsim123.get_generators().size() == 3 ); cout << dsim123 << endl; //******************************************************************** cout << ok_prefix << "------------- All tests passed. -------------" << endl; return 0; //******************************************************************** }