AsciiNTuple Class Reference

Inheritance diagram for AsciiNTuple:

BLNTuple

List of all members.


Detailed Description

class AsciiNTuple implements a generic ASCII NTuple.

Public Member Functions

 AsciiNTuple (G4String category, G4String name, G4String fields, G4String filename)
 ~AsciiNTuple ()
virtual void appendRow (float data[], int n)
virtual bool readRow (float data[], int ndata)
virtual int getNData ()
virtual G4String getFieldNames ()
virtual void annotate (G4String line)
void flush ()
void close ()
void doSummary ()

Private Attributes

FILE * fd
G4String title
int entries
int nfields
G4String fields

Constructor & Destructor Documentation

AsciiNTuple::AsciiNTuple ( G4String  category,
G4String  name,
G4String  fields,
G4String  filename 
)

References entries, fd, nfields, and title.

00464 {
00465         if(filename == "") filename = name+".txt";
00466         if(filename.find(".txt") == filename.npos)
00467                 filename += ".txt";
00468         fd = fopen(filename.c_str(),"w");
00469         title = name;
00470         entries = 0;
00471         fields = _fields;
00472 
00473         fprintf(fd,"# %s\n",name.c_str());
00474         G4String s(fields);
00475         nfields = 1;
00476         for(;;) {
00477                 unsigned p = s.find(":");
00478                 if(p == s.npos) break;
00479                 s.replace(p,1," ");
00480                 ++nfields;
00481         }
00482         fprintf(fd,"#%s\n",s.c_str());
00483 }

AsciiNTuple::~AsciiNTuple (  )  [inline]

References FOR009NTuple::close().

00430 { close(); }


Member Function Documentation

void AsciiNTuple::appendRow ( float  data[],
int  n 
) [virtual]

Implements BLNTuple.

References entries, and fd.

00486 {
00487 //printf("AsciiNTuple::appendRow() n=%d\n",n);
00488         for(int i=0; i<n; ++i)
00489                 fprintf(fd,"%.6g ",data[i]);
00490         fprintf(fd,"\n");
00491         ++entries;
00492 }

virtual bool AsciiNTuple::readRow ( float  data[],
int  ndata 
) [inline, virtual]

Implements BLNTuple.

00432 { return false; }

virtual int AsciiNTuple::getNData (  )  [inline, virtual]

Implements BLNTuple.

00433 { return nfields; }

virtual G4String AsciiNTuple::getFieldNames (  )  [inline, virtual]

Reimplemented from BLNTuple.

00434 { return fields; }

virtual void AsciiNTuple::annotate ( G4String  line  )  [inline, virtual]

Reimplemented from BLNTuple.

00436                 { fprintf(fd,"%s\n",line.c_str()); }

void AsciiNTuple::flush (  )  [inline, virtual]

Implements BLNTuple.

00437 { fflush(fd); }

void AsciiNTuple::close (  )  [inline, virtual]

Implements BLNTuple.

00438 { if(fd != 0) fclose(fd); fd = 0; }

void AsciiNTuple::doSummary (  )  [inline, virtual]

Implements BLNTuple.

References FOR009NTuple::entries, and FOR009NTuple::title.

00439                          {
00440                 printf("NTuple %-15s %8d entries\n",title.c_str(), entries);
00441         }


Member Data Documentation

FILE* AsciiNTuple::fd [private]

Referenced by appendRow(), and AsciiNTuple().

G4String AsciiNTuple::title [private]

Referenced by AsciiNTuple().

int AsciiNTuple::entries [private]

Referenced by appendRow(), and AsciiNTuple().

int AsciiNTuple::nfields [private]

Referenced by AsciiNTuple().

G4String AsciiNTuple::fields [private]


The documentation for this class was generated from the following file:
g4beamline