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

TExtractor.hh

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

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