No ios::binary on Alpha with cxx
[u/mrichter/AliRoot.git] / TPC / AliTPCBuffer.cxx
index 43525a3bd58a5a5728cd7423d1ebdc7c365b864d..67f23c8bcf4c00b0d8cbec9c2d084a9efef2e939 100644 (file)
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
+/* $Id$ */
+
+// Storing digits in a binary file
+// according to the DDL mapping
+// To be used in Alice Data Challenges
+// This class is used by AliTPCDDL.C macro
+// Author: D.Favretto
 
 #include "Riostream.h"
 #include "TObjArray.h"
 ClassImp(AliTPCBuffer)
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 AliTPCBuffer::AliTPCBuffer(const char* fileName){
+  // Constructor
+#ifndef __DECCXX
   f.open("AliTPCDDL.dat",ios::binary|ios::out);
+#else
+  f.open("AliTPCDDL.dat",ios::out);
+#endif
   // fout=new TFile(fileName,"recreate");
   // tree=new TTree("tree","Values");
-  NumberOfDigits=0;
+  fNumberOfDigits=0;
   fVerbose=0;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 AliTPCBuffer::~AliTPCBuffer(){
+  // The destructor closes the IO stream
   f.close();
   //delete tree;
   //delete fout;
@@ -40,11 +53,13 @@ AliTPCBuffer::~AliTPCBuffer(){
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 AliTPCBuffer::AliTPCBuffer(const AliTPCBuffer &source){
   // Copy Constructor
+  this->fVerbose=source.fVerbose;
   return;
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 AliTPCBuffer& AliTPCBuffer::operator=(const AliTPCBuffer &source){
   //Assigment operator
+  this->fVerbose=source.fVerbose;
   return *this;
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -72,20 +87,20 @@ void AliTPCBuffer::WriteRow(Int_t eth,AliSimDigits *digrow,Int_t minPad,Int_t ma
       switch (flag){
       case 0:{
        tree->Fill();
-       NumberOfDigits++;
+       fNumberOfDigits++;
        break;
       }//end case 0
       case 1:{
          if((Pad>=minPad)&&(Pad<=maxPad)){
            tree->Fill();
-           NumberOfDigits++;
+           fNumberOfDigits++;
          }
        break;
       }//end case 1
       case 2:{
        if((Pad<minPad)||(Pad>maxPad)){
          tree->Fill();
-         NumberOfDigits++;
+         fNumberOfDigits++;
        }
        break;
       }//end case 2
@@ -98,9 +113,11 @@ void AliTPCBuffer::WriteRow(Int_t eth,AliSimDigits *digrow,Int_t minPad,Int_t ma
 */
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////
 void AliTPCBuffer::WriteRowBinary(Int_t eth,AliSimDigits *digrow,Int_t minPad,Int_t maxPad,Int_t flag,Int_t sec,Int_t SubSec,Int_t row){
-  //flag=0 the whole row is written intto the file
+  //It writes TPC digits as par the flag specifications. Being called by AliTPCDDL.C
+  //flag=0 the whole row is written into the file
   //flag=1 only value in the range [minPad,MaxPasd] are written into the file
   //flag=2 complementary case of 1
+
   struct DataPad{
     Int_t Sec;
     Int_t SubSec;
@@ -121,21 +138,21 @@ void AliTPCBuffer::WriteRowBinary(Int_t eth,AliSimDigits *digrow,Int_t minPad,In
     if(data.Dig>eth){
       switch (flag){
       case 0:{
-       NumberOfDigits++;
+       fNumberOfDigits++;
        f.write((char*)(&data),sizeof(data));
        break;
       }//end case 0
       case 1:{
        if((data.Pad>=minPad)&&(data.Pad<=maxPad)){
          f.write((char*)(&data),sizeof(data));
-         NumberOfDigits++;
+         fNumberOfDigits++;
        }
        break;
       }//end case 1
       case 2:{
        if((data.Pad<minPad)||(data.Pad>maxPad)){
          f.write((char*)(&data),sizeof(data));
-         NumberOfDigits++;
+         fNumberOfDigits++;
        }
        break;
       }//end case 2