From d9b1ecb01777492b8afa2a362d1f2b1f4c16b1f9 Mon Sep 17 00:00:00 2001 From: ivana Date: Tue, 19 Jun 2007 08:29:15 +0000 Subject: [PATCH] Interfaced with new trigger mapping (Christian) --- MUON/AliMUONDigitMaker.cxx | 83 +++++++++++--------------------------- MUON/AliMUONDigitMaker.h | 10 +---- 2 files changed, 24 insertions(+), 69 deletions(-) diff --git a/MUON/AliMUONDigitMaker.cxx b/MUON/AliMUONDigitMaker.cxx index 2779db98cbf..52dc820bc70 100644 --- a/MUON/AliMUONDigitMaker.cxx +++ b/MUON/AliMUONDigitMaker.cxx @@ -48,13 +48,12 @@ #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"); -} diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 7a20f30cc55..03e369af85d 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -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 -- 2.39.3