Okay, I've managed to remove most of the TMaps from the Event
Structure and added Hash() and IsEqual() functions to the all the
classes that appear benefit from it. These will steps will hopefully
speed up the processing of the Event structure. There wasn't much
difference in the actual filling of the Event structure but that wasn't
expected to be noticeable. The change from TMaps to TObjArrays have
affected the structure as follows, starting from the top.
Event: The Event class now contains all TObjArrays. All XXX_Digi
TObjArrays will contain objects of the new class CalHit.
CalHit: The CalHit class contains the towerID tag, the total energy of
the tower and a TObjArray containing a list of EDeposit objects.
EDeposit: The EDeposit class has changed to contain both the energy
deposit amount as well as the MCParticle responsible for the deposition.
MCvsE: Looking back I really don't know why we bothered with this class.
The MCvsE class has been completely removed from the Event structure.
The TMap which this class contains is now replaced by the TObjArray in
the CalHit class.
Hopefully this description makes the changes as clear as mud.
Don't start changing your scripts yet. This is just the first step. The
next step is to implement the use of indices for the MCParts rather than
pointers. I wanted to make sure that this first change worked before
moving on. The altered Event structure still resides solely in my
personal space but if everything goes well tomorrow then it should be
available ....... well I'll say Friday to be safe.
If you can see anything's I have missed or bad ideas I seem to
be using feel free to let me know.
Rob
|