TReadoutSegment.cc

TReadoutSegmentクラスの解説 TReadoutSegment.hh
// ============================================================================
//  $Id$
//  $Name$
// ============================================================================
#include "TReadoutSegment.hh"
#include "TModule.hh"
#include "TDataSegment.hh"

TReadoutSegment::TReadoutSegment( Tint id, Tint capacity )
  : TReadoutElementList( capacity, tDefaultReallocationParameter ),
    theID( id ), theModule( 0 )
{;}

TReadoutSegment::TReadoutSegment( TModule* module, Tint id, Tint capacity )
  : TReadoutElementList( capacity, tDefaultReallocationParameter ),
    theID( id ), theModule( module )
{;}

TReadoutSegment::~TReadoutSegment()
{;}

Tvoid TReadoutSegment::Print( Tostream& tos )
{
  Tstring head = Twspace + Twspace + "* Readout Segment, ";
  tos << head << "ID: " << theID;
  tos << Twspace << "Capacity: " << theCapacity;
  tos << Twspace << "Entry: " << theNumberOfEntries << Tendl;

  if ( theModule == 0 )
    for ( Tint i = 0; i < theNumberOfEntries; i ++ )
      theObjects[ i ] -> Print( tos );
  else
    theModule -> Print( tos );

  return;
}

TDataSegment* TReadoutSegment::ReadData()
{
  TDataSegment* d = new TDataSegment( theID, theNumberOfEntries );
  if ( theModule == 0 ) {
    TReadoutElement* ele = 0;
    SetPosition( 0 );
    while ( ( ele = Next() ) )
      d -> Add( ele -> ReadData() );
  } else {
    theModule -> FillData( d );
  }

  return( d );
}
$Id$
$Name$