00001 #ifndef SCTTEST_TESTAPI
00002 #define SCTTEST_TESTAPI
00003
00004 #include "SctApi/SctApi.h"
00005 #include "SctApi/SctApiHisto.h"
00006 #include <memory>
00007 #include <string>
00008 #include <boost/shared_ptr.hpp>
00009 #include "Globals.h"
00010
00011 using std::string;
00012 using std::auto_ptr;
00013
00014 class TH1F;
00015 class TFile;
00016
00017 namespace SctConfiguration {
00018 class Configuration;
00019 }
00020
00021 namespace SctTest {
00022
00023 class TestApi : public SctApi::SctApi {
00024 public:
00025 TestApi();
00026 TestApi(boost::shared_ptr<SctConfiguration::Configuration> newConf);
00027 virtual ~TestApi() {}
00028
00029 protected:
00030
00031 virtual int initialiseRod(unsigned int partition, unsigned int crate, unsigned int rod);
00032 virtual int initialiseTim(unsigned int partition, unsigned int crate);
00033 virtual int initialiseBOC(unsigned int partition, unsigned int crate, unsigned int rod);
00034
00035
00036
00037 virtual void getABCDModule(UINT32 mid, ::SctApi::BankType bank);
00038 virtual void setABCDModule(UINT32 mid, ::SctApi::BankType bank);
00039 virtual void sendABCDModule(UINT32 mid, ::SctApi::BankType bank, UINT32 type=2);
00040 virtual void sendAllABCDModules(::SctApi::BankType bank, UINT32 type = 2);
00041
00042
00043 virtual bool preScanHardwareCheck(::SctApi::Scan& scan, ::SctApi::ScanEx& extra);
00044 virtual int pollHistogramming(::SctApi::ScanEx &ex, int bins, int events, int timeout);
00045 virtual char* readHistogramRawData(const ::SctApi::Scan& scan, const ::SctApi::ScanEx& extra, UINT32 mid, int frame);
00046
00047 private:
00048 static double calculateScanTime(const ::SctApi::ScanEx& ex);
00049 void modifyScanInformation(const ::SctApi::Scan& c_scan, const TH1F& triggerData);
00050 };
00051
00052 }
00053
00054 #endif //SCTTEST_TESTAPI