// 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"
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
#ifndef __DECCXX
- f.open("AliTPCDDL.dat",ios::binary|ios::out);
+ f.open(fileName,ios::binary|ios::out);
#else
- f.open("AliTPCDDL.dat",ios::out);
+ 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;
data.SubSec=SubSec;
data.Row=row;
digrow->First();
+ 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;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////