CMS 3D CMS Logo

VisSimHitsContent.cc

Go to the documentation of this file.
00001 //<<<<<< INCLUDES                                                       >>>>>>
00002 
00003 #include "VisSimulation/VisSimHits/interface/VisSimHitsContent.h"
00004 #include "VisSimulation/VisSimHits/interface/VisPCaloHitTwig.h"
00005 #include "VisSimulation/VisSimHits/interface/VisPSimHitTwig.h"
00006 #include "VisSimulation/VisSimHits/interface/VisSimTrackTwig.h"
00007 #include "VisSimulation/VisSimHits/interface/VisSimVertexTwig.h"
00008 #include "VisFramework/VisFrameworkBase/interface/debug.h"
00009 #include "VisFramework/VisFrameworkBase/interface/VisExceptionService.h"
00010 #include "Iguana/Studio/interface/IgDocumentData.h"
00011 #include "Iguana/Framework/interface/IgTwig.h"
00012 #include "Iguana/Framework/interface/IgRepSet.h"
00013 #include "Iguana/Studio/interface/IgQtLock.h"
00014 #include <classlib/utils/Callback.h>
00015 
00016 //<<<<<< PRIVATE DEFINES                                                >>>>>>
00017 //<<<<<< PRIVATE CONSTANTS                                              >>>>>>
00018 //<<<<<< PRIVATE TYPES                                                  >>>>>>
00019 //<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
00020 //<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
00021 //<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
00022 
00023 IG_DEFINE_STATE_ELEMENT (VisSimHitsContent, "Data/Simulation/Hits");
00024 
00025 //<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
00026 //<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
00027 //<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
00028 
00030 VisSimHitsContent::VisSimHitsContent (IgState *state)
00031     : VisContent (state, s_key, MAIN_THREAD,
00032                   lat::CreateCallback (this, &VisSimHitsContent::init))
00033 {}
00034 
00037 void
00038 VisSimHitsContent::init (void)
00039 {
00040     LOG (0, trace, LFfwvis, "VisSimHitsContent::init()\n");
00041     
00042     IgQtLock ();
00043     
00044     IgTwig *rootTwig = IgDocumentData::get (state ())->root ();
00045     IgTwig *topTwig = 0;
00046     IgTwig *eventTwig = 0;
00047 
00048     topTwig = rootTwig->lookup ("CMS Event and Detector");
00049     if (!topTwig) topTwig = new IgSimpleTwig (rootTwig, "CMS Event and Detector");
00050 
00051     eventTwig = topTwig->lookup ("CMS Event");
00052     if (!eventTwig) eventTwig = new IgSimpleTwig (topTwig, "CMS Event");
00053 
00054     VisExceptionService *exService = VisExceptionService::get (state ());
00055     if (! exService)
00056     {
00057         exService = new VisExceptionService (state ());
00058     }
00059     
00060     std::vector<std::string> twigs (4);
00061     twigs.push_back ("VisPCaloHitTwig");
00062     twigs.push_back ("VisPSimHitTwig");
00063     twigs.push_back ("VisSimTrackTwig");
00064     twigs.push_back ("VisSimVertexTwig");
00065 
00066     const edm::ParameterSet *pset = VisConfigurationService::pSet ();
00067     if (pset)
00068     {
00069         twigs = pset->getUntrackedParameter<std::vector<std::string> > ("VisSimContent", twigs);
00070     }
00071 
00072     IgTwig *hitsEventTwig = new IgSimpleTwig (eventTwig, "Simulated Data");
00073     if (std::find (twigs.begin (), twigs.end (), "VisPCaloHitTwig")!= twigs.end()) 
00074     {
00075         VisPCaloHitTwig *caloHits = new VisPCaloHitTwig (state (), hitsEventTwig, "Sim Calo Hits");
00076         caloHits->onException (lat::CreateCallback (exService, &VisExceptionService::exceptionCallback));
00077         caloHits->onError (lat::CreateCallback (exService, &VisExceptionService::errorCallback));
00078         caloHits->onCmsException (lat::CreateCallback (exService, &VisExceptionService::cmsExceptionCallback));
00079         caloHits->onUnhandledException (lat::CreateCallback (exService, &VisExceptionService::unhandledExceptionCallback));
00080     }
00081     if (std::find (twigs.begin (), twigs.end (), "VisPSimHitTwig")!= twigs.end()) 
00082     {
00083         VisPSimHitTwig *simHits = new VisPSimHitTwig (state (), hitsEventTwig, "Sim Hits");
00084         simHits->onException (lat::CreateCallback (exService, &VisExceptionService::exceptionCallback));
00085         simHits->onError (lat::CreateCallback (exService, &VisExceptionService::errorCallback));
00086         simHits->onCmsException (lat::CreateCallback (exService, &VisExceptionService::cmsExceptionCallback));
00087         simHits->onUnhandledException (lat::CreateCallback (exService, &VisExceptionService::unhandledExceptionCallback));
00088     }
00089     if (std::find (twigs.begin (), twigs.end (), "VisSimTrackTwig")!= twigs.end()) 
00090     {
00091         VisSimTrackTwig *tracks = new VisSimTrackTwig (state (), hitsEventTwig, "Sim Tracks");
00092         tracks->onException (lat::CreateCallback (exService, &VisExceptionService::exceptionCallback));
00093         tracks->onError (lat::CreateCallback (exService, &VisExceptionService::errorCallback));
00094         tracks->onCmsException (lat::CreateCallback (exService, &VisExceptionService::cmsExceptionCallback));
00095         tracks->onUnhandledException (lat::CreateCallback (exService, &VisExceptionService::unhandledExceptionCallback));
00096     }    
00097     if (std::find (twigs.begin (), twigs.end (), "VisSimVertexTwig")!= twigs.end()) 
00098     {
00099         VisSimVertexTwig *vtx = new VisSimVertexTwig (state (), hitsEventTwig, "Sim Vertices");    
00100         vtx->onException (lat::CreateCallback (exService, &VisExceptionService::exceptionCallback));
00101         vtx->onError (lat::CreateCallback (exService, &VisExceptionService::errorCallback));
00102         vtx->onCmsException (lat::CreateCallback (exService, &VisExceptionService::cmsExceptionCallback));
00103         vtx->onUnhandledException (lat::CreateCallback (exService, &VisExceptionService::unhandledExceptionCallback));
00104     }
00105 }

Generated on Tue Jun 9 17:50:31 2009 for CMSSW by  doxygen 1.5.4