X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=T0%2FAliT0RawData.cxx;h=5198958443a7d6423e52acfedf2a9d20e4fe3882;hb=f55d559bb4254f998da39f2574e8421d55babd8b;hp=ca52741379ec95106e34cf3865d99b29b4ad0891;hpb=256d494349257e44a0c32ac49bd8329679586ec1;p=u%2Fmrichter%2FAliRoot.git diff --git a/T0/AliT0RawData.cxx b/T0/AliT0RawData.cxx index ca52741379e..5198958443a 100644 --- a/T0/AliT0RawData.cxx +++ b/T0/AliT0RawData.cxx @@ -21,8 +21,8 @@ // // /////////////////////////////////////////////////////////////////////////////// -#include -#include +//#include +//#include #include #include "AliT0.h" #include "AliT0RawData.h" @@ -35,6 +35,7 @@ #include "AliRunLoader.h" #include "AliDAQ.h" #include "AliT0LookUpValue.h" +#include "AliT0LookUpKey.h" ClassImp(AliT0RawData) @@ -51,7 +52,6 @@ ClassImp(AliT0RawData) fDataHeaderPos(0), fDRMDataHeaderPos(0), fTRMDataHeaderPos(0), - fDigits(0), fParam(0), fLookUp(0) @@ -82,7 +82,7 @@ uncertances memset(fBuffer,0,512*sizeof(UInt_t)); //get event number - AliRunLoader *runloader = AliRunLoader::GetRunLoader(); + AliRunLoader *runloader = AliRunLoader::Instance(); if (runloader) { fEventNumber = runloader->GetEventNumber(); } @@ -94,11 +94,11 @@ uncertances AliT0LookUpKey* lookkey= new AliT0LookUpKey(); AliT0LookUpValue* lookvalue= new AliT0LookUpValue(); TMap *lookup = fParam->GetMapLookup(); - TMapIter *iter = new TMapIter(lookup); + TMapIter iter(lookup); for( Int_t iline=0; iline<106; iline++) { - lookvalue = ( AliT0LookUpValue*) iter->Next(); + lookvalue = ( AliT0LookUpValue*) iter.Next(); lookkey = (AliT0LookUpKey*) lookup->GetValue(lookvalue); fLookUp.Add(lookkey, lookvalue); lookkey= new AliT0LookUpKey(); @@ -121,7 +121,6 @@ AliT0RawData::AliT0RawData(const AliT0RawData &r):TObject(), fDataHeaderPos(0), fDRMDataHeaderPos(0), fTRMDataHeaderPos(0), - fDigits(0) , fParam(0), fLookUp(0) @@ -140,10 +139,6 @@ AliT0RawData::~AliT0RawData() // // Destructor // - if (fDigits) { - delete fDigits; - fDigits = NULL; - } delete fTimeCFD; delete fADC1; delete fTimeLED; @@ -164,6 +159,7 @@ AliT0RawData &AliT0RawData::operator=(const AliT0RawData &r) //_____________________________________________________________________________ void AliT0RawData::GetDigits(AliT0digit *fDigits) +//void AliT0RawData::GetDigits(fDigits) { //This method packs the T0 digits in a proper 32 bits structure @@ -188,26 +184,37 @@ void AliT0RawData::GetDigits(AliT0digit *fDigits) Int_t timeC = fDigits->BestTimeA(); - TArrayI *allData = new TArrayI(110); - Int_t i=0; - allData->AddAt(0,0); - for (i=1; i<25; i++) { - allData->AddAt(fTimeLED->At(i-1),i); - allData->AddAt(fTimeCFD->At(i-1),i+24); - allData->AddAt(fADC0->At(i-1),i+56); - allData->AddAt(fADC1->At(i-1),i+80); - + // TArrayI *allData = new TArrayI(110); + Int_t allData[110][1]; + for (Int_t i=0; i<110; i++) allData[i][0] = 0; + + allData[0][0]=0; + for (Int_t i=1; i<13; i++) { + allData[i][0] = fTimeCFD->At(i-1); + allData[i+12][0] = fTimeLED->At(i-1); + allData[i+56][0] = fTimeCFD->At(i-1+12); + allData[i+68][0] = fTimeLED->At(i-1+12); + } + + for (Int_t iii=0; iii<12; iii++) { + allData[2*iii+25][0] = fADC1->At(iii); + allData[2*iii+26][0] = fADC0->At(iii); + } + for (Int_t ii=12; ii<24; ii++) { + allData[2*ii+57][0] = fADC1->At(ii); + allData[2*ii+58][0] = fADC0->At(ii); } - allData->AddAt(meantime,49); - allData->AddAt(timediff,50); - allData->AddAt(timeA,51); - allData->AddAt(timeC,52); - allData->AddAt(mult0,53); - allData->AddAt(mult1,54); - allData->AddAt(mult0,55); - allData->AddAt(mult1,56); - - // cout.setf( ios_base::hex, ios_base::basefield ); + + allData[49][0] = meantime; + allData[50][0] = timediff; + allData[51][0] = timeA; + allData[52][0] = timeC; + allData[53][0] = mult0; + allData[54][0] = mult1; + allData[55][0] = mult0; + allData[56][0] = mult1; + + // cout.setf( ios_base::hex, ios_base::basefield ); //space for DRM header fIndex += 6; @@ -218,44 +225,40 @@ void AliT0RawData::GetDigits(AliT0digit *fDigits) positionOfTRMHeader= fIndex; //space for chain header fIndex ++; - WriteChainDataHeader(0, 0); // + WriteChainDataHeader(1, 1); // + + // fIndex++; // Loop through all PMT Int_t chain=0; Int_t iTDC = 0; Int_t channel=0; Int_t trm1words=0; - Int_t itrm=0, oldtrm=0; + Int_t itrm=7; + Int_t inside =0; + Int_t isData = 0; AliT0LookUpKey * lookkey = new AliT0LookUpKey(); AliT0LookUpValue * lookvalue ;//= new AliT0LookUpValue(trm,tdc,chain,channel); for (Int_t det = 0; det < 105; det++) { - time = allData->At(det); - if (time >0) { + time = allData[det][0]; + if (time >0 && time !=99999) { lookkey->SetKey(det); lookvalue = (AliT0LookUpValue*) fLookUp.GetValue((TObject*)lookkey); if (lookvalue ) { + isData++; itrm= lookvalue->GetTRM(); - if (itrm != oldtrm ) { + if (det >56 &&inside == 0) { WriteChainDataTrailer(1); // 1st chain trailer fIndex++; - WriteChainDataHeader(2, 1); // - WriteChainDataTrailer(3); // 2st chain trailer - WriteTrailer(15,0,fEventNumber,5); // 1st TRM trailer - - - trm1words = fIndex - startTRM; - WriteTRMDataHeader(oldtrm, trm1words , positionOfTRMHeader); - //space for 2st TRM header - startTRM=fIndex; - fIndex ++; - positionOfTRMHeader= fIndex; - fIndex ++; - oldtrm=itrm; + WriteChainDataHeader(2, 1); + // fIndex++; + inside++; } chain = lookvalue->GetChain(); iTDC = lookvalue->GetTDC(); channel = lookvalue->GetChannel(); FillTime(channel, iTDC, time); + AliDebug(1,Form("look %i itrm %i , chain %i , iTDC %i, channel %i time %i", det,itrm,chain,iTDC,channel, time)); } else { @@ -265,10 +268,12 @@ void AliT0RawData::GetDigits(AliT0digit *fDigits) } } - - WriteChainDataTrailer(1); // 1st chain trailer - fIndex++; - WriteChainDataHeader(2, 1); // + if (inside==0) { + WriteChainDataTrailer(1); // 1st chain trailer + fIndex++; + WriteChainDataHeader(2, 1); + } + // WriteChainDataHeader(2, 1); // WriteChainDataTrailer(3); // 2st chain trailer WriteTrailer(15,0,fEventNumber,5); // 1st TRM trailer @@ -276,34 +281,14 @@ void AliT0RawData::GetDigits(AliT0digit *fDigits) trm1words = fIndex - startTRM; //space for 2st TRM header - WriteTRMDataHeader(1, trm1words , positionOfTRMHeader); + WriteTRMDataHeader(itrm, trm1words , positionOfTRMHeader); //DRM trailer - WriteTrailer(1,0,fEventNumber,5); // 1st TRM trailer + WriteTrailer(1,0,fEventNumber,5); WriteDRMDataHeader(); - delete allData; - } -//------------------------------------------------------------------------------ -void AliT0RawData::PackWord(UInt_t &BaseWord, UInt_t Word, Int_t StartBit, Int_t StopBit) -{ - - // Build mask - Int_t len=StopBit-StartBit+1; - UInt_t mask=0; - for(Int_t jb=0; jb mask){ - Error("PackWord", "Word to be filled is not within desired length\n" - "Word:%d Start bit:%d Stop Bit:%d",Word,StartBit,StopBit); - return; - } - BaseWord=(BaseWord&~(mask<