00001 #ifndef VIS_CUTRACKER_VIS_TK_GEOMETRY_TWIG_H 00002 # define VIS_CUTRACKER_VIS_TK_GEOMETRY_TWIG_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 # include "Iguana/Framework/interface/IgTwig.h" 00006 # include "VisFramework/VisFrameworkBase/interface/VisQueuedTwig.h" 00007 # include "FWCore/Framework/interface/ESHandle.h" 00008 # include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00009 # include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00010 # include "VisReco/VisCustomTracker/interface/VisCuTracker.h" 00011 # include "CalibTracker/Records/interface/SiStripDetCablingRcd.h" 00012 # include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h" 00013 # include "VisFramework/VisConfigService/interface/VisConfigurationService.h" 00014 # include "VisFramework/VisFrameworkBase/interface/VisSelectedTrackNumber.h" 00015 00016 //<<<<<< PUBLIC DEFINES >>>>>> 00017 //<<<<<< PUBLIC CONSTANTS >>>>>> 00018 //<<<<<< PUBLIC TYPES >>>>>> 00019 namespace edm 00020 { 00021 class Event; 00022 class EventSetup; 00023 } 00024 namespace reco 00025 { 00026 class Track; 00027 } 00028 class VisCuTkBuilder; 00029 class VisCuCmsTracker; 00030 class VisCuTkMapWindow; 00031 class VisCuTkSlWindow; 00032 class VisCuTrackerDigi; 00033 class VisCuTrackerCluster; 00034 class VisCuTrackerRecHit; 00035 class VisCuTrackerSimHit; 00036 class VisCuTkModule; 00037 class SoSeparator; 00038 00039 //<<<<<< PUBLIC VARIABLES >>>>>> 00040 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00041 //<<<<<< CLASS DECLARATIONS >>>>>> 00042 00043 class VisCuTkGeometryTwig : public VisQueuedTwig, public VisCuTracker 00044 { 00045 public: 00046 VisCuTkGeometryTwig (IgState *state, IgTwig *parent, const std::string &name = ""); 00047 // implicit copy constructor 00048 // implicit assignment operator 00049 // implicit destructor 00050 virtual ~VisCuTkGeometryTwig (void); 00051 00052 virtual void onNewEvent (const edm::Event &event, 00053 const edm::EventSetup &eventSetup); 00054 using VisQueuedTwig::update; 00055 virtual void update (IgTextRep *rep); 00056 virtual void update (Ig3DRep *rep); 00057 virtual void update (IgRPhiRep *rep); 00058 virtual void update (IgRZRep *rep); 00059 virtual void configChanged (void); 00060 00061 private: 00062 const edm::ParameterSet *pset; 00063 edm::ESHandle<TrackerGeometry> m_pDD; 00064 edm::ESHandle<SiStripDetCabling> m_SiStripDetCabling; 00065 TrackerGeometry * m_TrackerGeometry; 00066 unsigned long long m_cacheID_geo; 00067 unsigned long long m_cacheID_cab; 00068 std::string m_name; 00069 bool m_done; 00070 SoSeparator *m_3dDet; 00071 SoSeparator *m_rzDet; 00072 SoSeparator *m_rphiDet; 00073 SoSeparator *digi3d; 00074 SoSeparator *cluster3d; 00075 SoSeparator *rechit3d; 00076 SoSeparator *simhit3d; 00077 bool m_3Ddone; 00078 bool alreadySelected; 00079 bool m_rzdone; 00080 bool m_rphidone; 00081 VisCuCmsTracker * tr; 00082 VisCuTkBuilder * tkMap; 00083 VisCuTkMapWindow *winTkMap; 00084 VisCuTkSlWindow *winTkSl; 00085 VisSelectedTrackNumber m_track; 00086 std::vector<VisCuTkModule *>selectedModules; 00087 VisCuTrackerDigi *digidraw; 00088 VisCuTrackerCluster *clusterdraw; 00089 VisCuTrackerRecHit *rechitdraw; 00090 VisCuTrackerSimHit *simhitdraw; 00091 int previous_event; 00092 std::vector<reco::Track> m_tracks; 00093 std::vector<std::vector<VisCuTkModule * > > m_trackModules; 00094 void selectCrossedModules(); 00095 void storeTracks(const edm::Event &event); 00096 std::string crossedModulesOnly; 00097 std::string accessingDb; 00098 bool autoIntegrate; 00099 std::string signalToIntegrate; 00100 std::string trackProducerName; 00101 std::string trackLabelName; 00102 }; 00103 00104 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00105 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00106 00107 #endif // VIS_CUTRACKER_VIS_TK_GEOMETRY_TWIG_H