Diana event structure

The Diana event contains all the event by event data. Every datum or group of data are stored in EventData classes that every module can read. Write access is given only to the module that owns an EventData member. We expect a one-one correspondence between modules and EventData members. Regardless the type or completeness of input data, the Diana Event will be always the same, with all its members, some of them even uninitialized if the corresponding module has not been applied yet.