From: martinez Date: Wed, 7 Jun 2006 15:52:41 +0000 (+0000) Subject: Update rawdata format for trigger (Christian) X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=00f561619c634abc25995e4cbe476ca4bc846f09 Update rawdata format for trigger (Christian) --- diff --git a/MUON/AliMUONRawStreamTrigger.cxx b/MUON/AliMUONRawStreamTrigger.cxx index df291a35e2f..0d9e959031b 100644 --- a/MUON/AliMUONRawStreamTrigger.cxx +++ b/MUON/AliMUONRawStreamTrigger.cxx @@ -192,7 +192,7 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() } if (buffer[index++] != darcHeader->GetEndOfDarc()) - AliWarning(Form("Wrong end of Darc word %d instead of %d\n",buffer[index-1], darcHeader->GetEndOfDarc())); + AliWarning(Form("Wrong end of Darc word %x instead of %x\n",buffer[index-1], darcHeader->GetEndOfDarc())); // 4 words of global board input + Global board output memcpy(darcHeader->GetGlobalInput(), &buffer[index], (kDarcHeaderSize-1)*4); @@ -221,7 +221,7 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() } if (buffer[index++] != fRegHeader->GetEndOfReg()) - AliWarning(Form("Wrong end of Reg word %d instead of %d\n",buffer[index-1], fRegHeader->GetEndOfReg())); + AliWarning(Form("Wrong end of Reg word %x instead of %x\n",buffer[index-1], fRegHeader->GetEndOfReg())); // 16 local cards per regional board for (Int_t iLoc = 0; iLoc < fMaxLoc; iLoc++) { //loop over local card @@ -239,7 +239,7 @@ Bool_t AliMUONRawStreamTrigger::NextDDL() } if (buffer[index++] != fLocalStruct->GetEndOfLocal()) - AliWarning(Form("Wrong end of local word %d instead of %d\n",buffer[index-1], fLocalStruct->GetEndOfLocal())); + AliWarning(Form("Wrong end of local word %x instead of %x\n",buffer[index-1], fLocalStruct->GetEndOfLocal())); fDDLTrigger->AddLocStruct(*fLocalStruct, iReg); diff --git a/MUON/AliMUONRawWriter.cxx b/MUON/AliMUONRawWriter.cxx index f29f35c4cf1..819adc4406d 100644 --- a/MUON/AliMUONRawWriter.cxx +++ b/MUON/AliMUONRawWriter.cxx @@ -687,11 +687,11 @@ Int_t AliMUONRawWriter::WriteTriggerDDL() AliInfo("No Trigger information available"); if(fScalerEvent) - // [16(local)*51 words + 15 words]*8(reg) + 6 + 12 + 6 words scaler event 6672 words - buffer = new Int_t [6672]; + // [16(local)*51 words + 16 words]*8(reg) + 6 + 12 + 6 words scaler event 6672 words + buffer = new Int_t [6680]; else - // [16(local)*6 words + 4 words]*8(reg) + 10 words = 810 - buffer = new Int_t [810]; + // [16(local)*6 words + 5 words]*8(reg) + 10 words = 818 + buffer = new Int_t [818]; // open DDL file, on per 1/2 chamber @@ -699,8 +699,8 @@ Int_t AliMUONRawWriter::WriteTriggerDDL() index = 0; - // DDL enhanced header word = 0; + // set darc status word AliBitPacking::PackWord((UInt_t)iDDL+1,word,28,31); //see AliMUONDDLTrigger.h for details AliBitPacking::PackWord((UInt_t)serialNb,word,24,27); AliBitPacking::PackWord((UInt_t)version,word,16,23); @@ -713,7 +713,7 @@ Int_t AliMUONRawWriter::WriteTriggerDDL() AliBitPacking::PackWord((UInt_t)globalFlag,word,8,11); fDarcHeader->SetWord(word); - buffer[index++]= word; + buffer[index++] = word; if (iDDL == 0) fDarcHeader->SetGlobalOutput(gloTrigPat);// no global input for the moment.... @@ -746,6 +746,10 @@ Int_t AliMUONRawWriter::WriteTriggerDDL() // Regional card header word = 0; + + // set darc status word + fRegHeader->SetDarcWord(word); + regOut = 0; AliBitPacking::PackWord((UInt_t)serialNb,word,24,28); //see AliMUONLocalStruct.h for details AliBitPacking::PackWord((UInt_t)version,word,16,23); diff --git a/MUON/AliMUONRegHeader.cxx b/MUON/AliMUONRegHeader.cxx index c66c8c85972..cd9a022feee 100644 --- a/MUON/AliMUONRegHeader.cxx +++ b/MUON/AliMUONRegHeader.cxx @@ -29,13 +29,14 @@ ClassImp(AliMUONRegHeader) /// \endcond - const Int_t AliMUONRegHeader::fgkHeaderLength = 3; + const Int_t AliMUONRegHeader::fgkHeaderLength = 4; const Int_t AliMUONRegHeader::fgkScalerLength = 8; const UInt_t AliMUONRegHeader::fgkEndOfReg = 0xBEEFFACE; //___________________________________________ AliMUONRegHeader::AliMUONRegHeader() : TObject(), + fDarcWord(0), fWord(0), fL0(0), fClk(0), @@ -71,10 +72,11 @@ AliMUONRegHeader::AliMUONRegHeader(const AliMUONRegHeader& event) // // copy ctor // - fWord = event.fWord; - fL0 = event.fL0; - fClk = event.fClk; - fHold = event.fHold; + fDarcWord = event.fDarcWord; + fWord = event.fWord; + fL0 = event.fL0; + fClk = event.fClk; + fHold = event.fHold; fInput[0] = event.fInput[0]; fInput[1] = event.fInput[1]; @@ -98,10 +100,11 @@ AliMUONRegHeader& AliMUONRegHeader::operator=(const AliMUONRegHeader& event) if (this == &event) return *this; - fWord = event.fWord; - fL0 = event.fL0; - fClk = event.fClk; - fHold = event.fHold; + fDarcWord = event.fDarcWord; + fWord = event.fWord; + fL0 = event.fL0; + fClk = event.fClk; + fHold = event.fHold; fInput[0] = event.fInput[0]; fInput[1] = event.fInput[1]; diff --git a/MUON/AliMUONRegHeader.h b/MUON/AliMUONRegHeader.h index a1f7d662df7..22226ba0152 100644 --- a/MUON/AliMUONRegHeader.h +++ b/MUON/AliMUONRegHeader.h @@ -25,7 +25,7 @@ public: virtual ~AliMUONRegHeader(); - + UInt_t GetDarcWord() const {return fDarcWord;} UInt_t GetWord() const {return fWord;} UInt_t GetInput(Int_t n) const {return fInput[n];} @@ -35,6 +35,7 @@ public: Char_t GetId() const {return (Char_t)(fWord >> 12) & 0x0F;} Char_t GetOutput() const {return (Char_t)(fWord) & 0xFF;} + void SetDarcWord(UInt_t w) {fDarcWord = w;} void SetWord(UInt_t w) {fWord = w;} void SetInput(UInt_t in, Int_t n) {fInput[n] = in;} @@ -42,7 +43,7 @@ public: UInt_t GetEndOfReg() const {return fgkEndOfReg;} - UInt_t* GetHeader() {return &fWord;} + UInt_t* GetHeader() {return &fDarcWord;} // scalar methods UInt_t GetL0() const {return fL0;} @@ -74,7 +75,8 @@ public: private: // regional header - UInt_t fWord; ///< first word + UInt_t fDarcWord; ///< darc word + UInt_t fWord; ///< first reg word UInt_t fInput[2]; ///< regional input // regional card scalers