]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Interfaced with new trigger mapping (Christian)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Jun 2007 08:29:15 +0000 (08:29 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Jun 2007 08:29:15 +0000 (08:29 +0000)
MUON/AliMUONDigitMaker.cxx
MUON/AliMUONDigitMaker.h

index 2779db98cbf7ff301c07b7fe4077dbab1b9e2740..52dc820bc70d124afa031761c1594d13f2c27b62 100644 (file)
 #include "AliMUONGlobalTrigger.h"
 #include "AliMUONLocalStruct.h"
 #include "AliMUONLocalTrigger.h"
-#include "AliMUONLocalTriggerBoard.h"
 #include "AliMUONRawStreamTracker.h"
 #include "AliMUONRawStreamTrigger.h"
 #include "AliMUONRegHeader.h"
 #include "AliMUONTriggerCircuit.h"
-#include "AliMUONTriggerCrate.h"
-#include "AliMUONTriggerCrateStore.h"
+#include "AliMpTriggerCrate.h"
+#include "AliMpLocalBoard.h"
 #include "AliMUONVTriggerStore.h"
 #include "AliMpCathodType.h"
 #include "AliMpDDLStore.h"
@@ -76,7 +75,6 @@ AliMUONDigitMaker::AliMUONDigitMaker()
     fMakeTriggerDigits(kFALSE),
     fRawStreamTracker(new AliMUONRawStreamTracker()),    
     fRawStreamTrigger(new AliMUONRawStreamTrigger()),    
-    fCrateManager(0x0),
     fTrackerTimer(),
     fTriggerTimer(),
     fMappingTimer(),
@@ -260,14 +258,14 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
     for(Int_t iReg = 0; iReg < nReg ;iReg++)
     {   //reg loop
       
-      // crate info
-      if (!fCrateManager) AliFatal("Crate Store not defined");
-      AliMUONTriggerCrate* crate = fCrateManager->Crate(fRawStreamTrigger->GetDDL(), iReg);
+
+      // crate info  
+      AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->
+                                GetTriggerCrate(fRawStreamTrigger->GetDDL(), iReg);
       
       if (!crate) 
         AliWarning(Form("Missing crate number %d in DDL %d\n", iReg, fRawStreamTrigger->GetDDL()));
-      
-      TObjArray *boards  = crate->Boards();
+     
       
       regHeader =  darcHeader->GetRegHeaderEntry(iReg);
       
@@ -280,12 +278,15 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
         // if card exist
         if (localStruct) {
           
-          AliMUONLocalTriggerBoard* localBoard = 
-          (AliMUONLocalTriggerBoard*)boards->At(localStruct->GetId()+1);
-          
-          // skip copy cards
-          if( !(loCircuit = localBoard->GetNumber()) )
-            continue;
+         loCircuit = crate->GetLocalBoardId(localStruct->GetId());
+
+         if ( !loCircuit ) continue; // empty slot
+
+         AliMpLocalBoard* localBoard = AliMpDDLStore::Instance()->GetLocalBoard(loCircuit, false);
+
+         // skip copy cards
+         if( !localBoard->IsNotified()) 
+            continue;
           
           if (fTriggerStore) 
           {
@@ -299,18 +300,9 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
           {
             //FIXEME should find something better than a TArray
             TArrayS xyPattern[2];
-            xyPattern[0].Set(4);
-            xyPattern[1].Set(4);
-            
-            xyPattern[0].AddAt(localStruct->GetX1(),0);
-            xyPattern[0].AddAt(localStruct->GetX2(),1);
-            xyPattern[0].AddAt(localStruct->GetX3(),2);
-            xyPattern[0].AddAt(localStruct->GetX4(),3);
             
-            xyPattern[1].AddAt(localStruct->GetY1(),0);
-            xyPattern[1].AddAt(localStruct->GetY2(),1);
-            xyPattern[1].AddAt(localStruct->GetY3(),2);
-            xyPattern[1].AddAt(localStruct->GetY4(),3);
+           localStruct->GetXPattern(xyPattern[0]);
+           localStruct->GetYPattern(xyPattern[1]);
             
             TriggerDigits(loCircuit, xyPattern, *fDigitStore);
           }          
@@ -332,6 +324,10 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard,
 {
   /// make digits for trigger from pattern, and add them to digitStore
 
+  Int_t detElemId;
+
+  AliMpLocalBoard* localBoard = AliMpDDLStore::Instance()->GetLocalBoard(nBoard);
+
   // loop over x1-4 and y1-4
   for (Int_t iChamber = 0; iChamber < 4; ++iChamber)
   {
@@ -341,9 +337,7 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard,
       if (!pattern) continue;
       
       // get detElemId
-      AliMUONTriggerCircuit triggerCircuit;
-      AliMUONLocalTriggerBoard* localBoard = fCrateManager->LocalBoard(nBoard);
-      Int_t detElemId = triggerCircuit.DetElemId(iChamber+10, localBoard->GetName());//FIXME +/-10 (should be ok with new mapping)
+      detElemId = AliMpDDLStore::Instance()->GetDEfromLocalBoard(nBoard, iChamber);
         
         const AliMpVSegmentation* seg 
           = AliMpSegmentation::Instance()
@@ -389,34 +383,3 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard,
   
   return kTRUE;
 } 
-//____________________________________________________________________
-void  
-AliMUONDigitMaker::GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg) const
-{
-  /// set crate name from DDL & reg number
-  /// method same as in RawWriter, not so nice
-  /// should be put in AliMUONTriggerCrateStore
-
-      switch(iReg) {
-      case 0:
-      case 1:
-       sprintf(name,"%d", iReg+1);
-       break;
-      case 2:
-       strcpy(name, "2-3");
-       break;
-      case 3:
-      case 4:
-      case 5:
-      case 6:
-      case 7:
-       sprintf(name,"%d", iReg);
-       break;
-      }
-
-      // crate Right for first DDL
-      if (iDDL == 0)
-       strcat(name, "R");
-      else 
-       strcat(name, "L"); 
-}
index 7a20f30cc557d1a0f3d449c53afa135843d363be..03e369af85d91817e0fb7b375dac6b735b982af7 100644 (file)
@@ -17,7 +17,6 @@
 class TArrayS;
 
 class AliRawReader;
-class AliMUONTriggerCrateStore;
 class AliMUONLocalStruct;
 
 class AliMUONRawStreamTracker;
@@ -46,9 +45,6 @@ class AliMUONDigitMaker : public TObject
         /// Set flag to generates scaler event
   void  SetScalerEvent() { fScalerEvent = kTRUE; }
 
-        /// Set Crate array
-  void  SetCrateManager(AliMUONTriggerCrateStore* crateManager) { fCrateManager =  crateManager; }
-
         /// Set flag whether or not we should generate digits for the trigger
   void  SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
 
@@ -59,8 +55,6 @@ private:
   /// Not implemented
   AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
 
-  void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg) const;
-
 private:
 
   Bool_t           fScalerEvent;       //!< flag to generates scaler event
@@ -69,8 +63,6 @@ private:
   AliMUONRawStreamTracker* fRawStreamTracker;  //!< pointer of raw stream for tracker
   AliMUONRawStreamTrigger* fRawStreamTrigger;  //!< pointer of raw stream for trigger
 
-  AliMUONTriggerCrateStore* fCrateManager;     //!< Crate array
-
   TStopwatch fTrackerTimer;                    //!< time watcher for tracker part
   TStopwatch fTriggerTimer;                    //!< time watcher for trigger part
   TStopwatch fMappingTimer;                    //!< time watcher for mapping-tracker part
@@ -78,7 +70,7 @@ private:
   AliMUONVDigitStore* fDigitStore; //!< not owner
   AliMUONVTriggerStore* fTriggerStore; //!< not owner
   
-  ClassDef(AliMUONDigitMaker,4) // MUON digit maker from rawdata
+  ClassDef(AliMUONDigitMaker,5) // MUON digit maker from rawdata
 };
        
 #endif