#ifndef PelIO_HH
#define PelIO_HH
#include "stdio.h"
#include "TNamed.h"
#include "TROOT.h"
#include "TString.h"
#include "TH1.h"
#include "TString.h"
#include "TRandom.h"
#define MAXBLOCKSIZE 16384
#define MAXBLOCKSIZEWRITE 73728
#define BLOCKSIZEWRITE 65536
#define BLOCKSIZETAPE 32768
#define BLOCKSIZETAPEHEADER 256
#define STREAMSIZE 32768
#define MAXEVENTSBLOCK 16384
#define MAXOUTPUT 4
#define MAXPAR 8192
enum RetCode { kWarn, kOk, kEOF, kERR};
class PelIO : public TNamed
{
protected:
unsigned short mEventsPosition[MAXEVENTSBLOCK];
unsigned short mBlock[MAXBLOCKSIZE];
unsigned short mResidual[MAXBLOCKSIZE];
unsigned short mDataStream[STREAMSIZE];
unsigned short mResidualSize;
unsigned short BLOCKSIZE;
unsigned long mBytesOutput[MAXOUTPUT];
unsigned long mNSaved[MAXOUTPUT];
unsigned long mNRead;
unsigned long mNBlockRead;
char mOutputBuffer[MAXOUTPUT][MAXBLOCKSIZEWRITE];
short mParIndexTmp[MAXPAR];
float mParValuesTmp[MAXPAR];
unsigned short mCurrentPosition;
unsigned short mNextPosition;
unsigned short mLastPosition;
FILE *mInput;
FILE *mOutput[MAXOUTPUT];
bool mIsInputOpen;
bool mIsOutputOpen[MAXOUTPUT];
int mLastInput;
TString mFileName;
TString mFileNameOutput[MAXOUTPUT];
bool mDebug;
short mCurrentSize;
int mStat;
int mNAddedPar;
unsigned short mParAdded[STREAMSIZE];
bool mSaveOnlyNew;
bool mSmearing;
virtual int writeEventToOutput(int out=0);
virtual int readBlock();
virtual int decodeBlock(int = 0);
virtual int decodeEvent(short&,short*,float*);
public:
PelIO(char* name="PelIO",char *title="Pelletron IO");
virtual ~PelIO();
virtual int openInput(char*);
virtual int openOutput(char*,int out=0,int run = 0, char* comment="");
virtual int closeInput();
virtual int closeOutput(int out=0);
virtual int readEvent(short,short&,float*);
virtual int writeEvent(int out=0);
char* getFileName() { return (char*)mFileName.Data();}
char* getFileNameOutput(int out=0) { return (char*)mFileNameOutput[out].Data();}
short getCurrentEventSize() { return mCurrentSize; }
unsigned long getNSaved(int out=0) { return mNSaved[out]; }
unsigned long getNRead() { return mNRead; }
unsigned long getBlockSize() { return BLOCKSIZE;}
void setDebug(bool a) { mDebug = a;}
void setBlockSize(unsigned short a) { BLOCKSIZE = a;}
void setSmearing(bool s) { mSmearing = s;}
void printStats();
int getMaxOutput() { return MAXOUTPUT;}
bool isInputOpen() { return mIsInputOpen;}
bool isOutputOpen(int out =0) { return mIsOutputOpen[out];}
bool isDebug() { return mDebug;}
bool isSmearing() { return mSmearing;}
void saveOnlyNewPar(bool a) { mSaveOnlyNew = a;}
bool isSaveOnlyNewPar() { return mSaveOnlyNew;}
void addPar(int,float);
ClassDef(PelIO,1)
};
#endif
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.