]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCBuffer.cxx
GetClusterFast function implemented (No getter before) (Marian)
[u/mrichter/AliRoot.git] / TPC / AliTPCBuffer.cxx
index 67f23c8bcf4c00b0d8cbec9c2d084a9efef2e939..247c9d0a410a9469efe1caa80e2bf43e2a1b0877 100644 (file)
@@ -20,8 +20,8 @@
 // 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"
 
@@ -33,14 +33,15 @@ ClassImp(AliTPCBuffer)
 AliTPCBuffer::AliTPCBuffer(const char* fileName){
   // 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");
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -51,7 +52,7 @@ AliTPCBuffer::~AliTPCBuffer(){
   //delete fout;
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
-AliTPCBuffer::AliTPCBuffer(const AliTPCBuffer &source){
+AliTPCBuffer::AliTPCBuffer(const AliTPCBuffer &source):TObject(source){
   // Copy Constructor
   this->fVerbose=source.fVerbose;
   return;
@@ -131,20 +132,39 @@ void AliTPCBuffer::WriteRowBinary(Int_t eth,AliSimDigits *digrow,Int_t minPad,In
   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;
@@ -152,6 +172,8 @@ void AliTPCBuffer::WriteRowBinary(Int_t eth,AliSimDigits *digrow,Int_t minPad,In
       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;
@@ -159,6 +181,8 @@ void AliTPCBuffer::WriteRowBinary(Int_t eth,AliSimDigits *digrow,Int_t minPad,In
       };//end switch
     }//end if
   }while (digrow->Next());
+  if (fVerbose==2)
+    ftxt.close();
   return;
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////