]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerElectronics.cxx
Added protection and 2 levels for problems
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerElectronics.cxx
index 3cfd3e4274fef45cd1a514ef0a4d9d771c0e41f6..b8ec44310463e8e2b452ea167784a441f2c3a77e 100644 (file)
@@ -24,7 +24,6 @@
 #include "AliMUONTriggerElectronics.h"
 #include "AliMUONTriggerCrate.h"
 #include "AliMUONTriggerCrateStore.h"
-#include "AliMUONConstants.h"
 #include "AliMUONLocalTriggerBoard.h"
 #include "AliMUONRegionalTriggerBoard.h"
 #include "AliMUONGlobalTriggerBoard.h"
@@ -40,6 +39,7 @@
 
 #include "AliMpSegmentation.h"
 #include "AliMpVSegmentation.h"
+#include "AliMpCathodType.h"
 
 #include "AliLog.h"
 #include "AliLoader.h"
@@ -138,7 +138,6 @@ void AliMUONTriggerElectronics::FeedM()
 
          //       CHECKME ! The TrackCharge is not ok with new digitizerV3 !
          //                    for (Int_t ichg=0; ichg<10; ichg++) schg += mdig->TrackCharge(ichg);
-         //       assert(schg==mdig->Signal());
          Int_t schg = (Int_t)(mdig->Signal() + 0.5);
          
          //       APPLY CONDITION ON SOFT BACKGROUND   
@@ -152,7 +151,8 @@ void AliMUONTriggerElectronics::FeedM()
              Int_t cathode    = mdig->Cathode();
 
              const AliMpVSegmentation *seg = 
-               AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,cathode);
+               AliMpSegmentation::Instance()
+                  ->GetMpSegmentation(detElemId,AliMp::GetCathodType(cathode));
 
              Int_t ix = mdig->PadX(), iy = mdig->PadY();
                                
@@ -362,7 +362,7 @@ void AliMUONTriggerElectronics::Reset()
 //_______________________________________________________________________
 void AliMUONTriggerElectronics::LoadMasks(AliMUONCalibrationData* calibData)
 {
-  // LOAD MASKS FROM CDB
+  /// LOAD MASKS FROM CDB
   
 
   // SET MASKS
@@ -561,7 +561,6 @@ void AliMUONTriggerElectronics::Digits2Trigger()
 
       UInt_t regInpLpt = 0;
       UInt_t regInpHpt = 0;
-      UShort_t localMask = 0x0;
 
       AliMUONRegionalTriggerBoard *regBoard = (AliMUONRegionalTriggerBoard*)boards->At(0);
 
@@ -576,14 +575,18 @@ void AliMUONTriggerElectronics::Digits2Trigger()
        if (board) 
        {
          //          L0 TRIGGER
-         if (board->Triggered())
-         {
+// pcrochet 181206: MOOD needs ALL boards
+//       if (board->Triggered())
+//       {
           
            Int_t icirc = board->GetNumber();
+           if (icirc != 0) { // pcrochet 181206: MOOD needs ALL boards
 
            fLocalTrigger->SetLoCircuit(icirc);
            fLocalTrigger->SetLoStripX(board->GetStripX11());
            fLocalTrigger->SetLoDev(board->GetDev());
+           fLocalTrigger->SetLoSdev(board->GetSdev());
+           fLocalTrigger->SetLoTrigY(board->GetTrigY());
            fLocalTrigger->SetLoStripY(board->GetStripY11());
           
            //             SAVE LUT OUTPUT 
@@ -592,12 +595,11 @@ void AliMUONTriggerElectronics::Digits2Trigger()
            fLocalTrigger->SetLoLpt(response &  3);
 
            // calculates regional inputs from local for the moment
-           UInt_t hPt = (response >> 4) & 0x3;
-           UInt_t lPt = (response >> 2) & 0x3;
+           UInt_t hPt = (response >> 2) & 0x3;
+           UInt_t lPt =  response       & 0x3;
            
            regInpHpt |= hPt << (30 - (j-1)*2);
            regInpLpt |= lPt << (30 - (j-1)*2);
-           localMask |= (0x1 << (j-1)); // local mask
 
            TBits rrr;
            rrr.Set(6,&response);         
@@ -619,10 +621,10 @@ void AliMUONTriggerElectronics::Digits2Trigger()
          }
        }
       }
+      pRegTrig->SetId(iReg + 8*iSide);
       pRegTrig->SetLocalOutput(regInpLpt, 0);
       pRegTrig->SetLocalOutput(regInpHpt, 1);
-      pRegTrig->SetLocalMask(localMask);
-      pRegTrig->SetOutput((regBoard->GetResponse() >> 4) & 0xF); // to be uniformized (oct06 ?)
+      pRegTrig->SetOutput(regBoard->GetResponse());
 
       fMUONData->AddRegionalTrigger(*pRegTrig);  
     }