00001
00002
00003 #include "VisSimulation/VisSimTracker/interface/VisTkSimContent.h"
00004 #include "VisSimulation/VisSimTracker/interface/VisTkSimHitTwig.h"
00005 #include "VisSimulation/VisSimTracker/interface/VisTkSimTrackTwig.h"
00006 #include "VisFramework/VisFrameworkBase/interface/VisExceptionService.h"
00007 #include "VisFramework/VisFrameworkBase/interface/debug.h"
00008 #include "Iguana/Studio/interface/IgDocumentData.h"
00009 #include "Iguana/Framework/interface/IgTwig.h"
00010 #include "Iguana/Studio/interface/IgQtLock.h"
00011 #include <classlib/utils/Callback.h>
00012
00013
00014
00015
00016
00017
00018
00019
00020 IG_DEFINE_STATE_ELEMENT (VisTkSimContent, "Data/Simulation/Tracker");
00021
00022
00023
00024
00025
00027 VisTkSimContent::VisTkSimContent (IgState *state)
00028 : VisContent (state, s_key, MAIN_THREAD,
00029 lat::CreateCallback (this, &VisTkSimContent::init))
00030 {
00031 }
00032
00035 void
00036 VisTkSimContent::init (void)
00037 {
00038 LOG (0, trace, LFfwvis, "VisTkSimContent::init()\n");
00039
00040 IgQtLock ();
00041 IgTwig *rootTwig = IgDocumentData::get (state ())->root ();
00042 IgTwig *topTwig = 0;
00043 IgTwig *eventTwig = 0;
00044 IgTwig *trackerEvent = 0;
00045
00046 topTwig = rootTwig->lookup ("CMS Event and Detector");
00047 if (!topTwig) topTwig = new IgSimpleTwig (rootTwig, "CMS Event and Detector");
00048
00049 eventTwig = topTwig->lookup ("CMS Event");
00050 if (! eventTwig) eventTwig = new IgSimpleTwig (topTwig, "CMS Event");
00051
00052 trackerEvent = IgDocumentData::get (state ())->find ("Tracker Event");
00053 if (! trackerEvent) trackerEvent = new IgSimpleTwig (eventTwig, "Tracker Event");
00054
00055 new VisTkSimHitTwig (state (), trackerEvent, "Tracker Simhits");
00056 VisTkSimTrackTwig *tracks = new VisTkSimTrackTwig (state (), trackerEvent, "Sim Tracks");
00057
00058 VisExceptionService *exService = VisExceptionService::get (state ());
00059 if (! exService)
00060 {
00061 exService = new VisExceptionService (state ());
00062 }
00063 tracks->onException (lat::CreateCallback (exService, &VisExceptionService::exceptionCallback));
00064 tracks->onError (lat::CreateCallback (exService, &VisExceptionService::errorCallback));
00065 tracks->onCmsException (lat::CreateCallback (exService, &VisExceptionService::cmsExceptionCallback));
00066 tracks->onUnhandledException (lat::CreateCallback (exService, &VisExceptionService::unhandledExceptionCallback));
00067 }