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 void annotate (G4String line)
void flush ()
void close ()
void doSummary ()

Private Attributes

FILE * fd
G4String title
int entries

Constructor & Destructor Documentation

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

References entries, fd, BLNTuple::nData, and title.

00508                                                      : BLNTuple(name,_fields)
00509 {
00510         if(filename == "") filename = name+".txt";
00511         if(filename.find(".txt") == filename.npos)
00512                 filename += ".txt";
00513         fd = fopen(filename.c_str(),"w");
00514         title = name;
00515         entries = 0;
00516         fields = _fields;
00517 
00518         fprintf(fd,"# %s\n",name.c_str());
00519         G4String s(fields);
00520         nData = 1;
00521         for(;;) {
00522                 unsigned p = s.find(":");
00523                 if(p == s.npos) break;
00524                 s.replace(p,1," ");
00525                 ++nData;
00526         }
00527         fprintf(fd,"#%s\n",s.c_str());
00528 }

AsciiNTuple::~AsciiNTuple (  )  [inline]

References FOR009NTuple::close().

00477 { close(); }


Member Function Documentation

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

Implements BLNTuple.

References BLNTuple::doCallbacks(), entries, and fd.

00531 {
00532         for(int i=0; i<n; ++i)
00533                 fprintf(fd,"%.6g ",data[i]);
00534         fprintf(fd,"\n");
00535         ++entries;
00536 
00537         doCallbacks(data,n);
00538 }

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

Implements BLNTuple.

00479 { return false; }

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

Reimplemented from BLNTuple.

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

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

Implements BLNTuple.

00482 { fflush(fd); }

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

Implements BLNTuple.

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

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

Implements BLNTuple.

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

00484                          {
00485                 printf("NTuple %-15s %8d entries\n",title.c_str(), entries);
00486         }


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().


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