00001 #ifndef VIS_RECO_VIS_GSFPFTRACK_TWIG_H 00002 #define VIS_RECO_VIS_GSFPFTRACK_TWIG_H 00003 00004 #include "VisFramework/VisFrameworkBase/interface/VisQueuedTwig.h" 00005 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h" 00006 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrackFwd.h" 00007 00008 #include <vector> 00009 #include <utility> 00010 00011 //class SbVec3f; forward declaration doesn't work!? 00012 #include <Inventor/SbVec3f.h> 00013 #include <Inventor/SbColor.h> 00014 00022 class VisGsfPFRecTrackTwig : public VisQueuedTwig 00023 { 00024 public: 00025 VisGsfPFRecTrackTwig(IgState* state, IgTwig* parent, 00026 const std::string& name = "", 00027 const std::string& friendlyName = "", 00028 const std::string& moduleLabel = "", 00029 const std::string& instanceName = "", 00030 const std::string& processName = ""); 00031 00032 virtual void onNewEvent(const edm::Event& event, 00033 const edm::EventSetup& eventSetup); 00034 00035 using VisQueuedTwig::update; 00036 virtual void update(Ig3DRep* rep); 00037 virtual void update(IgLegoRep* rep); 00038 virtual void update(IgTextRep* rep); 00039 virtual void update(IgRPhiRep* rep); 00040 virtual void update(IgRZRep* rep); 00041 00042 private: 00043 std::string m_text; 00044 00045 const std::string m_name; 00046 const std::string m_friendlyName; 00047 const std::string m_moduleLabel; 00048 const std::string m_instanceName; 00049 const std::string m_processName; 00050 00051 std::vector<reco::GsfPFRecTrack> m_tracks; 00052 00053 std::vector<std::pair<SbColor, std::vector<SbVec3f> > > m_trajectoryPositions; 00054 std::vector<std::pair<SbColor, std::vector<SbVec3f> > > m_trajectoryDirections; 00055 00056 std::vector<std::vector<SbVec3f> > m_bremTrajectoryPositions; 00057 std::vector<std::vector<SbVec3f> > m_bremTrajectoryDirections; 00058 }; 00059 00060 #endif