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 SctApi {
00022 class Idiosyncrasy;
00023 };
00024
00025 namespace SctTest {
00026
00027 class TestApi : public SctApi::SctApi {
00028 public:
00029 TestApi(const ::SctApi::Idiosyncrasy & id);
00030 TestApi(const ::SctApi::Idiosyncrasy & id, boost::shared_ptr<SctConfiguration::Configuration> newConf);
00031 virtual ~TestApi() {}
00032
00033 protected:
00034
00035 virtual int initialiseRod(unsigned int partition, unsigned int crate, unsigned int rod);
00036 virtual int initialiseTim(unsigned int partition, unsigned int crate);
00037 virtual int initialiseBOC(unsigned int partition, unsigned int crate, unsigned int rod);
00038
00039
00040
00041 virtual void getABCDModule(UINT32 mid, ::SctApi::BankType bank);
00042 virtual void setABCDModule(UINT32 mid, ::SctApi::BankType bank);
00043 virtual void sendABCDModule(UINT32 mid, ::SctApi::BankType bank, UINT32 type=2);
00044 virtual void sendAllABCDModules(::SctApi::BankType bank, UINT32 type = 2);
00045
00046
00047 virtual bool preScanHardwareCheck(::SctApi::Scan& scan, ::SctApi::ScanEx& extra);
00048 virtual int pollHistogramming(::SctApi::ScanEx &ex, int bins, int events, int timeout);
00049 virtual char* readHistogramRawData(const ::SctApi::Scan& scan, const ::SctApi::ScanEx& extra, UINT32 mid, int frame);
00050
00051 private:
00052 static double calculateScanTime(const ::SctApi::ScanEx& ex);
00053 void modifyScanInformation(const ::SctApi::Scan& c_scan, const TH1F& triggerData);
00054 };
00055
00056 }
00057
00058 #endif //SCTTEST_TESTAPI