#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"
fMakeTriggerDigits(kFALSE),
fRawStreamTracker(new AliMUONRawStreamTracker()),
fRawStreamTrigger(new AliMUONRawStreamTrigger()),
- fCrateManager(0x0),
fTrackerTimer(),
fTriggerTimer(),
fMappingTimer(),
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);
// 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)
{
{
//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);
}
{
/// 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)
{
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()
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");
-}
class TArrayS;
class AliRawReader;
-class AliMUONTriggerCrateStore;
class AliMUONLocalStruct;
class AliMUONRawStreamTracker;
/// 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; }
/// 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
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
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