// This class is used by AliTPCDDL.C macro
// Author: D.Favretto
-#include "Riostream.h"
-#include "TObjArray.h"
+#include <Riostream.h>
+#include <TObjArray.h>
#include "AliTPCBuffer.h"
#include "AliSimDigits.h"
//#include "TFile.h"
//#include "TTree.h"
+using std::ios;
+using std::ofstream;
+using std::endl;
ClassImp(AliTPCBuffer)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
-AliTPCBuffer::AliTPCBuffer(const char* fileName){
+//___________________________________________________________
+ AliTPCBuffer::AliTPCBuffer():TObject(),
+ fVerbose(0),
+ fNumberOfDigits(0),
+ f()
+{
+ //
+ // default
+ //
+}
+//____________________________________________________________
+ AliTPCBuffer::AliTPCBuffer(const char* fileName):TObject(),
+ fVerbose(0),
+ fNumberOfDigits(0),
+ f()
+{
// Constructor
- f.open("AliTPCDDL.dat",ios::binary|ios::out);
+#ifndef __DECCXX
+ f.open(fileName,ios::binary|ios::out);
+#else
+ f.open(fileName,ios::out);
+#endif
// fout=new TFile(fileName,"recreate");
// tree=new TTree("tree","Values");
- fNumberOfDigits=0;
- fVerbose=0;
+
+ remove("TPCdigits.txt");
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//delete fout;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
-AliTPCBuffer::AliTPCBuffer(const AliTPCBuffer &source){
+AliTPCBuffer::AliTPCBuffer(const AliTPCBuffer &source):TObject(source),
+ fVerbose(0),
+ fNumberOfDigits(0),
+ f()
+{
// Copy Constructor
this->fVerbose=source.fVerbose;
return;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
AliTPCBuffer& AliTPCBuffer::operator=(const AliTPCBuffer &source){
//Assigment operator
- this->fVerbose=source.fVerbose;
+ if(this!=&source){
+ this->fVerbose=source.fVerbose;
+ }
return *this;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
data.Sec=sec;
data.SubSec=SubSec;
data.Row=row;
- digrow->First();
+ if (!digrow->First()) return;
+ Int_t padID=-1;
+ Int_t ddlNumber=0;
+ ofstream ftxt;
+ if (fVerbose==2){
+ ftxt.open("TPCdigits.txt",ios::app);
+ if(sec<36)
+ ddlNumber=sec*2+SubSec;
+ else
+ ddlNumber=72+(sec-36)*4+SubSec;
+ }//end if
do{
- data.Dig=digrow->CurrentDigit(); //adc
- data.Time=digrow->CurrentRow(); //time
- data.Pad =digrow->CurrentColumn(); // pad
+ data.Dig=digrow->CurrentDigit(); //adc
+ data.Time=digrow->CurrentRow(); //time
+ data.Pad =digrow->CurrentColumn(); // pad
+ if(fVerbose==2)
+ if (padID!=data.Pad){
+ ftxt<<"S:"<<data.Sec<<" DDL:"<<ddlNumber<<" R:"<<data.Row<<" P:"<<data.Pad<<endl;
+ padID=data.Pad;
+ }//end if
if(data.Dig>eth){
switch (flag){
case 0:{
fNumberOfDigits++;
f.write((char*)(&data),sizeof(data));
+ if(fVerbose==2)
+ ftxt<<"A:"<<data.Dig<<" T:"<<data.Time<<endl;
break;
}//end case 0
case 1:{
if((data.Pad>=minPad)&&(data.Pad<=maxPad)){
f.write((char*)(&data),sizeof(data));
+ if(fVerbose==2)
+ ftxt<<"A:"<<data.Dig<<" T:"<<data.Time<<endl;
fNumberOfDigits++;
}
break;
case 2:{
if((data.Pad<minPad)||(data.Pad>maxPad)){
f.write((char*)(&data),sizeof(data));
+ if(fVerbose==2)
+ ftxt<<"A:"<<data.Dig<<" T:"<<data.Time<<endl;
fNumberOfDigits++;
}
break;
};//end switch
}//end if
}while (digrow->Next());
+ if (fVerbose==2)
+ ftxt.close();
return;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////