G4UA::SyncPrimaryGeneratorActionTool Node1 G4UA::SyncPrimaryGenerator ActionTool   + G4RunTool() # makeAndFillAction() Node2 G4UA::UserActionToolBase < SyncPrimaryGeneratorAction >   + UserActionToolBase() + fillUserAction() + BeginOfAthenaEvent() + EndOfAthenaEvent() # makeAndFillAction() Node2->Node1 Node3 extends< AthAlgTool, IUserActionTool >     Node3->Node2 Node4 G4UA::ThreadSpecificUser Action< SyncPrimaryGenerator Action > - m_threadMap + ~ThreadSpecificUserAction() + get() + set() + begin() + end() + accumulate() Node4->Node2 #m_actions Node5 IG4RunTool   + DeclareInterfaceID() + NotifyBeginRun() + WaitBeginRun() + Size() + PushEvent() + GetEvent() Node5->Node1 #m_g4RunTool Node6 IAlgTool     Node6->Node5