// @(#) $Id$ // Author: C. Loizides //*-- Copyright © ALICE HLT Group #include "AliL3StandardIncludes.h" #include "AliL3RootTypes.h" #include "AliL3Logging.h" #include "AliL3Transform.h" #include "AliL3MemHandler.h" #include "AliL3DigitData.h" #include "AliL3DDLTPCRawStream.h" #include "AliL3DDLRawReaderFile.h" #include "AliL3DDLDataFileHandler.h" #if GCCVERSION == 3 using namespace std; #endif /** \class AliL3DDLDataFileHandler
//_____________________________________________________________
// AliL3DDLDataFileHandler
//
//  This class does converts from the DDL format of offline
//  into the memory I/O handling of the HLT binary files.
//  
//  Examples: see ddl2binary in exa and the general 
//            AliL3MemHandler class description
//
*/ ClassImp(AliL3DDLDataFileHandler) AliL3DDLDataFileHandler::AliL3DDLDataFileHandler() { fReader=0; fTPCStream=0; } AliL3DDLDataFileHandler::~AliL3DDLDataFileHandler() { FreeAll(); } void AliL3DDLDataFileHandler::FreeAll() { if(fReader) delete fReader; if(fTPCStream) delete fTPCStream; fReader = 0; fTPCStream = 0; } Bool_t AliL3DDLDataFileHandler::SetReaderInput(Char_t *name, Bool_t add) { if(fReader){ LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::SetReaderInput","File Open") <<"Reader ptr is already in use"<SetDDLID(ddls[i]); //ddl to read out while (fTPCStream->Next()){ UShort_t dig=fTPCStream->GetSignal(); if(dig <= AliL3Transform::GetZeroSup()) continue; if(dig >= AliL3Transform::GetADCSat()) dig = AliL3Transform::GetADCSat(); Int_t time=fTPCStream->GetTime(); Int_t pad=fTPCStream->GetPad(); Int_t sector=fTPCStream->GetSector(); Int_t row=fTPCStream->GetRow(); Int_t slice,srow; //test row criteria (patch boundaries) AliL3Transform::Sector2Slice(slice,srow,sector,row); if((srowfRowMax))continue; if(slice!=fSlice){ LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Slice") <=nrows){ LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Row") <=AliL3Transform::GetNPads(srow))){ LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Pad") <=AliL3Transform::GetNTimeBins())){ LOG(AliL3Log::kError,"AliL3DDLDataFileHandler::DDLDigits2Memory","Time") <fRow = r; tempPt->fNDigit = ndigits[lrow]; Int_t localcount=0; for(Int_t pad=0;pad= ndigits[lrow]) LOG(AliL3Log::kFatal,"AliL3DDLDataFileHandler::DDLDigits2Binary","Memory") <fDigitData[localcount].fCharge=dig; tempPt->fDigitData[localcount].fPad=pad; tempPt->fDigitData[localcount].fTime=time; #ifdef do_mc tempPt->fDigitData[localcount].fTrackID[0] = 0; tempPt->fDigitData[localcount].fTrackID[1] = 0; tempPt->fDigitData[localcount].fTrackID[2] = 0; #endif localcount++; } } if(localcount != ndigits[lrow]) LOG(AliL3Log::kFatal,"AliL3DDLDataFileHandler::DDLDigits2Binary","Memory") <