#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):
fLocalEventCounterDRM(-1),
fLocalEventCounterLTM(-1),
fLocalEventCounterTRM(0x0),
- fLocalEventCounterChain(0x0)
+ fLocalEventCounterChain(0x0),
+ fCableLengthMap(0x0),
+ fEventID(0)
{
//
// create an object to read TOF raw digits
}//adc
}//adc
+ fCableLengthMap = new AliTOFCableLengthMap();
+
+ fEventID = fRawReader->GetBCID(); //bunch crossing
}
//_____________________________________________________________________________
fLocalEventCounterDRM(-1),
fLocalEventCounterLTM(-1),
fLocalEventCounterTRM(0x0),
- fLocalEventCounterChain(0x0)
+ fLocalEventCounterChain(0x0),
+ fCableLengthMap(0x0),
+ fEventID(0)
{
//
// default ctr
}//adc
}//adc
+ fCableLengthMap = new AliTOFCableLengthMap();
+
}
//_____________________________________________________________________________
fLocalEventCounterDRM(-1),
fLocalEventCounterLTM(-1),
fLocalEventCounterTRM(0x0),
- fLocalEventCounterChain(0x0)
+ fLocalEventCounterChain(0x0),
+ fCableLengthMap(0x0),
+ fEventID(0)
{
//
// copy constructor
}//adc
}//adc
+ fCableLengthMap = stream.fCableLengthMap;
+
+ fEventID = stream.fEventID;
+
}
//_____________________________________________________________________________
}//adc
}//adc
+ fCableLengthMap = stream.fCableLengthMap;
+
+ fEventID = stream.fEventID;
+
return *this;
}
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;
}
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
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;