38 #include <Riostream.h>
40 #include <TClonesArray.h>
86 UShort_t address)
const
95 UShort_t maskYpos = 0x000F;
96 UShort_t maskYtri = 0x0001;
97 UShort_t maskXdev = 0x001F;
98 UShort_t maskXpos = 0x001F;
100 ypos = address & maskYpos;
101 ytri = (address >> bitsYpos) & maskYtri;
102 xdev = (address >> (bitsYpos+bitsYtri)) & maskXdev;
103 xpos = (address >> (bitsYpos+bitsYtri+bitsXdev)) & maskXpos;
118 Int_t iXdevOff, iXdevOn, iXdev, sign;
124 iXdevOn += iXdev & 0x0F;
125 sign += (iXdev >> 4) & 0x01;
137 iXdevOff = - iXdevOn + 15;
139 iXdevOff = + iXdevOn + 15;
152 Int_t icirc, UChar_t istripX, UChar_t idev,
153 Int_t lutLpt[16][2], Int_t lutHpt[16][2])
157 if (icirc == 0 && istripX == 0 && idev == 0)
159 AliDebug(1,
"Copy board, not filled ...");
163 Short_t iLptPlus, iLptMinu, iLptUnde;
164 Short_t iHptPlus, iHptMinu, iHptUnde;
166 iLptPlus = iLptMinu = iLptUnde = 0;
167 iHptPlus = iHptMinu = iHptUnde = 0;
169 for (Int_t istripY=0; istripY<16; istripY++)
171 if (lutLpt[istripY][1] == 0 && lutLpt[istripY][0] ==1)
172 iLptMinu=iLptMinu+(1 << istripY);
173 if (lutLpt[istripY][1] == 1 && lutLpt[istripY][0] ==0)
174 iLptPlus=iLptPlus+(1 << istripY);
175 if (lutLpt[istripY][1] == 1 && lutLpt[istripY][0] ==1)
176 iLptUnde=iLptUnde+(1 << istripY);
178 if (lutHpt[istripY][1] == 0 && lutHpt[istripY][0] ==1)
179 iHptMinu=iHptMinu+(1 << istripY);
180 if (lutHpt[istripY][1] == 1 && lutHpt[istripY][0] ==0)
181 iHptPlus=iHptPlus+(1 << istripY);
182 if (lutHpt[istripY][1] == 1 && lutHpt[istripY][0] ==1)
183 iHptUnde=iHptUnde+(1 << istripY);
187 lut.
SetContent(
"LptMinu",icirc,istripX,idev,iLptMinu);
188 lut.
SetContent(
"LptUnde",icirc,istripX,idev,iLptUnde);
189 lut.
SetContent(
"LptPlus",icirc,istripX,idev,iLptPlus);
191 lut.
SetContent(
"HptMinu",icirc,istripX,idev,iHptMinu);
192 lut.
SetContent(
"HptUnde",icirc,istripX,idev,iHptUnde);
193 lut.
SetContent(
"HptPlus",icirc,istripX,idev,iHptPlus);
204 AliError(
"No local board to read");
208 FILE*
fp = fopen(gSystem->ExpandPathName(localFile),
"r");
211 AliError(Form(
"Could not read file %s",localFile));
215 UShort_t maskBuffer[8];
217 Int_t localBoardIndex(0);
219 while ( fread ( maskBuffer, 2, 8, fp ) == 8 )
222 AliDebug(1,Form(
"LB %03d X1 %4x X2 %4x X3 %4x X4 %4x "
223 "Y1 %4x Y2 %4x Y3 %4x Y4 %4x",
234 if ( localBoardId > 0 )
237 for ( Int_t index = 0; index < 8; ++index )
241 localMasks.
Add(localBoard);
245 AliError(Form(
"Oups. Got localBoardId=%d for index=%d",localBoardId,localBoardIndex));
253 AliError(Form(
"Read %d out of %d local boards",
259 return localBoardIndex+1;
273 UChar_t mask1 = 0xF0;
274 UChar_t mask2 = 0x0F;
275 UChar_t maskHpt = 0x0C;
276 UChar_t maskLpt = 0x03;
277 UChar_t lh, lpt, hpt;
279 UChar_t xpos, xdev, ypos, ytri;
281 Int_t lutLpt[16][2], lutHpt[16][2];
283 Int_t boardnr = localBoardId;
285 AliDebug(1,Form(
"Reading LUT values for local board %d",boardnr));
288 Bool_t trigx = kFALSE;
292 AliWarning(
"Error reading the LUT file");
302 lh = (buffer[ilut/2] & mask1) >> 4;
305 hpt = (lh & maskHpt) >> 2;
312 if (trigx && (ny < 16))
314 lutLpt[ny][0] = lpt & 1;
315 lutLpt[ny][1] = (lpt & 2) >> 1;
316 lutHpt[ny][0] = hpt & 1;
317 lutHpt[ny][1] = (hpt & 2) >> 1;
325 FillLut(lut,boardnr,xpos,xdev,lutLpt,lutHpt);
332 lh = (buffer[ilut/2] & mask2);
335 hpt = (lh & maskHpt) >> 2;
342 if (trigx && (ny < 16))
344 lutLpt[ny][0] = lpt & 1;
345 lutLpt[ny][1] = (lpt & 2) >> 1;
346 lutHpt[ny][0] = hpt & 1;
347 lutHpt[ny][1] = (hpt & 2) >> 1;
355 FillLut(lut,boardnr,xpos,xdev,lutLpt,lutHpt);
370 AliError(
"No local board id defined. Must read a regional file first");
374 FILE* flut = fopen(gSystem->ExpandPathName(lutFileToRead),
"rb");
377 AliError(Form(
"Could not read LUT file %s",lutFileToRead));
399 UChar_t lutCode = 0xFF;
401 if ( fread ( &lutCode, 1, 1, flut ) == 0 ) {
402 AliWarning(
"No LUT info in the file (old version)");
404 AliInfo(Form(
"LUT code: 0x%02x",lutCode));
420 FILE*
fp = fopen(gSystem->ExpandPathName(scfile),
"r");
423 AliError(Form(
"Could not read file %s",scfile));
430 const Int_t nCathodes = 2;
431 const Int_t nTriChambers = 4;
432 const Int_t nLocBoards = 234;
433 UInt_t locLptScaler[nLocBoards];
434 ULong64_t locStripScaler[nTriChambers][nLocBoards][nCathodes];
435 UInt_t locStripOver[nTriChambers][nLocBoards][nCathodes];
437 const Int_t bufflen =
439 nLocBoards*
sizeof(UInt_t)+
440 nLocBoards*nCathodes*nTriChambers*(
sizeof(UInt_t)+
sizeof(ULong64_t));
441 UChar_t buffer[bufflen];
446 AliInfo(Form(
"Data buffer length = %d",bufflen));
449 while ( fread ( buffer, bufflen, 1, fp ) == 1 ) {
457 bftmpUI = buffer[ibr++]; nCalibEvents |= (bftmpUI << 24);
458 bftmpUI = buffer[ibr++]; nCalibEvents |= (bftmpUI << 16);
459 bftmpUI = buffer[ibr++]; nCalibEvents |= (bftmpUI << 8);
460 bftmpUI = buffer[ibr++]; nCalibEvents |= (bftmpUI << 0);
463 bftmpUI = buffer[ibr++]; deltaT |= (bftmpUI << 24);
464 bftmpUI = buffer[ibr++]; deltaT |= (bftmpUI << 16);
465 bftmpUI = buffer[ibr++]; deltaT |= (bftmpUI << 8);
466 bftmpUI = buffer[ibr++]; deltaT |= (bftmpUI << 0);
468 for (Int_t bit = 0; bit < 6; bit++) {
470 bftmpUI = buffer[ibr++]; glSc[bit] |= (bftmpUI << 24);
471 bftmpUI = buffer[ibr++]; glSc[bit] |= (bftmpUI << 16);
472 bftmpUI = buffer[ibr++]; glSc[bit] |= (bftmpUI << 8);
473 bftmpUI = buffer[ibr++]; glSc[bit] |= (bftmpUI << 0);
478 for (Int_t iLoc = 0; iLoc < nLocBoards; iLoc++) {
480 locLptScaler[iLoc] = 0;
481 bftmpUI = buffer[ibr++]; locLptScaler[iLoc] |= (bftmpUI << 24);
482 bftmpUI = buffer[ibr++]; locLptScaler[iLoc] |= (bftmpUI << 16);
483 bftmpUI = buffer[ibr++]; locLptScaler[iLoc] |= (bftmpUI << 8);
484 bftmpUI = buffer[ibr++]; locLptScaler[iLoc] |= (bftmpUI << 0);
488 for (Int_t iCath = 0; iCath < nCathodes; iCath++) {
489 for (Int_t iCha = 0; iCha < nTriChambers; iCha++) {
491 locStripScaler[iCha][iLoc][iCath] = 0;
492 bftmpUL = buffer[ibr++];
493 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 56);
494 bftmpUL = buffer[ibr++];
495 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 48);
496 bftmpUL = buffer[ibr++];
497 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 40);
498 bftmpUL = buffer[ibr++];
499 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 32);
500 bftmpUL = buffer[ibr++];
501 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 24);
502 bftmpUL = buffer[ibr++];
503 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 16);
504 bftmpUL = buffer[ibr++];
505 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 8);
506 bftmpUL = buffer[ibr++];
507 locStripScaler[iCha][iLoc][iCath] |= (bftmpUL << 0);
511 locStripOver[iCha][iLoc][iCath] = 0;
512 bftmpUI = buffer[ibr++];
513 locStripOver[iCha][iLoc][iCath] |= (bftmpUI << 24);
514 bftmpUI = buffer[ibr++];
515 locStripOver[iCha][iLoc][iCath] |= (bftmpUI << 16);
516 bftmpUI = buffer[ibr++];
517 locStripOver[iCha][iLoc][iCath] |= (bftmpUI << 8);
518 bftmpUI = buffer[ibr++];
519 locStripOver[iCha][iLoc][iCath] |= (bftmpUI << 0);
540 const char* regionalFile,
541 const char* globalFile,
548 if ( !regionalConfig || !regionalFile || strlen(regionalFile)==0 )
550 AliError(
"Must have a regional file name to proceeed");
554 AliDebug(1,Form(
"regionalConfig=%p",regionalConfig));
560 AliError(
"nCrates=0 !");
564 if (localMasks && localFile && strlen(localFile) > 0 )
567 AliDebug(1,Form(
"Read masks for %d local boards",nLocal));
571 AliDebug(1,Form(
"Read config for %d DARC boards",nDarc));
573 if (!nDarc)
return kFALSE;
589 if ( !(nDarc = globalConfig->
ReadData(globalFile)) )
return 0;
600 AliDebug(1,Form(
"regionalConfig=%p",regionalConfig));
603 if ( !(nCrates = regionalConfig->
ReadData(regionalFile)) )
return 0;
615 const char* lutFileToWrite)
621 AliError(
"No local board id defined. Must read a regional file first");
625 FILE* flut = fopen(gSystem->ExpandPathName(lutFileToWrite),
"wb");
628 AliError(Form(
"Could not create output LUT file %s",lutFileToWrite));
646 const char* scfile)
const
650 FILE*
fp = fopen(gSystem->ExpandPathName(scfile),
"wb");
653 AliError(Form(
"Could not create output local file %s",scfile));
660 const Int_t nCathodes = 2;
661 const Int_t nTriChambers = 4;
662 const Int_t nLocBoards = 234;
663 UInt_t locLptScaler[nLocBoards];
664 ULong64_t locStripScaler[nTriChambers][nLocBoards][nCathodes];
665 UInt_t locStripOver[nTriChambers][nLocBoards][nCathodes];
667 const Int_t bufflen =
669 nLocBoards*
sizeof(UInt_t)+
670 nLocBoards*nCathodes*nTriChambers*(
sizeof(UInt_t)+
sizeof(ULong64_t));
671 UChar_t buffer[bufflen];
673 AliInfo(Form(
"Data buffer length = %d",bufflen));
675 Int_t entries = scalers.GetEntries();
677 for (; isc < entries; isc++) {
682 buffer[ibr++] = (nCalibEvents >> 24) & 0xFF;
683 buffer[ibr++] = (nCalibEvents >> 16) & 0xFF;
684 buffer[ibr++] = (nCalibEvents >> 8) & 0xFF;
685 buffer[ibr++] = (nCalibEvents >> 0) & 0xFF;
687 buffer[ibr++] = (deltaT >> 24) & 0xFF;
688 buffer[ibr++] = (deltaT >> 16) & 0xFF;
689 buffer[ibr++] = (deltaT >> 8) & 0xFF;
690 buffer[ibr++] = (deltaT >> 0) & 0xFF;
691 for (Int_t bit = 0; bit < 6; bit++) {
693 buffer[ibr++] = (glSc[bit] >> 24) & 0xFF;
694 buffer[ibr++] = (glSc[bit] >> 16) & 0xFF;
695 buffer[ibr++] = (glSc[bit] >> 8) & 0xFF;
696 buffer[ibr++] = (glSc[bit] >> 0) & 0xFF;
698 for (Int_t iLoc = 0; iLoc < nLocBoards; iLoc++) {
700 buffer[ibr++] = (locLptScaler[iLoc] >> 24) & 0xFF;
701 buffer[ibr++] = (locLptScaler[iLoc] >> 16) & 0xFF;
702 buffer[ibr++] = (locLptScaler[iLoc] >> 8) & 0xFF;
703 buffer[ibr++] = (locLptScaler[iLoc] >> 0) & 0xFF;
704 for (Int_t iCath = 0; iCath < nCathodes; iCath++) {
705 for (Int_t iCha = 0; iCha < nTriChambers; iCha++) {
706 locStripScaler[iCath][iCha][iLoc] = sc->
GetLocScalStrip(iCath,iCha,iLoc);
707 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 56) & 0xFF;
708 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 48) & 0xFF;
709 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 40) & 0xFF;
710 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 32) & 0xFF;
711 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 24) & 0xFF;
712 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 16) & 0xFF;
713 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 8) & 0xFF;
714 buffer[ibr++] = (locStripScaler[iCath][iCha][iLoc] >> 0) & 0xFF;
716 buffer[ibr++] = (locStripOver[iCath][iCha][iLoc] >> 24) & 0xFF;
717 buffer[ibr++] = (locStripOver[iCath][iCha][iLoc] >> 16) & 0xFF;
718 buffer[ibr++] = (locStripOver[iCath][iCha][iLoc] >> 8) & 0xFF;
719 buffer[ibr++] = (locStripOver[iCath][iCha][iLoc] >> 0) & 0xFF;
724 fwrite(buffer,ibr,1,fp);
738 const char* regionalFile,
739 const char* globalFile,
766 out.open(globalFile);
769 AliError(Form(
"Could not create output global file %s", globalFile));
773 out << globalConfig->GetName() << endl;
776 Bool_t oldFormat = kTRUE;
804 out << Form(
"0x%02x", disable) << endl;
828 out << Form(
"0x%02x", disable) << endl;
855 out << Form(
"0x%08lx", globalConfig->
GetFetVmeAddr()) << endl;
871 out.open(regionalFile);
875 AliError(Form(
"Could not create output regional file %s",regionalFile));
882 AliError(
"Could not write regional no configuration in memory");
889 for (Int_t ddlId = 0; ddlId < 2; ddlId++)
891 for (Int_t crateId = 0; crateId < 8; crateId++)
901 AliError(Form(
"Cannot find crate %s in CDB", crate->GetName()));
905 out << crate->GetName() << endl;
906 out << Form(
"%02x", crate->
GetId()) << endl;
907 out << crateConfig->
GetMode() << endl;
908 out << crateConfig->
GetCoinc() << endl;
909 out << Form(
"%04x", crateConfig->
GetMask()) << endl;
918 out << Form(
"%02d ", board->
GetSlot())
920 << Form(
" %03d ", localBoardId)
927 for (Int_t i = 0; i < board->
GetNofDEs(); ++i)
928 out << Form(
"%4d ", board->
GetDEId(i));
930 out << Form(
"%4d ", 0);
937 out << Form(
" %4d", board->
GetTC()) << endl;
957 FILE*
fp = fopen(gSystem->ExpandPathName(localFile),
"wb");
960 AliError(Form(
"Could not create output local file %s",localFile));
964 UShort_t maskBuffer[8];
965 Int_t localBoardIndex(0);
973 for (Int_t index = 0; index < 8; ++index)
975 maskBuffer[index] = localMask->
ValueAsInt(index,0);
978 fwrite ( maskBuffer, 2, 8, fp);
998 const Int_t kMaskYpos = 0x0F;
999 const Int_t kMaskYtri = 0x01;
1000 const Int_t kMaskXdev = 0x1F;
1001 const Int_t kMaskXpos = 0x1F;
1008 Int_t lutLpt[2] = { 0 };
1009 Int_t lutHpt[2] = { 0 };
1012 Int_t iYpos = i & kMaskYpos;
1013 Int_t iYtri = ( i >> 4 ) & kMaskYtri;
1014 Int_t iXdev = ( i >> ( 4 + 1 ) ) & kMaskXdev;
1015 Int_t iXpos = ( i >> ( 4 + 1 + 5 ) ) & kMaskXpos;
1032 Bool_t trigx = kFALSE;
1033 iXdevOn += iXdev & 0x0F;
1034 sign += (iXdev >> 4) & 0x01;
1046 iXdevOff = - iXdevOn + 15;
1048 iXdevOff = + iXdevOn + 15;
1054 if (iYtri == 0 && trigx)
1056 lut.
GetLutOutput(localBoardId,iXpos,iXdev,iYpos,lutLpt,lutHpt);
1064 buffer[bc] += lutHpt[1] << 7;
1065 buffer[bc] += lutHpt[0] << 6;
1066 buffer[bc] += lutLpt[1] << 5;
1067 buffer[bc] += lutLpt[0] << 4;
1070 buffer[bc] += lutHpt[1] << 3;
1071 buffer[bc] += lutHpt[0] << 2;
1072 buffer[bc] += lutLpt[1] << 1;
1073 buffer[bc] += lutLpt[0] << 0;
1077 fwrite(&buffer,bc,1,flut);
UChar_t GetFirstDarcDisable() const
Get disable word for First Darc board.
Bool_t ReadLUT(const char *lutFileToRead, AliMUONTriggerLut &lut)
TString GetJtagCrateName(Int_t jtagLine, Int_t index) const
Get Jtag Crate names.
TString GetSecondDarcCrateName(Int_t index) const
Get Second Darc Crate names.
UInt_t GetLocScalStripOver(Int_t iCath, Int_t iCha, Int_t iLoc) const
The class defines the configuration of global crate.
Bool_t GetTC() const
Return transverse connector.
The class defines the configuration of trigger crate.
AliMpLocalBoard * FindLocalBoard(Int_t localBoardId, Bool_t warn=true) const
Bool_t ReadData(const TString &fileName)
void SetNCalibEvents(UInt_t nce)
ULong_t GetSecondDarcVmeAddr() const
Get Second Darc board VME address.
Bool_t IsNotified() const
Return notified flag (not copy card)
UInt_t GetJtagClockDiv() const
Get Jtag board Clock Divider.
AliMpRegionalTrigger fRegionalTrigger
! Regional trigger
Int_t GetSecondDarcType() const
Get type for Second Darc board.
UChar_t GetSecondDarcDisable() const
Get disable word for Second Darc board.
UShort_t GetId() const
Return Id.
Int_t GetNofTriggerCrates() const
The class defines the properties of trigger crate.
UInt_t GetJtagRxPhase() const
Get Jtag board Rx Phase.
const Char_t * GetFetName() const
Get Global Name identifier.
Int_t GetInputYto() const
Get Id to where the Y input are copied.
ULong_t GetJtagVmeAddr() const
Get Jtag board VME address.
void ReadLocalLUT(AliMUONTriggerLut &lut, Int_t localBoardId, FILE *flut)
Int_t ReadRegionalConfig(const char *regionalFile, AliMUONRegionalTriggerConfig *regionalConfig)
Bool_t WriteLUT(const AliMUONTriggerLut &lut, const char *lutFileToWrite)
Int_t GetJtagNofLines() const
Get number of JTag lines.
Bool_t WriteRegionalConfig(const char *regionalFile, AliMUONRegionalTriggerConfig *regionalConfig) const
Int_t GetLocalBoardId(Int_t index) const
UInt_t GetGlobalCrateEnable() const
Get global crate enbale.
UInt_t GetGlobalRegister(Int_t index) const
Get register for Global.
Int_t GetInputYfrom() const
Get Id from where the Y input are copied.
Int_t GetFirstDarcType() const
Get type for First Darc board.
TFile fp("/data/calib/CalibTreePulser_run33834_Cside.root")
Int_t GetSwitch(Int_t index) const
Get switch bit wise (return a inteter for backware compatibility)
UInt_t GetSecondDarcConfig() const
Get configuration for Second Darc board.
UInt_t GetJtagRdDelay() const
Get Jtag board Read out Delay.
virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value)=0
Set one value, for channel i, dimension j. Consider value is an integer.
Class that manages the properties of the local board.
Bool_t WriteTrigScalers(const TClonesArray &scalers, const char *scfile) const
void FillLut(AliMUONTriggerLut &lut, Int_t icirc, UChar_t istripX, UChar_t idev, Int_t lutLpt[16][2], Int_t lutHpt[16][2])
void SetLocScalerLpt(UInt_t lst, Int_t i)
ULong_t GetGlobalVmeAddr() const
Get Global board VME address.
Int_t GetDEId(Int_t index) const
Int_t GetDarcNofLines() const
Get number of Darc Crate lines.
Int_t GetFetNofRegisters() const
Get number of registers for FET.
Bool_t ReadTrigScalers(const char *scfile, TClonesArray &scalers) const
Int_t GetNofLocalBoards() const
void SetLocScalerStrip(ULong64_t lss, Int_t ica, Int_t ich, Int_t ilo)
Container of calibration values for a given number of channels.
UChar_t GetEnableFirstDarc() const
Get First Darc enable word.
Handles read/write of masks and LUT to/from online files.
void GetLutOutput(Int_t circuit, Int_t xstrip, Int_t idev, Int_t ystrip, Int_t lutLpt[2], Int_t lutHpt[2]) const
UInt_t GetSecondDarcL1TimeOut() const
Get L1 Time Out for Second Darc board.
Int_t GetInputXto() const
Get Id to where the X input are copied.
static TString GenerateName(Int_t crateId, Int_t ddlId, Int_t nodDdls)
void SetLutCode(const UChar_t lutCode)
Implementation of AliMUONVCalibParam for tuples of ints.
UInt_t GetFirstDarcL1TimeOut() const
Get L1 Time Out for First Darc board.
AliMUONTriggerCrateConfig * FindTriggerCrate(TString crateName, Bool_t warn=true) const
UInt_t GetFirstDarcL0Delay() const
Get L0 Delay for First Darc board.
Int_t ReadGlobalConfig(const char *globalFile, AliMUONGlobalCrateConfig *globalConfig) const
Int_t GetSlot() const
Return the slot Identifier in the given crate.
Int_t NofLocalBoards() const
Return number of local boards.
Bool_t WriteLocalMasks(const char *localFile, const AliMUONVStore &localMasks) const
const Char_t * GetSecondDarcName() const
Get Second Darc Name identifier.
AliMpTriggerCrate * FindTriggerCrate(TString crateName, Bool_t warn=true) const
ULong_t GetFirstDarcVmeAddr() const
Get First Darc board VME address.
Int_t ReadLocalMasks(const char *localFile, AliMUONVStore &localMasks) const
UInt_t GetFetRegister(Int_t index) const
Get register for FET.
Int_t LocalBoardId(Int_t index) const
AliMUONRegionalTriggerConfig * regionalConfig
void SetGloScaler(UInt_t gs, Int_t i)
virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const =0
virtual ~AliMUONTriggerIO()
UShort_t GetMode() const
Return Mode.
UInt_t GetFirstDarcConfig() const
Get configuration for First Darc board.
static const UInt_t fgkLocalLutSize
length of the lut for one local board
virtual Bool_t Add(TObject *object)=0
Add an object to the store.
Bool_t WriteConfig(const char *localFile, const char *regionalFile, const char *globalFile, const AliMUONVStore *localMasks, AliMUONRegionalTriggerConfig *regionalConfig, AliMUONGlobalCrateConfig *globalConfig) const
const Char_t * GetFirstDarcName() const
Get First Darc Name identifier.
const Char_t * GetJtagName() const
Get Jtag Name identifier.
UInt_t GetSecondDarcL0Delay() const
Get L0 Delay for Second Darc board.
Int_t GetGlobalNofRegisters() const
Get number of registers for Global.
TString GetFirstDarcCrateName(Int_t index) const
Get First Darc Crate names.
const Char_t * GetGlobalName() const
Get Global Name identifier.
void SetDeltaT(UInt_t dt)
ULong64_t GetLocScalStrip(Int_t iCath, Int_t iCha, Int_t iLoc) const
UInt_t GetGloScal(Int_t i) const
UInt_t GetNCalibEvents() const
Bool_t GetEnableJtag(Int_t index) const
Get Jtag enabled lines.
Int_t LocalBoardId(Int_t index) const
Base class for MUON data stores.
Int_t ReadData(const TString &fileName="")
UChar_t GetEnableSecondDarc() const
Get Second Darc enable word.
void WriteLocalLUT(const AliMUONTriggerLut &lut, Int_t localBoardId, FILE *flut)
void SetLocScalerStripOver(ULong64_t lsso, Int_t ica, Int_t ich, Int_t ilo)
void SetContent(const char *hname, Int_t icirc, UChar_t istripX, UChar_t idev, Short_t value)
MUON trigger look up table class.
Bool_t ReadConfig(const char *localFile, const char *regionalFile, const char *globalFile, AliMUONVStore *localMasks, AliMUONRegionalTriggerConfig *regionalConfig, AliMUONGlobalCrateConfig *globalConfig)
Int_t ReadData(const TString &fileName="")
UInt_t GetFirstDarcGlobalL0() const
Get global L0 delay for First Darc board.
The class defines the properties of regional trigger crate.
UInt_t GetLocScalLpt(Int_t i) const
virtual TObject * FindObject(const char *name) const
Find an object by name.
UInt_t GetSecondDarcGlobalL0() const
Get global L0 delay for Second Darc board.
Int_t GetInputXfrom() const
Get Id from where the X input are copied.
UShort_t GetCoinc() const
Return coinc.
Bool_t WriteGlobalConfig(const char *globalFile, AliMUONGlobalCrateConfig *globalConfig) const
AliMUONGlobalCrateConfig * globalConfig
UShort_t GetMask() const
Return mask.
ULong_t GetFetVmeAddr() const
Get FET board VME address.
Bool_t DeCompAddress(UChar_t &ypos, UChar_t &ytri, UChar_t &xdev, UChar_t &xpos, UShort_t address) const