00001 #ifndef RAWSCANRESULT_H 00002 #define RAWSCANRESULT_H 00003 00004 #include "ScanResult.h" 00005 #include "Sct/RangedVector.h" 00006 #include <boost/shared_ptr.hpp> 00007 00008 class TH1; 00009 class TH1D; 00010 class TH2; 00011 class TH2D; 00012 using Sct::LogicError; 00013 using boost::shared_ptr; 00014 00015 namespace SctData { 00016 00023 class RawScanResult : public ScanResult { 00024 public: 00025 00030 RawScanResult(const ResultHeader& scanInfo, const ModuleConfiguration& module, const ScanPoints& points, TH2D& scan_link0, TH2D& scan_link1) throw() ; 00031 00033 virtual ~RawScanResult() throw(); 00034 00035 //Overrides 00036 virtual string getClassName() const throw() ; 00037 virtual Sct::UniqueID getUniqueID() const throw() ; 00038 00040 static Sct::UniqueID getUniqueID(const ResultHeader& header) throw() ; 00041 00048 TH2D& getScanData(unsigned link) const throw(LogicError) ; 00049 00051 unsigned nOccupancyPerEvent() const; 00052 00059 TH2D& getOccupancyPerEvent(unsigned ichip) const throw(LogicError) ; 00060 00064 UINT16 getDataType() const throw(); 00065 00066 protected: 00067 shared_ptr<TH2D> scanData_link0; 00068 shared_ptr<TH2D> scanData_link1; 00069 00070 Sct::RangedVector<shared_ptr<TH2D> > occ_chip; 00071 00072 UINT16 m_dataType; 00073 00074 private: 00075 friend class RawScanResultIOHelper; 00076 RawScanResult() throw() ; 00077 }; 00078 } 00079 #endif //#ifndef RAWSCANRESULT_H 00080 00081