00001 #ifndef Fireworks_Core_FWRPZView_h 00002 #define Fireworks_Core_FWRPZView_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : FWRPZView 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Tue Feb 19 10:33:21 EST 2008 00019 // $Id: FWRPZView.h,v 1.24 2011/10/15 02:33:29 amraktad Exp $ 00020 // 00021 00022 // system include files 00023 #include <string> 00024 00025 // user include files 00026 #include "Fireworks/Core/interface/FWEveView.h" 00027 #include "Fireworks/Core/interface/FWDoubleParameter.h" 00028 #include "Fireworks/Core/interface/FWBoolParameter.h" 00029 #include "Fireworks/Core/interface/FWEvePtr.h" 00030 #include "TEveVector.h" 00031 00032 // forward declarations 00033 class TEveProjectionManager; 00034 class TGLMatrix; 00035 class TEveCalo2D; 00036 class TEveProjectionAxes; 00037 class TEveWindowSlot; 00038 class FWColorManager; 00039 class FWRPZViewGeometry; 00040 00041 class FWRPZView : public FWEveView 00042 { 00043 public: 00044 FWRPZView(TEveWindowSlot* iParent, FWViewType::EType); 00045 virtual ~FWRPZView(); 00046 00047 // ---------- const member functions --------------------- 00048 00049 virtual void addTo(FWConfiguration&) const; 00050 virtual void populateController(ViewerParameterGUI&) const; 00051 virtual TEveCaloViz* getEveCalo() const; 00052 00053 // ---------- member functions --------------------------- 00054 virtual void setContext(const fireworks::Context&); 00055 virtual void setFrom(const FWConfiguration&); 00056 virtual void voteCaloMaxVal(); 00057 00058 virtual void eventBegin(); 00059 virtual void eventEnd(); 00060 00061 //returns the new element created from this import 00062 void importElements(TEveElement* iProjectableChild, float layer, TEveElement* iProjectedParent=0); 00063 00064 void shiftOrigin(TEveVector& center); 00065 void resetOrigin(); 00066 private: 00067 FWRPZView(const FWRPZView&); // stop default 00068 const FWRPZView& operator=(const FWRPZView&); // stop default 00069 00070 void doPreScaleDistortion(); 00071 void doFishEyeDistortion(); 00072 void doCompression(bool); 00073 void doShiftOriginToBeamSpot(); 00074 00075 00076 void setEtaRng(); 00077 00078 void showProjectionAxes( ); 00079 void projectionAxesLabelSize( ); 00080 00081 // ---------- member data -------------------------------- 00082 const static float s_distortF; 00083 const static float s_distortFInv; 00084 00085 FWRPZViewGeometry* m_geometryList; 00086 TEveProjectionManager* m_projMgr; 00087 TEveProjectionAxes* m_axes; 00088 TEveCalo2D* m_calo; 00089 00090 00091 // parameters 00092 00093 FWBoolParameter m_showPixelBarrel; 00094 FWBoolParameter m_showPixelEndcap; 00095 FWBoolParameter m_showTrackerBarrel; 00096 FWBoolParameter m_showTrackerEndcap; 00097 00098 FWBoolParameter m_shiftOrigin; 00099 FWDoubleParameter m_fishEyeDistortion; 00100 FWDoubleParameter m_fishEyeR; 00101 00102 FWDoubleParameter m_caloDistortion; 00103 FWDoubleParameter m_muonDistortion; 00104 FWBoolParameter m_showProjectionAxes; 00105 FWDoubleParameter m_projectionAxesLabelSize; 00106 FWBoolParameter m_compressMuon; 00107 00108 FWBoolParameter* m_showHF; 00109 FWBoolParameter* m_showEndcaps; 00110 00111 }; 00112 00113 00114 #endif