AliCodeTimerAuto("",0)
Int_t idDDL;
- Char_t name[255];
// tracking chambers
// open files
idDDL = 0;// MUTR
- strcpy(name,AliDAQ::DdlFileName("MUONTRG",idDDL));
- file[0] = new AliFstream(name);
+ file[0] = new AliFstream(AliDAQ::DdlFileName("MUONTRG",idDDL));
idDDL = 1;// MUTR
- strcpy(name,AliDAQ::DdlFileName("MUONTRG",idDDL));
- file[1] = new AliFstream(name);
+ file[1] = new AliFstream(AliDAQ::DdlFileName("MUONTRG",idDDL));
WriteTriggerDDL(*triggerStore,file);
// crate info
AliMpTriggerCrate* crate = AliMpDDLStore::Instance()->GetTriggerCrate(iDDL, iReg);
- if (!crate)
- AliWarning(Form("Missing crate number %d in DDL %d\n", iReg, iDDL));
+ if (!crate) {
+ AliError(Form("Missing crate number %d in DDL %d\n", iReg, iDDL));
+ continue;
+ }
// regional info tree, make sure that no reg card missing
AliMUONRegionalTrigger* regTrg = triggerStore.FindRegional(crate->GetId());
- if (!regTrg)
+ if (!regTrg) {
AliError(Form("Missing regional board %d in trigger Store\n", crate->GetId()));
+ continue;
+ }
// Regional card header
word = 0;
if (localBoard->IsNotified()) {// if notified board
AliMUONLocalTrigger* locTrg = triggerStore.FindLocal(localBoardId);
- locCard = locTrg->LoCircuit();
- locDec = locTrg->GetLoDecision();
- trigY = locTrg->LoTrigY();
- posY = locTrg->LoStripY();
- posX = locTrg->LoStripX();
- devX = locTrg->LoDev();
- sdevX = locTrg->LoSdev();
-
- AliDebug(4,Form("loctrg %d, posX %d, posY %d, devX %d\n",
- locTrg->LoCircuit(),locTrg->LoStripX(),locTrg->LoStripY(),locTrg->LoDev()));
- //packing word
- word = 0;
- LocalWordPacking(word, (UInt_t)iLoc, (UInt_t)locDec, (UInt_t)trigY, (UInt_t)posY,
- (UInt_t)posX, (UInt_t)sdevX, (UInt_t)devX);
-
- buffer[index++] = (locTrg->GetX1Pattern() | (locTrg->GetX2Pattern() << 16));
- buffer[index++] = (locTrg->GetX3Pattern() | (locTrg->GetX4Pattern() << 16));
- buffer[index++] = (locTrg->GetY1Pattern() | (locTrg->GetY2Pattern() << 16));
- buffer[index++] = (locTrg->GetY3Pattern() | (locTrg->GetY4Pattern() << 16));
- buffer[index++] = (Int_t)word; // data word
-
-
+ if (locTrg)
+ {
+ locCard = locTrg->LoCircuit();
+ locDec = locTrg->GetLoDecision();
+ trigY = locTrg->LoTrigY();
+ posY = locTrg->LoStripY();
+ posX = locTrg->LoStripX();
+ devX = locTrg->LoDev();
+ sdevX = locTrg->LoSdev();
+
+ AliDebug(4,Form("loctrg %d, posX %d, posY %d, devX %d\n",
+ locTrg->LoCircuit(),locTrg->LoStripX(),locTrg->LoStripY(),locTrg->LoDev()));
+ //packing word
+ word = 0;
+ LocalWordPacking(word, (UInt_t)iLoc, (UInt_t)locDec, (UInt_t)trigY, (UInt_t)posY,
+ (UInt_t)posX, (UInt_t)sdevX, (UInt_t)devX);
+
+ buffer[index++] = (locTrg->GetX1Pattern() | (locTrg->GetX2Pattern() << 16));
+ buffer[index++] = (locTrg->GetX3Pattern() | (locTrg->GetX4Pattern() << 16));
+ buffer[index++] = (locTrg->GetY1Pattern() | (locTrg->GetY2Pattern() << 16));
+ buffer[index++] = (locTrg->GetY3Pattern() | (locTrg->GetY4Pattern() << 16));
+ buffer[index++] = (Int_t)word; // data word
+ }
}
// fill copy card X-Y inputs from the notified cards
if (localBoard->GetInputXfrom() && localBoard->GetInputYfrom())
Int_t localFromId = localBoard->GetInputXfrom();
AliMUONLocalTrigger* locTrgfrom = triggerStore.FindLocal(localFromId);
- buffer[index++] = 0; // copy only X3-4 & Y1-4
- buffer[index++] = (locTrgfrom->GetX3Pattern() | (locTrgfrom->GetX4Pattern() << 16));
- buffer[index++] = (locTrgfrom->GetY1Pattern() | (locTrgfrom->GetY2Pattern() << 16));
- buffer[index++] = (locTrgfrom->GetY3Pattern() | (locTrgfrom->GetY4Pattern() << 16));
- buffer[index++] = word;
+ if ( locTrgfrom )
+ {
+ buffer[index++] = 0; // copy only X3-4 & Y1-4
+ buffer[index++] = (locTrgfrom->GetX3Pattern() | (locTrgfrom->GetX4Pattern() << 16));
+ buffer[index++] = (locTrgfrom->GetY1Pattern() | (locTrgfrom->GetY2Pattern() << 16));
+ buffer[index++] = (locTrgfrom->GetY3Pattern() | (locTrgfrom->GetY4Pattern() << 16));
+ buffer[index++] = word;
+ }
}
} else {