X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=T0%2FAliT0RawData.cxx;h=5198958443a7d6423e52acfedf2a9d20e4fe3882;hb=f55d559bb4254f998da39f2574e8421d55babd8b;hp=404121301315ec97b498608ef59da20b232786ad;hpb=29d3e0eb865fe1aeb4dd679ec54b0473ff30b934;p=u%2Fmrichter%2FAliRoot.git diff --git a/T0/AliT0RawData.cxx b/T0/AliT0RawData.cxx index 40412130131..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,17 +94,17 @@ 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(); - lookkey = (AliT0LookUpKey*) lookup->GetValue((TObject*)lookvalue); - fLookUp.Add((TObject*)lookkey,(TObject*)lookvalue); + lookvalue = ( AliT0LookUpValue*) iter.Next(); + lookkey = (AliT0LookUpKey*) lookup->GetValue(lookvalue); + fLookUp.Add(lookkey, lookvalue); lookkey= new AliT0LookUpKey(); lookvalue= new AliT0LookUpValue(); } - + } //_____________________________________________________________________________ @@ -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); } - 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 ); + 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[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,48 +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) { - - AliT0LookUpKey * lookkey = new AliT0LookUpKey(); - AliT0LookUpValue * lookvalue ;//= new AliT0LookUpValue(trm,tdc,chain,channel); + 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(); - // cout< 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<