]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawStreamTriggerHP.cxx
Adding a control flag to AliMUONRawStreamTriggerHP to allow the decoder
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTriggerHP.cxx
index 89b3b1191a12d488360a805432c7f5764e16ee12..d9698bbca06ccc76b417ea7c0bd5582a717e448b 100644 (file)
@@ -57,6 +57,7 @@ ClassImp(AliMUONRawStreamTriggerHP)
 /// \endcond
 
 const Int_t AliMUONRawStreamTriggerHP::fgkMaxDDL = 2;
+bool AliMUONRawStreamTriggerHP::AliLocalStruct::fgOverrideId = true;
 
 const AliMUONRegionalHeaderStruct
 AliMUONRawStreamTriggerHP::AliDecoderEventHandler::fgkEmptyHeader = {
@@ -348,6 +349,15 @@ AliMUONDDLTrigger* AliMUONRawStreamTriggerHP::GetDDLTrigger() const
                        {
                                memcpy(localStruct.GetScalers(), lstruct->GetScalars(), sizeof(AliMUONLocalScalarsStruct));
                        }
+                       if (AliMUONRawStreamTriggerHP::AliLocalStruct::GetOverrideIdFlag() == true)
+                       {
+                               // Since the override ID flag is set, we need to replace the
+                               // ID in the structure with the calculated one returned by GetId().
+                               AliMUONLocalInfoStruct* strptr = reinterpret_cast<AliMUONLocalInfoStruct*>( localStruct.GetData() );
+                               UInt_t word = strptr->fTriggerBits;
+                               word &= (0xF << 19);
+                               strptr->fTriggerBits = word | (lstruct->GetId() << 19);
+                       }
                        fDDLObject->AddLocStruct(localStruct, iReg);
                        lstruct = lstruct->Next();
                }