/*
$Log$
+Revision 1.2 2007/10/12 13:36:27 cvetan
+Coding convention fixes from Stefan
+
+Revision 1.1 2007/09/17 10:23:31 cvetan
+New TPC monitoring package from Stefan Kniege. The monitoring package can be started by running TPCMonitor.C macro located in macros folder.
+
*/
-#include "AliTPCMonitorDateFile.h"
+////////////////////////////////////////////////////////////////////////
+////
+//// AliTPCMonitorDateFile class
+////
+//// Class for handling the data structure in a DATE file
+//// Used to read DATE files for the TPC raw data Monitor
+////
+//// Author: Roland Bramm
+//// Stefan Kniege, IKF, Frankfurt
+////
+////
+/////////////////////////////////////////////////////////////////////////
+
+
+#include "AliTPCMonitorDateFile.h"
+#include "AliTPCMonitorDateFormat.h"
+#include <Riostream.h>
ClassImp(AliTPCMonitorDateFile)
//____________________________________________________________________________
-AliTPCMonitorDateFile::AliTPCMonitorDateFile()
+AliTPCMonitorDateFile::AliTPCMonitorDateFile() :
+ ffilePos(0),
+ fbigMem(0),
+ fbigMemsize(0),
+ fisBigMemAllocated(false),
+ ffileSize(0),
+ ffilename(""),
+ finitFile(false),
+ freadPosOverflow(false),
+ fin(new ifstream())
{
// Constructor
- fin = new ifstream();
- fisBigMemAllocated = false;
- freadPosOverflow = false;
- ffilePos = 0;
- ffileSize = 0;
- fbigMemsize = 0;
- finitFile = false;
- ffilename = "";
}
+//____________________________________________________________________________
+AliTPCMonitorDateFile::AliTPCMonitorDateFile(const AliTPCMonitorDateFile &datefile) :
+ TNamed(datefile.GetName(),datefile.GetTitle()),
+ ffilePos(datefile.ffilePos),
+ fbigMem(datefile.fbigMem),
+ fbigMemsize(datefile.fbigMemsize),
+ fisBigMemAllocated(datefile.fisBigMemAllocated),
+ ffileSize(datefile.ffileSize),
+ ffilename(datefile.ffilename),
+ finitFile(datefile.finitFile),
+ freadPosOverflow(datefile.freadPosOverflow),
+ fin(new ifstream())
+{
+ // copy constructor
+}
+
+//____________________________________________________________________________
+AliTPCMonitorDateFile &AliTPCMonitorDateFile:: operator= (const AliTPCMonitorDateFile& datefile)
+{
+
+ // assignment operator
+ if(this!=&datefile)
+ {
+ ffilePos=datefile.ffilePos;
+ fbigMem=datefile.fbigMem;
+ fbigMemsize=datefile.fbigMemsize;
+ fisBigMemAllocated=datefile.fisBigMemAllocated;
+ ffileSize=datefile.ffileSize;
+ ffilename=datefile.ffilename;
+ finitFile=datefile.finitFile;
+ freadPosOverflow=datefile.freadPosOverflow;
+ fin = new ifstream();
+ }
+ return *this;
+}
+
//____________________________________________________________________________
AliTPCMonitorDateFile::~AliTPCMonitorDateFile()
{
}
//____________________________________________________________________________
-Int_t AliTPCMonitorDateFile::GetFileSize()
+Int_t AliTPCMonitorDateFile::GetFileSize() const
{
// Return size of DATE file
return ffileSize;
{
// Read in event from file
Int_t size;
+ Char_t fmem[512]; // array for event header
Char_t swapcarry[4];
Bool_t toSwapEndian = false;
//Fetch some bytes to get headers to know how much
fin->read((Char_t*)fmem,sfmem);
fin->seekg(ffilePos);
- AliTPCMonitorDateFormat *DateForm;
- DateForm = new AliTPCMonitorDateFormat((Char_t *)&fmem);
+ AliTPCMonitorDateFormat *dateform;
+ dateform = new AliTPCMonitorDateFormat((Char_t *)&fmem);
- toSwapEndian = DateForm->IsEventWrongEndian();
+ toSwapEndian = dateform->IsEventWrongEndian();
if(toSwapEndian == true){
- delete DateForm;
+ delete dateform;
for(Int_t i = 0; i < 68; i++) {
swapcarry[0] = fmem[(i*4)+0];
swapcarry[1] = fmem[(i*4)+1];
fmem[(i*4)+2] = swapcarry[1];
fmem[(i*4)+3] = swapcarry[0];
}
- DateForm = new AliTPCMonitorDateFormat((Char_t *)&fmem);
+ dateform = new AliTPCMonitorDateFormat((Char_t *)&fmem);
}
- size = DateForm->GetEventSize();
+ size = dateform->GetEventSize();
if(size > GetAllocatedSizeofArray()) {
AllocateArray((Int_t)(size*1.1));
}
}else{
freadPosOverflow = true;
}
- delete DateForm;
+ delete dateform;
}else{
freadPosOverflow = true;
}
}
//____________________________________________________________________________
-Bool_t AliTPCMonitorDateFile::IsLastEvent()
+Bool_t AliTPCMonitorDateFile::IsLastEvent() const
{
// Check if event is last event in file
Bool_t retval;
}
//____________________________________________________________________________
-Bool_t AliTPCMonitorDateFile::IsEventValid()
+Bool_t AliTPCMonitorDateFile::IsEventValid() const
{
// Check Over flow flag
Bool_t retval;
}
//____________________________________________________________________________
-Int_t AliTPCMonitorDateFile::GetFilePosition()
+Int_t AliTPCMonitorDateFile::GetFilePosition() const
{
// Return current position in file
return ffilePos;
}
//____________________________________________________________________________
-Int_t AliTPCMonitorDateFile::GetAllocatedSizeofArray()
+Int_t AliTPCMonitorDateFile::GetAllocatedSizeofArray() const
{
// Return size of allocated data array
return fbigMemsize;