From ca6d7f172b116e7647ad6c972b1b9cca6d065f61 Mon Sep 17 00:00:00 2001 From: decaro Date: Thu, 25 Sep 2008 14:09:47 +0000 Subject: [PATCH] Bug fixed into the fEventID declaration. Added a member variable array to store the bunch ID values per each chain --- TOF/AliTOFRawStream.cxx | 139 +++++++++++++++++++++++----------------- TOF/AliTOFRawStream.h | 28 ++++---- 2 files changed, 98 insertions(+), 69 deletions(-) diff --git a/TOF/AliTOFRawStream.cxx b/TOF/AliTOFRawStream.cxx index 28856d98bdd..06d975bea13 100644 --- a/TOF/AliTOFRawStream.cxx +++ b/TOF/AliTOFRawStream.cxx @@ -178,6 +178,7 @@ AliTOFRawStream::AliTOFRawStream(AliRawReader* rawReader): fLocalEventCounterLTM(-1), fLocalEventCounterTRM(0x0), fLocalEventCounterChain(0x0), + fChainBunchID(0x0), fCableLengthMap(0x0), fEventID(0) { @@ -196,19 +197,23 @@ AliTOFRawStream::AliTOFRawStream(AliRawReader* rawReader): fRawReader->Reset(); fRawReader->Select("TOF"); - fLocalEventCounterTRM = new Int_t[13];//adc - fLocalEventCounterChain = new Int_t*[13];//adc - for (Int_t j=0;j<13;j++){//adc - fLocalEventCounterTRM[j] = -1;//adc - fLocalEventCounterChain[j] = new Int_t[2];//adc - for (Int_t k=0;k<2;k++){//adc - fLocalEventCounterChain[j][k] = -1;//adc - }//adc - }//adc + fLocalEventCounterTRM = new Int_t[13]; + fLocalEventCounterChain = new Int_t*[13]; + fChainBunchID = new Int_t*[13]; + for (Int_t j=0;j<13;j++){ + fLocalEventCounterTRM[j] = -1; + fLocalEventCounterChain[j] = new Int_t[2]; + fChainBunchID[j] = new Int_t[2]; + for (Int_t k=0;k<2;k++){ + fLocalEventCounterChain[j][k] = -1; + fChainBunchID[j][k] = -1; + } + } fCableLengthMap = new AliTOFCableLengthMap(); - fEventID = fRawReader->GetBCID(); //bunch crossing + fEventID = (Int_t)fRawReader->GetBCID(); //bunch crossing + } //_____________________________________________________________________________ @@ -246,6 +251,7 @@ AliTOFRawStream::AliTOFRawStream(): fLocalEventCounterLTM(-1), fLocalEventCounterTRM(0x0), fLocalEventCounterChain(0x0), + fChainBunchID(0x0), fCableLengthMap(0x0), fEventID(0) { @@ -260,15 +266,18 @@ AliTOFRawStream::AliTOFRawStream(): fTOFrawData = new TClonesArray("AliTOFrawData",1000); fTOFrawData->SetOwner(); - fLocalEventCounterTRM = new Int_t[13];//adc - fLocalEventCounterChain = new Int_t*[13];//adc - for (Int_t j=0;j<13;j++){//adc - fLocalEventCounterTRM[j] = -1;//adc - fLocalEventCounterChain[j] = new Int_t[2];//adc - for (Int_t k=0;k<2;k++){//adc - fLocalEventCounterChain[j][k] = -1;//adc - }//adc - }//adc + fLocalEventCounterTRM = new Int_t[13]; + fLocalEventCounterChain = new Int_t*[13]; + fChainBunchID = new Int_t*[13]; + for (Int_t j=0;j<13;j++){ + fLocalEventCounterTRM[j] = -1; + fLocalEventCounterChain[j] = new Int_t[2]; + fChainBunchID[j] = new Int_t[2]; + for (Int_t k=0;k<2;k++){ + fLocalEventCounterChain[j][k] = -1; + fChainBunchID[j][k] = -1; + } + } fCableLengthMap = new AliTOFCableLengthMap(); @@ -310,6 +319,7 @@ AliTOFRawStream::AliTOFRawStream(const AliTOFRawStream& stream) : fLocalEventCounterLTM(-1), fLocalEventCounterTRM(0x0), fLocalEventCounterChain(0x0), + fChainBunchID(0x0), fCableLengthMap(0x0), fEventID(0) { @@ -359,14 +369,15 @@ AliTOFRawStream::AliTOFRawStream(const AliTOFRawStream& stream) : fTOFrawData = new TClonesArray(*stream.fTOFrawData); - fLocalEventCounterDRM = stream.fLocalEventCounterDRM;//adc - fLocalEventCounterLTM = stream.fLocalEventCounterLTM;//adc - for (Int_t j=0;j<13;j++){//adc - fLocalEventCounterTRM[j] = stream.fLocalEventCounterTRM[j];//adc - for (Int_t k=0;k<2;k++){//adc - fLocalEventCounterChain[j][k] = stream.fLocalEventCounterChain[j][k];//adc - }//adc - }//adc + fLocalEventCounterDRM = stream.fLocalEventCounterDRM; + fLocalEventCounterLTM = stream.fLocalEventCounterLTM; + for (Int_t j=0;j<13;j++){ + fLocalEventCounterTRM[j] = stream.fLocalEventCounterTRM[j]; + for (Int_t k=0;k<2;k++){ + fLocalEventCounterChain[j][k] = stream.fLocalEventCounterChain[j][k]; + fChainBunchID[j][k] = stream.fChainBunchID[j][k]; + } + } fCableLengthMap = stream.fCableLengthMap; @@ -422,14 +433,15 @@ AliTOFRawStream& AliTOFRawStream::operator = (const AliTOFRawStream& stream) fTOFrawData = stream.fTOFrawData; - fLocalEventCounterDRM = stream.fLocalEventCounterDRM;//adc - fLocalEventCounterLTM = stream.fLocalEventCounterLTM;//adc - for (Int_t j=0;j<13;j++){//adc - fLocalEventCounterTRM[j] = stream.fLocalEventCounterTRM[j];//adc - for (Int_t k=0;k<2;k++){//adc - fLocalEventCounterChain[j][k] = stream.fLocalEventCounterChain[j][k];//adc - }//adc - }//adc + fLocalEventCounterDRM = stream.fLocalEventCounterDRM; + fLocalEventCounterLTM = stream.fLocalEventCounterLTM; + for (Int_t j=0;j<13;j++){ + fLocalEventCounterTRM[j] = stream.fLocalEventCounterTRM[j]; + for (Int_t k=0;k<2;k++){ + fLocalEventCounterChain[j][k] = stream.fLocalEventCounterChain[j][k]; + fChainBunchID[j][k] = stream.fChainBunchID[j][k]; + } + } fCableLengthMap = stream.fCableLengthMap; @@ -457,9 +469,10 @@ AliTOFRawStream::~AliTOFRawStream() delete fTOFrawData; delete [] fLocalEventCounterTRM; - for (Int_t ii=0; ii<2; ii++) + for (Int_t ii=0; ii<2; ii++) { delete [] fLocalEventCounterChain[ii]; - + delete [] fChainBunchID[ii]; + } delete fCableLengthMap; } @@ -639,7 +652,7 @@ Bool_t AliTOFRawStream::Next() } dummy = 0x0000fff0; //AliInfo(Form(" DRM local event counter = %i", GetField(data,dummy,4))); - fLocalEventCounterDRM = GetField(data,dummy,4);//adc + fLocalEventCounterDRM = GetField(data,dummy,4); fInsideDRM = kFALSE; // DRM global trailer accepted fInsideTRM = kFALSE; fInsideLTM = kFALSE; @@ -670,7 +683,7 @@ Bool_t AliTOFRawStream::Next() } dummy = 0x0fff0000; //AliInfo(Form(" LTM local event counter = %i", GetField(data,dummy,16))); - fLocalEventCounterLTM = GetField(data,dummy,16);//adc + fLocalEventCounterLTM = GetField(data,dummy,16); fInsideLTM = kFALSE; // LTM global trailer accepted break; case 15: //TRM global trailer @@ -679,7 +692,7 @@ Bool_t AliTOFRawStream::Next() } dummy = 0x0fff0000; //AliInfo(Form(" TRM local event counter = %i", GetField(data,dummy,16))); - fLocalEventCounterTRM[fTRM] = GetField(data,dummy,16);//adc + fLocalEventCounterTRM[fTRM] = GetField(data,dummy,16); fInsideTRM = kFALSE; // TRM global trailer accepted break; default: // unexpected global trailer slot ID @@ -711,6 +724,9 @@ Bool_t AliTOFRawStream::Next() } fInsideTRMchain0 = kTRUE; fTRMchain = 0; + dummy = 0x0000fff0; + //AliInfo(Form(" chain bunch ID = %i", GetField(data,dummy,4))); + fChainBunchID[fTRM][fTRMchain] = GetField(data,dummy,4); break; case TRM_CHAIN0_TRAILER_TYPE: // TRM chain0 trailer if (!fInsideTRMchain0) { // unexpected TRM chain0 trailer @@ -718,7 +734,7 @@ Bool_t AliTOFRawStream::Next() } dummy = 0x0fff0000; //AliInfo(Form(" chain local event counter = %i", GetField(data,dummy,16))); - fLocalEventCounterChain[fTRM][fTRMchain] = GetField(data,dummy,16);//adc + fLocalEventCounterChain[fTRM][fTRMchain] = GetField(data,dummy,16); fInsideTRMchain0 = kFALSE; fTRMchain = -1; break; @@ -728,6 +744,9 @@ Bool_t AliTOFRawStream::Next() } fInsideTRMchain1 = kTRUE; fTRMchain = 1; + dummy = 0x0000fff0; + //AliInfo(Form(" chain bunch ID = %i", GetField(data,dummy,4))); + fChainBunchID[fTRM][fTRMchain] = GetField(data,dummy,4); break; case TRM_CHAIN1_TRAILER_TYPE: // TRM chain1 trailer if (!fInsideTRMchain1) { // unexpected TRM chain1 trailer @@ -735,7 +754,7 @@ Bool_t AliTOFRawStream::Next() } dummy = 0x0fff0000; //AliInfo(Form(" chain local event counter = %i", GetField(data,dummy,16))); - fLocalEventCounterChain[fTRM][fTRMchain] = GetField(data,dummy,16);//adc + fLocalEventCounterChain[fTRM][fTRMchain] = GetField(data,dummy,16); fInsideTRMchain1 = kFALSE; fTRMchain = -1; break; @@ -771,12 +790,13 @@ Bool_t AliTOFRawStream::Next() fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)*/ ; if (fgApplyBCCorrections) { - AliInfo("Apply nominal DDL BC time-shift correction"); - AliInfo("Apply deltaBC time-shift correction"); + AliDebug(2,"Apply nominal DDL BC time-shift correction"); + AliDebug(2,"Apply deltaBC time-shift correction"); + AliDebug(2,Form(" fChainBunchID[%d][%d] = %d ,fEventID = %d",fTRM,fTRMchain,fChainBunchID[fTRM][fTRMchain],fEventID)); fTime += - (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth()) + (Int_t)(fgkddlBCshift[fDDL]*25./AliTOFGeometry::TdcBinWidth()*1.E+03) + - (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth()); + (Int_t)((fChainBunchID[fTRM][fTRMchain]-fEventID)*25./AliTOFGeometry::TdcBinWidth()*1.E+03); } break; @@ -788,12 +808,13 @@ Bool_t AliTOFRawStream::Next() fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)*/ ; if (fgApplyBCCorrections) { - AliInfo("Apply nominal DDL BC time-shift correction"); - AliInfo("Apply deltaBC time-shift correction"); + AliDebug(2,"Apply nominal DDL BC time-shift correction"); + AliDebug(2,"Apply deltaBC time-shift correction"); + AliDebug(2,Form(" fChainBunchID[%d][%d] = %d ,fEventID = %d",fTRM,fTRMchain,fChainBunchID[fTRM][fTRMchain],fEventID)); fLeadingEdge += - (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth()) + (Int_t)(fgkddlBCshift[fDDL]*25./AliTOFGeometry::TdcBinWidth()*1.E+03) + - (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth()); + (Int_t)((fChainBunchID[fTRM][fTRMchain]-fEventID)*25./AliTOFGeometry::TdcBinWidth()*1.E+03); } break; @@ -805,12 +826,13 @@ Bool_t AliTOFRawStream::Next() fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)*/ ; if (fgApplyBCCorrections) { - AliInfo("Apply nominal DDL BC time-shift correction"); - AliInfo("Apply deltaBC time-shift correction"); + AliDebug(2,"Apply nominal DDL BC time-shift correction"); + AliDebug(2,"Apply deltaBC time-shift correction"); + AliDebug(2,Form(" fChainBunchID[%d][%d] = %d ,fEventID = %d",fTRM,fTRMchain,fChainBunchID[fTRM][fTRMchain],fEventID)); fTrailingEdge += - (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth()) + (Int_t)(fgkddlBCshift[fDDL]*25./AliTOFGeometry::TdcBinWidth()*1.E+03) + - (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth()); + (Int_t)((fChainBunchID[fTRM][fTRMchain]-fEventID)*25./AliTOFGeometry::TdcBinWidth()*1.E+03); } break; @@ -821,12 +843,13 @@ Bool_t AliTOFRawStream::Next() fCableLengthMap->GetCableTimeShiftBin(fDDL, fTRM, fTRMchain, fTDC)*/ ; if (fgApplyBCCorrections) { - AliInfo("Apply nominal DDL BC time-shift correction"); - AliInfo("Apply deltaBC time-shift correction"); + AliDebug(2,"Apply nominal DDL BC time-shift correction"); + AliDebug(2,"Apply deltaBC time-shift correction"); + AliDebug(2,Form(" fChainBunchID[%d][%d] = %d ,fEventID = %d",fTRM,fTRMchain,fChainBunchID[fTRM][fTRMchain],fEventID)); fTime += - (Int_t)(fgkddlBCshift[fDDL]*25.*1000./AliTOFGeometry::TdcBinWidth()) + (Int_t)(fgkddlBCshift[fDDL]*25./AliTOFGeometry::TdcBinWidth()*1.E+03) + - (Int_t)((fLocalEventCounterChain[fTRM][fTRMchain]-fEventID)*25.*1000./AliTOFGeometry::TdcBinWidth()); + (Int_t)((fChainBunchID[fTRM][fTRMchain]-fEventID)*25./AliTOFGeometry::TdcBinWidth()*1.E+03); } break; diff --git a/TOF/AliTOFRawStream.h b/TOF/AliTOFRawStream.h index 45cc3389cf5..0c75d954c91 100644 --- a/TOF/AliTOFRawStream.h +++ b/TOF/AliTOFRawStream.h @@ -435,10 +435,13 @@ class AliTOFRawStream: public TObject { void SetPadZ(); void SetPadX(); - Int_t GetLocalEventCounterDRM() {return fLocalEventCounterDRM;};//adc - Int_t GetLocalEventCounterLTM() {return fLocalEventCounterLTM;};//adc - Int_t GetLocalEventCounterTRM(Int_t trm) {return fLocalEventCounterTRM[trm];};//adc - Int_t GetLocalEventCounterChain(Int_t trm, Int_t chain) {return fLocalEventCounterChain[trm][chain];};//adc + Bool_t GetBCCorrections() {return fgApplyBCCorrections;}; // getter for the BC application switch + Int_t GetDDLBCshift(Int_t ddl) {return fgkddlBCshift[ddl];}; // getter for the DDL BC shift + Int_t GetLocalEventCounterDRM() {return fLocalEventCounterDRM;}; // getter for the DRM event counter + Int_t GetLocalEventCounterLTM() {return fLocalEventCounterLTM;}; // getter for the LTM event counter + Int_t GetLocalEventCounterTRM(Int_t trm) {return fLocalEventCounterTRM[trm];}; // getter for the TRM event counter + Int_t GetLocalEventCounterChain(Int_t trm, Int_t chain) {return fLocalEventCounterChain[trm][chain];}; // getter for the chain event counter + Int_t GetChainBunchID(Int_t trm, Int_t chain) {return fChainBunchID[trm][chain];}; // getter for the chain BC ID void EquipmentId2VolumeId(Int_t nDDL, Int_t nTRM, Int_t iChain, Int_t iTDC, Int_t iCH, Int_t *volume) const; @@ -468,6 +471,8 @@ class AliTOFRawStream: public TObject { Bool_t LoadRawDataBuffers(Int_t indexDDL, Int_t verbose = 0); static void ApplyBCCorrections(Bool_t Value = kTRUE) {fgApplyBCCorrections = Value;}; + Int_t GetEventID() const {return fEventID;}; // getter for the eventID1 (bunch crossing) in the common data header + enum ETOFRawStreamError { kPadXError = 0, kPadAlongStripError = 1, @@ -526,17 +531,18 @@ class AliTOFRawStream: public TObject { AliTOFHitDataBuffer *fDataBuffer[72]; // pointer to AliTOFHitDataBuffer AliTOFHitDataBuffer *fPackedDataBuffer[72]; // pointer to AliTOFHitDataBuffer - Int_t fLocalEventCounterDRM;//adc - Int_t fLocalEventCounterLTM;//adc - Int_t *fLocalEventCounterTRM;//adc - Int_t **fLocalEventCounterChain;//adc + Int_t fLocalEventCounterDRM; // event counter recorded in the DRM global trailer + Int_t fLocalEventCounterLTM; // event counter recorded in the LTM global trailer + Int_t *fLocalEventCounterTRM; // event counter recorded in the TRMs global trailer + Int_t **fLocalEventCounterChain; // event counter recorded in the chains trailer + Int_t **fChainBunchID; // BC ID recorded in the chains header AliTOFCableLengthMap * fCableLengthMap; - UInt_t fEventID; // event ID + Int_t fEventID; // event ID1 in the common data header - static const Int_t fgkddlBCshift[72]; // - static Bool_t fgApplyBCCorrections; // + static const Int_t fgkddlBCshift[72]; // DDL BC shifts + static Bool_t fgApplyBCCorrections; // switch to choose if apply or not the BC shift corrections ClassDef(AliTOFRawStream, 3) // class for reading TOF raw digits }; -- 2.43.0