]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFRawStream.cxx
1. Reduced usage of the AliTPCReconstructor::GetRecoParam
[u/mrichter/AliRoot.git] / TOF / AliTOFRawStream.cxx
index 2e1df49f42fe801f74f1a8fb8b763aa66d28027f..8b92fadb92b44c6682323b118909d9e979218ac6 100644 (file)
@@ -101,11 +101,36 @@ Revision 0.01  2005/07/22 A. De Caro
 #include "AliTOFrawData.h"
 #include "AliTOFRawMap.h"
 #include "AliTOFRawStream.h"
+//#include "AliTOFCableLengthMap.h"
 
 #include "AliTOFHitData.h"
 
+#include "AliRawEventHeaderBase.h"
+
 ClassImp(AliTOFRawStream)
 
+const Int_t AliTOFRawStream::fgkddlBCshift[72] = 
+{
+  2, 2, -1, -1,
+  2, 3,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2,  0,  0,
+  2, 2, -1, -1,
+  2, 2, -1, -1,
+  2, 2, -2, -2,
+  2, 2, -2, -2,
+  2, 2, -2, -2,
+  2, 2, -1, -1,
+  2, 2, -1, -1,
+  2, 2, -1, -1
+};
+
 
 //_____________________________________________________________________________
 AliTOFRawStream::AliTOFRawStream(AliRawReader* rawReader):
@@ -141,7 +166,9 @@ AliTOFRawStream::AliTOFRawStream(AliRawReader* rawReader):
   fLocalEventCounterDRM(-1),
   fLocalEventCounterLTM(-1),
   fLocalEventCounterTRM(0x0),
-  fLocalEventCounterChain(0x0)
+  fLocalEventCounterChain(0x0),
+  fCableLengthMap(0x0),
+  fEventID(0)
 {
   //
   // create an object to read TOF raw digits
@@ -168,6 +195,9 @@ AliTOFRawStream::AliTOFRawStream(AliRawReader* rawReader):
     }//adc
   }//adc
 
+  fCableLengthMap = new AliTOFCableLengthMap();
+
+  fEventID = fRawReader->GetBCID(); //bunch crossing
 }
 
 //_____________________________________________________________________________
@@ -204,7 +234,9 @@ AliTOFRawStream::AliTOFRawStream():
   fLocalEventCounterDRM(-1),
   fLocalEventCounterLTM(-1),
   fLocalEventCounterTRM(0x0),
-  fLocalEventCounterChain(0x0)
+  fLocalEventCounterChain(0x0),
+  fCableLengthMap(0x0),
+  fEventID(0)
 {
   //
   // default ctr
@@ -227,6 +259,8 @@ AliTOFRawStream::AliTOFRawStream():
     }//adc
   }//adc
 
+  fCableLengthMap = new AliTOFCableLengthMap();
+
 }
 
 //_____________________________________________________________________________
@@ -264,7 +298,9 @@ AliTOFRawStream::AliTOFRawStream(const AliTOFRawStream& stream) :
   fLocalEventCounterDRM(-1),
   fLocalEventCounterLTM(-1),
   fLocalEventCounterTRM(0x0),
-  fLocalEventCounterChain(0x0)
+  fLocalEventCounterChain(0x0),
+  fCableLengthMap(0x0),
+  fEventID(0)
 {
   //
   // copy constructor
@@ -321,6 +357,10 @@ AliTOFRawStream::AliTOFRawStream(const AliTOFRawStream& stream) :
     }//adc
   }//adc
 
+  fCableLengthMap = stream.fCableLengthMap;
+
+  fEventID = stream.fEventID;
+
 }
 
 //_____________________________________________________________________________
@@ -380,6 +420,10 @@ AliTOFRawStream& AliTOFRawStream::operator = (const AliTOFRawStream& stream)
     }//adc
   }//adc
 
+  fCableLengthMap = stream.fCableLengthMap;
+
+  fEventID = stream.fEventID;
+
   return *this;
 
 }
@@ -402,9 +446,10 @@ AliTOFRawStream::~AliTOFRawStream()
   delete fTOFrawData;
 
   delete [] fLocalEventCounterTRM;
-  for (Int_t ii=0; ii<13; ii++) 
-         delete [] fLocalEventCounterChain[ii];
-  delete [] fLocalEventCounterChain;
+  for (Int_t ii=0; ii<2; ii++) 
+    delete [] fLocalEventCounterChain[ii];
+
+  delete fCableLengthMap;
 
 }
 
@@ -710,24 +755,52 @@ Bool_t AliTOFRawStream::Next()
 
       case 0: // packing ok, digit time and TOT
        fToT  = GetField(data,TRM_TOT_WIDTH_MASK, TRM_TOT_WIDTH_POSITION);
-       fTime = GetField(data,TRM_DIGIT_TIME_MASK,TRM_DIGIT_TIME_POSITION);
+       fTime = GetField(data,TRM_DIGIT_TIME_MASK,TRM_DIGIT_TIME_POSITION)
+         -
+         fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)
+         /*+
+         (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth())
+         +
+         (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth())*/
+         ;
        break;
 
       case 1: // leading edge digit, long digit time, no TOT
        //fToT  = -1;
        //fTime  = -1;
-       fLeadingEdge = GetField(data,TRM_LONG_DIGIT_TIME_MASK,TRM_LONG_DIGIT_TIME_POSITION);
+       fLeadingEdge = GetField(data,TRM_LONG_DIGIT_TIME_MASK,TRM_LONG_DIGIT_TIME_POSITION)
+         -
+         fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)
+         /*+
+         (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth())
+         +
+         (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth())*/
+         ;
        break;
 
       case 2: // trailing edge digit, long digit time, no TOT
        //fToT  = -1;
        //fTime  = -1;
-       fTrailingEdge = GetField(data,TRM_LONG_DIGIT_TIME_MASK,TRM_LONG_DIGIT_TIME_POSITION);
+       fTrailingEdge = GetField(data,TRM_LONG_DIGIT_TIME_MASK,TRM_LONG_DIGIT_TIME_POSITION)
+         -
+         fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)
+         /*+
+         (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth())
+         +
+         (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth())*/
+         ;
        break;
 
       case 3: // TOT overflow
        fToT  = GetField(data,TRM_TOT_WIDTH_MASK, TRM_TOT_WIDTH_POSITION);
-       fTime = GetField(data,TRM_DIGIT_TIME_MASK,TRM_DIGIT_TIME_POSITION);
+       fTime = GetField(data,TRM_DIGIT_TIME_MASK,TRM_DIGIT_TIME_POSITION)
+         -
+         fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)
+         /*+
+         (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth())
+         +
+         (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth())*/
+         ;
        break;
 
       } // end switch PS bits inside TRM chains
@@ -1384,7 +1457,9 @@ AliTOFRawStream::LoadRawDataBuffers(Int_t indexDDL, Int_t verbose)
     Int_t   hitTimeBin = hitData->GetTimeBin();
     Int_t   hitTOTBin = hitData->GetTOTBin();
     
-    Int_t hitLeading = hitData->GetTimeBin();//-1; // adc
+    Int_t hitLeading = hitData->GetTimeBin()
+      -
+      fCableLengthMap->GetCableTimeShiftBin(indexDDL, hitSlotID, hitChain, hitTDC);//-1; // adc
     Int_t hitTrailing = -1;
     Int_t hitError = -1;