メインページ   モジュール   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   構成メンバ   ファイルメンバ   関連ページ    

TExtractor.hh

解説を見る。
00001 // =====================================================================
00024 // =====================================================================
00025 #ifndef CLDAQ__TEXTRACTOR_HH
00026 #define CLDAQ__TEXTRACTOR_HH
00027 
00028 #include "Tglobals.h"
00029 #include "TMatrixElement.hh"
00030 #include "TDataElementList.hh"
00031 
00032 class TDataRecord;
00033 class TDataSection;
00034 class TDataSegment;
00035 class TDataElement;
00036 
00037 
00057 class TExtractor
00058 {
00059 
00060   protected:
00061     Tstring theExtractorID;
00062     TMatrixElement theMatrixElement;
00063     Tint theSamplingRate;
00064     Tbool theDataFoundStatus;
00065     Tbool theFillMatrixStatus;
00066 
00067   public:
00068     TExtractor( const Tstring& id, Tobject_t objecttype, Tint nevents = 0, Tint usec = 0 );
00069     virtual ~TExtractor();
00070 
00071   public:
00072     virtual Tvoid Extract() = 0;
00073 
00074   public:
00075     TDataSection FindDataSection( const TDataRecord& record, const Tstring& sectionid );
00076     TDataSegment FindDataSegment( const TDataSection& section, const Tstring& segmentid );
00077     TDataSegment FindDataSegment( const TDataRecord& record, const Tstring& sectionid, const Tstring& segmentid );
00078     TDataSegment FindDataSegment( const TDataRecord& record, Tstring id[ 2 ] );
00079     TDataElement FindDataElement( const TDataSegment& segment, const Tstring& elementid );
00080     TDataElement FindDataElement( const TDataRecord& record, const Tstring& sectionid, const Tstring& segmentid, const Tstring& elementid );
00081     TDataElement FindDataElement( const TDataRecord& record, Tstring id[ 3 ] );
00082     TDataElement FindDataElement( const TDataRecord& record, const TstringList& id );
00083 
00084   public:
00085     const TMatrixElement& GetMatrixElement() const;
00086     TMatrixElement& GetMatrixElement();
00087     Tvoid SetMatrixElement( const TMatrixElement& matrix );
00088     const Tstring& GetExtractorID() const;
00089     Tvoid SetExtractorID( const Tstring& id );
00090     Tint GetSamplingRate() const;
00091     Tvoid SetSamplingRate( Tint usec );
00092     Tbool DoesDataFound() const;
00093     Tbool DoesMatrixFill() const;
00094     Tbool DoesExtractSuccess() const;
00095 
00096   public:
00097     Tvoid FillMatrix( const TDataElementList& list );
00098 
00099   protected:
00100     Tvoid fillMatrixAs1DHistogram( const TDataElementList& list );
00101     Tvoid fillMatrixAs2DHistogram( const TDataElementList& list );
00102     Tvoid fillMatrixAsGraph( const TDataElementList& list );
00103     Tvoid fillMatrixAsNtuple( const TDataElementList& list );
00104 
00105 };
00106 
00107 inline const TMatrixElement& TExtractor::GetMatrixElement() const
00108 {
00109   return theMatrixElement;
00110 }
00111 
00112 inline TMatrixElement& TExtractor::GetMatrixElement()
00113 {
00114   return theMatrixElement;
00115 }
00116 
00117 inline Tvoid TExtractor::SetMatrixElement( const TMatrixElement& matrix )
00118 {
00119   theMatrixElement = matrix;
00120   return;
00121 }
00122 
00123 inline const Tstring& TExtractor::GetExtractorID() const
00124 {
00125   return theExtractorID;
00126 }
00127 
00128 inline Tvoid TExtractor::SetExtractorID( const Tstring& id )
00129 {
00130   theExtractorID = id;
00131   return;
00132 }
00133 
00134 inline Tbool TExtractor::DoesDataFound() const
00135 {
00136   return theDataFoundStatus;
00137 }
00138 
00139 inline Tbool TExtractor::DoesMatrixFill() const
00140 {
00141   return theFillMatrixStatus;
00142 }
00143 
00144 inline Tbool TExtractor::DoesExtractSuccess() const
00145 {
00146   return DoesMatrixFill() && DoesDataFound();
00147 }
00148 
00149 inline Tint TExtractor::GetSamplingRate() const
00150 {
00151   return theSamplingRate;
00152 }
00153 
00154 inline Tvoid TExtractor::SetSamplingRate( Tint usec )
00155 {
00156   theSamplingRate = usec;
00157   return;
00158 }
00159 
00160 #endif

CLDAQ - a Class Library for Data AcQuisition (Version 1.12.0)
Go IWAI <goiwai@users.sourceforge.jp>