00001 #ifndef ArchRawScanResult_H
00002 #define ArchRawScanResult_H
00003
00004 #include <vector>
00005 #include <is/isinfo.h>
00006 #include "SctData/ConfigurationVariable.h"
00007 #include "SctData/RawScanResult.h"
00008 #include "SctData/RawScanResultIOHelper.h"
00009 #include "Sct/SctNames.h"
00010 #include "ArchScanResult.h"
00011
00012
00013
00014
00015 class TFile;
00016 class TDirectory;
00017 class TObject;
00018 class TSystem;
00019 class TNamed;
00020 class TString;
00021 class TObjString;
00022 class TH1;
00023 class TH1D;
00024 class TH2;
00025 class TGraph;
00026
00027
00028 using namespace SctData;
00029 using namespace Sct;
00030 using namespace boost;
00031
00032 class ArchRawScanResult: public ArchScanResult {
00033 private:
00034
00035
00036
00037
00038
00039
00040 shared_ptr<const RawScanResult> theRaw;
00041
00042 static bool inMap;
00043
00044 ArchRawScanResult(shared_ptr<const RawScanResult> raw);
00045
00046 public:
00047
00048 ArchRawScanResult();
00049 ~ArchRawScanResult();
00050
00051 virtual shared_ptr<ArchScanResult> clone(shared_ptr<ScanResult> scan) {
00052 cout<<"Before downcasting"<<endl;
00053 shared_ptr<RawScanResult> raw = dynamic_pointer_cast<RawScanResult>(scan);
00054 cout<<"After downcasting"<<endl;
00055 return shared_ptr<ArchScanResult>(new ArchRawScanResult(raw));
00056 }
00057
00058 void SetRawScan(shared_ptr<RawScanResult> );
00059
00060 void SaveRawScan();
00061 void SaveRawScan(shared_ptr<RawScanResult> );
00062 void Save();
00063 void Save(shared_ptr<RawScanResult> );
00064 bool RawScanIsPersisted();
00065 bool RawScanIsPersisted(shared_ptr<RawScanResult> );
00066 bool RawScanIsPersisted(long scanNumber, long runNumber, string moduleName, const ConfigurationVariable& variable, unsigned int cycle=0);
00067
00068
00069 RawScanResult* CreateRawScanResult();
00070 RawScanResult* CreateRawScanResult(shared_ptr<RawScanResult> );
00071 RawScanResult* CreateRawScanResult(long scanNumber, long runNumber, string moduleName, const ConfigurationVariable& variable, unsigned int cycle);
00072
00073
00074 void SaveRawComment();
00075
00076 };
00077
00078
00079 #endif