]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Set the number of regional boards with Darc type if not set from outside
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 18 Dec 2007 12:20:58 +0000 (12:20 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 18 Dec 2007 12:20:58 +0000 (12:20 +0000)
(Christian)

MUON/AliMUONPayloadTrigger.cxx
MUON/AliMUONPayloadTrigger.h

index 349bb1938189fae1b854a3560276cf6592c0db25..6a6b1a37ab91e7831f60701da0a03504c4232f96 100644 (file)
@@ -52,7 +52,8 @@ AliMUONPayloadTrigger::AliMUONPayloadTrigger()
     fGlobalEoWErrors(0),
     fRegEoWErrors(0),
     fLocalEoWErrors(0),
-    fWarnings(kTRUE)
+    fWarnings(kTRUE),
+    fNofRegSet(kFALSE)
 {
   ///
   /// create an object to read MUON raw digits
@@ -95,11 +96,22 @@ Bool_t AliMUONPayloadTrigger::Decode(UInt_t *buffer)
   memcpy(darcHeader->GetHeader(), &buffer[index], (kDarcHeaderSize)*4); 
   index += kDarcHeaderSize;
 
-  if(darcHeader->GetEventType() == 0) {
-    scalerEvent = kTRUE;
-  } else
-    scalerEvent = kFALSE;
-
+  if (!fNofRegSet) // if regional board number not set, set it with darc type
+  { 
+    // darc type vardorh
+    if (darcHeader->GetDarcType() == 4)
+      fMaxReg = 1;
+    
+    // darc type def.
+    if (darcHeader->GetDarcType() == 6)
+      fMaxReg = 8;
+      
+    if(darcHeader->GetEventType() == 0) {
+      scalerEvent = kTRUE;
+    } else
+      scalerEvent = kFALSE;
+  }
+  
   if(scalerEvent) {
     // 6 DARC scaler words
     memcpy(darcHeader->GetDarcScalers(), &buffer[index], darcHeader->GetDarcScalerLength()*4);
@@ -210,7 +222,9 @@ void AliMUONPayloadTrigger::SetMaxReg(Int_t reg)
 {
   /// set regional card number
   if (reg > 8) reg = 8;
-  fMaxReg = reg;
+   fMaxReg = reg;
+   
+  fNofRegSet = kTRUE;
 }
 
 //______________________________________________________
index 7557c275d6710438f7012c8594a75ee384da8f5d..4ced1c0d5db7a05930c84d3bed328ef155369397 100644 (file)
@@ -73,13 +73,15 @@ class AliMUONPayloadTrigger: public TObject {
     AliMUONRegHeader*        fRegHeader;    //!< pointer for regional structure
     AliMUONLocalStruct*      fLocalStruct;  //!< pointer to local structure
 
-    AliMUONLogger* fLog;                      //!< Map of errors msg;
+    AliMUONLogger* fLog;                    //!< Map of errors msg;
     Int_t   fDarcEoWErrors;                 //!< number of end of DARC word errors;
     Int_t   fGlobalEoWErrors;               //!< number of end of global word errors;
     Int_t   fRegEoWErrors;                  //!< number of end of regional word errors;
     Int_t   fLocalEoWErrors;                //!< number of end of local word errors;
-    Bool_t  fWarnings;                        //!< flag to enable/disable warnings
-    ClassDef(AliMUONPayloadTrigger, 2)    // base class for reading MUON trigger rawdata
+    Bool_t  fWarnings;                      //!< flag to enable/disable warnings
+    Bool_t  fNofRegSet;                     //!< true if number of regional boards is set from outside
+
+    ClassDef(AliMUONPayloadTrigger, 3)    // base class for reading MUON trigger rawdata
 };
 
 #endif