71 #include "AliRawReader.h" 85 fMakeTriggerDigits(kFALSE),
86 fMakeTrackerDigits(kFALSE),
94 if ( !a || !
b )
AliFatal(
"no longer supported");
99 if (enableErrorLogger)
101 fRawStreamTracker->EnabbleErrorLogger();
102 fRawStreamTrigger->EnabbleErrorLogger();
106 fRawStreamTracker->DisableWarnings();
109 SetMakeTriggerDigits();
110 SetMakeTrackerDigits();
114 AliFatal(
"Could not access mapping from OCDB !");
121 fScalerEvent(kFALSE),
122 fMakeTriggerDigits(kFALSE),
123 fMakeTrackerDigits(kFALSE),
135 if (enableErrorLogger)
150 AliFatal(
"Could not access mapping from OCDB !");
190 AliDebug(1,Form(
"rawReader=%p digitStore=%p triggerStore=%p",
191 rawReader,digitStore,triggerStore));
198 fLogger->
Log(
"No digit or trigger store given. Nothing to do...");
209 else fLogger->
Log(
"Asking for tracker digits but digitStore is null");
217 fLogger->
Log(
"Asking for trigger digits but digitStore is null");
225 return tracker | trigger;
257 fLogger->
Log(Form(
"DE %04d does not exist !", detElemId));
273 fLogger->
Log(Form(
"(DE,MANUID)=(%04d,%04d) is not valid",detElemId,manuId));
283 fLogger->
Log(Form(
"No pad for detElemId: %d, manuId: %d, channelId: %d",
284 detElemId, manuId, channelId));
293 fLogger->
Log(Form(
"Digit DE %04d Manu %04d Channel %02d could not be added",
294 detElemId, manuId, channelId));
345 for(Int_t iReg = 0; iReg < nReg ;iReg++)
361 for(Int_t iLocal = 0; iLocal < nLocal; iLocal++)
371 if ( !loCircuit )
continue;
385 TArrayS xyPattern[2];
402 const TArrayS* xyPattern,
423 for (Int_t iChamber = 0; iChamber < 4; ++iChamber)
425 for (Int_t iCath = 0; iCath < 2; ++iCath)
427 Int_t pattern = (Int_t)xyPattern[iCath].At(iChamber);
428 if (!pattern)
continue;
438 for (Int_t ibitxy = 0; ibitxy < 16; ++ibitxy)
440 if ((pattern >> ibitxy) & 0x1)
450 fLogger->
Log(Form(
"No pad for detElemId: %d, nboard %d, ibitxy: %d\n",
451 detElemId, nBoard, ibitxy));
458 AliDebug(1,Form(
"Using localBoard %d ixy %d instead of %d,%d",
465 AliDebug(1, Form(
"Digit DE %04d LocalBoard %03d ibitxy %02d cath %d already in store",
466 detElemId,nBoard,ibitxy,iCath));
470 Int_t padX = pad.
GetIx();
471 Int_t padY = pad.
GetIy();
498 while ( ( locTrg = static_cast<AliMUONLocalTrigger*>(next()) ) )
500 if (locTrg->
IsNull())
continue;
502 TArrayS xyPattern[2];
void GetYPattern(TArrayS &array) const
return Y pattern array
virtual void EnabbleErrorLogger()
Enable error logging to the raw reader.
void GetXPattern(TArrayS &array) const
return X pattern array
A high performance stream decoder for muon tracking DDL streams.
const AliHeader * GetHeaders() const
Returns the DARC and global headers plus scalars if they exist.
Light weight interface class to the local trigger card data.
void SetFromGlobalInput(const UInt_t *globalInput)
Reading Raw data class for trigger and tracker chambers.
void SetMakeTriggerDigits(Bool_t flag=kFALSE)
Set flag whether or not we should generate digits for the trigger.
const AliMpVSegmentation * GetMpSegmentation(Int_t detElemId, AliMp::CathodType cath, Bool_t warn=true) const
virtual TIterator * CreateLocalIterator() const =0
Create iterator on local trigger.
AliMUONRawStreamTrackerHP * fRawStreamTracker
! pointer of raw stream for tracker
void SetFromGlobalResponse(UShort_t globalResponse)
Bool_t IsNotified() const
Return notified flag (not copy card)
virtual void SetReader(AliRawReader *rawReader)
Set object for reading the raw data.
AliMpLocalBoard * GetLocalBoard(Int_t localBoardId, Bool_t warn=true) const
Interface for a digit container.
void Print(Option_t *opt="") const
Int_t GetDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const
The class defines the properties of trigger crate.
virtual AliMp::PlaneType PlaneType() const =0
Return the plane type.
static AliMpSegmentation * Instance(Bool_t warn=true)
UChar_t GetId() const
Return Id.
void SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct &localStruct)
Int_t ReadTriggerDDL(AliRawReader *rawReader)
Int_t TriggerDigits(Int_t nBoard, const TArrayS *xyPattern, AliMUONVDigitStore &digitStore, Bool_t warn=kTRUE) const
virtual Bool_t NextDDL()
DDL iterator.
Int_t GetLocalBoardId(Int_t index) const
Int_t ReadTrackerDDL(AliRawReader *rawReader)
void GetXPattern(TArrayS &array) const
return X pattern array
void Print(Option_t *opt="") const
Int_t Log(const char *message)
virtual ~AliMUONDigitMaker(void)
Int_t GetDEfromBus(Int_t busPatchId) const
virtual void SetGlobal(const AliMUONGlobalTrigger &globalTrigger)=0
Set global trigger.
const AliRegionalHeader * GetRegionalHeader(UInt_t i) const
Return the i'th regional header or NULL if not found.
static Bool_t LoadDDLStore(Bool_t warn=false)
Int_t GetSwitch(Int_t index) const
Get switch bit wise (return a inteter for backware compatibility)
Higher performance decoder stream class for reading MUON raw trigger data.
const AliMpVSegmentation * GetMpSegmentationByElectronics(Int_t detElemId, Int_t elCardID, Bool_t warn=true) const
AliMpDetElement * GetDetElement(Int_t detElemId, Bool_t warn=true) const
Class that manages the properties of the local board.
The class defines the electronics properties of detection element.
virtual void SetCharge(Float_t q)=0
Set the charge of this digit.
void DisableWarnings()
Set warnings flag to disable warnings on data errors.
Bool_t fMakeTriggerDigits
! whether or not we should generate digits for the trigger
Base class of a trigger information store.
Int_t Raw2Digits(AliRawReader *rawReader, AliMUONVDigitStore *digitContainer=0, AliMUONVTriggerStore *triggerStore=0)
AliMUONRawStreamTriggerHP * fRawStreamTrigger
! pointer of raw stream for trigger
A logger that keeps track of the number of times a message appeared.
Bool_t TryRecover() const
Returns the "try to recover from errors" flag.
static AliMpDDLStore * Instance(Bool_t warn=true)
AliMUONLogger * fLogger
! to log messages
Reconstructed Local Trigger object.
AliMUONVTriggerStore * fTriggerStore
! not owner
virtual void SetADC(Int_t adc)=0
Set the ADC value.
AliMUONVDigitStore * fDigitStore
! not owner
virtual Bool_t IsErrorMessage() const
check error/Warning presence
tracker part had readout errors
(1) reset the LSB for special configuration of board RC2L5B4 & RC2L6B1
#define AliCodeTimerAuto(message, counter)
virtual void SetPadXY(Int_t padx, Int_t pady)=0
Set the ix and iy of this digit.
AliMp::CathodType GetCathodType(Int_t cathodNumber)
Convert integer number in enum;.
Int_t GetLocalBoardId(Int_t i) const
void SetMakeTrackerDigits(Bool_t flag=kTRUE)
Set flag whether or not we should generate digits for the tracker.
#define AliFatal(message)
void SetReader(AliRawReader *reader)
Set the raw reader.
Bool_t IsValid() const
Return validity.
virtual Int_t GetDDL() const
Return number of the current DDL being handled in the range [0..1] and -1 if no DDL set...
void GetYPattern(TArrayS &array) const
return Y pattern array
#define AliDebug(logLevel, message)
virtual void First()
Initialize iterator.
AliMp::CathodType GetCathodType(AliMp::PlaneType planeType) const
Bool_t fMakeTrackerDigits
! whether or not we should generate digits for the tracker
The abstract base class for the segmentation.
Class which encapsuate all information about a pad.
UInt_t GetRegionalHeaderCount() const
Return the number of regional structures in the DDL payload.
virtual Bool_t Add(TObject *object)
Add an object, if of the right type.
void SetTryRecover(Bool_t flag)
virtual void Clear(Option_t *opt="")=0
Clear ourselves (i.e. Reset)
virtual void EnabbleErrorLogger()
Enable error info logger.
Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const
Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore &triggerStore, AliMUONVDigitStore &digitStore) const
virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning=true) const =0
Find pad by location.
AliMUONDigitMaker(Bool_t enableErrorLogger, Bool_t a, Bool_t b)
Declaration of the high performance decoder for muon trigger chamber raw streams. ...
Int_t GetLocalBoardChannel(Int_t i) const
trigger part had readout errors
Int_t LoCircuit() const
Return Circuit number.
virtual Bool_t Next(Int_t &busPatchId, UShort_t &manuId, UChar_t &manuChannel, UShort_t &adc)
Advance one step in the iteration. Returns false if finished.
Int_t GetInputXfrom() const
Get Id from where the X input are copied.
virtual Bool_t Add(TObject *object)
Add an object, if it is of the right class.
Bool_t fScalerEvent
! flag to generates scaler event