I finished Macintosh porting.
I checked it in offline mode , but not yet online mode.
I needed to add byte swapping code.
For bank swapping, if HAVE_MIDAS is defined it uses bk_swap in midas.h, in the other case it uses
ROMEEventLoop::bk_swap.
Byte swapping will be done if cpu is PowerPC (MacOSX or Linux on Macintosh). Data should be written
on little-endian machine like Intel.
Important point is If there is banks whose type is not MIDAS, rome may not work on Macintosh.
I want to propose a new MidasBanks scheme of xml file to fix this problem. Structure of EventDefinition
is according to EVENT_DEF in mana.c.
When rome reads Midas file(offline) or ODB(odb), if the event ID is listed in xml configuration file and
"Disabled" is false and Format is MIDAS, rome reads banks listed for the event ID, in the other case rome skips the event and goes to next
event.
Probably this way will help statistics handling in online mode for also Intel platform. Because at this
moment, rome assumes "Equipment" in ODB is always "Trigger" and "Scaler". But of coarse there can be
other equipments. (There is possibility that ODB does not have "Scaler" too)
<MidasBanks>
<EventHeader>
<Folder>Event</Folder>
<EventId>ID</EventId>
<TriggerMask>Mask</TriggerMask>
<SerialNumber>Eventnumber</SerialNumber>
<TimeStamp>Time</TimeStamp>
</EventHeader>
<EventDefinition>
<EventName>Trigger</EventName>
<EventId>1</EventId>
<Format>MIDAS</Format>
<Disabled>false</Disabled>
<Banks>
<Bank>
<BankName>ADC0</BankName>
<BankType>unsigned short</BankType>
</Bank>
<Bank>
<BankName>TDC0</BankName>
<BankType>unsigned short</BankType>
</Bank>
</Banks>
</EventDefinition>
<EventDefinition>
<EventName>Scaler</EventName>
<EventId>2</EventId>
<Format>YBOS</Format>
<Disabled>true</Disabled>
<Banks>
<Bank>
<BankName>SCLR</BankName>
<BankType>unsigned long</BankType>
<Bank>
</Banks>
</EventDefinition>
<EventDefinition>
<EventName>HV</EventName>
<EventId>3</EventId>
<Format>FIXED</Format>
<Disabled>true</Disabled>
</EventDefinition>
</MidasBanks>
P.S.
If there is no plan to support YBOS and FIXED format. <Format> is not needed definitly. |